@@ -0,0 +1,170 @@
|
||||
package wdordmod
|
||||
|
||||
import (
|
||||
"strings"
|
||||
"time"
|
||||
|
||||
"91porn-server/common/pageopt"
|
||||
"91porn-server/common/ysinterface/disc"
|
||||
)
|
||||
|
||||
// DistrictStatKey
|
||||
type DistrictStatKey struct {
|
||||
DiscSeqe `bson:",inline"` //商区码
|
||||
DeviceType string `bson:"deviceType"` //系统类型 iOS Android
|
||||
}
|
||||
|
||||
var (
|
||||
discWithdraw = DiscWithdraw
|
||||
)
|
||||
|
||||
func (d DistrictStatKey) GetDiscCode() string {
|
||||
return d.DistrictCode
|
||||
}
|
||||
|
||||
func (d DistrictStatKey) GetPromSeqe() string {
|
||||
return d.PromSeqe
|
||||
}
|
||||
|
||||
func (d DistrictStatKey) GetSysType() string {
|
||||
return d.DeviceType
|
||||
}
|
||||
|
||||
func (d DistrictStatKey) String() string {
|
||||
if d.DiscSeqe.String() == "" {
|
||||
return ""
|
||||
}
|
||||
return strings.ToUpper(strings.Join([]string{d.DiscSeqe.String(), d.DeviceType}, "-"))
|
||||
}
|
||||
|
||||
// DistrictStater
|
||||
type DistrictStater = disc.DistrictStater
|
||||
|
||||
// DistrictOrderCountMap districtCode->订单数 map
|
||||
func DistrictOrderCountMap(start, end time.Time, mats ...Matcher) (map[DistrictStater]int64, error) {
|
||||
mats = append(mats,
|
||||
(&CreatedAtGTEAndLTMatch{&start, &end}).New(),
|
||||
(&WithdrawTypeNEMatch{&discWithdraw}).New(),
|
||||
)
|
||||
filter := pageopt.MergeM(mats)
|
||||
list := []DistrictStatKey{}
|
||||
if err := coll(nil).Find(&list, filter); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
m := make(map[DistrictStater]int64, len(list))
|
||||
for _, v := range list {
|
||||
if v.String() != "" {
|
||||
m[v] += 1
|
||||
}
|
||||
}
|
||||
return m, nil
|
||||
}
|
||||
|
||||
// DistrictOrderMoneyMap districtCode->订单金额 map
|
||||
func DistrictOrderMoneyMap(start, end time.Time, mats ...Matcher) (map[DistrictStater]int64, error) {
|
||||
mats = append(mats,
|
||||
(&CreatedAtGTEAndLTMatch{&start, &end}).New(),
|
||||
(&WithdrawTypeNEMatch{&discWithdraw}).New(),
|
||||
)
|
||||
filter := pageopt.MergeM(mats)
|
||||
list := []struct {
|
||||
DistrictStatKey `bson:",inline"` //商区码
|
||||
Money int64 `bson:"money"` //提现金额
|
||||
}{}
|
||||
if err := coll(nil).Find(&list, filter); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
m := make(map[DistrictStater]int64, len(list))
|
||||
for _, v := range list {
|
||||
if v.String() != "" {
|
||||
m[v.DistrictStatKey] += v.Money
|
||||
}
|
||||
}
|
||||
return m, nil
|
||||
}
|
||||
|
||||
// DistrictCompleteOrderCountMap districtCode->完成订单数 map
|
||||
func DistrictCompleteOrderCountMap(start, end time.Time, mats ...Matcher) (map[DistrictStater]int64, error) {
|
||||
mats = append(mats,
|
||||
(&SuccessAtGTEAndLTMatch{&start, &end}).New(),
|
||||
(&WithdrawTypeNEMatch{&discWithdraw}).New(),
|
||||
)
|
||||
filter := pageopt.MergeM(mats)
|
||||
list := []DistrictStatKey{}
|
||||
if err := coll(nil).Find(&list, filter); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
m := make(map[DistrictStater]int64, len(list))
|
||||
for _, v := range list {
|
||||
if v.String() != "" {
|
||||
m[v] += 1
|
||||
}
|
||||
}
|
||||
return m, nil
|
||||
}
|
||||
|
||||
// DistrictCompleteOrderPayMoneyMap districtCode->完成订单的实际到账金额 map
|
||||
func DistrictCompleteOrderPayMoneyMap(start, end time.Time, mats ...Matcher) (map[DistrictStater]int64, error) {
|
||||
mats = append(mats,
|
||||
(&SuccessAtGTEAndLTMatch{&start, &end}).New(),
|
||||
(&WithdrawTypeNEMatch{&discWithdraw}).New(),
|
||||
)
|
||||
filter := pageopt.MergeM(mats)
|
||||
list := []struct {
|
||||
DistrictStatKey `bson:",inline"` //商区码
|
||||
PayMoney int64 `bson:"payMoney"` //实际到账金额 李秋山确认
|
||||
}{}
|
||||
if err := coll(nil).Find(&list, filter); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
m := make(map[DistrictStater]int64, len(list))
|
||||
for _, v := range list {
|
||||
if v.String() != "" {
|
||||
m[v.DistrictStatKey] += v.PayMoney
|
||||
}
|
||||
}
|
||||
return m, nil
|
||||
}
|
||||
|
||||
// DistrictReceivedOrderCountMap districtCode->已出款订单数 map
|
||||
func DistrictReceivedOrderCountMap(start, end time.Time, mats ...Matcher) (map[DistrictStater]int64, error) {
|
||||
mats = append(mats,
|
||||
(&ReceivedAtGTEAndLTMatch{&start, &end}).New(),
|
||||
(&WithdrawTypeNEMatch{&discWithdraw}).New(),
|
||||
)
|
||||
list := []DistrictStatKey{}
|
||||
filter := pageopt.MergeM(mats)
|
||||
if err := coll(nil).Find(&list, filter); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
m := make(map[DistrictStater]int64, len(list))
|
||||
for _, v := range list {
|
||||
if v.String() != "" {
|
||||
m[v] += 1
|
||||
}
|
||||
}
|
||||
return m, nil
|
||||
}
|
||||
|
||||
// DistrictReceivedMoneyMap districtCode->已出款金额 map
|
||||
func DistrictReceivedMoneyMap(start, end time.Time, mats ...Matcher) (map[DistrictStater]int64, error) {
|
||||
list := []struct {
|
||||
DistrictStatKey `bson:",inline"` //商区码
|
||||
PayMoney int64 `bson:"payMoney"` //实际到账金额 李秋山确认
|
||||
}{}
|
||||
mats = append(mats,
|
||||
(&ReceivedAtGTEAndLTMatch{&start, &end}).New(),
|
||||
(&WithdrawTypeNEMatch{&discWithdraw}).New(),
|
||||
)
|
||||
filter := pageopt.MergeM(mats)
|
||||
if err := coll(nil).Find(&list, filter); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
m := make(map[DistrictStater]int64, len(list))
|
||||
for _, v := range list {
|
||||
if v.String() != "" {
|
||||
m[v.DistrictStatKey] += v.PayMoney
|
||||
}
|
||||
}
|
||||
return m, nil
|
||||
}
|
||||
Reference in New Issue
Block a user