fix: adjustment directory structure

This commit is contained in:
zhangsz
2025-03-25 09:46:16 +08:00
parent e9b29a109d
commit 63ec6e5b14
167 changed files with 374 additions and 21127 deletions

169
proxy/Nredis/bundleclr.go Normal file
View File

@@ -0,0 +1,169 @@
package Nredis
import (
"proxy/MsgDef"
. "proxy/MsgDef"
l4g "proxy/logger"
"strings"
"time"
)
func CheckIfRrExpired(rr *MsgDef.RrData) bool {
if rr == nil {
return false
}
if rr.MeasureDomain == "01" || rr.MeasureDomain == "03" {
if rr.UsedValue >= rr.FreeValue {
return true
}
nowStr := time.Now().Format("20060102150405")
if strings.Compare(nowStr, rr.EndTime) > 0 {
return true
}
return false
}
if rr.MeasureDomain == "02" {
nowStr := time.Now().Format("20060102150405")
if strings.Compare(nowStr, rr.EndTime) > 0 {
return true
}
}
return false
}
func RdbGetRrByKey(key string) (*RrData, error) {
res := rdb.HGetAll(ctx, key)
err := res.Err()
if err != nil {
l4g.RedisLog.Errorf("HGetAll %s, err: %v", key, err)
return nil, err
}
var rr RrData
if err = res.Scan(&rr); err != nil {
l4g.RedisLog.Errorf("HGetAll Scan %s, err: %v", key, err)
return nil, err
} else {
//l4g.RedisLog.Debugf("Get %s, [%v]", key, rr)
}
return &rr, err
}
func RdbClrExpireRrRecord() error {
l4g.RedisLog.Warnf("cron clear expire rr!")
var cursor uint64= 0
var err error
for {
var keys []string
keys, cursor, err = rdb.Scan(ctx, cursor, "Rr:*", 30).Result()
if err != nil {
l4g.RedisLog.Errorf("Scan Rr:*, err: %v", err)
break
}
for _, key := range keys {
subFields := strings.Split(key, ":")
if len(subFields) == 4 {
rr, err1 := RdbGetRrByKey(key)
if rr != nil && err1 == nil && CheckIfRrExpired(rr) {
err1 = rdb.Del(ctx, key).Err()
if err1 != nil {
l4g.RedisLog.Errorf("Del Rr[%s], err: %v", key, err1)
} else {
l4g.RedisLog.Warnf("Del Rr[%s] succ", key)
l4g.RedisLog.Warnf("SRem RrSet:%s:%s %s", subFields[1], subFields[2], subFields[3])
_ = rdb.SRem(ctx, "RrSet:"+subFields[1]+":"+subFields[2], subFields[3])
l4g.RedisLog.Warnf("Del RrId:%s", subFields[3])
_ = rdb.Del(ctx, "RrId:"+subFields[3]).Err()
//return srem.Err()
}
}
}
}
if cursor == 0 {
break
}
}
return err
}
func RdbGetAcctPlanByKey(key string) (*AcctData, error) {
res := rdb.HGetAll(ctx, key)
err := res.Err()
if err != nil {
l4g.RedisLog.Errorf("HGetAll %s, err: %v", key, err)
return nil, err
}
var acct AcctData
if err = res.Scan(&acct); err != nil {
l4g.RedisLog.Errorf("HGetAll Scan %s, err: %v", key, err)
return nil, err
} else {
//l4g.RedisLog.Debugf("Get %s, [%v]", key, acct)
}
return &acct, err
}
func CheckIfAcctExpired(acct *MsgDef.AcctData) bool {
if acct == nil {
return false
}
nowStr := time.Now().Format("2006-01-02 15:04:05")
if strings.Compare(nowStr, acct.ExpTime[:len(nowStr)]) > 0 {
return true
}
return false
}
func RdbClrExpirePlanRecord() error {
l4g.RedisLog.Warnf("cron clear expire plan!")
var cursor uint64= 0
var err error
for {
var keys []string
keys, cursor, err = rdb.Scan(ctx, cursor, "Acct:*", 30).Result()
if err != nil {
l4g.RedisLog.Errorf("Scan Acct:*, err: %v", err)
break
}
for _, key := range keys {
subFields := strings.Split(key, ":")
if len(subFields) == 3 {
acct, err1 := RdbGetAcctPlanByKey(key)
if acct != nil && err1 == nil && CheckIfAcctExpired(acct) {
err1 = rdb.Del(ctx, key).Err()
if err1 != nil {
l4g.RedisLog.Errorf("Del Acct Plan[%s], err: %v", key, err1)
} else {
l4g.RedisLog.Warnf("Del Acct Plan[%s] succ", key)
l4g.RedisLog.Warnf("SRem Acct:%s %s", subFields[1], subFields[2])
_ = rdb.SRem(ctx, "Acct:"+subFields[1], subFields[2])
//return srem.Err()
}
}
}
}
if cursor == 0 {
break
}
}
return err
}
func ClrExpRes() {
_ = RdbClrExpireRrRecord()
_ = RdbClrExpirePlanRecord()
}