|
|
@@ -165,8 +165,7 @@ public class ClaudeCodeServiceImpl implements ClaudeCodeService {
|
|
|
if (expiresDays != null) {
|
|
|
parmas.put("expires_days", expiresDays);
|
|
|
}
|
|
|
- String responseBody = executeClaudeCodePostApi(apiKeyUrl, Jsons.toJson(parmas));
|
|
|
- ClaudeCodeResp claudeCodeResp = Jsons.parseObject(responseBody, ClaudeCodeResp.class);
|
|
|
+ ClaudeCodeResp claudeCodeResp = executeClaudeCodePostApi(apiKeyUrl, Jsons.toJson(parmas));
|
|
|
if (!Constant.SUCCESS.equals(claudeCodeResp.getMessage())) {
|
|
|
throw BusinessRuntimeException.getInstance("创建失败");
|
|
|
}
|
|
|
@@ -197,8 +196,7 @@ public class ClaudeCodeServiceImpl implements ClaudeCodeService {
|
|
|
Long claudeCodeUserId = getClaudeCodeUserId(userId);
|
|
|
if (claudeCodeUserId != null) {
|
|
|
String url = String.format(CLAUDE_CODE_API_PREFIX + "api/users/%s/keys", claudeCodeUserId);
|
|
|
- String responseBody = executeClaudeCodeGetApi(url);
|
|
|
- ClaudeCodeResp claudeCodeResp = Jsons.parseObject(responseBody, ClaudeCodeResp.class);
|
|
|
+ ClaudeCodeResp claudeCodeResp = executeClaudeCodeGetApi(url);
|
|
|
return Jsons.parseList(claudeCodeResp.getData(), ClaudeCodeUserApiKeysView.class);
|
|
|
}
|
|
|
return null;
|
|
|
@@ -209,8 +207,7 @@ public class ClaudeCodeServiceImpl implements ClaudeCodeService {
|
|
|
Long claudeCodeUserId = getClaudeCodeUserId(userId);
|
|
|
if (claudeCodeUserId != null) {
|
|
|
String url = String.format(CLAUDE_CODE_API_PREFIX + "api/users/%s/credits/history?page=%s&limit=%s&type=%s", claudeCodeUserId, page, limit, type);
|
|
|
- String responseBody = executeClaudeCodeGetApi(url);
|
|
|
- ClaudeCodeResp claudeCodeResp = Jsons.parseObject(responseBody, ClaudeCodeResp.class);
|
|
|
+ ClaudeCodeResp claudeCodeResp = executeClaudeCodeGetApi(url);
|
|
|
ClaudeCodePointsHistoryResp historyResp = Jsons.parseObject(claudeCodeResp.getData(), ClaudeCodePointsHistoryResp.class);
|
|
|
return historyResp;
|
|
|
}
|
|
|
@@ -222,8 +219,7 @@ public class ClaudeCodeServiceImpl implements ClaudeCodeService {
|
|
|
Long claudeCodeUserId = getClaudeCodeUserId(userId);
|
|
|
if (claudeCodeUserId != null) {
|
|
|
String url = String.format(CLAUDE_CODE_API_PREFIX + "api/users/%s/dashboard", claudeCodeUserId);
|
|
|
- String responseBody = executeClaudeCodeGetApi(url);
|
|
|
- ClaudeCodeResp claudeCodeResp = Jsons.parseObject(responseBody, ClaudeCodeResp.class);
|
|
|
+ ClaudeCodeResp claudeCodeResp = executeClaudeCodeGetApi(url);
|
|
|
return claudeCodeResp;
|
|
|
}
|
|
|
return null;
|
|
|
@@ -234,8 +230,7 @@ public class ClaudeCodeServiceImpl implements ClaudeCodeService {
|
|
|
Long claudeCodeUserId = getClaudeCodeUserId(userId);
|
|
|
if (claudeCodeUserId != null) {
|
|
|
String url = String.format(CLAUDE_CODE_API_PREFIX + "api/users/%s/balance", claudeCodeUserId);
|
|
|
- String responseBody = executeClaudeCodeGetApi(url);
|
|
|
- ClaudeCodeResp claudeCodeResp = Jsons.parseObject(responseBody, ClaudeCodeResp.class);
|
|
|
+ ClaudeCodeResp claudeCodeResp = executeClaudeCodeGetApi(url);
|
|
|
return claudeCodeResp;
|
|
|
}
|
|
|
return null;
|
|
|
@@ -251,8 +246,7 @@ public class ClaudeCodeServiceImpl implements ClaudeCodeService {
|
|
|
}
|
|
|
if (claudeCodeUserId != null) {
|
|
|
String url = String.format(CLAUDE_CODE_API_PREFIX + "api/users/%s/credits/analytics?start=%s&end=%s&tz=%s&page=%s&limit=%s&order=%s&type=%s", claudeCodeUserId, start, end, tz, page, limit, order, type);
|
|
|
- String responseBody = executeClaudeCodeGetApi(url);
|
|
|
- ClaudeCodeResp claudeCodeResp = Jsons.parseObject(responseBody, ClaudeCodeResp.class);
|
|
|
+ ClaudeCodeResp claudeCodeResp = executeClaudeCodeGetApi(url);
|
|
|
return claudeCodeResp;
|
|
|
}
|
|
|
return null;
|
|
|
@@ -340,8 +334,7 @@ public class ClaudeCodeServiceImpl implements ClaudeCodeService {
|
|
|
parmas.put("credit_recovery", codeCreditRecovery);
|
|
|
parmas.put("expire_time", DateUtil.format(expiryTime,"yyyy-MM-dd HH:mm:ss"));
|
|
|
String planUrl = String.format(CLAUDE_CODE_API_PREFIX + "api/users/%s/plan", userId);
|
|
|
- String responseBody = executeClaudeCodePostApi(planUrl, Jsons.toJson(parmas));
|
|
|
- ClaudeCodeResp claudeCodeResp = Jsons.parseObject(responseBody, ClaudeCodeResp.class);
|
|
|
+ ClaudeCodeResp claudeCodeResp = executeClaudeCodePostApi(planUrl, Jsons.toJson(parmas));
|
|
|
if (!Constant.SUCCESS.equals(claudeCodeResp.getMessage())) {
|
|
|
log.info("用户claude code用户:{}套餐:{}创建或更新失败,info:{}", userId, planName, claudeCodeResp.getMessage());
|
|
|
}
|
|
|
@@ -398,8 +391,7 @@ public class ClaudeCodeServiceImpl implements ClaudeCodeService {
|
|
|
parmas.put("type", type);
|
|
|
String url = String.format(CLAUDE_CODE_API_PREFIX + "/api/users/%s/credits/adjust", userId);
|
|
|
try {
|
|
|
- String responseBody = executeClaudeCodePostApi(url, Jsons.toJson(parmas));
|
|
|
- ClaudeCodeResp claudeCodeResp = Jsons.parseObject(responseBody, ClaudeCodeResp.class);
|
|
|
+ ClaudeCodeResp claudeCodeResp = executeClaudeCodePostApi(url, Jsons.toJson(parmas));
|
|
|
if (!Constant.SUCCESS.equals(claudeCodeResp.getMessage())) {
|
|
|
log.error("变更用户:{}积分记录失败", userId);
|
|
|
}
|
|
|
@@ -412,8 +404,7 @@ public class ClaudeCodeServiceImpl implements ClaudeCodeService {
|
|
|
public Boolean delUserPackages(Long userId) {
|
|
|
String url = String.format(CLAUDE_CODE_API_PREFIX + "api/users/%s/plan", userId);
|
|
|
try {
|
|
|
- String responseBody = executeClaudeCodeDeletedApi(url);
|
|
|
- ClaudeCodeResp claudeCodeResp = Jsons.parseObject(responseBody, ClaudeCodeResp.class);
|
|
|
+ ClaudeCodeResp claudeCodeResp = executeClaudeCodeDeletedApi(url);
|
|
|
if (!Constant.SUCCESS.equals(claudeCodeResp.getMessage())) {
|
|
|
log.error("删除用户:{} claude code套餐失败:{}", userId, claudeCodeResp.getMessage());
|
|
|
return Boolean.FALSE;
|
|
|
@@ -444,8 +435,8 @@ public class ClaudeCodeServiceImpl implements ClaudeCodeService {
|
|
|
/**
|
|
|
* claude code GET请求
|
|
|
*/
|
|
|
- public String executeClaudeCodeGetApi(String url) {
|
|
|
- Retryer<String> build = getApiRetryer(1, 3);
|
|
|
+ public ClaudeCodeResp executeClaudeCodeGetApi(String url) {
|
|
|
+ Retryer<ClaudeCodeResp> build = getApiRetryer(1, 3);
|
|
|
try {
|
|
|
return build.call(() -> {
|
|
|
try {
|
|
|
@@ -453,7 +444,9 @@ public class ClaudeCodeServiceImpl implements ClaudeCodeService {
|
|
|
.header("X-Admin-Key", CLAUDE_CODE_API_ADMIN_KEY)
|
|
|
.setConnectionTimeout(CONNECT_MILLISECONDS)
|
|
|
.execute();
|
|
|
- return execute.body();
|
|
|
+ ClaudeCodeResp resp = Jsons.parseObject(execute.body(), ClaudeCodeResp.class);
|
|
|
+ log.info("claude code GET URL:{}接口返回msg:{}", url, resp.getMessage());
|
|
|
+ return resp;
|
|
|
} catch (HttpException e) {
|
|
|
return null;
|
|
|
}
|
|
|
@@ -468,8 +461,8 @@ public class ClaudeCodeServiceImpl implements ClaudeCodeService {
|
|
|
/**
|
|
|
* claude code Post请求
|
|
|
*/
|
|
|
- public String executeClaudeCodePostApi(String url, String body) {
|
|
|
- Retryer<String> build = getApiRetryer(1, 3);
|
|
|
+ public ClaudeCodeResp executeClaudeCodePostApi(String url, String body) {
|
|
|
+ Retryer<ClaudeCodeResp> build = getApiRetryer(1, 3);
|
|
|
try {
|
|
|
return build.call(() -> {
|
|
|
try {
|
|
|
@@ -478,7 +471,9 @@ public class ClaudeCodeServiceImpl implements ClaudeCodeService {
|
|
|
.setConnectionTimeout(CONNECT_MILLISECONDS)
|
|
|
.body(body)
|
|
|
.execute();
|
|
|
- return execute.body();
|
|
|
+ ClaudeCodeResp resp = Jsons.parseObject(execute.body(), ClaudeCodeResp.class);
|
|
|
+ log.info("claude code POST URL:{}接口返回msg:{}", url, resp.getMessage());
|
|
|
+ return resp;
|
|
|
} catch (Exception e) {
|
|
|
return null;
|
|
|
}
|
|
|
@@ -492,13 +487,15 @@ public class ClaudeCodeServiceImpl implements ClaudeCodeService {
|
|
|
/**
|
|
|
* claude code DELETE请求
|
|
|
*/
|
|
|
- public String executeClaudeCodeDeletedApi(String url) {
|
|
|
- Retryer<String> build = getApiRetryer(1, 3);
|
|
|
+ public ClaudeCodeResp executeClaudeCodeDeletedApi(String url) {
|
|
|
+ Retryer<ClaudeCodeResp> build = getApiRetryer(1, 3);
|
|
|
try {
|
|
|
return build.call(() -> {
|
|
|
try {
|
|
|
HttpResponse execute = HttpUtil.createRequest(Method.DELETE, url).header("X-Admin-Key", CLAUDE_CODE_API_ADMIN_KEY).setConnectionTimeout(CONNECT_MILLISECONDS).execute();
|
|
|
- return execute.body();
|
|
|
+ ClaudeCodeResp resp = Jsons.parseObject(execute.body(), ClaudeCodeResp.class);
|
|
|
+ log.info("claude code DELETE URL:{}接口返回msg:{}", url, resp.getMessage());
|
|
|
+ return resp;
|
|
|
} catch (HttpException e) {
|
|
|
return null;
|
|
|
}
|
|
|
@@ -534,7 +531,7 @@ public class ClaudeCodeServiceImpl implements ClaudeCodeService {
|
|
|
}
|
|
|
|
|
|
public Retryer getApiRetryer(Integer sleepSecond, Integer attemptNum) {
|
|
|
- Retryer<String> build = RetryerBuilder.<String>newBuilder()
|
|
|
+ Retryer build = RetryerBuilder.newBuilder()
|
|
|
.retryIfException()
|
|
|
//运行时异常重试
|
|
|
.retryIfRuntimeException()
|