Procházet zdrojové kódy

Merge branch 'fix_prepare'

# Conflicts:
#	netflix-service/src/main/java/com/cyksj/service/order/impl/OrderDonServiceImpl.java
zoujiajian před 2 roky
rodič
revize
e739d62cb4

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

@@ -87,9 +87,9 @@ public class Account extends BaseEntity {
     private String gptRefreshToken;
 
     /**
-     * 备用账号类型sku_id
+     * 备用账号类型sku_ids
      */
-    private Integer preSkuId;
+    private String preSkuIds;
 
     /**
      * 类型 1通用 2备用

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

@@ -106,7 +106,7 @@ public class AccountView {
     @DbField("a.email")
     private String email;
 
-    @DbField("ifnull(gdk.id,a.pre_sku_id)")
+    @DbField("gdk.id")
     private Long skuId;
 
     @DbField("a.gpt_refresh_token")
@@ -138,8 +138,8 @@ public class AccountView {
     @DbIgnore
     private Date lastUpdatePwdDate;
 
-    @DbField("a.pre_sku_id")
-    private Long preSkuId;
+    @DbField("a.pre_sku_ids")
+    private String preSkuIds;
 
     @DbField("a.type")
     private Integer accountType;

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

@@ -250,7 +250,7 @@
     </select>
 
     <select id="selectSpecialGroupsRelationAvailable" resultType="java.lang.Integer">
-        select sum(a1+(#{extractNum}-t1)) from
+        select ifnull(sum(a1+(#{extractNum}-t1)),0) from
                                          (select gt.id,
         (select count(*)
         from groups_relation gr2

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

@@ -420,7 +420,9 @@ public class CmsGroupServiceImpl extends ServiceImpl<GroupsMapper,GroupsTrips> i
     public Integer getAvailableAfterPreAccount(Integer available, Long skuId, Integer maxNum, Long goodsId) {
         MapBuilder builder = MapUtils.builder();
         if (goodsId == 26) {
-            builder.field(AccountView::getPreSkuId, skuId);
+            //是否在预备规格集合中
+            String extra_sql = String.format("FIND_IN_SET(%s,a.pre_sku_ids) > 0", skuId);
+            builder.put("extra_sql", extra_sql);
         }
         Number preAccount = beanSearcher.searchCount(AccountView.class, builder
                 .field(AccountView::getGoodsId, goodsId)

+ 8 - 2
netflix-web/src/main/java/com/cyksj/web/controller/manage/account/CmsAccountController.java

@@ -965,8 +965,14 @@ public class CmsAccountController {
 			}
 		}
 		account.setType(2);
-		if (account.getGoodsId() == 26 && account.getPreSkuId() == null) {
-			throw BusinessRuntimeException.getInstance("请选择对应规格id");
+		if (account.getGoodsId() == 26) {
+			String preSkuIds = account.getPreSkuIds();
+			if (StrUtil.isEmpty(preSkuIds)) {
+				throw BusinessRuntimeException.getInstance("请选择对应规格id");
+			}
+			String[] split = preSkuIds.split(",");
+			String skuSetStr = Arrays.stream(split).distinct().collect(Collectors.joining(","));
+			account.setPreSkuIds(skuSetStr);
 		}
 		accountService.save(account);
 		return GatewayResponse.SUCCESS.newBuilder().toResult();