126 lines
6.3 KiB
Go
126 lines
6.3 KiB
Go
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
|
|
}
|