using Admin.NET.Core; using Furion.DatabaseAccessor; using Furion.DependencyInjection; using Furion.DynamicApiController; using Furion.FriendlyException; using Mapster; using Microsoft.AspNetCore.Mvc; using System.Collections.Generic; using System.Linq; using System.Linq.Dynamic.Core; using System.Threading.Tasks; namespace Admin.NET.Application { /// /// 用户做题进度服务 /// [ApiDescriptionSettings("测评服务", Name = "BusCustomMapReport", Order = 100)] public class BusCustomMapReportService : IDynamicApiController, ITransient { private readonly SqlSugarRepository _busCustomMapReportRep; public BusCustomMapReportService( SqlSugarRepository busCustomMapReportRep ) { _busCustomMapReportRep = busCustomMapReportRep; } /// /// 分页查询用户做题进度 /// /// /// [HttpGet("page")] public async Task> Page([FromQuery] BusCustomMapReportInput input) { var busCustomMapReports = await _busCustomMapReportRep.AsQueryable() .Where(u => u.CustomId == input.CustomId) .Where(u => u.Status == input.Status) .Where(u => u.Proccess == input.Proccess) .Where(u => u.Sort == input.Sort) .OrderBy(u => u.CreateTime, OrderByType.Desc) .Select(s => new BusCustomMapReportOutput { CustomId = s.CustomId, Id = s.Id, Proccess = s.Proccess, Sort = s.Sort, Status = s.Status }) .OrderBuilder(input).ToPagedListAsync(input.Page, input.PageSize); return busCustomMapReports; } /// /// 增加用户做题进度 /// /// /// [HttpPost("add")] public async Task Add(AddBusCustomMapReportInput input) { var busCustomMapReport = input.Adapt(); await _busCustomMapReportRep.InsertAsync(busCustomMapReport); } /// /// 删除用户做题进度 /// /// /// [HttpPost("delete")] public async Task Delete(DeleteBusCustomMapReportInput input) { var busCustomMapReport = await _busCustomMapReportRep.AsQueryable().FirstAsync(u => u.Id == input.Id); await _busCustomMapReportRep.FakeDeleteAsync(busCustomMapReport); } /// /// 更新用户做题进度 /// /// /// [HttpPost("edit")] public async Task Update(UpdateBusCustomMapReportInput input) { var isExist = await _busCustomMapReportRep.AsQueryable().AnyAsync(u => u.Id == input.Id); if (!isExist) throw Oops.Oh(ErrorCodeEnum.D3000); var busCustomMapReport = input.Adapt(); await _busCustomMapReportRep.UpdateAsync(busCustomMapReport); } /// /// 获取用户做题进度 /// /// /// [HttpGet("detail")] public async Task Get([FromQuery] QueryeBusCustomMapReportInput input) { return (await _busCustomMapReportRep.AsQueryable().FirstAsync(u => u.Id == input.Id)).Adapt(); } /// /// 获取用户做题进度列表 /// /// /// [HttpGet("list")] public async Task> List([FromQuery] BusCustomMapReportInput input) { return await _busCustomMapReportRep.AsQueryable().Select().ToListAsync(); } } }