71 lines
1.5 KiB
Go
71 lines
1.5 KiB
Go
package checkin
|
|
|
|
import (
|
|
"91porn-server/common/log"
|
|
"91porn-server/models/v/checkinconfigmod"
|
|
"91porn-server/models/v/vidmod"
|
|
"91porn-server/skd/service"
|
|
|
|
"go.mongodb.org/mongo-driver/bson"
|
|
)
|
|
|
|
var videoCheckRunning bool
|
|
|
|
// VideoCheckRS 定期检查签到奖励视频的切片状态
|
|
func VideoCheckRS() {
|
|
if videoCheckRunning {
|
|
return
|
|
}
|
|
videoCheckRunning = true
|
|
defer func() {
|
|
videoCheckRunning = false
|
|
}()
|
|
|
|
cfg, err := checkinconfigmod.FindOne(bson.M{})
|
|
if err != nil || cfg == nil {
|
|
return
|
|
}
|
|
if len(cfg.RewardBgVideos) == 0 {
|
|
return
|
|
}
|
|
|
|
updated := false
|
|
for i, v := range cfg.RewardBgVideos {
|
|
if v.FsResourceId == "" {
|
|
continue
|
|
}
|
|
// 已完成的跳过
|
|
if v.FsResourceStatus == vidmod.Completed {
|
|
continue
|
|
}
|
|
fileInfo, err := service.PullFileInfo(v.FsResourceId)
|
|
if err != nil {
|
|
log.Error("checkin VideoCheckRS PullFileInfo fail",
|
|
log.Any("fsResourceId", v.FsResourceId), log.E(err))
|
|
continue
|
|
}
|
|
newStatus := fileInfo.Data.Status
|
|
if newStatus == "" {
|
|
continue
|
|
}
|
|
if newStatus != v.FsResourceStatus {
|
|
cfg.RewardBgVideos[i].FsResourceStatus = newStatus
|
|
updated = true
|
|
log.Info("checkin VideoCheckRS status changed",
|
|
log.Any("fsResourceId", v.FsResourceId),
|
|
log.Any("oldStatus", v.FsResourceStatus),
|
|
log.Any("newStatus", newStatus))
|
|
}
|
|
}
|
|
|
|
if updated {
|
|
err := checkinconfigmod.UpdateOne(
|
|
bson.M{"_id": cfg.ID},
|
|
bson.M{"$set": bson.M{"rewardBgVideos": cfg.RewardBgVideos}},
|
|
)
|
|
if err != nil {
|
|
log.Error("checkin VideoCheckRS update config fail", log.E(err))
|
|
}
|
|
}
|
|
}
|