54 lines
1.0 KiB
Go
54 lines
1.0 KiB
Go
package prdcthsomod
|
|
|
|
import (
|
|
"time"
|
|
|
|
"go.mongodb.org/mongo-driver/bson"
|
|
)
|
|
|
|
type M = bson.M
|
|
|
|
// PayVipTotalAmountByCreatedTime 购买VIP的总金额
|
|
func PayVipTotalAmountByCreatedTime(start time.Time, end time.Time) (int64, error) {
|
|
filter := M{
|
|
"createdAt": M{
|
|
"$gte": start,
|
|
"$lt": end,
|
|
},
|
|
"productType": VIP,
|
|
}
|
|
list := make([]struct {
|
|
Amount int64 `bson:"amount"`
|
|
}, 0)
|
|
if err := coll(nil).Find(&list, filter); err != nil {
|
|
return 0, err
|
|
}
|
|
var totalAmount int64
|
|
for _, v := range list {
|
|
totalAmount += v.Amount
|
|
}
|
|
return totalAmount, nil
|
|
}
|
|
|
|
// PayVipUIDSByCreatedTime 购买VIP的用户UID
|
|
func PayVipUIDSByCreatedTime(start time.Time, end time.Time) ([]uint64, error) {
|
|
filter := M{
|
|
"createdAt": M{
|
|
"$gte": start,
|
|
"$lt": end,
|
|
},
|
|
"productType": VIP,
|
|
}
|
|
list := make([]struct {
|
|
UID uint64 `bson:"uid"`
|
|
}, 0)
|
|
if err := coll(nil).Find(&list, filter); err != nil {
|
|
return nil, err
|
|
}
|
|
uidList := make([]uint64, len(list))
|
|
for i, v := range list {
|
|
uidList[i] = v.UID
|
|
}
|
|
return uidList, nil
|
|
}
|