Files
rootandClaude Opus 5 8679200f41 Initial commit
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-15 13:57:10 +08:00

56 lines
2.1 KiB
Go

package prdcthsomod
import (
"91porn-server/models/commod"
"time"
"go.mongodb.org/mongo-driver/bson"
"go.mongodb.org/mongo-driver/bson/primitive"
"go.mongodb.org/mongo-driver/mongo/options"
)
// PaymentLogBody 商品交易订单请求参数
type PaymentLogBody struct {
ProductID primitive.ObjectID `bson:"productID" json:"productID" binding:"required" ` //产品id
Name string `bson:"name" json:"name" binding:"required" ` //商品名字
Amount int64 `bson:"amount" json:"amount" binding:"required"` //成交价格
ProductType int `bson:"productType" json:"productType"` //产品类型
}
// ProductHistoryQueryReq 通用查询参数
type ProductHistoryQueryReq struct {
UID *uint64 `form:"uid" json:"uid,omitempty" bson:"uid"` // 用户id
ProductType *commod.ProductType `form:"productType" json:"productType" ` // 产品类型 // 0-会员卡 21-预售卡
AdvanceOrderStatus *int `form:"advanceOrderStatus" json:"advanceOrderStatus"` // 预售订单状态 // 2-预付成功 4-尾款支付成功
Start *time.Time `form:"start" json:"start"` // 开始时间
End *time.Time `form:"end" json:"end"` // 结束时间
commod.Page
}
type ProductHistoryQueryResp struct {
Total int64 `json:"total"`
List []*ProductHistory `json:"list"`
}
func (req *ProductHistoryQueryReq) GetCond() bson.M {
cond := bson.M{}
if req.UID != nil {
cond["uid"] = *req.UID
}
if req.ProductType != nil {
cond["productType"] = *req.ProductType
}
if req.AdvanceOrderStatus != nil {
cond["advanceOrderStatus"] = *req.AdvanceOrderStatus
}
if req.Start != nil && req.End != nil {
cond["createdAt"] = bson.M{"$gte": req.Start, "$lt": req.End}
}
return cond
}
func (req *ProductHistoryQueryReq) GetOpt() *options.FindOptions {
opt := options.Find().SetSkip(req.Skip64()).SetLimit(req.Limit64()).SetSort(bson.D{{Key: "createdAt", Value: -1}})
return opt
}