package com.cyksj.web.controller.recharge; import com.cyksj.dto.Result; import com.cyksj.enums.GatewayResponse; import com.cyksj.model.request.GroupsRelationRechargeReq; import com.cyksj.server.recharge.GptProxyRechargeService; import com.cyksj.server.recharge.dto.CardKeyValidationResult; import com.cyksj.server.recharge.dto.TaskResult; import com.cyksj.server.recharge.dto.TaskSubmitResult; import com.cyksj.server.recharge.dto.TokenParseResult; import com.cyksj.web.controller.recharge.req.ParseTokenRequest; import com.cyksj.web.controller.recharge.req.SubmitTaskRequest; import com.cyksj.web.controller.recharge.req.ValidateCardRequest; import com.cyksj.web.util.StpUserUtil; import lombok.RequiredArgsConstructor; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; /** * server/GPT代理充值控制器 */ @RestController @RequestMapping("/gpt-recharge") @RequiredArgsConstructor @CrossOrigin(origins = "*") public class GptRechargeController { private final GptProxyRechargeService gptProxyRechargeService; /** * 验证卡密 */ @PostMapping("/validate-card") public CardKeyValidationResult validateCard(@RequestBody ValidateCardRequest request) { return gptProxyRechargeService.validateCardKey(request.getCardKey()); } /** * 验证凭证 */ @PostMapping("/parse-token") public TokenParseResult parseToken(@RequestBody ParseTokenRequest request) { return gptProxyRechargeService.parseToken(request.getAccessToken()); } /** * 用户确认充值 */ @PostMapping("/confirm") public Result confirmRecharge(@RequestBody @Validated GroupsRelationRechargeReq req) { long userId = StpUserUtil.getLoginIdAsLong(); req.setUserId(userId); String taskId = gptProxyRechargeService.confirmRecharge(req); return GatewayResponse.SUCCESS.newBuilder().toResult(taskId); } /** * 提交任务 */ @PostMapping("/submit-task") public TaskSubmitResult submitTask(@RequestBody SubmitTaskRequest request) { return gptProxyRechargeService.submitTask( request.getCardKey(), request.getAccessToken(), request.getIdp() ); } /** * 查询任务状态 */ @GetMapping("/task-status/{taskId}") public TaskResult getTaskStatus(@PathVariable String taskId) { return gptProxyRechargeService.getTaskResult(taskId); } }