using Exam.Application.Interface.Questions; using Exam.Infrastructure.Data.Entity; using Exam.Share.ViewResponses.Question; using Hotline.Application.Exam.Constants.ApiRoutes; using Hotline.Repository.SqlSugar.Entitys; using Hotline.Share.Dtos.Questions; using Hotline.Share.Requests.Question; using MapsterMapper; using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Mvc; namespace Hotline.Api.Controllers.Exam { public class QuestionController : BaseController { private readonly IQuestionService _questionService; private readonly IMapper _mapper; public QuestionController(IQuestionService questionService,IMapper mapper) { _questionService = questionService; this._mapper = mapper; } /// /// 新增题库 /// /// /// [HttpPost(QuestionApiRoute.Add)] public async Task Add([FromBody] AddQuestionDto questionDto) { await _questionService.AddAsync(questionDto, HttpContext.RequestAborted); } /// /// 修改题库 /// /// /// [HttpPut(QuestionApiRoute.Update)] public async Task Update([FromBody] UpdateQuestionDto questionDto) { await _questionService.UpdateAsync(questionDto, HttpContext.RequestAborted); } /// /// 删除题库 /// /// /// [HttpDelete(QuestionApiRoute.Delete)] public async Task Delete([FromBody] EntityQueryRequest entityQueryRequest) { await _questionService.DeleteAsync(entityQueryRequest, HttpContext.RequestAborted); } /// /// 获取题库分页列表 /// /// /// [HttpPost(QuestionApiRoute.GetPagedList)] public async Task GetPagedList([FromBody] QuestionPagedRequest questionPagedRequest) { var questionPageViewResponse = await _questionService.GetPagedListAsync(questionPagedRequest); return questionPageViewResponse as QuestionPageViewResponse; } /// /// 获取题库 /// /// /// [HttpGet(QuestionApiRoute.Get)] public async Task Get(string id) { var questionDto = await _questionService.GetAsync(new EntityQueryRequest { Id = id }); return questionDto; } /// /// 获取题库 /// /// /// [HttpPost(QuestionApiRoute.GetList)] public async Task<(int,List)> GetList([FromBody]QuestionRequest questionRequest) { var questionPagedRequest = _mapper.Map(questionRequest); return await _questionService.GetListAsync(questionPagedRequest); } /// /// 更新开启状态 /// /// /// [HttpPost(QuestionApiRoute.UpdateStatus)] public async Task UpdateStatus([FromBody] List statusActionRequests) { await _questionService.UpdateStatus(statusActionRequests, HttpContext.RequestAborted); } /// /// 导入Excel /// /// [HttpPost(ExamManageApiRoute.ImportExcel)] public async Task ImportExcel(IFormFile files) { await _questionService.ImportExcel(files, HttpContext.RequestAborted); } } }