package com.cyksj.web.controller.codex; import com.cyksj.dto.Result; import com.cyksj.enums.GatewayResponse; import com.cyksj.model.request.UpdateDailyLimitRequest; import com.cyksj.model.response.claudecode.ClaudeCodeResp; import com.cyksj.model.views.CodexUserInfoView; import com.cyksj.service.codex.CodexService; import com.cyksj.web.util.StpUserUtil; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springframework.web.bind.annotation.*; /** * server/codex * 项目名: yhlxj11111111 * 文件名: CodexController * 创建者: Claude * 创建时间:2025/9/15 */ @Slf4j @RestController @RequestMapping("/applet/codex") @RequiredArgsConstructor public class CodexController { private final CodexService codexService; /** * 获取用户Codex信息 */ @GetMapping("/info") public Result getCodexUserInfo() { long userId = StpUserUtil.getLoginIdAsLong(); CodexUserInfoView codexUserInfoView = codexService.getCodexUserInfo(userId); return GatewayResponse.SUCCESS.newBuilder().toResult(codexUserInfoView); } /** * 获取用户OpenAI使用统计 * period 时间周期(today/7d/30d) */ @GetMapping("/users/usage") public ClaudeCodeResp getUserOpenAIUsage(@RequestParam(defaultValue = "today") String period) { long userId = StpUserUtil.getLoginIdAsLong(); ClaudeCodeResp claudeCodeResp = codexService.getUserOpenAIUsage(userId, period); return claudeCodeResp; } /** * 更新用户OpenAI每日美金限额 */ @PostMapping("/users/daily-limit") public Result updateUserOpenAIDailyLimit(@RequestBody UpdateDailyLimitRequest request) { // 验证请求用户是否为当前登录用户或有权限访问 long userId = StpUserUtil.getLoginIdAsLong(); ClaudeCodeResp response = codexService.updateUserOpenAIDailyLimit(userId, request); return GatewayResponse.SUCCESS.newBuilder().toResult(response); } /** * 用户OpenAI控制台数据 (Java系统专用接口) */ @GetMapping("/api/openai/users/dashboard") public ClaudeCodeResp getJavaUserDashboard() { long userId = StpUserUtil.getLoginIdAsLong(); ClaudeCodeResp dashboard = codexService.getJavaUserDashboard(userId); return dashboard; } /** * 用户OpenAI图表+明细联动 (Java系统专用接口) */ @GetMapping("/api/openai/users/analytics") public ClaudeCodeResp getJavaUserAnalytics() { long userId = StpUserUtil.getLoginIdAsLong(); ClaudeCodeResp analytics = codexService.getJavaUserAnalytics(userId); return analytics; } }