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 = "BusGrade", Order = 100)]
public class BusGradeService : IDynamicApiController, ITransient
{
private readonly SqlSugarRepository _busGradeRep;
private readonly UserManager _userManager;
public BusGradeService(
SqlSugarRepository busGradeRep,
UserManager userManager
)
{
_busGradeRep = busGradeRep;
_userManager = userManager;
}
///
/// 分页查询年级表
///
///
///
[HttpGet("page")]
public async Task> Page([FromQuery] BusGradeInput input)
{
var busGrades = await _busGradeRep.AsQueryable()
.WhereIF(!string.IsNullOrEmpty(input.Name), u => u.Name == input.Name)
.WhereIF(!string.IsNullOrEmpty(input.NumberCode), u => u.NumberCode == input.NumberCode)
.Where(u => u.TenantId == _userManager.TenantId)
.OrderBy(u => u.CreateTime, OrderByType.Desc)
.OrderBuilder(input)
.Select(s => new BusGradeOutput()
{
Name = s.Name,
NumberCode = s.NumberCode,
Sort = s.Sort,
TenantId = s.TenantId.Value,
Id = s.Id
})
.ToPagedListAsync(input.Page, input.PageSize);
return busGrades;
}
///
/// 增加年级表
///
///
///
[HttpPost("add")]
public async Task Add(AddBusGradeInput input)
{
var busGrade = input.Adapt();
await _busGradeRep.InsertAsync(busGrade);
}
///
/// 删除年级表
///
///
///
[HttpPost("delete")]
public async Task Delete(DeleteBusGradeInput input)
{
var busGrade = await _busGradeRep.AsQueryable().FirstAsync(u => u.Id == input.Id);
await _busGradeRep.FakeDeleteAsync(busGrade);
}
///
/// 更新年级表
///
///
///
[HttpPost("edit")]
public async Task Update(UpdateBusGradeInput input)
{
var isExist = await _busGradeRep.AsQueryable().AnyAsync(u => u.Id == input.Id);
if (!isExist) throw Oops.Oh(ErrorCodeEnum.D3000);
var busGrade = input.Adapt();
await _busGradeRep.UpdateAsync(busGrade);
}
///
/// 获取年级表
///
///
///
[HttpGet("detail")]
public async Task Get([FromQuery] QueryeBusGradeInput input)
{
return (await _busGradeRep.AsQueryable().FirstAsync(u => u.Id == input.Id)).Adapt();
}
///
/// 获取年级表列表
///
///
///
[HttpGet("list")]
public async Task> List([FromQuery] BusGradeInput input)
{
return await _busGradeRep.AsQueryable().Select().ToListAsync();
}
}
}