Forráskód Böngészése

fix 兑换码续费升级

zoujiajian 1 éve
szülő
commit
856d30a0bf

+ 17 - 11
netflix-service/src/main/java/com/cyksj/service/claude/impl/ClaudeCodeServiceImpl.java

@@ -94,19 +94,25 @@ public class ClaudeCodeServiceImpl implements ClaudeCodeService {
 		Boolean isUpgrade = false;
 		Date renewExpiryTime = null;
 		//若是续费升级 记录此时续费升级的过期时间
-		if (thisRelationCodePoints != null && thisRelationCodePoints <= codePoints && !ObjectUtil.equal(thisCodeOriSkuId, skuId)) {
-			if (sku.getDays() != null) {
-				renewExpiryTime = DateUtil.offsetDay(DateTime.now(), sku.getDays());
-			} else {
-				renewExpiryTime = DateUtil.offsetMonth(DateTime.now(), sku.getMonths());
-			}
-			isUpgrade = true;
+		if (!ObjectUtil.equal(thisCodeOriSkuId, skuId)) {
+			//非车票原规格id 续费升级记录
 			saveClaudeCodeRenewExpiryRecord(orderId, relationUserId, relationId, skuId);
+			//是否需要修改当前claude code user 套餐等级
+			if (thisRelationCodePoints != null && thisRelationCodePoints <= codePoints) {
+				if (sku.getDays() != null) {
+					renewExpiryTime = DateUtil.offsetDay(DateTime.now(), sku.getDays());
+				} else {
+					renewExpiryTime = DateUtil.offsetMonth(DateTime.now(), sku.getMonths());
+				}
+				isUpgrade = true;
+			}
 		}
 		generateOrUpdateClaudeCodeUser(relationUserId, relationId, codePoints, codeCreditRecovery, expiryTime, isUpgrade, orderId, skuId, renewExpiryTime, sku.getSpecVal());
 		try {
+			//获取最新的claude code user
+			claudeCodeUser = claudeCodeUserMapper.selectOne(Wrappers.lambdaQuery(ClaudeCodeUser.class).eq(ClaudeCodeUser::getRelationId, relationId).last("limit 1"));
 			//生成claude code或更新用户套餐
-			ClaudeCodeResp codeUserPackage = createOrUpdateClaudeCodeUserPackage(relation.getUserId(), sku.getSpecVal(), codePoints, codeCreditRecovery, expiryTime);
+			ClaudeCodeResp codeUserPackage = createOrUpdateClaudeCodeUserPackage(relation.getUserId(), claudeCodeUser.getPlanName(), claudeCodeUser.getCodePoints(), claudeCodeUser.getCodeCreditRecovery(), claudeCodeUser.getExpiryTime());
 			if (!Constant.SUCCESS.equals(codeUserPackage.getMessage())) {
 				//重试更新code userInfo数据
 				setClaudeCodeUserRetryUpdateInfo(relationId);
@@ -132,13 +138,13 @@ public class ClaudeCodeServiceImpl implements ClaudeCodeService {
 			claudeCodeUser.setRenewOrderId(orderId);
 			claudeCodeUser.setRenewSkuId(renewSkuId);
 			claudeCodeUser.setRenewExpiryTime(renewExpiryTime);
+			claudeCodeUser.setPlanName(planName);
+			claudeCodeUser.setCodePoints(codePoints);
+			claudeCodeUser.setCodeCreditRecovery(codeCreditRecovery);
 		}
 		claudeCodeUser.setUserId(relationUserId);
-		claudeCodeUser.setPlanName(planName);
 		claudeCodeUser.setRelationId(relationId);
 		claudeCodeUser.setExpiryTime(expiryTime);
-		claudeCodeUser.setCodePoints(codePoints);
-		claudeCodeUser.setCodeCreditRecovery(codeCreditRecovery);
 		if (claudeCodeUser.getId() == null) {
 			try {
 				claudeCodeUserMapper.insert(claudeCodeUser);

+ 1 - 1
netflix-service/src/main/java/com/cyksj/service/mange/impl/MirrorUserCleatServiceImpl.java

@@ -155,11 +155,11 @@ public class MirrorUserCleatServiceImpl implements MirrorUserCleatService {
 			ClaudeCodeUserRenewExpiryRecord renewExpiryRecord = claudeCodeUserRenewExpiryRecordMapper.selectOne(Wrappers.lambdaQuery(ClaudeCodeUserRenewExpiryRecord.class).eq(ClaudeCodeUserRenewExpiryRecord::getOrderId, orderId).eq(ClaudeCodeUserRenewExpiryRecord::getIsValid, Boolean.FALSE).last("limit 1"));
 			Date renewExpiryTime = null;
 			Integer oriCodePoints = claudeCodeUser.getCodePoints();
-			Long renewOrderId = renewExpiryRecord.getOrderId();
 			claudeCodeUser.setOriCodePoints(oriCodePoints);
 			claudeCodeUser.setRenewSkuId(null);
 			claudeCodeUser.setRenewOrderId(null);
 			if (renewExpiryRecord != null) {
+				Long renewOrderId = renewExpiryRecord.getOrderId();
 				//当前续费
 				OrderDon presentRenewOrderDon = orderDonMapper.selectById(renewOrderId);
 				//是否存在其他续费升级