172 lines
4.9 KiB
Go
172 lines
4.9 KiB
Go
package activitymod
|
|
|
|
import (
|
|
"time"
|
|
|
|
"91porn-server/models/commod"
|
|
|
|
"go.mongodb.org/mongo-driver/bson"
|
|
"go.mongodb.org/mongo-driver/bson/primitive"
|
|
"go.mongodb.org/mongo-driver/mongo/options"
|
|
)
|
|
|
|
// ActReq 活动请求,公告跳转到活动页面
|
|
type ActReq struct {
|
|
Token string `form:"token" json:"token"`
|
|
Type string `form:"type" json:"type"`
|
|
}
|
|
|
|
// 新增活动
|
|
type AddCond struct {
|
|
Title string `json:"title"` // 活动名称
|
|
Desc string `json:"desc"` // 活动注意事项
|
|
StartTime time.Time `json:"startTime"` // 活动开始时间
|
|
EndTime time.Time `json:"endTime"` // 活动结束时间
|
|
}
|
|
|
|
// 修改活动
|
|
type ModifyCond struct {
|
|
ID primitive.ObjectID `json:"id" binding:"required"` // 文档ID
|
|
Title *string `json:"title"` // 活动名称
|
|
Desc *string `json:"desc"` // 活动注意事项
|
|
Status *bool `json:"status"` // 状态---启用/禁用
|
|
StartTime *time.Time `json:"startTime"` // 活动开始时间
|
|
EndTime *time.Time `json:"endTime"` // 活动结束时间
|
|
}
|
|
|
|
func (m *ModifyCond) Cond() primitive.M {
|
|
return bson.M{"_id": m.ID}
|
|
}
|
|
|
|
func (m *ModifyCond) Bson() primitive.M {
|
|
set := bson.M{"updatedAt": time.Now()}
|
|
if m.Title != nil {
|
|
set["title"] = m.Title
|
|
}
|
|
if m.Desc != nil {
|
|
set["desc"] = m.Desc
|
|
}
|
|
if m.Status != nil {
|
|
set["status"] = m.Status
|
|
}
|
|
if m.StartTime != nil {
|
|
set["startTime"] = m.StartTime
|
|
}
|
|
if m.EndTime != nil {
|
|
set["endTime"] = m.EndTime
|
|
}
|
|
return bson.M{"$set": set}
|
|
}
|
|
|
|
// 查询活动列表
|
|
type QueryAllCond struct {
|
|
Status *bool `form:"status"` // 状态---启用/禁用
|
|
commod.Page
|
|
}
|
|
|
|
func (q *QueryAllCond) Options() *options.FindOptions {
|
|
return options.Find().SetLimit(int64(q.PageSize)).SetSkip(int64((q.PageNumber - 1) * q.PageSize)).SetSort(bson.M{"createdAt": -1})
|
|
}
|
|
|
|
func (q *QueryAllCond) Query() primitive.M {
|
|
fliter := bson.M{}
|
|
if q.Status != nil {
|
|
fliter["status"] = q.Status
|
|
}
|
|
return fliter
|
|
}
|
|
|
|
// 新增活动奖池
|
|
type AddPrizePoolCond struct {
|
|
ActivityID primitive.ObjectID `json:"activityId" binding:"required"` // 活动ID
|
|
Model PrizePoolModel `json:"model"` // 奖池模式
|
|
EstimatedIncome int64 `json:"estimatedIncome"` // 当日预计收益
|
|
Price int64 `json:"price"` // 单次抽奖金额
|
|
FreeCount int32 `json:"freeCount"` // 免费次数
|
|
}
|
|
|
|
// 修改活动奖池
|
|
type ModifyPrizePoolCond struct {
|
|
ID primitive.ObjectID `json:"id" binding:"required"` // 文档ID
|
|
ActivityID *primitive.ObjectID `json:"activityId"` // 活动ID
|
|
Model *PrizePoolModel `json:"model"` // 奖池模式
|
|
EstimatedIncome *int64 `json:"estimatedIncome"` // 当日预计收益
|
|
Price *int64 `json:"price"` // 单次抽奖金额
|
|
FreeCount *int32 `json:"freeCount"` // 免费次数
|
|
}
|
|
|
|
func (m *ModifyPrizePoolCond) Cond() primitive.M {
|
|
return bson.M{"_id": m.ID}
|
|
}
|
|
|
|
func (m *ModifyPrizePoolCond) Bson() primitive.M {
|
|
set := bson.M{"updatedAt": time.Now()}
|
|
if m.ActivityID != nil {
|
|
set["activityId"] = m.ActivityID
|
|
}
|
|
if m.Model != nil {
|
|
set["model"] = m.Model
|
|
}
|
|
if m.EstimatedIncome != nil {
|
|
set["estimatedIncome"] = m.EstimatedIncome
|
|
}
|
|
if m.Price != nil {
|
|
set["price"] = m.Price
|
|
}
|
|
if m.FreeCount != nil {
|
|
set["freeCount"] = m.FreeCount
|
|
}
|
|
return bson.M{"$set": set}
|
|
}
|
|
|
|
// 查询活动奖池列表
|
|
type QueryAllPrizePoolCond struct {
|
|
Model *PrizePoolModel `form:"model"` // 奖池模式
|
|
ActivityID *string `form:"activityId"` // 活动ID
|
|
commod.Page
|
|
}
|
|
|
|
func (q *QueryAllPrizePoolCond) Options() *options.FindOptions {
|
|
return options.Find().SetLimit(int64(q.PageSize)).SetSkip(int64((q.PageNumber - 1) * q.PageSize)).SetSort(bson.M{"createdAt": -1})
|
|
}
|
|
|
|
func (q *QueryAllPrizePoolCond) Query() primitive.M {
|
|
fliter := bson.M{}
|
|
if q.Model != nil {
|
|
fliter["model"] = q.Model
|
|
}
|
|
if q.ActivityID != nil {
|
|
id, _ := primitive.ObjectIDFromHex(*q.ActivityID)
|
|
fliter["activityId"] = id
|
|
}
|
|
return fliter
|
|
}
|
|
|
|
// 查询活动参与记录列表
|
|
type QueryAllRecordCond struct {
|
|
ActivityID *string `form:"activityId"` // 活动ID
|
|
UID *string `form:"uid"` // 活动ID
|
|
commod.Page
|
|
}
|
|
|
|
func (q *QueryAllRecordCond) Options() *options.FindOptions {
|
|
return options.Find().SetLimit(int64(q.PageSize)).SetSkip(int64((q.PageNumber - 1) * q.PageSize)).SetSort(bson.M{"createTime": -1})
|
|
}
|
|
|
|
func (q *QueryAllRecordCond) Query() primitive.M {
|
|
fliter := bson.M{}
|
|
if q.UID != nil {
|
|
fliter["uid"] = q.UID
|
|
}
|
|
if q.ActivityID != nil {
|
|
id, _ := primitive.ObjectIDFromHex(*q.ActivityID)
|
|
fliter["activityId"] = id
|
|
}
|
|
return fliter
|
|
}
|
|
|
|
type OpenBotDrawCond struct {
|
|
ID primitive.ObjectID `json:"id" binding:"required"` // 活动ID
|
|
Status bool
|
|
}
|