177 lines
7.1 KiB
C#
177 lines
7.1 KiB
C#
using Admin.NET.Core;
|
|
using Furion.DatabaseAccessor;
|
|
using Furion.DependencyInjection;
|
|
using Furion.DynamicApiController;
|
|
using Furion.FriendlyException;
|
|
using Mapster;
|
|
using Microsoft.AspNetCore.Http;
|
|
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 = "BusScaleExplain", Order = 100)]
|
|
public class BusScaleExplainService : IDynamicApiController, ITransient
|
|
{
|
|
private readonly SqlSugarRepository<BusScaleExplain> _busScaleExplainRep;
|
|
private readonly UserManager _userManager;
|
|
/// <summary>
|
|
///
|
|
/// </summary>
|
|
/// <param name="busScaleExplainRep"></param>
|
|
public BusScaleExplainService(
|
|
SqlSugarRepository<BusScaleExplain> busScaleExplainRep,
|
|
UserManager userManager
|
|
)
|
|
{
|
|
_busScaleExplainRep = busScaleExplainRep;
|
|
_userManager = userManager;
|
|
}
|
|
|
|
/// <summary>
|
|
/// 分页查询量表结果解释
|
|
/// </summary>
|
|
/// <param name="input"></param>
|
|
/// <returns></returns>
|
|
[HttpGet("page")]
|
|
public async Task<SqlSugarPagedList<BusScaleExplainOutput>> Page([FromQuery] BusScaleExplainInput input)
|
|
{
|
|
var busScaleExplains = await _busScaleExplainRep.AsQueryable()
|
|
.Where(u => u.ScaleId == input.ScaleId)
|
|
.WhereIF(!string.IsNullOrEmpty(input.Tag), u => u.Tag == input.Tag)
|
|
.WhereIF(!string.IsNullOrEmpty(input.Title), u => u.Title == input.Title)
|
|
.WhereIF(!string.IsNullOrEmpty(input.Description), u => u.Description == input.Description)
|
|
.WhereIF(!string.IsNullOrEmpty(input.Resolving), u => u.Resolving == input.Resolving)
|
|
.WhereIF(!string.IsNullOrEmpty(input.Traits), u => u.Traits == input.Traits)
|
|
.WhereIF(!string.IsNullOrEmpty(input.Features), u => u.Features == input.Features)
|
|
.WhereIF(!string.IsNullOrEmpty(input.Occupation), u => u.Occupation == input.Occupation)
|
|
.WhereIF(!string.IsNullOrEmpty(input.Major), u => u.Major == input.Major)
|
|
.WhereIF(!string.IsNullOrEmpty(input.University), u => u.University == input.University)
|
|
.OrderBy(u => u.CreateTime, OrderByType.Desc)
|
|
.OrderBuilder(input)
|
|
.Select(s => new BusScaleExplainOutput
|
|
{
|
|
Tag = s.Tag,
|
|
Title = s.Title,
|
|
Description = s.Description,
|
|
Resolving = s.Resolving,
|
|
Traits = s.Traits,
|
|
Features = s.Features,
|
|
Occupation = s.Occupation,
|
|
Major = s.Major,
|
|
University = s.University,
|
|
Id = s.Id
|
|
})
|
|
.ToPagedListAsync(input.Page, input.PageSize);
|
|
|
|
return busScaleExplains;
|
|
}
|
|
|
|
/// <summary>
|
|
/// 增加量表结果解释
|
|
/// </summary>
|
|
/// <param name="input"></param>
|
|
/// <returns></returns>
|
|
[HttpPost("add")]
|
|
public async Task Add(AddBusScaleExplainInput input)
|
|
{
|
|
var busScaleExplain = input.Adapt<BusScaleExplain>();
|
|
await _busScaleExplainRep.InsertAsync(busScaleExplain);
|
|
}
|
|
|
|
/// <summary>
|
|
/// 删除量表结果解释
|
|
/// </summary>
|
|
/// <param name="input"></param>
|
|
/// <returns></returns>
|
|
[HttpPost("delete")]
|
|
public async Task Delete(DeleteBusScaleExplainInput input)
|
|
{
|
|
var busScaleExplain = await _busScaleExplainRep.AsQueryable().FirstAsync(u => u.Id == input.Id);
|
|
await _busScaleExplainRep.FakeDeleteAsync(busScaleExplain);
|
|
}
|
|
|
|
/// <summary>
|
|
/// 更新量表结果解释
|
|
/// </summary>
|
|
/// <param name="input"></param>
|
|
/// <returns></returns>
|
|
[HttpPost("edit")]
|
|
public async Task Update(UpdateBusScaleExplainInput input)
|
|
{
|
|
var isExist = await _busScaleExplainRep.AsQueryable().AnyAsync(u => u.Id == input.Id);
|
|
if (!isExist) throw Oops.Oh(ErrorCodeEnum.D3000);
|
|
|
|
var busScaleExplain = input.Adapt<BusScaleExplain>();
|
|
await _busScaleExplainRep.UpdateAsync(busScaleExplain);
|
|
}
|
|
|
|
/// <summary>
|
|
/// 获取量表结果解释
|
|
/// </summary>
|
|
/// <param name="input"></param>
|
|
/// <returns></returns>
|
|
[HttpGet("detail")]
|
|
public async Task<BusScaleExplainOutput> Get([FromQuery] QueryeBusScaleExplainInput input)
|
|
{
|
|
return (await _busScaleExplainRep.AsQueryable().FirstAsync(u => u.Id == input.Id)).Adapt<BusScaleExplainOutput>();
|
|
}
|
|
|
|
/// <summary>
|
|
/// 获取量表结果解释列表
|
|
/// </summary>
|
|
/// <param name="input"></param>
|
|
/// <returns></returns>
|
|
[HttpGet("list")]
|
|
public async Task<List<BusScaleExplainOutput>> List([FromQuery] BusScaleExplainInput input)
|
|
{
|
|
return await _busScaleExplainRep.AsQueryable()
|
|
.Select<BusScaleExplainOutput>().ToListAsync();
|
|
}
|
|
|
|
|
|
|
|
/// <summary>
|
|
///
|
|
/// </summary>
|
|
/// <param name="file"></param>
|
|
/// <returns></returns>
|
|
[HttpPost("import")]
|
|
public async Task Imports(IFormFile file)
|
|
{
|
|
var list = InputExcelUtil<ScaleExplainImportDTO>.InputExcel(file);
|
|
var scalelist = new List<BusScaleExplain>();
|
|
for (int i = 0; i < list.Count(); i++)
|
|
{
|
|
var item = list[i];
|
|
scalelist.Add(new BusScaleExplain()
|
|
{
|
|
CreateTime = DateTime.Now,
|
|
CreateUserName = _userManager.Account,
|
|
CreateUserId = _userManager.UserId,
|
|
Description = item.Description,
|
|
Features = item.Features,
|
|
MainDomain = item.MainDomain,
|
|
Major = item.Major,
|
|
Occupation = item.Occupation,
|
|
Resolving = item.Resolving,
|
|
ScaleId = item.ScaleId,
|
|
Tag = item.Tag,
|
|
Title = item.Title,
|
|
Traits = item.Traits,
|
|
University = item.University,
|
|
});
|
|
}
|
|
await _busScaleExplainRep.InsertRangeAsync(scalelist);
|
|
}
|
|
|
|
|
|
}
|
|
}
|