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 }