110 lines
2.4 KiB
Go
110 lines
2.4 KiB
Go
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
|
|
}
|