zoujiajian hace 11 meses
padre
commit
4d9b1a1693

+ 2 - 2
netflix-dao/src/main/java/com/cyksj/model/views/CodexUserInfoView.java

@@ -18,9 +18,9 @@ import java.util.Date;
 public class CodexUserInfoView {
     
     /**
-     * 用户ID
+     * 套餐名
      */
-    private Long userId;
+    private String planName;
     
     /**
      * 每日预算上限

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

@@ -145,7 +145,7 @@ public class ClaudeCodeServiceImpl implements ClaudeCodeService {
 			//获取最新的claude code user
 			claudeCodeUser = claudeCodeUserMapper.selectOne(Wrappers.lambdaQuery(ClaudeCodeUser.class).eq(ClaudeCodeUser::getRelationId, relationId).last("limit 1"));
 			//生成claude code或更新用户套餐
-			ClaudeCodeResp codeUserPackage = createOrUpdateClaudeCodeUserPackage(relation.getUserId(), claudeCodeUser.getPlanName(), claudeCodeUser.getCodePoints(), claudeCodeUser.getCodeCreditRecovery(), claudeCodeUser.getExpiryTime(), sku);
+			ClaudeCodeResp codeUserPackage = createOrUpdateClaudeCodeUserPackage(relation.getUserId(), claudeCodeUser.getPlanName(), claudeCodeUser.getCodePoints(), claudeCodeUser.getCodeCreditRecovery(), claudeCodeUser.getExpiryTime(), claudeCodeUser.getRelationId(), sku);
 			if (!Constant.SUCCESS.equals(codeUserPackage.getMessage())) {
 				//重试更新code userInfo数据
 				setClaudeCodeUserRetryUpdateInfo(relationId);
@@ -362,7 +362,7 @@ public class ClaudeCodeServiceImpl implements ClaudeCodeService {
 		//是否需要重试更新 cladueCode userInfo信息
 		if (claudeCodeUser.getIsRetry()) {
 			try {
-				ClaudeCodeResp codeUserPackage = createOrUpdateClaudeCodeUserPackage(claudeCodeUser.getUserId(), claudeCodeUser.getPlanName(), claudeCodeUser.getCodePoints(), claudeCodeUser.getCodeCreditRecovery(), claudeCodeUser.getExpiryTime(), sku);
+				ClaudeCodeResp codeUserPackage = createOrUpdateClaudeCodeUserPackage(claudeCodeUser.getUserId(), claudeCodeUser.getPlanName(), claudeCodeUser.getCodePoints(), claudeCodeUser.getCodeCreditRecovery(), claudeCodeUser.getExpiryTime(), claudeCodeUser.getRelationId(), sku);
 				if (!Constant.SUCCESS.equals(codeUserPackage.getMessage())) {
 					claudeCodeUser.setIsRetry(Boolean.TRUE);
 					claudeCodeUserMapper.updateById(claudeCodeUser);
@@ -389,7 +389,8 @@ public class ClaudeCodeServiceImpl implements ClaudeCodeService {
 				.openaiQuota(codexUser != null ? codexUser.getOpenaiQuota() : null)
 				.build();
 	}
-	public ClaudeCodeResp createOrUpdateClaudeCodeUserPackage(Long userId, String planName, Integer codePoints, Integer codeCreditRecovery, Date expiryTime, GoodsDonSku sku) throws Exception {
+
+	public ClaudeCodeResp createOrUpdateClaudeCodeUserPackage(Long userId, String planName, Integer codePoints, Integer codeCreditRecovery, Date expiryTime, Long relationId, GoodsDonSku sku) throws Exception {
 		Map<String, Object> parmas = new HashMap<>();
 		parmas.put("plan_name", planName.replaceAll(";", ""));
 		parmas.put("credit_limit", codePoints);
@@ -403,17 +404,18 @@ public class ClaudeCodeServiceImpl implements ClaudeCodeService {
 		ClaudeCodeResp claudeCodeResp = executeClaudeCodePostApi(planUrl, Jsons.toJson(parmas));
 		if (!Constant.SUCCESS.equals(claudeCodeResp.getMessage())) {
 			log.info("用户claude code用户:{}套餐:{}创建或更新失败,info:{}", userId, planName, claudeCodeResp.getMessage());
-		}
-
-		//是否赠送codex
-		if (sku.getIsCodex()) {
-			CodexUserPackageReq codexPackageReq = CodexUserPackageReq.builder()
-					.userId(userId)
-					.planName(sku.getCodexPlanName())
-					.openaiDailyLimit(sku.getOpenaiDailyLimit())
-					.openaiQuota(sku.getOpenaiQuota())
-					.expiryTime(expiryTime).build();
-			codexService.createOrUpdateUserPackage(codexPackageReq);
+		} else {
+			//是否赠送codex
+			if (sku.getIsCodex()) {
+				CodexUserPackageReq codexPackageReq = CodexUserPackageReq.builder()
+						.userId(userId)
+						.relationId(relationId)
+						.planName(sku.getCodexPlanName())
+						.openaiDailyLimit(sku.getOpenaiDailyLimit())
+						.openaiQuota(sku.getOpenaiQuota())
+						.expiryTime(expiryTime).build();
+				codexService.createOrUpdateUserPackage(codexPackageReq);
+			}
 		}
 		return claudeCodeResp;
 	}
@@ -434,7 +436,7 @@ public class ClaudeCodeServiceImpl implements ClaudeCodeService {
 	@Override
 	public void updateClaudeCodeUserPackageInfo(ClaudeCodeUser claudeCodeUser, Date expiryTime, GoodsDonSku sku) {
 		try {
-			ClaudeCodeResp codeUserPackage = createOrUpdateClaudeCodeUserPackage(claudeCodeUser.getUserId(), claudeCodeUser.getPlanName(), claudeCodeUser.getCodePoints(), claudeCodeUser.getCodeCreditRecovery(), expiryTime, sku);
+			ClaudeCodeResp codeUserPackage = createOrUpdateClaudeCodeUserPackage(claudeCodeUser.getUserId(), claudeCodeUser.getPlanName(), claudeCodeUser.getCodePoints(), claudeCodeUser.getCodeCreditRecovery(), expiryTime, claudeCodeUser.getRelationId(), sku);
 			if (!Constant.SUCCESS.equals(codeUserPackage.getMessage())) {
 				//重试标记
 				claudeCodeUser.setIsRetry(Boolean.TRUE);

+ 1 - 7
netflix-service/src/main/java/com/cyksj/service/codex/impl/CodexServiceImpl.java

@@ -93,7 +93,7 @@ public class CodexServiceImpl implements CodexService {
 		}
 
 
-		return CodexUserInfoView.builder().userId(codexUser.getUserId()).openaiDailyLimit(codexUser.getOpenaiDailyLimit()).openaiQuota(codexUser.getOpenaiQuota()).relationId(codexUser.getRelationId()).claudeCodeInfo(claudeCodeInfo).build();
+		return CodexUserInfoView.builder().planName(codexUser.getPlanName()).openaiDailyLimit(codexUser.getOpenaiDailyLimit()).openaiQuota(codexUser.getOpenaiQuota()).relationId(codexUser.getRelationId()).claudeCodeInfo(claudeCodeInfo).build();
 	}
 
 	private CodexUserInfoView.ClaudeCodeInfo getClaudeCodeInfo(Long userId) {
@@ -118,12 +118,6 @@ public class CodexServiceImpl implements CodexService {
 		Integer openaiDailyLimit = req.getOpenaiDailyLimit();
 		Integer openaiQuota = req.getOpenaiQuota();
 		Long relationId = req.getRelationId();
-		try {
-			createOrUpdateCodexUserPackage(userId, planName, openaiDailyLimit, openaiQuota, expiryTime);
-		} catch (Exception e) {
-			setCodexUserRetryUpdateInfo(relationId);
-			return;
-		}
 		List<Long> userIdList = userBindRelationService.getRelationUserIdList(userId, null);
 		CodexUser existingCodexUser = Optional.ofNullable(codexUserMapper.selectOne(Wrappers.lambdaQuery(CodexUser.class).in(CodexUser::getUserId, userIdList).last("limit 1"))).orElse(new CodexUser());