Browse Source

fix 平台下重复账号插入缓存限制

zoujiajian 8 tháng trước cách đây
mục cha
commit
e365919bb3

+ 1 - 0
netflix-service/src/main/java/com/cyksj/redis/RedisService.java

@@ -861,6 +861,7 @@ public class RedisService {
         GPT_RECHARGE_RECOVER_KEY("gpt_recharge_recover_key:", "gpt代充恢复key", 60 * 5l),
         CLAUDE_CODE_TY_DAY_CARD_KEY("claude_code_ty_day_card_key:", "claude_code体验天卡key", 30L),
         NANO_TY_DAY_CARD_KEY("nano_ty_day_card_key:", "nano体验天卡key", 30L),
+        DUP_GOODS_ACCOUNT_KEY("dup_goods_account_key:%s:%s", "平台账号去重key", 60 * 5L),
         ;
 
         private String name;

+ 7 - 0
netflix-service/src/main/java/com/cyksj/service/mange/account/AccountCommonServiceImpl.java

@@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.cyksj.common.constant.Constant;
 import com.cyksj.mapper.AccountMapper;
 import com.cyksj.model.entity.Account;
+import com.cyksj.redis.RedisService;
 import com.cyksj.service.mange.AccountCommonService;
 import lombok.RequiredArgsConstructor;
 import org.springframework.stereotype.Service;
@@ -21,6 +22,8 @@ public class AccountCommonServiceImpl implements AccountCommonService {
 
 	private final AccountMapper accountMapper;
 
+	private final RedisService redisService;
+
 	@Override
 	public Boolean checkIsDupAccount(Long goodsId, String account) {
 		LambdaQueryWrapper<Account> wrapper = Wrappers.lambdaQuery(Account.class)
@@ -32,6 +35,10 @@ public class AccountCommonServiceImpl implements AccountCommonService {
 		}
 		int count = accountMapper.selectCount(wrapper);
 		if (count > 0) return true;
+		boolean b = redisService.setNx(RedisService.key.DUP_GOODS_ACCOUNT_KEY.getNameFormat(goodsId, account), goodsId, RedisService.key.DUP_GOODS_ACCOUNT_KEY.getTimeout());
+		if (!b) {
+			return true;
+		}
 		return false;
 	}
 }