init: web_hgdjc_server
This commit is contained in:
@@ -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")
|
||||
}
|
||||
Reference in New Issue
Block a user