Selaa lähdekoodia

GPT独立会员代充同步

zoujiajian 1 vuosi sitten
vanhempi
sitoutus
e8b9b7d41f

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

@@ -21,6 +21,7 @@ import com.cyksj.model.manage.views.GroupsRelationView;
 import com.cyksj.model.request.ReplaceTripsAccountReq;
 import com.cyksj.model.views.GroupsAccountView;
 import com.cyksj.redis.RedisService;
+import com.cyksj.service.chatgpt.GptUserRechargeRecordService;
 import com.cyksj.service.mange.AccountCommonService;
 import com.cyksj.service.mange.CmsGroupService;
 import com.cyksj.service.relation.GroupRelationClearService;
@@ -96,6 +97,8 @@ public class CmsGroupServiceImpl extends ServiceImpl<GroupsMapper,GroupsTrips> i
 
     private final NetflixUserAccountStatusRecordMapper netflixUserAccountStatusRecordMapper;
 
+    private final GptUserRechargeRecordService gptUserRechargeRecordService;
+
     private static final GlobalThreadPoolTaskExecutor TASK_EXECUTOR = GlobalThreadPoolTaskExecutor.getInstance();
 
 
@@ -339,6 +342,11 @@ public class CmsGroupServiceImpl extends ServiceImpl<GroupsMapper,GroupsTrips> i
 
         //HBO GO 满员,车队下架
         setDownIfFull(goodsDon, groupsTrips);
+
+        //是否是GPT独立会员
+        if (goodsDon.getId() == Constant.GPT_PLUS_GID && sku.getNum() == 1) {
+            setRelationRechargeRemainNumInfo(groupsTrips.getId(), sku.getMonths(), account.getAccount(), account.getPassword());
+        }
     }
 
     @Override
@@ -603,4 +611,22 @@ public class CmsGroupServiceImpl extends ServiceImpl<GroupsMapper,GroupsTrips> i
         }
         return null;
     }
+
+    private void setRelationRechargeRemainNumInfo(Long groupsId, Integer addNum, String account, String password) {
+        GroupsRelation relation = relationMapper.selectOne(Wrappers.lambdaQuery(GroupsRelation.class).eq(GroupsRelation::getGroupsId, groupsId).last("limit 1"));
+        if (relation.getStatus() == GroupsRelation.Status.validity) {
+            if (relation.getRenewStatus() == null) {
+                relation.setRechargeStatus(GroupsRelation.RechargeStatus.complete);
+                relation.setRechargeNum(addNum);
+                relation.setRechargeRemainNum(addNum - 1);
+                relation.setSubmitTime(DateTime.now());
+                relation.setSendTime(relation.getSubmitTime());
+                relation.setAccount(account);
+                relation.setPassword(password);
+                relationMapper.updateById(relation);
+                //记录gpt代充记录
+                gptUserRechargeRecordService.recordGptUserRechargeNum(relation.getUserId(), relation.getId(), relation.getAccount(), relation.getRechargeRemainNum(), null, "下单");
+            }
+        }
+    }
 }

+ 10 - 0
netflix-service/src/main/java/com/cyksj/service/mange/impl/CmsOrderDonServiceImpl.java

@@ -820,6 +820,16 @@ public class CmsOrderDonServiceImpl extends ServiceImpl<OrderDonMapper,OrderDon>
             if (newRelation.getStatus() != GroupsRelation.Status.outside) {
                 newRelation.setStatus(GroupsRelation.Status.validity);
             }
+            //代充信息
+            newRelation.setRechargeStatus(relation.getRechargeStatus());
+            newRelation.setRechargeNum(relation.getRechargeNum());
+            newRelation.setRechargeRemainNum(relation.getRechargeRemainNum());
+            newRelation.setSubmitTime(relation.getSubmitTime());
+            newRelation.setSendTime(relation.getSendTime());
+            newRelation.setAccount(relation.getAccount());
+            newRelation.setPassword(relation.getPassword());
+            newRelation.setGptTaskId(relation.getGptTaskId());
+            newRelation.setCardKey(relation.getCardKey());
 
             //清除原先车票
             relation.setNewRelationId(newRelation.getId());

+ 37 - 16
netflix-service/src/main/java/com/cyksj/service/order/impl/OrderDonServiceImpl.java

@@ -3135,8 +3135,8 @@ public class OrderDonServiceImpl extends ServiceImpl<OrderDonMapper, OrderDon> i
 		}
 
 		//GPT独立会员续费 若为代充类型 同步代充次数
-		if (orderDon.getGoodsId() == Constant.GPT_PLUS_GID && orderDon.getOrderType() == 2) {
-			incrGroupsRelationRechargeRemainIfRecharge(orderDon.getRelationId(), sku.getMonths());
+		if (orderDon.getGoodsId() == Constant.GPT_PLUS_GID) {
+			incrGroupsRelationRechargeRemainIfRecharge(orderDon.getRelationId(), sku.getMonths(), orderDon.getOrderType());
 		}
 	}
 
@@ -5178,22 +5178,43 @@ public class OrderDonServiceImpl extends ServiceImpl<OrderDonMapper, OrderDon> i
 		}
 	}
 
-	private void incrGroupsRelationRechargeRemainIfRecharge(Long relationId, Integer addNum) {
+	private void incrGroupsRelationRechargeRemainIfRecharge(Long relationId, Integer addNum, Integer orderType) {
 		GroupsRelation relation = groupsRelationMapper.selectById(relationId);
-		if (relation.getRechargeStatus() != null) {
-			//增加代充次数
-			Integer rechargeRemainNum = relation.getRechargeRemainNum();
-			Integer rechargeNum = relation.getRechargeNum();
-			int update = 0;
-			while (update == 0) {
-				update = groupsRelationMapper.update(null, Wrappers.lambdaUpdate(GroupsRelation.class)
-						.set(GroupsRelation::getRechargeRemainNum, rechargeRemainNum + addNum)
-						.set(GroupsRelation::getRechargeNum, rechargeNum + addNum)
-						.eq(GroupsRelation::getId, relationId)
-						.eq(GroupsRelation::getRechargeRemainNum, rechargeRemainNum));
-				if (update == 1) {
+		if (orderType == 1) {
+			//已发车
+			GroupsTrips groupsTrips = groupsMapper.selectById(relation.getGroupsId());
+			if (groupsTrips.getAccountId() != null) {
+				Account account = accountMapper.selectById(groupsTrips.getAccountId());
+				if (account != null) {
+					relation.setRechargeStatus(GroupsRelation.RechargeStatus.complete);
+					relation.setRechargeNum(addNum);
+					relation.setRechargeRemainNum(addNum - 1);
+					relation.setSubmitTime(DateTime.now());
+					relation.setSendTime(relation.getSubmitTime());
+					relation.setAccount(account.getAccount());
+					relation.setPassword(account.getPassword());
+					groupsRelationMapper.updateById(relation);
 					//记录gpt代充记录
-					gptUserRechargeRecordService.recordGptUserRechargeNum(relation.getUserId(), relation.getId(), relation.getAccount(), addNum, null, "订单续费");
+					gptUserRechargeRecordService.recordGptUserRechargeNum(relation.getUserId(), relation.getId(), relation.getAccount(), relation.getRechargeRemainNum(), null, "下单");
+				}
+			}
+		} else {
+			//续费订单
+			if (relation.getRechargeStatus() != null) {
+				//增加代充次数
+				Integer rechargeRemainNum = relation.getRechargeRemainNum();
+				Integer rechargeNum = relation.getRechargeNum();
+				int update = 0;
+				while (update == 0) {
+					update = groupsRelationMapper.update(null, Wrappers.lambdaUpdate(GroupsRelation.class)
+							.set(GroupsRelation::getRechargeRemainNum, rechargeRemainNum + addNum)
+							.set(GroupsRelation::getRechargeNum, rechargeNum + addNum)
+							.eq(GroupsRelation::getId, relationId)
+							.eq(GroupsRelation::getRechargeRemainNum, rechargeRemainNum));
+					if (update == 1) {
+						//记录gpt代充记录
+						gptUserRechargeRecordService.recordGptUserRechargeNum(relation.getUserId(), relation.getId(), relation.getAccount(), addNum, null, "订单续费");
+					}
 				}
 			}
 		}