Files
rootandClaude Opus 5 8679200f41 Initial commit
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-15 13:57:10 +08:00

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))
}
}
}