zoujiajian 11 сар өмнө
parent
commit
17e1ad517a

+ 1 - 1
netflix-service/src/main/java/com/cyksj/service/claude/ClaudeCodeService.java

@@ -55,7 +55,7 @@ public interface ClaudeCodeService {
 
 	ClaudeCodeResp getUserBalance(Long userId) throws Exception;
 
-	ClaudeCodeResp getCreditsAnalytics(Long userId, String start, String end, Integer page, Integer limit, String order, String status, String model) throws Exception;
+	ClaudeCodeResp getCreditsAnalytics(Long userId, String start, String end, String tz, Integer page, Integer limit, String order, String type) throws Exception;
 
 	void invalidateUserCache(Long relationUserId);
 

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

@@ -271,7 +271,7 @@ public class ClaudeCodeServiceImpl implements ClaudeCodeService {
 	public ClaudeCodeResp getUserBalance(Long userId) throws Exception {
 		Long claudeCodeUserId = getClaudeCodeUserId(userId);
 		if (claudeCodeUserId != null) {
-			String url = String.format(Constant.CLAUDE_CODE_API_PREFIX + "adminapi/users/%s/claude/summary", claudeCodeUserId);
+			String url = String.format(Constant.CLAUDE_CODE_API_PREFIX + "api/users/%s/balance", claudeCodeUserId);
 			ClaudeCodeResp claudeCodeResp = executeClaudeCodeGetApi(url);
 			return claudeCodeResp;
 		}
@@ -279,7 +279,7 @@ public class ClaudeCodeServiceImpl implements ClaudeCodeService {
 	}
 
 	@Override
-	public ClaudeCodeResp getCreditsAnalytics(Long userId, String start, String end, Integer page, Integer limit, String order, String status, String model) throws Exception {
+	public ClaudeCodeResp getCreditsAnalytics(Long userId, String start, String end, String tz, Integer page, Integer limit, String order, String type) throws Exception {
 		Long claudeCodeUserId = getClaudeCodeUserId(userId);
 		if (start == null) {
 			DateTime now = DateTime.now();
@@ -287,7 +287,7 @@ public class ClaudeCodeServiceImpl implements ClaudeCodeService {
 			end = now.toString();
 		}
 		if (claudeCodeUserId != null) {
-			String url = String.format(Constant.CLAUDE_CODE_API_PREFIX + "/adminapi/users/%s/claude/requests?start=%s&end=%s&page=%s&page_size=%s&order=%s&status=%s&model=%s", claudeCodeUserId, start, end, page, limit, order, status, model);
+			String url = String.format(Constant.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);
 			ClaudeCodeResp claudeCodeResp = executeClaudeCodeGetApi(url);
 			return claudeCodeResp;
 		}

+ 3 - 3
netflix-web/src/main/java/com/cyksj/web/controller/claude/ClaudeCodeController.java

@@ -198,7 +198,7 @@ public class ClaudeCodeController {
 	}
 
 	/**
-	 * 获取Claude请求明细
+	 * 图表 + 明细联动(每小时聚合)
 	 * - `start` (string, required): `YYYY-MM-DD HH:MM:SS`,例如 `2025-08-08 12:00:00`
 	 * - `end` (string, required): `YYYY-MM-DD HH:MM:SS`,需大于 `start`
 	 * - `tz` (string, optional): 时区,默认 `Asia/Shanghai`
@@ -208,9 +208,9 @@ public class ClaudeCodeController {
 	 * - `type` (string, optional): 明细类型过滤,`consume|purchase|recovery|refund|reward|adjustment|all`,默认 `all`
 	 */
 	@GetMapping("/get/credits/analytics")
-	public ClaudeCodeResp getCreditsAnalytics(String start, String end, @RequestParam(defaultValue = "1") Integer page, @RequestParam(defaultValue = "10") Integer limit, @RequestParam(defaultValue = "desc") String order, String status, String model) throws Exception {
+	public ClaudeCodeResp getCreditsAnalytics(String start, String end, @RequestParam(defaultValue = "Asia/Shanghai") String tz, @RequestParam(defaultValue = "1") Integer page, @RequestParam(defaultValue = "10") Integer limit, @RequestParam(defaultValue = "desc") String order, @RequestParam(defaultValue = "all") String type) throws Exception {
 		long userId = StpUserUtil.getLoginIdAsLong();
-		ClaudeCodeResp resp = claudeCodeService.getCreditsAnalytics(userId, start, end, page, limit, order, status, model);
+		ClaudeCodeResp resp = claudeCodeService.getCreditsAnalytics(userId, start, end, tz, page, limit, order, type);
 		return resp;
 	}