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();
}
}
}