56 lines
1.2 KiB
Go
56 lines
1.2 KiB
Go
package activityser
|
|
|
|
import (
|
|
"errors"
|
|
|
|
"91porn-server/common/stderr"
|
|
"91porn-server/models/v/activitymod"
|
|
|
|
"go.mongodb.org/mongo-driver/bson/primitive"
|
|
)
|
|
|
|
func QueryAllRecord(in *activitymod.QueryAllRecordCond) (interface{}, stderr.Code) {
|
|
var data map[string]interface{} = map[string]interface{}{
|
|
"list": []interface{}{},
|
|
"count": 0,
|
|
}
|
|
count, err := activitymod.CountRecord(in.Query())
|
|
if err != nil {
|
|
return nil, stderr.ErrDbQueryError
|
|
}
|
|
if count == 0 {
|
|
return data, stderr.Success
|
|
}
|
|
list, err := activitymod.QueryAllRecord(in.Query(), in.Options())
|
|
if err != nil {
|
|
return nil, stderr.ErrDbQueryError
|
|
}
|
|
data["count"] = count
|
|
data["list"] = list
|
|
return data, stderr.Success
|
|
}
|
|
|
|
// 开启机器人抽奖
|
|
func OpenBotDraw(activityID primitive.ObjectID, status bool) error {
|
|
job.mutex.Lock()
|
|
defer job.mutex.Unlock()
|
|
if entryID, ok := job.cache[activityID]; ok {
|
|
if !status {
|
|
// 移除任务
|
|
job.cron.Remove(entryID)
|
|
delete(job.cache, activityID)
|
|
return nil
|
|
}
|
|
return errors.New("任务已开启")
|
|
}
|
|
if status {
|
|
// 加入任务(每小时执行一次)
|
|
entryID, err := job.cron.AddJob("@hourly", BotDraw{ActivityID: activityID})
|
|
if err != nil {
|
|
return err
|
|
}
|
|
job.cache[activityID] = entryID
|
|
}
|
|
return nil
|
|
}
|