using BBWYB.Server.Business; using BBWYB.Server.Model; using BBWYB.Server.Model.Dto; using Microsoft.AspNetCore.Authentication.JwtBearer; using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Mvc; namespace BBWYB.Server.API.Controllers { /// <summary> /// 限时任务 /// </summary> [Authorize(AuthenticationSchemes = JwtBearerDefaults.AuthenticationScheme)] public class TimeLimitTaskController : BaseApiController { private TimeLimitTaskBusiness timeLimitTaskBusiness; public TimeLimitTaskController(IHttpContextAccessor httpContextAccessor, TimeLimitTaskBusiness timeLimitTaskBusiness) : base(httpContextAccessor) { this.timeLimitTaskBusiness = timeLimitTaskBusiness; } /// <summary> /// 检查任务过期(自动任务,前端无需对接) /// </summary> [HttpPost] [AllowAnonymous] public void CheckTask() { timeLimitTaskBusiness.CheckTask(); } /// <summary> /// 修复订单缺失的待核算任务 /// </summary> [HttpPost] [AllowAnonymous] public void RepairOrderComputationTask() { timeLimitTaskBusiness.RepairOrderComputationTask(); } /// <summary> /// 查询限时任务列表 /// </summary> /// <param name="request"></param> /// <returns></returns> [HttpPost] public TimeLimitTaskListResponse QueryTimeLimitTask([FromBody] QueryTimeLimitTaskRequest request) { return timeLimitTaskBusiness.QueryTimeLimitTask(request); } /// <summary> /// 限时任务统计 /// </summary> /// <param name="request"></param> /// <returns></returns> [HttpPost] public IList<TimeLimitTaskStatisticsResponse> TimeOutStatistics([FromBody] QueryTimeOutRequest request) { return timeLimitTaskBusiness.TimeOutStatistics(request); } /// <summary> /// 修改备注 /// </summary> /// <param name="request"></param> [HttpPost] public void EditTimeLimitTaskRemark([FromBody] EditTimeLimitTaskRemarkRequest request) { timeLimitTaskBusiness.EditTimeLimitTaskRemark(request); } /// <summary> /// 测试计算过期时间 /// </summary> /// <param name="timeLimitTaskType"></param> /// <param name="startTime">起点时间</param> [HttpGet] [AllowAnonymous] public DateTime TestExpireTime([FromQuery] Enums.TimeLimitTaskType timeLimitTaskType, [FromQuery] DateTime startTime) { return timeLimitTaskBusiness.TestExpireTime(timeLimitTaskType, startTime); } /// <summary> /// 测试计算剩余时间 /// </summary> /// <param name="expireTime"></param> /// <returns></returns> [HttpGet] [AllowAnonymous] public (long, TimeSpan) TextLessTime([FromQuery] DateTime expireTime) { return timeLimitTaskBusiness.TextLessTime(expireTime); } } }