package rechargeser import ( "time" "91porn-server/common/log" "91porn-server/models/commod" "91porn-server/models/v/productmod" "91porn-server/models/v/rchgordmod" "github.com/shopspring/decimal" "go.mongodb.org/mongo-driver/bson/primitive" ) type Record struct { ID primitive.ObjectID `json:"id" bson:"_id,omitempty"` //流水id UID uint64 `json:"uid" bson:"uid"` //用户id DevID string `json:"devID" bson:"devID"` //设备id OID string `json:"oid" bson:"oid"` //支付平台订单号 TraderId string `json:"traderId" bson:"traderId"` //商户ID UserIP string `json:"userIP" bson:"userIP"` //用户ip Name string `json:"name" bson:"name"` //用户名称 Tel string `json:"tel" bson:"tel"` //用户手机号 PayAct string `json:"payAct" bson:"payAct"` //支付账号 DevType string `json:"devType" bson:"devType"` //设备系统类型 ios pc android Amount decimal.Decimal `json:"amount" bson:"amount"` //蝴蝶币数量 Money decimal.Decimal `json:"money" bson:"money"` //充值金额 订单金额 李秋山确认 PayMoney decimal.Decimal `json:"payMoney" bson:"payMoney"` //实际到账金额 用户实际支付金额 李秋山确认 RechargeType string `json:"rechargeType" bson:"rechargeType"` //充值类型 ProductID primitive.ObjectID `json:"productID" bson:"productID"` //充值金币类型id VipID primitive.ObjectID `json:"vipID" bson:"vipID"` //是否是vip冲 hi VipName string `json:"vipName" bson:"vipName"` //vip名称 Channel string `json:"channel" bson:"channel"` //渠道类型 鲨鱼 金鱼 Proof string `json:"proof" bson:"proof"` //代充平台 支付凭证 Status int `json:"status" bson:"status"` //1进行中 2付款失败 3付款成功 4已经退款 StatusDesc string `json:"statusDesc" bson:"statusDesc"` //状态描述 LockStatus int `json:"lockStatus" bson:"lockStatus"` //订单操作锁定状态 用户订单更新操作 0-未锁定 可用于编辑订单 1-已锁定 不可编辑 NotifyTime int64 `json:"notifyTime" bson:"notifyTime"` //第三方回调本地订单的时间 NotifyStatus int `json:"notifyStatus" bson:"notifyStatus"` //通知第三方上分情况状态 1-成功 2-失败 Remark string `json:"remark" bson:"remark"` //备注 ProgressAt time.Time `json:"progressAt" bson:"progressAt"` //第三方下单成功时间 FailureAt time.Time `json:"failureAt" bson:"failureAt"` //回调失败时间 SuccessAt time.Time `json:"successAt" bson:"successAt"` //回调成功时间 PaymentAt time.Time `json:"paymentAt" bson:"paymentAt"` //支付时间 CreatedAt time.Time `json:"createdAt" bson:"createdAt"` //创建时间 UpdatedAt time.Time `json:"updatedAt" bson:"updatedAt"` //刷新时间 commod.DiscDoc `bson:",inline"` //商区 ProductType int `json:"productType" bson:"productType"` //支付产品类型 0 站群 1 棋牌 SourcePage string `json:"sourcePage" bson:"sourcePage"` SourceRef string `json:"sourceRef" bson:"sourceRef"` VideoID string `json:"videoId" bson:"videoId"` ActivityID string `json:"activityId" bson:"activityId"` ExperimentID string `json:"experimentId" bson:"experimentId"` ExperimentVariant string `json:"experimentVariant" bson:"experimentVariant"` SessionID string `json:"sessionId" bson:"sessionId"` } var _100 = decimal.NewFromInt(100) func BaiYuan(orders []*rchgordmod.RechargeOrder) []*Record { records := make([]*Record, len(orders)) ids := []primitive.ObjectID{} for i, v := range orders { if !v.VipID.IsZero() { ids = append(ids, v.VipID) } records[i] = &Record{ ID: v.ID, UID: v.UID, DevID: v.DevID, OID: v.OID, TraderId: v.TraderId, UserIP: v.UserIP, Name: v.Name, Tel: v.Tel, PayAct: v.PayAct, DevType: v.DevType, Amount: decimal.NewFromInt(v.Amount).Div(_100).Round(4), Money: decimal.NewFromInt(v.Money).Div(_100).Round(4), PayMoney: decimal.NewFromInt(v.PayMoney).Div(_100).Round(4), RechargeType: v.RechargeType, ProductID: v.ProductID, VipID: v.VipID, Channel: v.Channel, Proof: v.Proof, Status: v.Status, StatusDesc: v.StatusDesc, LockStatus: v.LockStatus, NotifyTime: v.NotifyTime, NotifyStatus: v.NotifyStatus, Remark: v.Remark, ProgressAt: v.ProgressAt, FailureAt: v.FailureAt, SuccessAt: v.SuccessAt, PaymentAt: v.PaymentAt, CreatedAt: v.CreatedAt, UpdatedAt: v.UpdatedAt, DiscDoc: v.DiscDoc, ProductType: v.ProductType, SourcePage: v.SourcePage, SourceRef: v.SourceRef, VideoID: v.VideoID, ActivityID: v.ActivityID, ExperimentID: v.ExperimentID, ExperimentVariant: v.ExperimentVariant, SessionID: v.SessionID, } } //增加会员卡名称查询 if len(ids) > 0 { productMap, err := productmod.ListByIDsMap(ids) if err != nil { log.Error("BaiYuan productmod.FindByProductIDs fail", log.E(err)) return records } if productMap != nil { for i, r := range records { if !r.VipID.IsZero() && productMap[r.VipID] != nil { records[i].VipName = productMap[r.VipID].Name } } } } return records }