@@ -0,0 +1,109 @@
|
||||
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
|
||||
}
|
||||
Reference in New Issue
Block a user