Explorar el Código

坐满车位 车队立即下架功能

zoujiajian hace 9 meses
padre
commit
aab83f8fba

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

@@ -319,4 +319,9 @@ public class GoodsDonSku extends BaseEntity {
      */
     @TableField(updateStrategy = FieldStrategy.IGNORED)
     private Integer openaiQuota;
+
+    /**
+     * 是否坐满规格就下架车队 默认false
+     */
+    private Boolean isDown;
 }

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

@@ -236,6 +236,8 @@ public class ReqGoodsSkuInsert {
          */
         @TableField(updateStrategy = FieldStrategy.IGNORED)
         private Integer openaiQuota;
+
+        private Boolean isDown;
     }
 
 }

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

@@ -15,6 +15,7 @@ import com.cyksj.dto.RedisKey;
 import com.cyksj.mapper.*;
 import com.cyksj.mapper.manage.GroupsTripsAccountReplaceRecordMapper;
 import com.cyksj.mapper.manage.cms.CmsUserMapper;
+import com.cyksj.mapper.manage.cms.SysLogMapper;
 import com.cyksj.model.entity.*;
 import com.cyksj.model.manage.views.AccountView;
 import com.cyksj.model.manage.views.GroupsRelationView;
@@ -99,6 +100,8 @@ public class CmsGroupServiceImpl extends ServiceImpl<GroupsMapper,GroupsTrips> i
 
     private final GptUserRechargeRecordService gptUserRechargeRecordService;
 
+    private final SysLogMapper sysLogMapper;
+
     private static final GlobalThreadPoolTaskExecutor TASK_EXECUTOR = GlobalThreadPoolTaskExecutor.getInstance();
 
 
@@ -347,6 +350,22 @@ public class CmsGroupServiceImpl extends ServiceImpl<GroupsMapper,GroupsTrips> i
         if (goodsDon.getId() == Constant.GPT_PLUS_GID && sku.getNum() == 1) {
             setRelationRechargeRemainNumInfo(groupsTrips.getId(), sku.getMonths(), account.getAccount(), account.getPassword());
         }
+
+        //坐满是否下架车队
+        if (sku.getIsDown()) {
+            try {
+                if (groupsTrips.getStatus() == GroupsTrips.Status.validity) {
+                    Integer selectCount = relationMapper.selectCount(Wrappers.lambdaQuery(GroupsRelation.class).eq(GroupsRelation::getGroupsId, groupsTrips.getId()).eq(GroupsRelation::getStatus, GroupsTrips.Status.validity));
+                    if (selectCount == sku.getNum()) {
+                        groupsTrips.setStatus(GroupsTrips.Status.down);
+                        groupsMapper.updateById(groupsTrips);
+                        recordSysOpLog(groupsTrips.getId());
+                    }
+                }
+            } catch (Exception e) {
+
+            }
+        }
     }
 
     @Override
@@ -631,4 +650,17 @@ public class CmsGroupServiceImpl extends ServiceImpl<GroupsMapper,GroupsTrips> i
             }
         }
     }
+
+    private void recordSysOpLog(Long groupsId) {
+        try {
+            //添加操作记录
+            SysLog sysLog = new SysLog();
+            sysLog.setModule("过期账号/上下架过期车队");
+            sysLog.setOperateParams(groupsId.toString());
+            sysLog.setOperator("坐满系统下架");
+            sysLogMapper.insert(sysLog);
+        } catch (Exception e) {
+
+        }
+    }
 }

+ 40 - 0
netflix-service/src/main/java/com/cyksj/service/order/impl/OrderDonServiceImpl.java

@@ -53,6 +53,7 @@ import com.cyksj.mapper.corp.CorpUserMapper;
 import com.cyksj.mapper.corp.CorpUserTagMapper;
 import com.cyksj.mapper.fission.UserMirrorFissionInvertRecordMapper;
 import com.cyksj.mapper.fission.UserMirrorFissionReceiveRecordMapper;
+import com.cyksj.mapper.manage.cms.SysLogMapper;
 import com.cyksj.mapper.manage.coupon.CouponDistributePopularizeMapper;
 import com.cyksj.mapper.manage.coupon.CouponMapper;
 import com.cyksj.mapper.manage.coupon.CouponSkuMapper;
@@ -409,6 +410,8 @@ public class OrderDonServiceImpl extends ServiceImpl<OrderDonMapper, OrderDon> i
 
 	private final ClaudeCodeDeductOrderRelateMapper claudeCodeDeductOrderRelateMapper;
 
+	private final SysLogMapper sysLogMapper;
+
 	private final List<String> noChekGoodsTemp = List.of("Apple One", "Youtube", "Spotify");
 
 	@Transactional(rollbackFor = Throwable.class)
@@ -1267,6 +1270,12 @@ public class OrderDonServiceImpl extends ServiceImpl<OrderDonMapper, OrderDon> i
 		if (tripGoodsDonSkuView.getIsMirror() != sku.getIsMirror()) {
 			throw BusinessRuntimeException.getInstance("续费规格错误");
 		}
+		//天卡不支持续费其他规格
+		if (sku.getGoodsId() == Constant.NETFLIX_GID) {
+			if (tripGoodsDonSkuView.getDays() != null && tripGoodsDonSkuView.getSkuId().intValue() != sku.getId().intValue()) {
+				throw BusinessRuntimeException.getInstance("该规格不支持续费");
+			}
+		}
 
 		//cluade code
 		if (goodsDon.getId() == Constant.CLAUDE_CODE_GOODS_ID) {
@@ -3389,6 +3398,24 @@ public class OrderDonServiceImpl extends ServiceImpl<OrderDonMapper, OrderDon> i
 				log.error("订单回调,cc抵扣升级报错:{}", StringUtil.getErrorText(e));
 			}
 		}
+
+		if (orderDon.getOrderType() == 1 && sku.getIsDown()) {
+			try {
+				GroupsRelation relation = groupsRelationMapper.selectById(orderDon.getRelationId());
+				Long groupsId = relation.getGroupsId();
+				GroupsTrips groupsTrips = groupsMapper.selectById(groupsId);
+				if (groupsTrips.getStatus() == GroupsTrips.Status.validity) {
+					Integer selectCount = groupsRelationMapper.selectCount(Wrappers.lambdaQuery(GroupsRelation.class).eq(GroupsRelation::getGroupsId, groupsId).eq(GroupsRelation::getStatus, GroupsTrips.Status.validity));
+					if (selectCount == sku.getNum()) {
+						groupsTrips.setStatus(GroupsTrips.Status.down);
+						groupsMapper.updateById(groupsTrips);
+						recordSysOpLog(groupsTrips.getId());
+					}
+				}
+			} catch (Exception e) {
+
+			}
+		}
 	}
 
 	private void handleUserMirrorSHopOrderDon(OrderDon orderDon) throws Exception {
@@ -5634,4 +5661,17 @@ public class OrderDonServiceImpl extends ServiceImpl<OrderDonMapper, OrderDon> i
 		claudeCodeDeductOrderRelate.setExtendsDays(extendsDays);
 		claudeCodeDeductOrderRelateMapper.insert(claudeCodeDeductOrderRelate);
 	}
+
+	private void recordSysOpLog(Long groupsId) {
+		try {
+			//添加操作记录
+			SysLog sysLog = new SysLog();
+			sysLog.setModule("过期账号/上下架过期车队");
+			sysLog.setOperateParams(groupsId.toString());
+			sysLog.setOperator("坐满系统下架");
+			sysLogMapper.insert(sysLog);
+		} catch (Exception e) {
+
+		}
+	}
 }