Jelajahi Sumber

fix GPT账号重复校验

zoujiajian 3 tahun lalu
induk
melakukan
0adcf969a3

+ 5 - 0
netflix-common/src/main/java/com/cyksj/common/constant/Constant.java

@@ -146,4 +146,9 @@ public interface Constant {
 	 * 360渠道折扣
 	 */
 	String CHANNEL_360_DISCOUNT = "channel_360_discount";
+
+	/**
+	 * GPT 平台账号重复
+	 */
+	List<Long> GPT_GOODS_IDS = List.of(18l, 29l, 30l);
 }

+ 11 - 0
netflix-service/src/main/java/com/cyksj/service/mange/AccountCommonService.java

@@ -0,0 +1,11 @@
+package com.cyksj.service.mange;
+
+/*
+ *项目名: netflix
+ *文件名: AccountCommonService
+ *创建者: JavaZou
+ *创建时间:2023/8/16 17:12
+ */
+public interface AccountCommonService {
+	Boolean checkIsDupAccount(Long goodsId, String account);
+}

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

@@ -0,0 +1,37 @@
+package com.cyksj.service.mange.account;
+
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+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.service.mange.AccountCommonService;
+import lombok.RequiredArgsConstructor;
+import org.springframework.stereotype.Service;
+
+/*
+ *项目名: netflix
+ *文件名: AccountCommonServiceImpl
+ *创建者: JavaZou
+ *创建时间:2023/8/16 17:12
+ */
+@Service
+@RequiredArgsConstructor
+public class AccountCommonServiceImpl implements AccountCommonService {
+
+	private final AccountMapper accountMapper;
+
+	@Override
+	public Boolean checkIsDupAccount(Long goodsId, String account) {
+		LambdaQueryWrapper<Account> wrapper = Wrappers.lambdaQuery(Account.class)
+				.eq(Account::getAccount, account);
+		if (Constant.GPT_GOODS_IDS.contains(goodsId)) {
+			wrapper.in(Account::getGoodsId, Constant.GPT_GOODS_IDS);
+		} else {
+			wrapper.eq(Account::getGoodsId, goodsId);
+		}
+		int count = accountMapper.selectCount(wrapper);
+		if (count > 0) return true;
+		return false;
+	}
+}

+ 5 - 4
netflix-service/src/main/java/com/cyksj/service/mange/account/CmsAccountServiceImpl.java

@@ -20,6 +20,7 @@ import com.cyksj.model.manage.views.AccountView;
 import com.cyksj.model.views.CmsUserVO;
 import com.cyksj.model.views.ExpiredAccountDataView;
 import com.cyksj.redis.RedisService;
+import com.cyksj.service.mange.AccountCommonService;
 import com.cyksj.service.mange.CmsAccountService;
 import com.cyksj.service.mange.CmsGroupService;
 import com.cyksj.service.sys.SysConfigService;
@@ -56,6 +57,8 @@ public class CmsAccountServiceImpl extends ServiceImpl<AccountMapper, Account> i
 
 	private final RedisService redisService;
 
+	private final AccountCommonService accountCommonService;
+
 	private final SysConfigService sysConfigService;
 
 	@Override
@@ -217,10 +220,8 @@ public class CmsAccountServiceImpl extends ServiceImpl<AccountMapper, Account> i
 				if (part.length >= 2) {
 					String account = part[0];
 					String password = part[1];
-					int count = this.count(Wrappers.lambdaQuery(Account.class)
-							.eq(Account::getAccount, account)
-							.eq(Account::getGoodsId, goodsId));
-					if (count > 0) {
+					//重复不再重新插入
+					if (accountCommonService.checkIsDupAccount(goodsId, account)) {
 						return;
 					}
 					Account insert = new Account();

+ 4 - 4
netflix-service/src/main/java/com/cyksj/service/mange/group/CmsGroupServiceImpl.java

@@ -19,6 +19,7 @@ import com.cyksj.model.entity.*;
 import com.cyksj.model.request.ReplaceTripsAccountReq;
 import com.cyksj.model.views.GroupsAccountView;
 import com.cyksj.redis.RedisService;
+import com.cyksj.service.mange.AccountCommonService;
 import com.cyksj.service.mange.CmsGroupService;
 import com.cyksj.service.sms.SmsService;
 import com.ejlchina.searcher.BeanSearcher;
@@ -70,6 +71,8 @@ public class CmsGroupServiceImpl extends ServiceImpl<GroupsMapper,GroupsTrips> i
 
     private final GroupsMapper groupsMapper;
 
+    private final AccountCommonService accountCommonService;
+
     private static final GlobalThreadPoolTaskExecutor TASK_EXECUTOR = GlobalThreadPoolTaskExecutor.getInstance();
 
 
@@ -253,10 +256,7 @@ public class CmsGroupServiceImpl extends ServiceImpl<GroupsMapper,GroupsTrips> i
         }
         Long goodsId = groupsAccountView.getGoodsId();
         if (!account.contains("客服")) {
-            int count = accountMapper.selectCount(Wrappers.lambdaQuery(Account.class)
-                    .eq(Account::getAccount, account)
-                    .eq(Account::getGoodsId, goodsId));
-            if (count > 0) {
+            if (accountCommonService.checkIsDupAccount(goodsId, account)) {
                 throw BusinessRuntimeException.getInstance("该平台下已生成该账号");
             }
         }

+ 7 - 23
netflix-web/src/main/java/com/cyksj/web/controller/manage/account/CmsAccountController.java

@@ -33,6 +33,7 @@ import com.cyksj.model.response.ExpiredAccountRep;
 import com.cyksj.model.response.OrderDonAccountRep;
 import com.cyksj.model.views.*;
 import com.cyksj.redis.RedisService;
+import com.cyksj.service.mange.AccountCommonService;
 import com.cyksj.service.mange.CmsAccountService;
 import com.cyksj.service.mange.CmsGroupService;
 import com.cyksj.service.mange.cms.CmsUserManager;
@@ -98,6 +99,8 @@ public class CmsAccountController {
 
 	private final AccountUpdatePasswordRecordMapper accountUpdatePasswordRecordMapper;
 
+	private final AccountCommonService accountCommonService;
+
 	private final RedisService redisService;
 
 	@GetMapping("/get")
@@ -347,10 +350,7 @@ public class CmsAccountController {
 		account.setPassword(account.getPassword().trim());
 	    //账号是否已经添加过
 	    if (!account.getAccount().contains("客服")) {
-		    int count = accountService.count(Wrappers.lambdaQuery(Account.class)
-				    .eq(Account::getAccount, account.getAccount())
-				    .eq(Account::getGoodsId, account.getGoodsId()));
-		    if (count > 0) {
+		    if (accountCommonService.checkIsDupAccount(account.getGoodsId(), account.getAccount())) {
 			    throw BusinessRuntimeException.getInstance("该平台下已生成该账号");
 		    }
 	    }
@@ -388,10 +388,7 @@ public class CmsAccountController {
 				if (StrUtil.isNotBlank(data.getAccount())) {
 					//账号是否已经添加过
 					if (!account.contains("客服")) {
-						int count = accountService.count(Wrappers.lambdaQuery(Account.class)
-								.eq(Account::getAccount, account)
-								.eq(Account::getGoodsId, goodsId));
-						if (count > 0) {
+						if (accountCommonService.checkIsDupAccount(goodsId, account)) {
 							log.info("该平台下:{}已生成该账号:{}", goodsId, account);
 							return;
 						}
@@ -446,15 +443,11 @@ public class CmsAccountController {
 				    .eq(UserTicketClearedRecord::getAccountId, account.getId()));
 		    isClear = true;
 	    }
-	    if (StrUtil.isNotBlank(account.getAccount())){
+	    if (!db.getAccount().equals(account.getAccount())){
 			account.setAccount(account.getAccount().trim());
 			//账号是否已经添加过
 			if (!account.getAccount().contains("客服")) {
-				int count = accountService.count(Wrappers.lambdaQuery(Account.class)
-						.ne(Account::getId, account.getId())
-						.eq(Account::getAccount, account.getAccount())
-						.eq(Account::getGoodsId, account.getGoodsId()));
-				if (count > 0) {
+				if (accountCommonService.checkIsDupAccount(account.getGoodsId(), account.getAccount())) {
 					throw BusinessRuntimeException.getInstance("该平台下已生成该账号");
 				}
 			}
@@ -680,15 +673,6 @@ public class CmsAccountController {
 		if (account.getGoodsId() != 1l) {
 			return GatewayResponse.SUCCESS.newBuilder().toResult();
 		}
-		//账号是否已经添加过
-		if (!account.getAccount().contains("客服")) {
-			int count = accountService.count(Wrappers.lambdaQuery(Account.class)
-					.eq(Account::getAccount, account.getAccount())
-					.eq(Account::getGoodsId, account.getGoodsId()));
-			if (count > 0) {
-				throw BusinessRuntimeException.getInstance("该平台下已生成该账号");
-			}
-		}
 		Boolean flag = false;
 		String oldPwd = account.getPassword();
 		if (account != null) {

+ 4 - 4
netflix-web/src/main/java/com/cyksj/web/controller/manage/group/CmsGroupController.java

@@ -25,6 +25,7 @@ import com.cyksj.model.request.ReplaceTripsAccountReq;
 import com.cyksj.model.views.CloseGroupsTripsView;
 import com.cyksj.model.views.GoodsDonSkuView;
 import com.cyksj.model.views.GroupsTripsWaitingView;
+import com.cyksj.service.mange.AccountCommonService;
 import com.cyksj.service.mange.CmsAccountService;
 import com.cyksj.service.mange.CmsGroupService;
 import com.ejlchina.searcher.BeanSearcher;
@@ -62,6 +63,8 @@ public class CmsGroupController {
 
     private final GroupsRelationMapper relationMapper;
 
+    private final AccountCommonService accountCommonService;
+
     private final UserMapper userMapper;
 
     @GetMapping("/get")
@@ -159,10 +162,7 @@ public class CmsGroupController {
         }
         //账号是否已经添加过
         if (!account.getAccount().contains("客服")) {
-            int count = accountService.count(Wrappers.lambdaQuery(Account.class)
-                    .eq(Account::getAccount, account.getAccount())
-                    .eq(Account::getGoodsId, account.getGoodsId()));
-            if (count > 0) {
+            if (accountCommonService.checkIsDupAccount(account.getGoodsId(), account.getAccount())) {
                 throw BusinessRuntimeException.getInstance("该平台下已生成该账号");
             }
         }