From 795a9186a9ddb6528076c4ab0557cace84ff741c Mon Sep 17 00:00:00 2001 From: YGXB_net Date: Tue, 16 Sep 2025 12:49:32 +0800 Subject: [PATCH] =?UTF-8?q?refactor(data):=20=E4=BC=98=E5=8C=96=E6=95=B0?= =?UTF-8?q?=E6=8D=AE=E8=AF=BB=E5=8F=96=E5=92=8C=E5=88=A0=E9=99=A4=E9=80=BB?= =?UTF-8?q?=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- controller/dataController.go | 6 +++--- controller/tokenController.go | 22 +++++++++++++--------- 2 files changed, 16 insertions(+), 12 deletions(-) diff --git a/controller/dataController.go b/controller/dataController.go index 2c64b37..1558f46 100644 --- a/controller/dataController.go +++ b/controller/dataController.go @@ -12,6 +12,7 @@ import ( ) func ReadDataHandler(c *gin.Context) { + //解析输入数据 input := struct { Token string `form:"token" binding:"required"` }{} @@ -20,12 +21,11 @@ func ReadDataHandler(c *gin.Context) { return } - lLen := global.RDB.LLen(global.RCtx, fmt.Sprintf("list:%s", input.Token)) - if lLen.Val() == 0 { + retData := global.RDB.LPop(global.RCtx, fmt.Sprintf("list:%s", input.Token)).Val() + if retData == "null" { c.JSON(http.StatusOK, gin.H{"result": "数据库没有数据"}) return } - retData := global.RDB.BLPop(global.RCtx, 0, fmt.Sprintf("list:%s", input.Token)).Val()[1] c.String(http.StatusOK, retData) } diff --git a/controller/tokenController.go b/controller/tokenController.go index 0e7dccc..a19e42c 100644 --- a/controller/tokenController.go +++ b/controller/tokenController.go @@ -132,7 +132,6 @@ func DeleteTokenInfoHandler(c *gin.Context) { c.JSON(http.StatusInternalServerError, gin.H{"error": "Token不存在" + err.Error()}) return } - dedupObject, err := db.GetDedupObject(input.Token) if err != nil { c.JSON(http.StatusBadRequest, gin.H{"error": err.Error()}) @@ -145,13 +144,14 @@ func DeleteTokenInfoHandler(c *gin.Context) { case "all": keys := global.RDB.Keys(global.RCtx, "dedup:"+input.Token+":*").Val() global.RDB.Del(global.RCtx, keys...) + global.RDB.Del(global.RCtx, "delete-list:"+input.Token) default: i, err := strconv.Atoi(input.DedupBF) if err != nil { c.JSON(http.StatusBadRequest, gin.H{"error": "dedup_bf设置错误 " + err.Error()}) return } - result := global.RDB.LRange(global.RCtx, "delete-list:"+input.Token, 1, int64(i)).Val() + result := global.RDB.LRange(global.RCtx, "delete-list:"+input.Token, int64(-i), -1).Val() _, err = global.RDB.TxPipelined(global.RCtx, func(pipe redis.Pipeliner) error { for _, s := range result { pipe.CFDel(global.RCtx, "dedup:"+input.Token+":"+dedupObject, s) @@ -162,22 +162,25 @@ func DeleteTokenInfoHandler(c *gin.Context) { c.JSON(http.StatusInternalServerError, gin.H{"error": err.Error()}) return } - global.RDB.LTrim(global.RCtx, "delete-list:"+input.Token, int64(i), -1) + global.RDB.LTrim(global.RCtx, "delete-list:"+input.Token, 0, int64(-i-1)) } + + //删除原始数据 switch input.CacheList { case "": case "all": global.RDB.Del(global.RCtx, "list:"+input.Token) - global.RDB.Del(global.RCtx, "delete-list:"+input.Token) default: i, err := strconv.Atoi(input.CacheList) if err != nil { c.JSON(http.StatusBadRequest, gin.H{"error": "cache_list设置错误 " + err.Error()}) return } - global.RDB.LTrim(global.RCtx, "list:"+input.Token, 1, int64(-i)) + + global.RDB.LTrim(global.RCtx, "list:"+input.Token, 0, int64(-i-1)) } - //TODO + + //删除去重参考值和原始数据 switch input.BothNumber { case "": default: @@ -186,19 +189,20 @@ func DeleteTokenInfoHandler(c *gin.Context) { c.JSON(http.StatusBadRequest, gin.H{"error": "both_number设置错误 " + err.Error()}) return } - result := global.RDB.LRange(global.RCtx, "delete-list:"+input.Token, 1, int64(i)).Val() + + result := global.RDB.LRange(global.RCtx, "delete-list:"+input.Token, int64(-i), -1).Val() _, err = global.RDB.TxPipelined(global.RCtx, func(pipe redis.Pipeliner) error { for _, s := range result { pipe.CFDel(global.RCtx, "dedup:"+input.Token+":"+dedupObject, s) } + pipe.LTrim(global.RCtx, "delete-list:"+input.Token, 0, int64(-i-1)) + pipe.LTrim(global.RCtx, "list:"+input.Token, 0, int64(-i-1)) return nil }) if err != nil { c.JSON(http.StatusInternalServerError, gin.H{"error": err.Error()}) return } - global.RDB.LTrim(global.RCtx, "delete-list:"+input.Token, int64(i), -1) - global.RDB.LTrim(global.RCtx, "list:"+input.Token, int64(i), -1) } //输出信息