소스 검색

fix 升级抵扣金额

zoujiajian 10 달 전
부모
커밋
d745d33e36

+ 8 - 5
netflix-service/src/main/java/com/cyksj/service/claude/impl/ClaudeCodeServiceImpl.java

@@ -15,10 +15,7 @@ import com.cyksj.common.exception.BusinessRuntimeException;
 import com.cyksj.common.util.Jsons;
 import com.cyksj.common.util.StringUtil;
 import com.cyksj.mapper.*;
-import com.cyksj.mapper.claudecode.ClaudeCodeCreditCardMapper;
-import com.cyksj.mapper.claudecode.ClaudeCodeDayResetRecordMapper;
-import com.cyksj.mapper.claudecode.ClaudeCodeUserCreditCardRecordMapper;
-import com.cyksj.mapper.claudecode.ClaudeCodeUserResetRecordMapper;
+import com.cyksj.mapper.claudecode.*;
 import com.cyksj.mapper.manage.distribute.DistributePointsExchangeMoneyMapper;
 import com.cyksj.mapper.manage.distribute.DistributeWaitingSendPointsMapper;
 import com.cyksj.model.dto.ClaudeCodeDeductDto;
@@ -106,6 +103,8 @@ public class ClaudeCodeServiceImpl implements ClaudeCodeService {
 
 	private final ClaudeCodexApiService claudeCodexApiService;
 
+	private final ClaudeCodeDeductOrderRelateMapper claudeCodeDeductOrderRelateMapper;
+
 	@Override
 	public void generateOrUpdateClaudeCodeUserInfo(Long orderId, Long relationId, Long userId, GoodsDonSku sku, Integer orderType) {
 		List<Long> userIdList = userBindRelationService.getRelationUserIdList(userId, null);
@@ -1248,6 +1247,10 @@ public class ClaudeCodeServiceImpl implements ClaudeCodeService {
 			} else {
 				totalDays += sku.getMonths() * 30;
 			}
+			ClaudeCodeDeductOrderRelate claudeCodeDeductOrderRelate = claudeCodeDeductOrderRelateMapper.selectOne(Wrappers.lambdaQuery(ClaudeCodeDeductOrderRelate.class).eq(ClaudeCodeDeductOrderRelate::getOrderId, orderDon.getId()).last("limit 1"));
+			if (claudeCodeDeductOrderRelate != null) {
+				totalOrderMoney = totalOrderMoney.add(claudeCodeDeductOrderRelate.getDeductMoney());
+			}
 			//原订单数
 			if (orderDonList.size() == 1) {
 				//此次订单过期时间
@@ -1259,7 +1262,7 @@ public class ClaudeCodeServiceImpl implements ClaudeCodeService {
 				}
 				//当天购买的按规格原价抵扣
 				if (now.toDateStr().equals(DateUtil.format(relationStartTime, "yyyy-MM-dd")) && (DateUtil.betweenDay(thisOrderExpiryTime, relationExpiryTime, true) == 0)) {
-					return thisOrderMoney;
+					return totalOrderMoney;
 				}
 			}
 		}

+ 30 - 28
netflix-service/src/main/java/com/cyksj/service/order/impl/OrderDonServiceImpl.java

@@ -3333,35 +3333,37 @@ public class OrderDonServiceImpl extends ServiceImpl<OrderDonMapper, OrderDon> i
 		if (orderDon.getGoodsId() == Constant.CLAUDE_CODE_GOODS_ID) {
 			try {
 				ClaudeCodeDeductOrderRelate claudeCodeDeductOrderRelate = claudeCodeDeductOrderRelateMapper.selectOne(Wrappers.lambdaQuery(ClaudeCodeDeductOrderRelate.class).eq(ClaudeCodeDeductOrderRelate::getOrderId, orderDon.getId()));
-				Long relationId = claudeCodeDeductOrderRelate.getRelationId();
-				//清除旧的cc车票
-				GroupsRelation oldRelation = groupsRelationMapper.selectById(relationId);
-				Long relationUserId = oldRelation.getUserId();
-				groupRelationClearService.clearTicket(oldRelation, UserTicketClearedRecord.Source.cc_deduct);
-				//生成新规格车票
-				Long skuId = orderDon.getSkuId();
-				Long newRelationId = groupRelationFrontService.getTicket(relationUserId, skuId, Boolean.FALSE);
-				GroupsRelation newRelation = groupsRelationMapper.selectById(newRelationId);
-				ClaudeCodeUser claudeCodeUser = claudeCodeUserMapper.selectOne(Wrappers.lambdaQuery(ClaudeCodeUser.class).eq(ClaudeCodeUser::getRelationId, relationId).last("limit 1"));
-				//同步用户cc的 车票id
-				if (claudeCodeUser != null) {
-					claudeCodeUser.setRelationId(newRelationId);
-					claudeCodeUser.setRenewSkuId(null);
-					claudeCodeUser.setRenewOrderId(null);
-					claudeCodeUser.setRenewExpiryTime(null);
-					claudeCodeUserMapper.updateById(claudeCodeUser);
-					//同步套餐
-					claudeCodeService.updateClaudeCodeUserPackageInfo(claudeCodeUser, newRelation.getExpiryTime(), sku);
-				}
-				claudeCodeDeductOrderRelate.setNewRelationId(newRelationId);
-				claudeCodeDeductOrderRelateMapper.updateById(claudeCodeDeductOrderRelate);
-				if (claudeCodeDeductOrderRelate.getExtendsDays() != null && claudeCodeDeductOrderRelate.getExtendsDays() > 0) {
-					newRelation.setExpiryTime(DateUtil.offsetDay(newRelation.getExpiryTime(), claudeCodeDeductOrderRelate.getExtendsDays()));
-					groupsRelationMapper.updateById(newRelation);
+				if (claudeCodeDeductOrderRelate != null) {
+					Long relationId = claudeCodeDeductOrderRelate.getRelationId();
+					//清除旧的cc车票
+					GroupsRelation oldRelation = groupsRelationMapper.selectById(relationId);
+					Long relationUserId = oldRelation.getUserId();
+					groupRelationClearService.clearTicket(oldRelation, UserTicketClearedRecord.Source.cc_deduct);
+					//生成新规格车票
+					Long skuId = orderDon.getSkuId();
+					Long newRelationId = groupRelationFrontService.getTicket(relationUserId, skuId, Boolean.FALSE);
+					GroupsRelation newRelation = groupsRelationMapper.selectById(newRelationId);
+					ClaudeCodeUser claudeCodeUser = claudeCodeUserMapper.selectOne(Wrappers.lambdaQuery(ClaudeCodeUser.class).eq(ClaudeCodeUser::getRelationId, relationId).last("limit 1"));
+					//同步用户cc的 车票id
+					if (claudeCodeUser != null) {
+						claudeCodeUser.setRelationId(newRelationId);
+						claudeCodeUser.setRenewSkuId(null);
+						claudeCodeUser.setRenewOrderId(null);
+						claudeCodeUser.setRenewExpiryTime(null);
+						claudeCodeUserMapper.updateById(claudeCodeUser);
+						//同步套餐
+						claudeCodeService.updateClaudeCodeUserPackageInfo(claudeCodeUser, newRelation.getExpiryTime(), sku);
+					}
+					claudeCodeDeductOrderRelate.setNewRelationId(newRelationId);
+					claudeCodeDeductOrderRelateMapper.updateById(claudeCodeDeductOrderRelate);
+					if (claudeCodeDeductOrderRelate.getExtendsDays() != null && claudeCodeDeductOrderRelate.getExtendsDays() > 0) {
+						newRelation.setExpiryTime(DateUtil.offsetDay(newRelation.getExpiryTime(), claudeCodeDeductOrderRelate.getExtendsDays()));
+						groupsRelationMapper.updateById(newRelation);
+					}
+					//将订单车票id同步成新规格车票id
+					orderDon.setRelationId(newRelationId);
+					orderDonMapper.updateById(orderDon);
 				}
-				//将订单车票id同步成新规格车票id
-				orderDon.setRelationId(newRelationId);
-				orderDonMapper.updateById(orderDon);
 			} catch (Exception e) {
 				log.error("订单回调,cc抵扣升级报错:{}", StringUtil.getErrorText(e));
 			}