138 lines
5.1 KiB
C#
138 lines
5.1 KiB
C#
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
|
|
{
|
|
/// <summary>
|
|
/// 班级表服务
|
|
/// </summary>
|
|
[ApiDescriptionSettings(ApplicationConst.CPGroupName, Name = "BusClassInfo", Order = 100)]
|
|
public class BusClassInfoService : IDynamicApiController, ITransient
|
|
{
|
|
private readonly SqlSugarRepository<BusClassInfo> _busClassInfoRep;
|
|
private readonly SqlSugarRepository<BusGrade> _busGradeRep;
|
|
private readonly UserManager _userManager;
|
|
public BusClassInfoService(
|
|
SqlSugarRepository<BusGrade> busGradeRep,
|
|
SqlSugarRepository<BusClassInfo> busClassInfoRep, UserManager userManager)
|
|
{
|
|
_busGradeRep = busGradeRep;
|
|
_busClassInfoRep = busClassInfoRep;
|
|
_userManager = userManager;
|
|
}
|
|
|
|
/// <summary>
|
|
/// 分页查询班级表
|
|
/// </summary>
|
|
/// <param name="input"></param>
|
|
/// <returns></returns>
|
|
[HttpGet("page")]
|
|
public async Task<SqlSugarPagedList<BusClassInfoOutput>> Page([FromQuery] BusClassInfoInput input)
|
|
{
|
|
var busClassInfos = await _busClassInfoRep.AsQueryable()
|
|
.WhereIF(input.GradeId > 0, u => u.GradeId == input.GradeId)
|
|
.WhereIF(!string.IsNullOrEmpty(input.Name), u => u.Name == input.Name)
|
|
.WhereIF(!string.IsNullOrEmpty(input.NumberCode), u => u.NumberCode == input.NumberCode)
|
|
//.Where(u => u.Sort == input.Sort)
|
|
.Where(u => u.TenantId == _userManager.TenantId)
|
|
.OrderBy(u => u.CreateTime, OrderByType.Desc)
|
|
.Select(s => new BusClassInfoOutput()
|
|
{
|
|
GradeId = s.GradeId,
|
|
Name = s.Name,
|
|
NumberCode = s.NumberCode,
|
|
Sort = s.Sort,
|
|
TenantId = s.TenantId.Value,
|
|
Id = s.Id
|
|
})
|
|
.ToPagedListAsync(input.Page, input.PageSize);
|
|
|
|
return busClassInfos;
|
|
}
|
|
|
|
/// <summary>
|
|
/// 增加班级表
|
|
/// </summary>
|
|
/// <param name="input"></param>
|
|
/// <returns></returns>
|
|
[HttpPost("add")]
|
|
public async Task Add(AddBusClassInfoInput input)
|
|
{
|
|
|
|
var busClassInfo = input.Adapt<BusClassInfo>();
|
|
busClassInfo.TenantId = _userManager.TenantId;
|
|
await _busClassInfoRep.InsertAsync(busClassInfo);
|
|
}
|
|
|
|
/// <summary>
|
|
/// 删除班级表
|
|
/// </summary>
|
|
/// <param name="input"></param>
|
|
/// <returns></returns>
|
|
[HttpPost("delete")]
|
|
public async Task Delete(DeleteBusClassInfoInput input)
|
|
{
|
|
var busClassInfo = await _busClassInfoRep.AsQueryable().FirstAsync(u => u.Id == input.Id);
|
|
await _busClassInfoRep.FakeDeleteAsync(busClassInfo);
|
|
}
|
|
|
|
/// <summary>
|
|
/// 更新班级表
|
|
/// </summary>
|
|
/// <param name="input"></param>
|
|
/// <returns></returns>
|
|
[HttpPost("edit")]
|
|
public async Task Update(UpdateBusClassInfoInput input)
|
|
{
|
|
var isExist = await _busClassInfoRep.AsQueryable().AnyAsync(u => u.Id == input.Id);
|
|
if (!isExist) throw Oops.Oh(ErrorCodeEnum.D3000);
|
|
|
|
var busClassInfo = input.Adapt<BusClassInfo>();
|
|
await _busClassInfoRep.UpdateAsync(busClassInfo);
|
|
}
|
|
|
|
/// <summary>
|
|
/// 获取班级表
|
|
/// </summary>
|
|
/// <param name="input"></param>
|
|
/// <returns></returns>
|
|
[HttpGet("detail")]
|
|
public async Task<BusClassInfoOutput> Get([FromQuery] QueryeBusClassInfoInput input)
|
|
{
|
|
return (await _busClassInfoRep.AsQueryable().FirstAsync(u => u.Id == input.Id)).Adapt<BusClassInfoOutput>();
|
|
}
|
|
|
|
/// <summary>
|
|
/// 获取班级表列表
|
|
/// </summary>
|
|
/// <param name="input"></param>
|
|
/// <returns></returns>
|
|
[HttpGet("list")]
|
|
public async Task<List<BusClassInfo>> List([FromQuery] BusClassInfoInput input)
|
|
{
|
|
return await _busClassInfoRep.AsQueryable().Select<BusClassInfo>().ToListAsync();
|
|
}
|
|
|
|
/// <summary>
|
|
/// 获取BusGrade列表
|
|
/// </summary>
|
|
/// <returns></returns>
|
|
[HttpGet("fkBusGrade")]
|
|
public async Task<dynamic> FkBusGradeList()
|
|
{
|
|
var list = await _busGradeRep.AsQueryable().ToListAsync();
|
|
return list.Select(e => new { Code = e.Id, Name = e.Name });
|
|
}
|
|
|
|
}
|
|
}
|