zoujiajian 9 месяцев назад
Родитель
Сommit
4be01ee34c

+ 6 - 0
netflix-dao/src/main/java/com/cyksj/model/entity/GoodsDonSku.java

@@ -355,6 +355,12 @@ public class GoodsDonSku extends BaseEntity {
     @TableField(updateStrategy = FieldStrategy.IGNORED)
     @TableField(updateStrategy = FieldStrategy.IGNORED)
     private String payDesc;
     private String payDesc;
 
 
+    /**
+     * 是否展示规格付款说明
+     * 默认false
+     */
+    private Boolean showPayDesc;
+
     /**
     /**
      * got team规格 默认false
      * got team规格 默认false
      */
      */

+ 6 - 0
netflix-dao/src/main/java/com/cyksj/model/entity/GptTeamUserBindRecord.java

@@ -49,4 +49,10 @@ public class GptTeamUserBindRecord extends BaseEntity {
      * 此时 加入人数
      * 此时 加入人数
      */
      */
     private Integer count;
     private Integer count;
+
+    /**
+     * 加入状态 1.成功 0失败
+     * 默认失败
+     */
+    private Boolean status;
 }
 }

+ 6 - 0
netflix-dao/src/main/java/com/cyksj/model/manage/request/ReqGoodsSkuInsert.java

@@ -258,6 +258,12 @@ public class ReqGoodsSkuInsert {
          */
          */
         private String payDesc;
         private String payDesc;
 
 
+        /**
+         * 是否展示规格付款说明
+         * 默认false
+         */
+        private Boolean showPayDesc;
+
         /**
         /**
          * got team规格 默认false
          * got team规格 默认false
          */
          */

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

@@ -237,6 +237,12 @@ public class GoodsDonSkuFrontView {
 	 */
 	 */
 	private String payDesc;
 	private String payDesc;
 
 
+	/**
+	 * 是否展示规格付款说明
+	 * 默认false
+	 */
+	private Boolean showPayDesc;
+
 	/**
 	/**
 	 * deepseek限制次数
 	 * deepseek限制次数
 	 */
 	 */

+ 7 - 0
netflix-dao/src/main/java/com/cyksj/model/views/GoodsDonSkuSubsidyDetailView.java

@@ -104,6 +104,13 @@ public class GoodsDonSkuSubsidyDetailView {
 	@DbField("sku.pay_desc")
 	@DbField("sku.pay_desc")
 	private String payDesc;
 	private String payDesc;
 
 
+	/**
+	 * 是否展示规格付款说明
+	 * 默认false
+	 */
+	@DbField("sku.show_pay_desc")
+	private Boolean showPayDesc;
+
 	/**
 	/**
 	 * 标签
 	 * 标签
 	 */
 	 */

+ 7 - 0
netflix-dao/src/main/java/com/cyksj/model/views/YhShopGoodsSkuFrontView.java

@@ -79,6 +79,13 @@ public class YhShopGoodsSkuFrontView {
 	@DbField("sku.pay_desc")
 	@DbField("sku.pay_desc")
 	private String payDesc;
 	private String payDesc;
 
 
+	/**
+	 * 是否展示规格付款说明
+	 * 默认false
+	 */
+	@DbField("sku.show_pay_desc")
+	private Boolean showPayDesc;
+
 	/**
 	/**
 	 * 标签
 	 * 标签
 	 */
 	 */

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

@@ -6,7 +6,7 @@
 
 
     <select id="selecAvailableTeam" resultType="com.cyksj.model.entity.GptTeamAccount">
     <select id="selecAvailableTeam" resultType="com.cyksj.model.entity.GptTeamAccount">
         select gta.* from gpt_team_account gta
         select gta.* from gpt_team_account gta
-        where gta.status and (select count(1) from gpt_team_user_bind_record gbr where gbr.token = gta.token) &lt; #{maxNum}
+        where gta.status and (select count(1) from gpt_team_user_bind_record gbr where gbr.token = gta.token and gbr.status) &lt; #{maxNum}
         order by rand() limit 1
         order by rand() limit 1
     </select>
     </select>
 </mapper>
 </mapper>

+ 11 - 6
netflix-service/src/main/java/com/cyksj/service/gpt/impl/GptTeamUserBindRecordServiceImpl.java

@@ -5,6 +5,7 @@ import cn.hutool.core.lang.Validator;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.cyksj.common.constant.Constant;
 import com.cyksj.common.constant.Constant;
 import com.cyksj.common.exception.BusinessRuntimeException;
 import com.cyksj.common.exception.BusinessRuntimeException;
+import com.cyksj.common.task.GlobalThreadPoolTaskExecutor;
 import com.cyksj.mapper.GoodsDonSkuMapper;
 import com.cyksj.mapper.GoodsDonSkuMapper;
 import com.cyksj.mapper.GptTeamAccountMapper;
 import com.cyksj.mapper.GptTeamAccountMapper;
 import com.cyksj.mapper.GptTeamUserBindRecordMapper;
 import com.cyksj.mapper.GptTeamUserBindRecordMapper;
@@ -21,6 +22,7 @@ import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 import org.springframework.transaction.annotation.Transactional;
 
 
 import java.util.List;
 import java.util.List;
+import java.util.Optional;
 
 
 /**
 /**
  * GPT Team用户绑定记录服务实现
  * GPT Team用户绑定记录服务实现
@@ -42,6 +44,8 @@ public class GptTeamUserBindRecordServiceImpl implements GptTeamUserBindRecordSe
 
 
     private final SysConfigMapper sysConfigMapper;
     private final SysConfigMapper sysConfigMapper;
 
 
+    private static final GlobalThreadPoolTaskExecutor TASK_POOL = GlobalThreadPoolTaskExecutor.getInstance();
+
     @Override
     @Override
     @Transactional(rollbackFor = Throwable.class)
     @Transactional(rollbackFor = Throwable.class)
     public void bindByOrderId(GptTeamBindRequest request) {
     public void bindByOrderId(GptTeamBindRequest request) {
@@ -63,18 +67,19 @@ public class GptTeamUserBindRecordServiceImpl implements GptTeamUserBindRecordSe
         }
         }
 
 
         // 2. 检查是否已经绑定
         // 2. 检查是否已经绑定
-        Integer selectCount = bindRecordMapper.selectCount(Wrappers.lambdaQuery(GptTeamUserBindRecord.class).eq(GptTeamUserBindRecord::getOrderId, orderId));
-        if (selectCount > 0) {
+        GptTeamUserBindRecord bindRecord = Optional.ofNullable(bindRecordMapper.selectOne(Wrappers.lambdaQuery(GptTeamUserBindRecord.class).eq(GptTeamUserBindRecord::getOrderId, orderId).last("limit 1"))).orElse(new GptTeamUserBindRecord());
+        if (bindRecord.getId() != null && bindRecord.getStatus()) {
             throw BusinessRuntimeException.getInstance("已有绑定的Team");
             throw BusinessRuntimeException.getInstance("已有绑定的Team");
         }
         }
-        // 4. 创建绑定记录
-        GptTeamUserBindRecord bindRecord = new GptTeamUserBindRecord();
+        // 创建绑定记录
         //订单用户id
         //订单用户id
         bindRecord.setUserId(order.getUserId());
         bindRecord.setUserId(order.getUserId());
         bindRecord.setBindTime(DateTime.now());
         bindRecord.setBindTime(DateTime.now());
         bindRecord.setBindEmail(email);
         bindRecord.setBindEmail(email);
         try {
         try {
-            bindRecordMapper.insert(bindRecord);
+            if (bindRecord.getId() == null) {
+                TASK_POOL.execute(() -> bindRecordMapper.insert(bindRecord));
+            }
         } catch (DuplicateKeyException e) {
         } catch (DuplicateKeyException e) {
             throw BusinessRuntimeException.getInstance("已有绑定的Team");
             throw BusinessRuntimeException.getInstance("已有绑定的Team");
         }
         }
@@ -92,9 +97,9 @@ public class GptTeamUserBindRecordServiceImpl implements GptTeamUserBindRecordSe
             throw BusinessRuntimeException.getInstance("系统繁忙,请重试!");
             throw BusinessRuntimeException.getInstance("系统繁忙,请重试!");
         }
         }
         bindRecord.setToken(teamAccount.getToken());
         bindRecord.setToken(teamAccount.getToken());
+        bindRecord.setStatus(Boolean.TRUE);
         bindRecordMapper.updateById(bindRecord);
         bindRecordMapper.updateById(bindRecord);
         //绑定 Team API TODO
         //绑定 Team API TODO
-
     }
     }
 
 
     @Override
     @Override

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

@@ -48,6 +48,7 @@ public class CmsGptTeamAccountController {
     public Result<List<GptTeamUserBindRecord>> getTeamUsers(String token) {
     public Result<List<GptTeamUserBindRecord>> getTeamUsers(String token) {
         List<GptTeamUserBindRecord> list = beanSearcher.searchAll(GptTeamUserBindRecord.class, MapUtils.flatBuilder(request.getParameterMap())
         List<GptTeamUserBindRecord> list = beanSearcher.searchAll(GptTeamUserBindRecord.class, MapUtils.flatBuilder(request.getParameterMap())
                 .field(GptTeamUserBindRecord::getToken, token)
                 .field(GptTeamUserBindRecord::getToken, token)
+                .field(GptTeamUserBindRecord::getStatus, Boolean.TRUE)
                 .orderBy(GptTeamUserBindRecord::getId).desc()
                 .orderBy(GptTeamUserBindRecord::getId).desc()
                 .build());
                 .build());
         return GatewayResponse.SUCCESS.newBuilder().toResult(list);
         return GatewayResponse.SUCCESS.newBuilder().toResult(list);