fix(log): add traffic reset logging for subscription resets
This commit is contained in:
parent
7c707f2ecf
commit
fcdb9f72ef
@ -8,6 +8,7 @@ import (
|
|||||||
"strings"
|
"strings"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
|
"github.com/perfect-panel/server/internal/model/log"
|
||||||
"github.com/perfect-panel/server/internal/model/subscribe"
|
"github.com/perfect-panel/server/internal/model/subscribe"
|
||||||
"github.com/perfect-panel/server/internal/model/user"
|
"github.com/perfect-panel/server/internal/model/user"
|
||||||
"github.com/perfect-panel/server/internal/svc"
|
"github.com/perfect-panel/server/internal/svc"
|
||||||
@ -252,16 +253,7 @@ func (l *ResetTrafficLogic) resetMonth(ctx context.Context) error {
|
|||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
// Clear cache for these subscriptions
|
// Clear cache for these subscriptions
|
||||||
for _, sub := range userSubs {
|
l.clearCache(ctx, userSubs)
|
||||||
if sub.SubscribeId > 0 {
|
|
||||||
err = l.svc.UserModel.ClearSubscribeCache(ctx, sub)
|
|
||||||
if err != nil {
|
|
||||||
logger.Errorw("[ResetTraffic] Failed to clear cache for subscription",
|
|
||||||
logger.Field("subscribeId", sub.SubscribeId),
|
|
||||||
logger.Field("error", err.Error()))
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
logger.Infow("[ResetTraffic] Monthly reset completed", logger.Field("count", len(monthlyResetUsers)))
|
logger.Infow("[ResetTraffic] Monthly reset completed", logger.Field("count", len(monthlyResetUsers)))
|
||||||
} else {
|
} else {
|
||||||
logger.Infow("[ResetTraffic] No users found for monthly reset")
|
logger.Infow("[ResetTraffic] No users found for monthly reset")
|
||||||
@ -344,17 +336,7 @@ func (l *ResetTrafficLogic) reset1st(ctx context.Context, cache resetTrafficCach
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Clear cache for these subscriptions
|
// Clear cache for these subscriptions
|
||||||
for _, sub := range userSubs {
|
l.clearCache(ctx, userSubs)
|
||||||
if sub.SubscribeId > 0 {
|
|
||||||
err = l.svc.UserModel.ClearSubscribeCache(ctx, sub)
|
|
||||||
if err != nil {
|
|
||||||
logger.Errorw("[ResetTraffic] Failed to clear cache for subscription",
|
|
||||||
logger.Field("subscribeId", sub.SubscribeId),
|
|
||||||
logger.Field("error", err.Error()))
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
logger.Infow("[ResetTraffic] 1st reset completed", logger.Field("count", len(users1stReset)))
|
logger.Infow("[ResetTraffic] 1st reset completed", logger.Field("count", len(users1stReset)))
|
||||||
} else {
|
} else {
|
||||||
logger.Infow("[ResetTraffic] No users found for 1st reset")
|
logger.Infow("[ResetTraffic] No users found for 1st reset")
|
||||||
@ -438,16 +420,7 @@ func (l *ResetTrafficLogic) resetYear(ctx context.Context) error {
|
|||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
// Clear cache for these subscriptions
|
// Clear cache for these subscriptions
|
||||||
for _, sub := range userSubs {
|
l.clearCache(ctx, userSubs)
|
||||||
if sub.SubscribeId > 0 {
|
|
||||||
err = l.svc.UserModel.ClearSubscribeCache(ctx, sub)
|
|
||||||
if err != nil {
|
|
||||||
logger.Errorw("[ResetTraffic] Failed to clear cache for subscription",
|
|
||||||
logger.Field("subscribeId", sub.SubscribeId),
|
|
||||||
logger.Field("error", err.Error()))
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
logger.Infow("[ResetTraffic] Yearly reset completed", logger.Field("count", len(usersYearReset)))
|
logger.Infow("[ResetTraffic] Yearly reset completed", logger.Field("count", len(usersYearReset)))
|
||||||
} else {
|
} else {
|
||||||
logger.Infow("[ResetTraffic] No users found for yearly reset")
|
logger.Infow("[ResetTraffic] No users found for yearly reset")
|
||||||
@ -601,3 +574,38 @@ func (l *ResetTrafficLogic) isRetryableError(err error) bool {
|
|||||||
logger.Field("error", err.Error()))
|
logger.Field("error", err.Error()))
|
||||||
return true
|
return true
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// clearCache clears the reset traffic cache
|
||||||
|
func (l *ResetTrafficLogic) clearCache(ctx context.Context, list []*user.Subscribe) {
|
||||||
|
if len(list) != 0 {
|
||||||
|
for _, sub := range list {
|
||||||
|
if sub.SubscribeId > 0 {
|
||||||
|
err := l.svc.UserModel.ClearSubscribeCache(ctx, sub)
|
||||||
|
if err != nil {
|
||||||
|
logger.Errorw("[ResetTraffic] Failed to clear cache for subscription",
|
||||||
|
logger.Field("subscribeId", sub.SubscribeId),
|
||||||
|
logger.Field("error", err.Error()))
|
||||||
|
}
|
||||||
|
}
|
||||||
|
// Insert traffic reset log
|
||||||
|
l.insertLog(ctx, sub.Id)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// insertLog inserts a reset traffic log entry
|
||||||
|
func (l *ResetTrafficLogic) insertLog(ctx context.Context, subId int64) {
|
||||||
|
trafficLog := log.ResetSubscribe{
|
||||||
|
Type: log.ResetSubscribeTypeAuto,
|
||||||
|
ResetAt: time.Now().UnixMilli(),
|
||||||
|
}
|
||||||
|
content, _ := trafficLog.Marshal()
|
||||||
|
if err := l.svc.DB.Model(&log.SystemLog{}).Create(&log.SystemLog{
|
||||||
|
Type: log.TypeResetSubscribe.Uint8(),
|
||||||
|
ObjectID: subId,
|
||||||
|
Date: time.Now().Format(time.DateOnly),
|
||||||
|
Content: string(content),
|
||||||
|
}).Error; err != nil {
|
||||||
|
logger.Errorw("[ResetTraffic] Failed to create system log for subscription", logger.Field("error", err.Error()))
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user