tuiwucarrer/Admin.NET/Admin.NET.Application/Service/CePing/BusUniversityInfo/BusUniversityInfoService.cs

131 lines
5.3 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 = "BusUniversityInfo", Order = 100)]
public class BusUniversityInfoService : IDynamicApiController, ITransient
{
private readonly SqlSugarRepository<BusUniversityInfo> _busUniversityInfoRep;
public BusUniversityInfoService(
SqlSugarRepository<BusUniversityInfo> busUniversityInfoRep
)
{
_busUniversityInfoRep = busUniversityInfoRep;
}
/// <summary>
/// 分页查询高校基础信息
/// </summary>
/// <param name="input"></param>
/// <returns></returns>
[HttpGet("page")]
public async Task<SqlSugarPagedList<BusUniversityInfoOutput>> Page([FromQuery] BusUniversityInfoInput input)
{
var busUniversityInfos = await _busUniversityInfoRep.AsQueryable()
.WhereIF(!string.IsNullOrEmpty(input.Name), u => u.Name == input.Name)
.WhereIF(!string.IsNullOrEmpty(input.Logo), u => u.Logo == input.Logo)
.Where(u => u.ProvinceId == input.ProvinceId)
.Where(u => u.ZgManageId == input.ZgManageId)
.Where(u => u.Levels == input.Levels)
.WhereIF(!string.IsNullOrEmpty(input.Specific), u => u.Specific == input.Specific)
.Where(u => u.UniversityType == input.UniversityType)
.Where(u => u.Rank == input.Rank)
//.Where(u => u.Sort == input.Sort)
.OrderBy(u => u.CreateTime, OrderByType.Desc)
.OrderBuilder(input)
.Select(s => new BusUniversityInfoOutput
{
Name = s.Name,
Logo = s.Logo,
ProvinceId = s.ProvinceId,
ZgManageId = s.ZgManageId,
Levels = s.Levels,
Specific = s.Specific,
UniversityType = s.UniversityType,
Rank = s.Rank,
Sort = s.Sort,
Id = s.Id
})
.ToPagedListAsync(input.Page, input.PageSize);
return busUniversityInfos;
}
/// <summary>
/// 增加高校基础信息
/// </summary>
/// <param name="input"></param>
/// <returns></returns>
[HttpPost("add")]
public async Task Add(AddBusUniversityInfoInput input)
{
var busUniversityInfo = input.Adapt<BusUniversityInfo>();
await _busUniversityInfoRep.InsertAsync(busUniversityInfo);
}
/// <summary>
/// 删除高校基础信息
/// </summary>
/// <param name="input"></param>
/// <returns></returns>
[HttpPost("delete")]
public async Task Delete(DeleteBusUniversityInfoInput input)
{
var busUniversityInfo = await _busUniversityInfoRep.AsQueryable().FirstAsync(u => u.Id == input.Id);
await _busUniversityInfoRep.FakeDeleteAsync(busUniversityInfo);
}
/// <summary>
/// 更新高校基础信息
/// </summary>
/// <param name="input"></param>
/// <returns></returns>
[HttpPost("edit")]
public async Task Update(UpdateBusUniversityInfoInput input)
{
var isExist = await _busUniversityInfoRep.AsQueryable().AnyAsync(u => u.Id == input.Id);
if (!isExist) throw Oops.Oh(ErrorCodeEnum.D3000);
var busUniversityInfo = input.Adapt<BusUniversityInfo>();
await _busUniversityInfoRep.UpdateAsync(busUniversityInfo);
}
/// <summary>
/// 获取高校基础信息
/// </summary>
/// <param name="input"></param>
/// <returns></returns>
[HttpGet("detail")]
public async Task<BusUniversityInfoOutput> Get([FromQuery] QueryeBusUniversityInfoInput input)
{
return (await _busUniversityInfoRep.AsQueryable().FirstAsync(u => u.Id == input.Id)).Adapt<BusUniversityInfoOutput>();
}
/// <summary>
/// 获取高校基础信息列表
/// </summary>
/// <param name="input"></param>
/// <returns></returns>
[HttpGet("list")]
public async Task<List<BusUniversityInfoOutput>> List([FromQuery] BusUniversityInfoInput input)
{
return await _busUniversityInfoRep.AsQueryable().Select<BusUniversityInfoOutput>().ToListAsync();
}
}
}