149 lines
5.7 KiB
C#
149 lines
5.7 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("测评服务", Name = "BusCustomMenus", Order = 100)]
|
|
public class BusCustomMenusService : IDynamicApiController, ITransient
|
|
{
|
|
private readonly SqlSugarRepository<BusCustomMenus> _busCustomMenusRep;
|
|
private readonly SqlSugarRepository<SysDictData> _sysDictDataRep;
|
|
private readonly UserManager _userManager;
|
|
|
|
/// <summary>
|
|
///
|
|
/// </summary>
|
|
/// <param name="sysDictDataRep"></param>
|
|
/// <param name="busCustomMenusRep"></param>
|
|
/// <param name="userManager"></param>
|
|
public BusCustomMenusService(
|
|
SqlSugarRepository<SysDictData> sysDictDataRep,
|
|
SqlSugarRepository<BusCustomMenus> busCustomMenusRep,
|
|
UserManager userManager
|
|
)
|
|
{
|
|
_sysDictDataRep = sysDictDataRep;
|
|
_busCustomMenusRep = busCustomMenusRep;
|
|
_userManager = userManager;
|
|
}
|
|
|
|
/// <summary>
|
|
/// 分页查询学生菜单
|
|
/// </summary>
|
|
/// <param name="input"></param>
|
|
/// <returns></returns>
|
|
[HttpGet("page")]
|
|
public async Task<SqlSugarPagedList<BusCustomMenusOutput>> Page([FromQuery] BusCustomMenusInput input)
|
|
{
|
|
var busCustomMenuss = await _busCustomMenusRep.AsQueryable()
|
|
.WhereIF(input.RootId > 0, u => u.RootId == input.RootId)
|
|
.WhereIF(input.UrlType.HasValue, u => u.UrlType == input.UrlType)
|
|
.WhereIF(!string.IsNullOrEmpty(input.MenuName), u => u.MenuName == input.MenuName)
|
|
.WhereIF(!string.IsNullOrEmpty(input.Icon), u => u.Icon == input.Icon)
|
|
.WhereIF(!string.IsNullOrEmpty(input.Url), u => u.Url == input.Url)
|
|
// .Where(u => u.Sort == input.Sort)
|
|
.Where(u => u.TenantId == _userManager.TenantId)
|
|
.OrderBy(u => u.CreateTime, OrderByType.Desc)
|
|
.OrderBuilder(input)
|
|
.Select(s => new BusCustomMenusOutput()
|
|
{
|
|
Icon = s.Icon,
|
|
Id = s.Id,
|
|
MenuName = s.MenuName,
|
|
RootId = s.RootId,
|
|
Sort = s.Sort,
|
|
Url = s.Url,
|
|
UrlType = s.UrlType
|
|
})
|
|
.ToPagedListAsync(input.Page, input.PageSize);
|
|
|
|
return busCustomMenuss;
|
|
}
|
|
|
|
/// <summary>
|
|
/// 增加学生菜单
|
|
/// </summary>
|
|
/// <param name="input"></param>
|
|
/// <returns></returns>
|
|
[HttpPost("add")]
|
|
public async Task Add(AddBusCustomMenusInput input)
|
|
{
|
|
var busCustomMenus = input.Adapt<BusCustomMenus>();
|
|
await _busCustomMenusRep.InsertAsync(busCustomMenus);
|
|
}
|
|
|
|
/// <summary>
|
|
/// 删除学生菜单
|
|
/// </summary>
|
|
/// <param name="input"></param>
|
|
/// <returns></returns>
|
|
[HttpPost("delete")]
|
|
public async Task Delete(DeleteBusCustomMenusInput input)
|
|
{
|
|
var busCustomMenus = await _busCustomMenusRep.AsQueryable().FirstAsync(u => u.Id == input.Id);
|
|
await _busCustomMenusRep.FakeDeleteAsync(busCustomMenus);
|
|
}
|
|
|
|
/// <summary>
|
|
/// 更新学生菜单
|
|
/// </summary>
|
|
/// <param name="input"></param>
|
|
/// <returns></returns>
|
|
[HttpPost("edit")]
|
|
public async Task Update(UpdateBusCustomMenusInput input)
|
|
{
|
|
var isExist = await _busCustomMenusRep.AsQueryable().AnyAsync(u => u.Id == input.Id);
|
|
if (!isExist) throw Oops.Oh(ErrorCodeEnum.D3000);
|
|
|
|
var busCustomMenus = input.Adapt<BusCustomMenus>();
|
|
await _busCustomMenusRep.UpdateAsync(busCustomMenus);
|
|
}
|
|
|
|
/// <summary>
|
|
/// 获取学生菜单
|
|
/// </summary>
|
|
/// <param name="input"></param>
|
|
/// <returns></returns>
|
|
[HttpGet("detail")]
|
|
public async Task<BusCustomMenusOutput> Get([FromQuery] QueryeBusCustomMenusInput input)
|
|
{
|
|
return (await _busCustomMenusRep.AsQueryable().FirstAsync(u => u.Id == input.Id)).Adapt<BusCustomMenusOutput>();
|
|
}
|
|
|
|
/// <summary>
|
|
/// 获取学生菜单列表
|
|
/// </summary>
|
|
/// <param name="input"></param>
|
|
/// <returns></returns>
|
|
[HttpGet("list")]
|
|
public async Task<List<BusCustomMenusOutput>> List([FromQuery] BusCustomMenusInput input)
|
|
{
|
|
return await _busCustomMenusRep.AsQueryable().Select<BusCustomMenusOutput>().ToListAsync();
|
|
}
|
|
|
|
/// <summary>
|
|
/// 获取SysDictData列表
|
|
/// </summary>
|
|
/// <returns></returns>
|
|
[HttpGet("fkSysDictData")]
|
|
public async Task<dynamic> FkSysDictDataList()
|
|
{
|
|
var list = await _sysDictDataRep.AsQueryable().ToListAsync();
|
|
return list.Select(e => new { Code = e.Id, Name = e.Value });
|
|
}
|
|
|
|
}
|
|
}
|