init: web_hgdjc_server

This commit is contained in:
2026-11-07 10:44:09 +08:00
commit 71a4f4e175
713 changed files with 147749 additions and 0 deletions
+45
View File
@@ -0,0 +1,45 @@
package vipexpiry
import (
"context"
"time"
"videoweb/pub/common/log"
"videoweb/pub/models/usermod"
"videoweb/pub/pubdef"
"go.mongodb.org/mongo-driver/bson"
)
var isRunning = false
// ResetExpiredVip 将 CurrentVipExpire 已过期但 VipType 仍非 None 的用户批量重置为普通用户。
// 同时清空 ShowCard* 展示字段,保证 DB 数据与实际状态一致。
func ResetExpiredVip() {
if isRunning {
return
}
isRunning = true
defer func() { isRunning = false }()
ctx := context.Background()
now := time.Now()
filter := bson.M{
usermod.FN.User.VipType: bson.M{"$gt": pubdef.VipTypeNone},
usermod.FN.User.CurrentVipExpire: bson.M{"$lt": now},
}
update := bson.M{
"$set": bson.M{
usermod.FN.User.VipType: pubdef.VipTypeNone,
usermod.FN.User.ShowCardId: int64(0),
usermod.FN.User.ShowCardName: "",
usermod.FN.User.UpdatedAt: now,
},
}
if serr := usermod.UpdateManyUser(ctx, filter, update); serr != nil {
log.Error("vipexpiry:ResetExpiredVip UpdateManyUser failed", log.Any("err", serr))
return
}
log.Info("vipexpiry:ResetExpiredVip done")
}