package activityser import ( "fmt" "time" "91porn-server/common/db" "91porn-server/common/log" "91porn-server/common/stderr" "91porn-server/models/v/activitymod" "91porn-server/web/webg" ) // 新增活动 func Add(in activitymod.AddCond) stderr.Code { result, err := activitymod.Add(in) if err != nil { return stderr.ErrDbInsertError } log.Info(fmt.Sprintf("新增活动[%v]成功", result)) return stderr.Success } // 修改活动 func Modify(in *activitymod.ModifyCond) stderr.Code { var jobStatus bool now := time.Now() // 获取活动信息 activityDetail, err := activitymod.Get(in.ID) if err != nil { return stderr.ErrDbQueryError } // 活动开启限制 if in.Status != nil { // 时间限制 if *in.Status && (in.StartTime.After(now) || !in.EndTime.After(now)) { return stderr.ActivityDateError } // 开启/关闭任务 if (*in.Status && !activityDetail.Status) || (!*in.Status && activityDetail.Status) { jobStatus = true } } if err = webg.VideoDB.Trans(func(t *db.MongoTool) error { if err = activitymod.Modify(t, in.Cond(), in.Bson()); err != nil { return stderr.ErrDbUpdateError } if jobStatus { if err = OpenBotDraw(in.ID, *in.Status); err != nil { return err } } return nil }); err != nil { return stderr.ErrDbTransError } return stderr.Success } // 查询列表 func QueryAll(in *activitymod.QueryAllCond) (interface{}, stderr.Code) { var data map[string]interface{} = map[string]interface{}{ "list": []interface{}{}, "count": 0, } count, err := activitymod.Count(in.Query()) if err != nil { return nil, stderr.ErrDbQueryError } if count == 0 { return data, stderr.Success } list, err := activitymod.QueryAll(in.Query(), in.Options()) if err != nil { return nil, stderr.ErrDbQueryError } data["count"] = count data["list"] = list return data, stderr.Success } func QueryDropDownBox() (interface{}, stderr.Code) { list, err := activitymod.QueryDropDownBox() if err != nil { return nil, stderr.ErrDbQueryError } data := make([]map[string]interface{}, len(list)) for i, v := range list { data[i] = map[string]interface{}{ "label": v.Title, "value": v.ID.Hex(), } } return data, stderr.Success } func LoadingJob() error { // 获取所有开启中活动 activityList, err := activitymod.QueryDropDownBox() if err != nil { return err } for _, v := range activityList { if err = OpenBotDraw(v.ID, v.Status); err != nil { return err } } return nil }