using LiveForum.Code.Base; using LiveForum.Code.JwtInfrastructure; using LiveForum.IService.Cdk; using LiveForum.IService.Flowers; using LiveForum.IService.Permission; using LiveForum.Model.Dto.Flowers; using LiveForum.Model.Enum; using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Http; using Microsoft.AspNetCore.Mvc; namespace LiveForum.WebApi.Controllers { /// /// 送花相关接口 /// [Route("api/[controller]/[action]")] [ApiController] public class FlowersController : ControllerBase { private readonly IFlowersService _flowersService; private readonly ICdkService _cdkService; private readonly IPermissionService _permissionService; private readonly JwtUserInfoModel _userInfoModel; /// /// 构造函数 /// public FlowersController(IFlowersService flowersService, ICdkService cdkService, IPermissionService permissionService, JwtUserInfoModel userInfoModel) { _flowersService = flowersService; _cdkService = cdkService; _permissionService = permissionService; _userInfoModel = userInfoModel; } /// /// 送花 /// /// 请求参数 /// [HttpPost] [Authorize] public async Task> SendFlower([FromBody] SendFlowerReq request) { var userId = _userInfoModel.UserId; // 权限校验:送花权限 await _permissionService.CheckPermissionAsync(userId, PermissionType.Flower); // CDK激活检查 if (await _cdkService.RequiresCdkActivationAsync(userId)) { return new BaseResponse(ResponseCode.CdkNotActivated, "需要激活 CDK"); } return await _flowersService.SendFlower(request); } } }