From 6f5dc9cdb70986a72b12b753bee26e1a5f9a81e6 Mon Sep 17 00:00:00 2001 From: khalil <842328916@qq.com> Date: Mon, 20 Oct 2025 18:32:57 +0800 Subject: [PATCH] =?UTF-8?q?=E5=B9=B8=E8=BF=9024-y-=E5=AE=9A=E6=97=B6?= =?UTF-8?q?=E4=BB=BB=E5=8A=A1-=E6=B8=85=E9=99=A4=E6=9F=93=E8=89=B2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/lucky/Lucky24UserMetaService.java | 23 +++++++++++++++++++ .../service/lucky/Lucky24YService.java | 8 ++++++- 2 files changed, 30 insertions(+), 1 deletion(-) diff --git a/accompany-business/accompany-business-service/src/main/java/com/accompany/business/service/lucky/Lucky24UserMetaService.java b/accompany-business/accompany-business-service/src/main/java/com/accompany/business/service/lucky/Lucky24UserMetaService.java index 24cffe2c4..5b460e4e7 100644 --- a/accompany-business/accompany-business-service/src/main/java/com/accompany/business/service/lucky/Lucky24UserMetaService.java +++ b/accompany-business/accompany-business-service/src/main/java/com/accompany/business/service/lucky/Lucky24UserMetaService.java @@ -264,6 +264,28 @@ public class Lucky24UserMetaService { log.info("[Lucky24] dyeYUser uid {}", uid); } + public boolean judgeYDiff(Long uid, long outputDiff) { + RMap userMetaMap = getUserMeta(uid); + + String yInputKey = String.join("_", Y, INPUT_KEY); + long yInput = userMetaMap.getOrDefault(yInputKey, 0L).longValue(); + String yOutputKey = String.join("_", Y, OUTPUT_KEY); + long yOutput = userMetaMap.getOrDefault(yOutputKey, 0L).longValue(); + + long judgeDiff = yInput - yOutput; + + if (judgeDiff < outputDiff){ + log.info("[Lucky24] judgeYDiff false uid {} judgeDiff {} outputDiff {}", uid, judgeDiff, outputDiff); + return false; + } + + log.info("[Lucky24] judgeYDiff true uid {} judgeDiff {} outputDiff {}", uid, judgeDiff, outputDiff); + + userMetaMap.fastRemove(Y, yInputKey, yOutputKey); + + return true; + } + public RMap getUserMeta(Long uid) { return redissonClient.getMap(RedisKey.lucky_24_user_meta.getKey(uid.toString())); } @@ -275,4 +297,5 @@ public class Lucky24UserMetaService { public RMap getUser10wStat(Long uid) { return redissonClient.getMapCache(RedisKey.lucky_24_user_10w_stat.getKey(uid.toString())); } + } diff --git a/accompany-business/accompany-business-service/src/main/java/com/accompany/business/service/lucky/Lucky24YService.java b/accompany-business/accompany-business-service/src/main/java/com/accompany/business/service/lucky/Lucky24YService.java index 29ea63fd1..9d700d235 100644 --- a/accompany-business/accompany-business-service/src/main/java/com/accompany/business/service/lucky/Lucky24YService.java +++ b/accompany-business/accompany-business-service/src/main/java/com/accompany/business/service/lucky/Lucky24YService.java @@ -126,8 +126,14 @@ public class Lucky24YService { } private void tryClearYUser(Lucky24YUser yUser) { + if (!userMetaService.judgeYDiff(yUser.getUid(), yUser.getOutputDiff())){ + return; + } + Date now = new Date(); + yUser.setStatus(Constant.StatusV2.invalid); + yUser.setUpdateTime(now); + lucky24YUserService.updateById(yUser); } - }