@@ -0,0 +1,127 @@
|
||||
package prizemod
|
||||
|
||||
import (
|
||||
"time"
|
||||
|
||||
"91porn-server/models/commod"
|
||||
|
||||
"github.com/shopspring/decimal"
|
||||
"go.mongodb.org/mongo-driver/bson"
|
||||
"go.mongodb.org/mongo-driver/bson/primitive"
|
||||
"go.mongodb.org/mongo-driver/mongo/options"
|
||||
)
|
||||
|
||||
// 新增活动奖品
|
||||
type AddPrizeCond struct {
|
||||
ActivityID primitive.ObjectID `json:"activityId"` // 活动ID
|
||||
VIPCardID primitive.ObjectID `json:"vipCardId"` // 会员卡ID
|
||||
Name string `json:"name" binding:"required"` // 奖品名称
|
||||
Type PrizeType `json:"type" binding:"required"` // 奖品类型
|
||||
Count int32 `json:"count"` // 奖品数量
|
||||
Price int64 `json:"price"` // 奖品价值
|
||||
Sort int32 `json:"sort"` // 奖品排序
|
||||
Desc string `json:"desc"` // 奖品描述
|
||||
Value int64 `json:"value"` // 折扣率/活跃值
|
||||
Weights decimal.Decimal `json:"weights"` // 中奖权重
|
||||
Level PrizeLevel `json:"level"` // 奖品等级
|
||||
Status bool `json:"status"` // 启用/禁用
|
||||
ValidityTime int64 `json:"validityTime"` // 奖品有效期 单位: 天
|
||||
Image string `json:"image"` // 图片地址
|
||||
}
|
||||
|
||||
// 修改活动奖品
|
||||
type ModifyPrizeCond struct {
|
||||
ID primitive.ObjectID `json:"id" binding:"required"` // 文档ID
|
||||
ActivityID *primitive.ObjectID `json:"activityId"` // 活动ID
|
||||
VIPCardID *primitive.ObjectID `json:"vipCardId"` // 会员卡ID
|
||||
Name *string `json:"name"` // 奖品名称
|
||||
Type *PrizeType `json:"type"` // 奖品类型
|
||||
Count *int32 `json:"count"` // 奖品数量
|
||||
Price *int64 `json:"price"` // 奖品价值
|
||||
Sort *int32 `json:"sort"` // 奖品排序
|
||||
Desc *string `json:"desc"` // 奖品描述
|
||||
Value *int64 `json:"value"` // 折扣率/活跃值
|
||||
Weights *decimal.Decimal `json:"weights"` // 中奖权重
|
||||
Level *PrizeLevel `json:"level"` // 奖品等级
|
||||
Status *bool `json:"status"` // 启用/禁用
|
||||
ValidityTime *int64 `json:"validityTime"` // 奖品有效期 单位: 天
|
||||
Image *string `json:"image"` // 图片地址
|
||||
}
|
||||
|
||||
func (m *ModifyPrizeCond) Cond() primitive.M {
|
||||
return bson.M{"_id": m.ID}
|
||||
}
|
||||
|
||||
func (m *ModifyPrizeCond) Bson() primitive.M {
|
||||
set := bson.M{"updatedAt": time.Now()}
|
||||
if m.ActivityID != nil {
|
||||
set["activityId"] = m.ActivityID
|
||||
}
|
||||
if m.VIPCardID != nil {
|
||||
set["vipCardId"] = m.VIPCardID
|
||||
}
|
||||
if m.Name != nil {
|
||||
set["name"] = m.Name
|
||||
}
|
||||
if m.Type != nil {
|
||||
set["type"] = m.Type
|
||||
}
|
||||
if m.Price != nil {
|
||||
set["price"] = m.Price
|
||||
}
|
||||
if m.Value != nil {
|
||||
set["value"] = m.Value
|
||||
}
|
||||
if m.Count != nil {
|
||||
set["count"] = m.Count
|
||||
}
|
||||
if m.Sort != nil {
|
||||
set["sort"] = m.Sort
|
||||
}
|
||||
if m.Desc != nil {
|
||||
set["desc"] = m.Desc
|
||||
}
|
||||
if m.Weights != nil {
|
||||
set["weights"] = m.Weights
|
||||
}
|
||||
if m.Level != nil {
|
||||
set["level"] = m.Level
|
||||
}
|
||||
if m.Status != nil {
|
||||
set["status"] = m.Status
|
||||
}
|
||||
if m.ValidityTime != nil {
|
||||
set["validityTime"] = m.ValidityTime
|
||||
}
|
||||
if m.Image != nil {
|
||||
set["image"] = m.Image
|
||||
}
|
||||
return bson.M{"$set": set}
|
||||
}
|
||||
|
||||
// 查询活动奖品列表
|
||||
type QueryAllPrizeCond struct {
|
||||
Status *bool `form:"status"` // 状态---启用/禁用
|
||||
Type *PrizeType `form:"type"` // 奖品类型
|
||||
ActivityID *string `form:"activityId"` // 活动ID
|
||||
commod.Page
|
||||
}
|
||||
|
||||
func (q *QueryAllPrizeCond) Options() *options.FindOptions {
|
||||
return options.Find().SetLimit(int64(q.PageSize)).SetSkip(int64((q.PageNumber - 1) * q.PageSize)).SetSort(bson.M{"createdAt": -1})
|
||||
}
|
||||
|
||||
func (q *QueryAllPrizeCond) Query() primitive.M {
|
||||
fliter := bson.M{}
|
||||
if q.Status != nil {
|
||||
fliter["status"] = q.Status
|
||||
}
|
||||
if q.Type != nil {
|
||||
fliter["type"] = q.Type
|
||||
}
|
||||
if q.ActivityID != nil {
|
||||
id, _ := primitive.ObjectIDFromHex(*q.ActivityID)
|
||||
fliter["activityId"] = id
|
||||
}
|
||||
return fliter
|
||||
}
|
||||
Reference in New Issue
Block a user