lg_backend/langguanApi/Service/OrganizedService.cs

98 lines
3.5 KiB
C#
Raw Normal View History

2024-05-25 16:58:35 +00:00
using langguanApi.Extensions.AutoDI;
using langguanApi.Model;
using Mapster;
using System.Linq.Expressions;
namespace langguanApi.Service
{
/// <summary>
/// OrganizedService
/// </summary>
[ServiceInjection(InjectionType.Transient)]
public class OrganizedService : BaseService<Organized>
{
private readonly DeviceService _deviceService;
public OrganizedService(IConfiguration config, DeviceService device) : base(config, nameof(Organized))
{
_deviceService = device;
}
/// <summary>
/// Add 工序
/// </summary>
/// <param name="input"></param>
/// <returns></returns>
public async Task<ApiResult> Add(OrganizedDto input)
{
var entity = input.Adapt<Organized>();
await CreateAsync(entity);
return new ApiResult() { code = 0 };
}
/// <summary>
/// Update
/// </summary>
/// <param name="input"></param>
/// <returns></returns>
public async Task<ApiResult> Update(OrganizedUpdateDto input)
{
var entity = input.Adapt<Organized>();
await UpdateAsync(input.Id, entity);
return new ApiResult() { code = 0 };
}
/// <summary>
/// Delete
/// </summary>
/// <param name="ids"></param>
/// <returns></returns>
public async Task<ApiResult> Delete(IEnumerable<string> ids)
{
if (ids.Any())
{
foreach (var id in ids)
{
await RemoveAsync(id);
}
}
else
{
return new ApiResult() { code = 1, msg = "请选择要删除的记录" };
}
return new ApiResult() { code = 0 };
}
/// <summary>
/// ListAndDevice
/// </summary>
/// <param name="OrganizedType">1,有组织2无组织</param>
/// <returns></returns>
public async Task<ApiResult> ListAndDevice(int OrganizedType = 1)
{
Expression<Func<Organized, bool>> exp = filter => filter.OrganizedType == OrganizedType && filter.IsDelete == false;
var result = (await base.GetListWithExp(exp)).OrderByDescending(x => x.Order).ToList();
List<OrganizedByDeviceDto> list = new List<OrganizedByDeviceDto>();
var devices = await _deviceService.GetDeviceByOrgids(result.Select(s => s.Id));
foreach (var item in result)
{
list.Add(new OrganizedByDeviceDto
{
Items = devices.Where(s => s.OrgId == item.Id).ToList(),
Order = item.Order,
Name = item.Name,
OrganizedType = item.OrganizedType,
Id = item.Id
});
}
return new ApiResult() { code = 0, data = list };
}
/// <summary>
/// List
/// </summary>
/// <param name="OrganizedType">1,有组织2无组织</param>
/// <returns></returns>
public async Task<ApiResult> List(int OrganizedType = 1)
{
Expression<Func<Organized, bool>> exp = filter => filter.OrganizedType == OrganizedType && filter.IsDelete == false;
var result = (await base.GetListWithExp(exp)).OrderByDescending(x => x.Order).ToList();
return new ApiResult() { code = 0, data = result };
}
}
}