Forráskód Böngészése

第三方平台账号

zoujiajian 1 éve
szülő
commit
fc51240a5d
19 módosított fájl, 195 hozzáadás és 78 törlés
  1. 5 0
      netflix-common/src/main/java/com/cyksj/common/constant/Constant.java
  2. 5 0
      netflix-dao/src/main/java/com/cyksj/model/entity/Account.java
  3. 5 0
      netflix-dao/src/main/java/com/cyksj/model/entity/GoodsDon.java
  4. 11 0
      netflix-dao/src/main/java/com/cyksj/model/entity/GroupsTrips.java
  5. 3 0
      netflix-dao/src/main/java/com/cyksj/model/excel/ExcelImportAccountData.java
  6. 12 0
      netflix-dao/src/main/java/com/cyksj/model/manage/views/AccountView.java
  7. 6 0
      netflix-dao/src/main/java/com/cyksj/model/manage/views/GroupsRelationBackView.java
  8. 6 0
      netflix-dao/src/main/java/com/cyksj/model/manage/views/OrderDonBackView.java
  9. 5 0
      netflix-dao/src/main/java/com/cyksj/model/request/AccountGroupsReq.java
  10. 6 0
      netflix-dao/src/main/java/com/cyksj/model/views/GoodsFrontListView.java
  11. 12 0
      netflix-dao/src/main/java/com/cyksj/model/views/RenewalView.java
  12. 6 0
      netflix-dao/src/main/java/com/cyksj/model/views/YhShopGoodsFrontView.java
  13. 1 1
      netflix-dao/src/main/resources/mapper/GroupRelationMapper.xml
  14. 20 0
      netflix-service/src/main/java/com/cyksj/service/mange/goods/GoodsDonCategoryServiceImpl.java
  15. 8 3
      netflix-service/src/main/java/com/cyksj/service/order/impl/OrderDonServiceImpl.java
  16. 1 0
      netflix-web/src/main/java/com/cyksj/web/controller/manage/CmsOrderController.java
  17. 75 68
      netflix-web/src/main/java/com/cyksj/web/controller/manage/account/CmsAccountController.java
  18. 1 1
      netflix-web/src/main/java/com/cyksj/web/controller/manage/goods/CmsGoodsDonController.java
  19. 7 5
      netflix-web/src/main/java/com/cyksj/web/controller/manage/group/CmsGroupController.java

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

@@ -507,4 +507,9 @@ public interface Constant {
 	 * 声破天 油管
 	 */
 	List<Long> RECHARGE_INVITE_GOODS_IDS = List.of(4l, 5l);
+
+	/**
+	 * 第三方分类id
+	 */
+	Long THIRD_CATEGORY = 6l;
 }

+ 5 - 0
netflix-dao/src/main/java/com/cyksj/model/entity/Account.java

@@ -128,4 +128,9 @@ public class Account extends BaseEntity {
      */
     private Boolean outsidePurchase;
 
+    /**
+     * 激活码
+     */
+    private String actCode;
+
 }

+ 5 - 0
netflix-dao/src/main/java/com/cyksj/model/entity/GoodsDon.java

@@ -233,6 +233,11 @@ public class GoodsDon extends BaseEntity {
      */
     private Boolean isSkuDistribute;
 
+    /**
+     * 是否是第三方商品
+     */
+    private Boolean isThirdGoods;
+
     @AllArgsConstructor
     @Getter
     public enum SpecialType {

+ 11 - 0
netflix-dao/src/main/java/com/cyksj/model/entity/GroupsTrips.java

@@ -73,6 +73,13 @@ public class GroupsTrips {
     @TableField(exist = false)
     private String title;
 
+    /**
+     * 是否是第三方平台
+     */
+    @DbField("g.is_third_goods")
+    @TableField(exist = false)
+    private Boolean isThirdGoods;
+
     /**
      * 商品规格
      */
@@ -138,6 +145,10 @@ public class GroupsTrips {
     @TableField(exist = false)
     private Boolean isDisable;
 
+    @DbField("a.act_code")
+    @TableField(exist = false)
+    private String actCode;
+
     /**
      * 车队上是否有人
      */

+ 3 - 0
netflix-dao/src/main/java/com/cyksj/model/excel/ExcelImportAccountData.java

@@ -19,6 +19,9 @@ public class ExcelImportAccountData {
 	@ExcelProperty("密码")
 	private String password;
 
+	@ExcelProperty("激活码")
+	private String actCode;
+
 	@ExcelProperty("银行卡号")
 	private String bankCard;
 

+ 12 - 0
netflix-dao/src/main/java/com/cyksj/model/manage/views/AccountView.java

@@ -34,6 +34,12 @@ public class AccountView {
     @DbField("g.second_type")
     private Integer goodsSecondType;
 
+    /**
+     * 是否是第三方平台
+     */
+    @DbField("g.is_third_goods")
+    private Boolean isThirdGoods;
+
     @DbField("a.bank_card")
     private String bankCard;
 
@@ -182,4 +188,10 @@ public class AccountView {
      */
     @DbField("a.outside_purchase")
     private Boolean outsidePurchase;
+
+    /**
+     * 激活码
+     */
+    @DbField("a.act_code")
+    private String actCode;
 }

+ 6 - 0
netflix-dao/src/main/java/com/cyksj/model/manage/views/GroupsRelationBackView.java

@@ -41,6 +41,12 @@ public class GroupsRelationBackView {
 	@DbField("a.created_time")
 	private Date accountCreatedTime;
 
+	/**
+	 * 激活码
+	 */
+	@DbField("a.act_code")
+	private String actCode;
+
 	@DbField("if(a.api_secret='',false,true)")
 	private Boolean isVerify;
 

+ 6 - 0
netflix-dao/src/main/java/com/cyksj/model/manage/views/OrderDonBackView.java

@@ -57,6 +57,12 @@ public class OrderDonBackView {
 	@DbIgnore
 	private String gtAccount;
 
+	/**
+	 * 激活码
+	 */
+	@DbIgnore
+	private String actCode;
+
 	@DbField("g.type")
 	private Integer goodsDonType;
 

+ 5 - 0
netflix-dao/src/main/java/com/cyksj/model/request/AccountGroupsReq.java

@@ -63,4 +63,9 @@ public class AccountGroupsReq {
 	 * 辅助邮箱
 	 */
 	private String email;
+
+	/**
+	 * 激活码
+	 */
+	private String actCode;
 }

+ 6 - 0
netflix-dao/src/main/java/com/cyksj/model/views/GoodsFrontListView.java

@@ -149,6 +149,12 @@ public class GoodsFrontListView {
 	@DbField("g.video")
 	private String video;
 
+	/**
+	 * 是否是第三方平台
+	 */
+	@DbField("g.is_third_goods")
+	private Boolean isThirdGoods;
+
 	/**
 	 * 购买通知信息
 	 */

+ 12 - 0
netflix-dao/src/main/java/com/cyksj/model/views/RenewalView.java

@@ -81,6 +81,12 @@ public class RenewalView {
     @JsonIgnore
     private Integer goodsType;
 
+    /**
+     * 是否是第三方平台
+     */
+    @DbField("g.is_third_goods")
+    private Boolean isThirdGoods;
+
     /**
      * 二级分类
      * 虚物品 1邀请制 2非邀请制
@@ -271,6 +277,12 @@ public class RenewalView {
     @DbField("a.verify_link")
     private String verifyLink;
 
+    /**
+     * 激活码
+     */
+    @DbField("a.act_code")
+    private String actCode;
+
     /**
      * mj 套餐包最低单价
      */

+ 6 - 0
netflix-dao/src/main/java/com/cyksj/model/views/YhShopGoodsFrontView.java

@@ -80,6 +80,12 @@ public class YhShopGoodsFrontView {
 	@DbField("g.special_type")
 	private GoodsDon.SpecialType specialType;
 
+	/**
+	 * 是否是第三方平台
+	 */
+	@DbField("g.is_third_goods")
+	private Boolean isThirdGoods;
+
 	/**
 	 * 店铺最低规格价格
 	 */

+ 1 - 1
netflix-dao/src/main/resources/mapper/GroupRelationMapper.xml

@@ -328,7 +328,7 @@
     </select>
 
     <select id="getGroupRelationAccountView" resultType="com.cyksj.model.manage.views.GroupsRelationBackView">
-        select s.account, a.account as tripsAccount
+        select s.account, a.account as tripsAccount,a.act_code
         from (select groups_id, account from groups_relation where id = #{relationId} limit 1) s
                  inner join groups_trips gt on gt.id = s.groups_id
                  left join account a on a.id = gt.account_id

+ 20 - 0
netflix-service/src/main/java/com/cyksj/service/mange/goods/GoodsDonCategoryServiceImpl.java

@@ -3,6 +3,7 @@ package com.cyksj.service.mange.goods;
 import cn.hutool.core.collection.CollUtil;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.cyksj.common.constant.Constant;
 import com.cyksj.common.exception.BusinessRuntimeException;
 import com.cyksj.mapper.GoodsDonCategoryMapper;
 import com.cyksj.mapper.GoodsDonCategoryRelateMapper;
@@ -85,6 +86,9 @@ public class GoodsDonCategoryServiceImpl extends ServiceImpl<GoodsDonCategoryMap
 
 	@Override
 	public void handleGoodsRelate(Long goodsId, List<Long> categoryList) {
+		//更新第三方平台信息
+		updateThirdGoodsInfo(goodsId, categoryList);
+
 		if (CollUtil.isEmpty(categoryList)) {
 			goodsDonCategoryRelateMapper.delete(Wrappers.lambdaQuery(GoodsDonCategoryRelate.class).eq(GoodsDonCategoryRelate::getGoodsId, goodsId));
 			goodsDonMapper.update(null, Wrappers.lambdaUpdate(GoodsDon.class)
@@ -98,6 +102,7 @@ public class GoodsDonCategoryServiceImpl extends ServiceImpl<GoodsDonCategoryMap
 			return;
 		}
 		AtomicBoolean ic = new AtomicBoolean(true);
+
 		//需要删除
 		goodsDonCategoryRelates.forEach(data -> {
 			if (!categoryList.contains(data.getCategory())) {
@@ -111,4 +116,19 @@ public class GoodsDonCategoryServiceImpl extends ServiceImpl<GoodsDonCategoryMap
 		}
 		saveBatchRelate(goodsId, categoryList);
 	}
+
+	private void updateThirdGoodsInfo(Long goodsId, List<Long> categoryList) {
+		AtomicBoolean isThirdGoods = new AtomicBoolean(false);
+		if (CollUtil.isNotEmpty(categoryList)) {
+			//第三方商品信息更新
+			categoryList.forEach(ct->{
+				if (Constant.THIRD_CATEGORY == ct) {
+					isThirdGoods.set(true);
+				}
+			});
+		}
+		goodsDonMapper.update(null, Wrappers.lambdaUpdate(GoodsDon.class)
+				.set(GoodsDon::getIsThirdGoods, isThirdGoods.get())
+				.eq(GoodsDon::getId, goodsId));
+	}
 }

+ 8 - 3
netflix-service/src/main/java/com/cyksj/service/order/impl/OrderDonServiceImpl.java

@@ -612,7 +612,7 @@ public class OrderDonServiceImpl extends ServiceImpl<OrderDonMapper, OrderDon> i
 		}
 		if (sku != null) {
 			//扣除使用优惠券、余额的订单金额
-			deductOrderMoney(orderDon, couponUser, payRequest.getBalance(), user, sku.getPrice(), goodsDon.getType(), payRequest.getGcCash(), payRequest.getGcpIds(), payRequest.getIsAcReduce(), subsidyId);
+			deductOrderMoney(orderDon, couponUser, payRequest.getBalance(), user, sku.getPrice(), goodsDon, payRequest.getGcCash(), payRequest.getGcpIds(), payRequest.getIsAcReduce(), subsidyId);
 		}
 
 		if (isSpecificPrice && (orderDon.getMoney().compareTo(BigDecimal.ZERO) == 0 || orderDon.getMoney().compareTo(specificPrice) != 0)) {
@@ -1179,7 +1179,7 @@ public class OrderDonServiceImpl extends ServiceImpl<OrderDonMapper, OrderDon> i
 			orderDon.setMoney(sku.getPrice().multiply(discount));
 		}
 		//扣除使用优惠券、余额的订单金额
-		deductOrderMoney(orderDon, couponUser, payRequest.getBalance(), user, sku.getPrice(), goodsDon.getType(), payRequest.getGcCash(), payRequest.getGcpIds(), false, null);
+		deductOrderMoney(orderDon, couponUser, payRequest.getBalance(), user, sku.getPrice(), goodsDon, payRequest.getGcCash(), payRequest.getGcpIds(), false, null);
 		this.saveOrUpdate(orderDon);
 
 		Long orderId = orderDon.getId();
@@ -2420,7 +2420,8 @@ public class OrderDonServiceImpl extends ServiceImpl<OrderDonMapper, OrderDon> i
 	/**
 	 * 使用优惠营销 订单金额抵扣
 	 */
-	public void deductOrderMoney(OrderDon orderDon, CouponUser couponUser, BigDecimal balance, User user, BigDecimal skuMoney, Integer goodsType, BigDecimal gcCash, List<Long> gcpIds, Boolean isAcReduce, Long subsidyId) throws Exception {
+	public void deductOrderMoney(OrderDon orderDon, CouponUser couponUser, BigDecimal balance, User user, BigDecimal skuMoney, GoodsDon goodsDon, BigDecimal gcCash, List<Long> gcpIds, Boolean isAcReduce, Long subsidyId) throws Exception {
+		Integer goodsType = goodsDon.getType();
 		if (gcCash != null && gcCash.compareTo(BigDecimal.ZERO) > 0 && couponUser != null && (balance != null && balance.compareTo(BigDecimal.ZERO) > 0)) {
 			throw BusinessRuntimeException.getInstance("现金卡不能与其他优惠叠加使用");
 		}
@@ -2591,6 +2592,10 @@ public class OrderDonServiceImpl extends ServiceImpl<OrderDonMapper, OrderDon> i
 				}
 			}
 		}
+		//第三方商品不支持余额支付
+		if (goodsDon.getIsThirdGoods()) {
+			return;
+		}
 		//存在余额
 		deductBalancePayOrderMoney(orderDon, balance, user);
 	}

+ 1 - 0
netflix-web/src/main/java/com/cyksj/web/controller/manage/CmsOrderController.java

@@ -240,6 +240,7 @@ public class CmsOrderController {
 						.ifPresent(e -> {
 							data.setGtAccount(e.getTripsAccount());
 							data.setAccount(e.getAccount());
+							data.setActCode(e.getActCode());
 						});
 			}
 

+ 75 - 68
netflix-web/src/main/java/com/cyksj/web/controller/manage/account/CmsAccountController.java

@@ -318,7 +318,6 @@ public class CmsAccountController {
      * 下载批量修改密码模板
      */
     @GetMapping("/get/account/template")
-    @SaCheckPermission("account:batchUpdatePwd")
     public void getAccountTemplate(HttpServletResponse response) {
         EasyExcelUtils.createTemplateExcel(response, ExcelImportAccountData.class, "账号批量修改密码模板", "账号批量修改密码模板", ExcelTypeEnum.XLSX, null);
     }
@@ -455,12 +454,14 @@ public class CmsAccountController {
     @SaCheckPermission("account:add")
     @Log(module = "平台管理/新增账号", businessType = BusinessType.POST, isSaveRequestData = true)
     public Result<String> add(@RequestBody Account account){
-		account.setAccount(account.getAccount().trim());
-		account.setPassword(account.getPassword().trim());
-	    //账号是否已经添加过
-	    if (!account.getAccount().contains("客服")) {
-		    if (accountCommonService.checkIsDupAccount(account.getGoodsId(), account.getAccount())) {
-			    throw BusinessRuntimeException.getInstance("该平台下已生成该账号");
+	    if (StrUtil.isNotBlank(account.getAccount())) {
+		    account.setAccount(account.getAccount().trim());
+		    account.setPassword(account.getPassword().trim());
+		    //账号是否已经添加过
+		    if (!account.getAccount().contains("客服")) {
+			    if (accountCommonService.checkIsDupAccount(account.getGoodsId(), account.getAccount())) {
+				    throw BusinessRuntimeException.getInstance("该平台下已生成该账号");
+			    }
 		    }
 	    }
         accountService.save(account);
@@ -508,6 +509,7 @@ public class CmsAccountController {
 			@Override
 			public void invoke(ExcelImportAccountData data, AnalysisContext analysisContext) {
 				String account = data.getAccount(), password = data.getPassword(), startTime = data.getStartTime(), expiryTime = data.getExpiryTime(), bankCard = data.getBankCard();
+				Account at = new Account();
 				if (StrUtil.isNotBlank(data.getAccount())) {
 					//账号是否已经添加过
 					if (!account.contains("客服")) {
@@ -516,52 +518,53 @@ public class CmsAccountController {
 							return;
 						}
 					}
-					Account at = new Account();
 					at.setAccount(account.trim());
 					at.setPassword(password.trim());
-					at.setGoodsId(goodsId);
-					at.setSkuId(skuId);
-					at.setBankCard(bankCard);
-					String isMonth = data.getIsMonth();
-					if (StrUtil.isNotBlank(isMonth)) {
-						at.setIsMonth(true);
-					}
-					String outsidePurchase = data.getOutsidePurchase();
-					if (StrUtil.isNotEmpty(outsidePurchase)) {
-						if (outsidePurchase.equals("是") || outsidePurchase.equals("1")) {
-							at.setOutsidePurchase(true);
-						}
-					}
-					at.setVerifyLink(data.getVerifyLink());
-					at.setRelateEmail(data.getRelateEmail());
-					at.setEmail(data.getSecondEmail());
-					if (StrUtil.isNotBlank(startTime)) {
-						at.setStartTime(DateUtil.parse(startTime));
-					} else {
-						at.setStartTime(DateTime.now());
+				}
+				at.setGoodsId(goodsId);
+				at.setSkuId(skuId);
+				at.setBankCard(bankCard);
+				//激活码
+				at.setActCode(data.getActCode());
+				String isMonth = data.getIsMonth();
+				if (StrUtil.isNotBlank(isMonth)) {
+					at.setIsMonth(true);
+				}
+				String outsidePurchase = data.getOutsidePurchase();
+				if (StrUtil.isNotEmpty(outsidePurchase)) {
+					if (outsidePurchase.equals("是") || outsidePurchase.equals("1")) {
+						at.setOutsidePurchase(true);
 					}
-					if (StrUtil.isNotBlank(expiryTime)) {
-						at.setExpiryTime(DateUtil.parse(expiryTime));
-					} else {
-						at.setExpiryTime(DateUtil.offsetMonth(at.getStartTime(), 1));
+				}
+				at.setVerifyLink(data.getVerifyLink());
+				at.setRelateEmail(data.getRelateEmail());
+				at.setEmail(data.getSecondEmail());
+				if (StrUtil.isNotBlank(startTime)) {
+					at.setStartTime(DateUtil.parse(startTime));
+				} else {
+					at.setStartTime(DateTime.now());
+				}
+				if (StrUtil.isNotBlank(expiryTime)) {
+					at.setExpiryTime(DateUtil.parse(expiryTime));
+				} else {
+					at.setExpiryTime(DateUtil.offsetMonth(at.getStartTime(), 1));
+				}
+				accountService.save(at);
+				if (at.getSkuId() != null) {
+					//自动配置车队
+					GroupsTrips groupsTrips = new GroupsTrips();
+					//限制每天新车队前3天 停车数量
+					Integer availableParkingNum = 0;
+					if (at.getSkuId() == 161l) {
+						availableParkingNum = 10;
 					}
-					accountService.save(at);
-					if (at.getSkuId() != null) {
-						//自动配置车队
-						GroupsTrips groupsTrips = new GroupsTrips();
-						//限制每天新车队前3天 停车数量
-						Integer availableParkingNum = 0;
-						if (at.getSkuId() == 161l) {
-							availableParkingNum = 10;
-						}
-						if (at.getSkuId() == 178l) {
-							availableParkingNum = 4;
-						}
-						groupsTrips.setAvailableParkingNum(availableParkingNum);
-						groupsTrips.setSkuId(at.getSkuId());
-						groupsTrips.setAccountId(at.getId());
-						cmsGroupService.issuance(groupsTrips, null);
+					if (at.getSkuId() == 178l) {
+						availableParkingNum = 4;
 					}
+					groupsTrips.setAvailableParkingNum(availableParkingNum);
+					groupsTrips.setSkuId(at.getSkuId());
+					groupsTrips.setAccountId(at.getId());
+					cmsGroupService.issuance(groupsTrips, null);
 				}
 			}
 
@@ -582,29 +585,33 @@ public class CmsAccountController {
 		    throw BusinessRuntimeException.getInstance("该账号不存在");
 	    }
 	    Boolean isClear = false;
+	    String updateAccount = account.getAccount();
 	    String dbAccount = db.getAccount();
-	    long userId = StpUtil.getLoginIdAsLong();
-	    if (!db.getPassword().equals(account.getPassword())) {
-		    account.setCustomerServiceId(0l);
-		    accountService.saveRecord(userId, account.getId(), db.getPassword(), account.getPassword(), "操作编辑");
-		    
-		    //清空过期账号 逻辑删除
-		    userTicketClearedRecordMapper.update(null, Wrappers.lambdaUpdate(UserTicketClearedRecord.class)
-				    .set(UserTicketClearedRecord::getDeleted, false)
-				    .eq(UserTicketClearedRecord::getAccountId, account.getId()));
-		    isClear = true;
-	    }
-	    if (!db.getAccount().equals(account.getAccount())){
-			account.setAccount(account.getAccount().trim());
-			//账号是否已经添加过
-			if (!account.getAccount().contains("客服")) {
-				if (accountCommonService.checkIsDupAccount(account.getGoodsId(), account.getAccount())) {
-					throw BusinessRuntimeException.getInstance("该平台下已生成该账号");
+		//排除不需要填写账号的平台
+	    if (StrUtil.isNotBlank(updateAccount)){
+			long userId = StpUtil.getLoginIdAsLong();
+			if (!db.getPassword().equals(account.getPassword())) {
+				account.setCustomerServiceId(0l);
+				accountService.saveRecord(userId, account.getId(), db.getPassword(), account.getPassword(), "操作编辑");
+
+				//清空过期账号 逻辑删除
+				userTicketClearedRecordMapper.update(null, Wrappers.lambdaUpdate(UserTicketClearedRecord.class)
+						.set(UserTicketClearedRecord::getDeleted, false)
+						.eq(UserTicketClearedRecord::getAccountId, account.getId()));
+				isClear = true;
+			}
+			if (!db.getAccount().equals(account.getAccount())){
+				account.setAccount(account.getAccount().trim());
+				//账号是否已经添加过
+				if (!account.getAccount().contains("客服")) {
+					if (accountCommonService.checkIsDupAccount(account.getGoodsId(), account.getAccount())) {
+						throw BusinessRuntimeException.getInstance("该平台下已生成该账号");
+					}
+				}
+				if (!dbAccount.equals(account.getAccount())) {
+					isClear = true;
 				}
 			}
-		    if (!dbAccount.equals(account.getAccount())) {
-			    isClear = true;
-		    }
 		}
 	    if (StrUtil.isNotBlank(account.getPassword())){
 		    account.setPassword(account.getPassword().trim());

+ 1 - 1
netflix-web/src/main/java/com/cyksj/web/controller/manage/goods/CmsGoodsDonController.java

@@ -212,7 +212,7 @@ public class CmsGoodsDonController {
         List<GoodsDon> goodsDons = beanSearcher.searchAll(GoodsDon.class, mapBuilder
                 .put("condition", conditionSql)
                 .field(GoodsDon::getDeleted, true)
-                .onlySelect(GoodsDon::getId, GoodsDon::getCategory, GoodsDon::getType, GoodsDon::getTitle, GoodsDon::getSecondType).build());
+                .onlySelect(GoodsDon::getId, GoodsDon::getCategory, GoodsDon::getType, GoodsDon::getTitle, GoodsDon::getSecondType,GoodsDon::getIsThirdGoods).build());
         return GatewayResponse.SUCCESS.newBuilder().toResult(goodsDons);
     }
 

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

@@ -190,7 +190,7 @@ public class CmsGroupController {
      * 配置新账号并绑定车队
      */
     @PostMapping("/post/account/bind")
-    public Result<String> createNewAccountBind(@RequestBody @Validated AccountGroupsReq req) throws Exception {
+    public Result<String> createNewAccountBind(@RequestBody AccountGroupsReq req) throws Exception {
         Account account = new Account();
         BeanUtil.copyProperties(req, account);
         GroupsTrips groupsTrips = groupService.getById(req.getGroupsId());
@@ -204,10 +204,12 @@ public class CmsGroupController {
         if (goodsDonSkuView == null) {
             throw BusinessRuntimeException.getInstance("该车队规格不属于该账号平台");
         }
-        //账号是否已经添加过
-        if (!account.getAccount().contains("客服")) {
-            if (accountCommonService.checkIsDupAccount(account.getGoodsId(), account.getAccount())) {
-                throw BusinessRuntimeException.getInstance("该平台下已生成该账号");
+        if (StrUtil.isNotBlank(account.getAccount())) {
+            //账号是否已经添加过
+            if (!account.getAccount().contains("客服")) {
+                if (accountCommonService.checkIsDupAccount(account.getGoodsId(), account.getAccount())) {
+                    throw BusinessRuntimeException.getInstance("该平台下已生成该账号");
+                }
             }
         }
         accountService.save(account);