zoujiajian 11 mēneši atpakaļ
vecāks
revīzija
03dd3a548c

+ 19 - 0
netflix-service/src/main/java/com/cyksj/service/claude/impl/ClaudeCodeServiceImpl.java

@@ -328,6 +328,8 @@ public class ClaudeCodeServiceImpl implements ClaudeCodeService {
 				//清除用户套餐
 				if (delUserPackages(claudeCodeUser.getUserId())) {
 					claudeCodeUserMapper.deleteById(claudeCodeUser.getId());
+					//codex
+					codexUserMapper.delete(Wrappers.lambdaQuery(CodexUser.class).eq(CodexUser::getRelationId, claudeCodeUser.getRelationId()).in(CodexUser::getUserId, userIdList));
 				}
 			}
 			return null;
@@ -356,6 +358,10 @@ public class ClaudeCodeServiceImpl implements ClaudeCodeService {
 			claudeCodeUser.setExpiryTime(groupsRelationView.getExpiryTime());
 			claudeCodeUserMapper.updateById(claudeCodeUser);
 		}
+		//续费升级
+		if (claudeCodeUser.getRenewSkuId() != null) {
+			sku = skuMapper.selectById(claudeCodeUser.getRenewSkuId());
+		}
 		if (sku == null) {
 			sku = skuMapper.selectById(groupsRelationView.getSkuId());
 		}
@@ -375,6 +381,19 @@ public class ClaudeCodeServiceImpl implements ClaudeCodeService {
 			}
 		}
 		CodexUser codexUser = codexUserMapper.selectOne(Wrappers.lambdaQuery(CodexUser.class).eq(CodexUser::getRelationId, claudeCodeUser.getRelationId()).in(CodexUser::getUserId, userIdList).last("limit 1"));
+		if (codexUser == null) {
+			//是否赠送codex
+			if (sku.getIsCodex()) {
+				CodexUserPackageReq codexPackageReq = CodexUserPackageReq.builder()
+						.userId(claudeCodeUser.getUserId())
+						.relationId(claudeCodeUser.getRelationId())
+						.planName(sku.getCodexPlanName())
+						.openaiDailyLimit(sku.getOpenaiDailyLimit())
+						.openaiQuota(sku.getOpenaiQuota())
+						.expiryTime(claudeCodeUser.getExpiryTime()).build();
+				codexService.createOrUpdateUserPackage(codexPackageReq);
+			}
+		}
 		return ClaudeCodeUserInfoView.builder()
 				.planName(claudeCodeUser.getPlanName())
 				.relationId(claudeCodeUser.getRelationId())