|
@@ -102,10 +102,10 @@ public class ClaudeCodeServiceImpl implements ClaudeCodeService {
|
|
|
if (orderType == 2) {
|
|
if (orderType == 2) {
|
|
|
invalidateUserCache(relationUserId);
|
|
invalidateUserCache(relationUserId);
|
|
|
}
|
|
}
|
|
|
- generateOrUpdateClaudeCodeUser(relationUserId, relationId, codePoints, codeCreditRecovery, expiryTime, isUpgrade, skuId, renewExpiryTime);
|
|
|
|
|
|
|
+ generateOrUpdateClaudeCodeUser(relationUserId, relationId, codePoints, codeCreditRecovery, expiryTime, isUpgrade, orderId, skuId, renewExpiryTime);
|
|
|
//生成claude code或更新用户套餐
|
|
//生成claude code或更新用户套餐
|
|
|
ClaudeCodeResp codeUserPackage = createOrUpdateClaudeCodeUserPackage(relation.getUserId(), sku.getSpecVal(), codePoints, codeCreditRecovery, expiryTime);
|
|
ClaudeCodeResp codeUserPackage = createOrUpdateClaudeCodeUserPackage(relation.getUserId(), sku.getSpecVal(), codePoints, codeCreditRecovery, expiryTime);
|
|
|
- if (!codeUserPackage.getSuccess()) {
|
|
|
|
|
|
|
+ if (!Constant.SUCCESS.equals(codeUserPackage.getMessage())) {
|
|
|
log.info("更新 claude code 用户:{}套餐数据失败", userId);
|
|
log.info("更新 claude code 用户:{}套餐数据失败", userId);
|
|
|
//重试更新code userInfo数据
|
|
//重试更新code userInfo数据
|
|
|
setClaudeCodeUserRetryUpdateInfo(relationId);
|
|
setClaudeCodeUserRetryUpdateInfo(relationId);
|
|
@@ -117,7 +117,7 @@ public class ClaudeCodeServiceImpl implements ClaudeCodeService {
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
- private void generateOrUpdateClaudeCodeUser(Long relationUserId, Long relationId, Integer codePoints, Integer codeCreditRecovery, Date expiryTime, Boolean isUpgrade, Long renewSkuId, Date renewExpiryTime) {
|
|
|
|
|
|
|
+ private void generateOrUpdateClaudeCodeUser(Long relationUserId, Long relationId, Integer codePoints, Integer codeCreditRecovery, Date expiryTime, Boolean isUpgrade, Long orderId, Long renewSkuId, Date renewExpiryTime) {
|
|
|
ClaudeCodeUser claudeCodeUser = claudeCodeUserMapper.selectOne(Wrappers.lambdaQuery(ClaudeCodeUser.class).eq(ClaudeCodeUser::getRelationId, relationId).last("limit 1"));
|
|
ClaudeCodeUser claudeCodeUser = claudeCodeUserMapper.selectOne(Wrappers.lambdaQuery(ClaudeCodeUser.class).eq(ClaudeCodeUser::getRelationId, relationId).last("limit 1"));
|
|
|
if (claudeCodeUser == null) {
|
|
if (claudeCodeUser == null) {
|
|
|
claudeCodeUser = new ClaudeCodeUser();
|
|
claudeCodeUser = new ClaudeCodeUser();
|
|
@@ -128,6 +128,7 @@ public class ClaudeCodeServiceImpl implements ClaudeCodeService {
|
|
|
claudeCodeUser.setCodeCreditRecovery(codeCreditRecovery);
|
|
claudeCodeUser.setCodeCreditRecovery(codeCreditRecovery);
|
|
|
}
|
|
}
|
|
|
if (isUpgrade) {
|
|
if (isUpgrade) {
|
|
|
|
|
+ claudeCodeUser.setRenewOrderId(orderId);
|
|
|
claudeCodeUser.setRenewSkuId(renewSkuId);
|
|
claudeCodeUser.setRenewSkuId(renewSkuId);
|
|
|
claudeCodeUser.setRenewExpiryTime(renewExpiryTime);
|
|
claudeCodeUser.setRenewExpiryTime(renewExpiryTime);
|
|
|
}
|
|
}
|
|
@@ -155,7 +156,7 @@ public class ClaudeCodeServiceImpl implements ClaudeCodeService {
|
|
|
}
|
|
}
|
|
|
String responseBody = executeClaudeCodePostApi(apiKeyUrl, parmas.toString());
|
|
String responseBody = executeClaudeCodePostApi(apiKeyUrl, parmas.toString());
|
|
|
ClaudeCodeResp claudeCodeResp = Jsons.parseObject(responseBody, ClaudeCodeResp.class);
|
|
ClaudeCodeResp claudeCodeResp = Jsons.parseObject(responseBody, ClaudeCodeResp.class);
|
|
|
- if (!claudeCodeResp.getSuccess()) {
|
|
|
|
|
|
|
+ if (!Constant.SUCCESS.equals(claudeCodeResp.getMessage())) {
|
|
|
throw BusinessRuntimeException.getInstance("创建失败");
|
|
throw BusinessRuntimeException.getInstance("创建失败");
|
|
|
}
|
|
}
|
|
|
return claudeCodeResp;
|
|
return claudeCodeResp;
|
|
@@ -177,7 +178,7 @@ public class ClaudeCodeServiceImpl implements ClaudeCodeService {
|
|
|
parmas.put("status", status);
|
|
parmas.put("status", status);
|
|
|
String responseBody = executeClaudeCodePostApi(apiKeyUrl, parmas.toString());
|
|
String responseBody = executeClaudeCodePostApi(apiKeyUrl, parmas.toString());
|
|
|
ClaudeCodeResp claudeCodeResp = Jsons.parseObject(responseBody, ClaudeCodeResp.class);
|
|
ClaudeCodeResp claudeCodeResp = Jsons.parseObject(responseBody, ClaudeCodeResp.class);
|
|
|
- if (claudeCodeResp.getSuccess()) {
|
|
|
|
|
|
|
+ if (!Constant.SUCCESS.equals(claudeCodeResp.getMessage())) {
|
|
|
//更新用户apikey缓存
|
|
//更新用户apikey缓存
|
|
|
updateUserApiKeysCache(keyValue);
|
|
updateUserApiKeysCache(keyValue);
|
|
|
}
|
|
}
|
|
@@ -230,7 +231,7 @@ public class ClaudeCodeServiceImpl implements ClaudeCodeService {
|
|
|
String url = String.format(CLAUDE_CODE_API_PREFIX + "api/users/%s/plan", claudeCodeUserId);
|
|
String url = String.format(CLAUDE_CODE_API_PREFIX + "api/users/%s/plan", claudeCodeUserId);
|
|
|
String responseBody = executeClaudeCodeGetApi(url);
|
|
String responseBody = executeClaudeCodeGetApi(url);
|
|
|
ClaudeCodeResp claudeCodeResp = Jsons.parseObject(responseBody, ClaudeCodeResp.class);
|
|
ClaudeCodeResp claudeCodeResp = Jsons.parseObject(responseBody, ClaudeCodeResp.class);
|
|
|
- if (claudeCodeResp.getSuccess()) {
|
|
|
|
|
|
|
+ if (!Constant.SUCCESS.equals(claudeCodeResp.getMessage())) {
|
|
|
return Jsons.parseObject(responseBody, ClaudeCodeUserPackageView.class);
|
|
return Jsons.parseObject(responseBody, ClaudeCodeUserPackageView.class);
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
@@ -331,7 +332,7 @@ public class ClaudeCodeServiceImpl implements ClaudeCodeService {
|
|
|
if (claudeCodeUser.getIsRetry()) {
|
|
if (claudeCodeUser.getIsRetry()) {
|
|
|
try {
|
|
try {
|
|
|
ClaudeCodeResp codeUserPackage = createOrUpdateClaudeCodeUserPackage(claudeCodeUser.getUserId(), specVal, claudeCodeUser.getCodePoints(), claudeCodeUser.getCodeCreditRecovery(), claudeCodeUser.getExpiryTime());
|
|
ClaudeCodeResp codeUserPackage = createOrUpdateClaudeCodeUserPackage(claudeCodeUser.getUserId(), specVal, claudeCodeUser.getCodePoints(), claudeCodeUser.getCodeCreditRecovery(), claudeCodeUser.getExpiryTime());
|
|
|
- if (codeUserPackage.getSuccess()) {
|
|
|
|
|
|
|
+ if (!Constant.SUCCESS.equals(codeUserPackage.getMessage())) {
|
|
|
claudeCodeUser.setIsRetry(Boolean.FALSE);
|
|
claudeCodeUser.setIsRetry(Boolean.FALSE);
|
|
|
claudeCodeUserMapper.updateById(claudeCodeUser);
|
|
claudeCodeUserMapper.updateById(claudeCodeUser);
|
|
|
}
|
|
}
|
|
@@ -359,7 +360,7 @@ public class ClaudeCodeServiceImpl implements ClaudeCodeService {
|
|
|
String planUrl = String.format(CLAUDE_CODE_API_PREFIX + "api/users/%s/plan", userId);
|
|
String planUrl = String.format(CLAUDE_CODE_API_PREFIX + "api/users/%s/plan", userId);
|
|
|
String responseBody = executeClaudeCodePostApi(planUrl, parmas.toString());
|
|
String responseBody = executeClaudeCodePostApi(planUrl, parmas.toString());
|
|
|
ClaudeCodeResp claudeCodeResp = Jsons.parseObject(responseBody, ClaudeCodeResp.class);
|
|
ClaudeCodeResp claudeCodeResp = Jsons.parseObject(responseBody, ClaudeCodeResp.class);
|
|
|
- if (claudeCodeResp.getSuccess()) {
|
|
|
|
|
|
|
+ if (!Constant.SUCCESS.equals(claudeCodeResp.getMessage())) {
|
|
|
log.info("用户claude code用户:{}套餐:{}创建或更新成功", userId, planName);
|
|
log.info("用户claude code用户:{}套餐:{}创建或更新成功", userId, planName);
|
|
|
}
|
|
}
|
|
|
return claudeCodeResp;
|
|
return claudeCodeResp;
|
|
@@ -378,6 +379,21 @@ public class ClaudeCodeServiceImpl implements ClaudeCodeService {
|
|
|
return count > 0;
|
|
return count > 0;
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
+ @Override
|
|
|
|
|
+ public void updateClaudeCodeUserPackageInfo(ClaudeCodeUser claudeCodeUser, String planName) {
|
|
|
|
|
+ try {
|
|
|
|
|
+ ClaudeCodeResp codeUserPackage = createOrUpdateClaudeCodeUserPackage(claudeCodeUser.getUserId(), planName, claudeCodeUser.getCodePoints(), claudeCodeUser.getCodeCreditRecovery(), claudeCodeUser.getExpiryTime());
|
|
|
|
|
+ if (!Constant.SUCCESS.equals(codeUserPackage.getMessage())) {
|
|
|
|
|
+ //重试标记
|
|
|
|
|
+ claudeCodeUser.setIsRetry(Boolean.TRUE);
|
|
|
|
|
+ claudeCodeUserMapper.updateById(claudeCodeUser);
|
|
|
|
|
+ }
|
|
|
|
|
+ } catch (Exception e) {
|
|
|
|
|
+ claudeCodeUser.setIsRetry(Boolean.TRUE);
|
|
|
|
|
+ claudeCodeUserMapper.updateById(claudeCodeUser);
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
/**
|
|
/**
|
|
|
* 获取claude code用户id
|
|
* 获取claude code用户id
|
|
|
*/
|
|
*/
|