using LiveForum.Code.Base; using LiveForum.Code.JwtInfrastructure; using LiveForum.IService.Cdk; using LiveForum.Model.Dto.Cdk; using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Mvc; namespace LiveForum.WebApi.Controllers { /// /// CDK激活相关接口 /// [Route("api/[controller]/[action]")] [ApiController] [Authorize] public class CdkController : ControllerBase { private readonly ICdkService _cdkService; private readonly JwtUserInfoModel _userInfoModel; /// /// 构造函数 /// /// CDK服务 /// 用户信息模型 public CdkController(ICdkService cdkService, JwtUserInfoModel userInfoModel) { _cdkService = cdkService; _userInfoModel = userInfoModel; } /// /// 检查CDK状态 /// GET /api/cdk/check-status /// /// CDK状态信息 [HttpGet] [ActionName("check-status")] public async Task> CheckStatus() { var userId = _userInfoModel.UserId; if (userId <= 0) { return new BaseResponse(ResponseCode.Unauthorized, "用户未登录"); } var status = await _cdkService.CheckCdkStatusAsync(userId); return new BaseResponse(status); } /// /// 激活CDK /// POST /api/cdk/activate /// /// 激活请求 /// 激活结果 [HttpPost] public async Task> Activate([FromBody] CdkActivateReq request) { var userId = _userInfoModel.UserId; if (userId <= 0) { return new BaseResponse(ResponseCode.Unauthorized, "用户未登录"); } if (request == null || string.IsNullOrWhiteSpace(request.Code)) { return new BaseResponse(ResponseCode.ParamError, "请输入有效 CDK"); } var result = await _cdkService.ActivateCdkAsync(userId, request.Code); // 根据结果返回不同的响应码 if (result == "CDK 激活成功") { return new BaseResponse(ResponseCode.Success, result); } else { return new BaseResponse(ResponseCode.ParamError, result); } } } }