Files
2026-05-20 16:13:58 +08:00

94 lines
3.3 KiB
Go

package model
import (
"context"
"fmt"
"stat/common/log"
"stat/common/mongos"
"stat/common/utils"
"time"
"go.mongodb.org/mongo-driver/bson"
"go.mongodb.org/mongo-driver/bson/primitive"
"go.mongodb.org/mongo-driver/mongo/options"
)
type DspRecharge struct {
ID primitive.ObjectID `json:"id" bson:"_id,omitempty"` //流水id
UID uint64 `json:"uid" bson:"uid"` //用户id
DevType string `json:"devType" bson:"devType"` //设备系统类型 ios pc android
Channel string `json:"channel" bson:"channel"` //渠道类型 鲨鱼 金鱼
OID string `json:"oid" bson:"oid"` //支付平台订单号
WithdrawType string `json:"WithdrawType" bson:"WithdrawType"` //充值类型
Money int64 `json:"money" bson:"money"` //充值金额 订单金额 李秋山确认
PayMoney int64 `json:"payMoney" bson:"payMoney"` //实际到账金额 用户实际支付金额 李秋山确认
Status int `json:"status" bson:"status"` //1进行中 2付款失败 3付款成功 4已经退款
SuccessAt time.Time `json:"successAt" bson:"successAt"` //回调成功时间
CreatedAt time.Time `json:"createdAt" bson:"createdAt"` //创建时间
IsDirect bool `json:"isDirect" bson:"isDirect"` //true:是直推用户
DistrictCode string `json:"districtCode" bson:"districtCode"` //商区码
}
const CollRecharge = "recharge_order"
var dbRecharge *mongos.MongoTool
func RechargeInit() {
dbRecharge = mongos.New(ManagerDsp, CollRecharge)
}
// FindDspRecharge 查询用户
func FindDspRecharge(ctx context.Context, skip int64, limit int64) ([]DspRecharge, error) {
list := make([]DspRecharge, 0)
beginTimeStr := "2020-07-01T00:00:00-08:00"
beginTime := utils.StrTimeToTime(beginTimeStr)
query := bson.M{"successAt": bson.M{"$gt": beginTime}}
sort := bson.D{{Key: "successAt", Value: 1}}
opts := options.Find().SetSkip(skip).SetLimit(limit).SetSort(sort)
if err := dbRecharge.Find(ctx, &list, query, opts); err != nil {
log.Error(fmt.Sprintf("model %s FindDspRecharge Find error", CollDistrict), log.E(err))
return list, err
}
return list, nil
}
func FindDspRechargeCount(ctx context.Context) (count int64, err error) {
beginTimeStr := "2020-07-01T00:00:00-08:00"
beginTime := utils.StrTimeToTime(beginTimeStr)
query := bson.M{"successAt": bson.M{"$gt": beginTime}}
count, err = dbRecharge.Count(ctx, query)
if err != nil {
log.Error(fmt.Sprintf("model %s FindDspRecharge Find error", CollDistrict), log.E(err))
return count, err
}
return count, nil
}
// FindDspDistrictRecharge
func FindDspDistrictRecharge(ctx context.Context, district string) ([]DspRecharge, error) {
list := make([]DspRecharge, 0)
beginTimeStr := "2020-10-01T00:00:00-08:00"
beginTime := utils.StrTimeToTime(beginTimeStr)
query := bson.M{"successAt": bson.M{"$gt": beginTime}, "districtCode": district}
if err := dbRecharge.Find(ctx, &list, query); err != nil {
log.Error(fmt.Sprintf("model %s FindDspDistrictRecharge Find error", CollDistrict), log.E(err))
return list, err
}
return list, nil
}
//