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 } //