2024-05-28 16:00:38 +00:00
|
|
|
|
using langguanApi.Extensions;
|
|
|
|
|
|
using langguanApi.Extensions.AutoDI;
|
2024-05-20 14:56:49 +00:00
|
|
|
|
using langguanApi.Model;
|
|
|
|
|
|
using langguanApi.Model.Dto;
|
|
|
|
|
|
using Mapster;
|
|
|
|
|
|
using System.Linq.Expressions;
|
|
|
|
|
|
|
|
|
|
|
|
namespace langguanApi.Service
|
|
|
|
|
|
{
|
2024-05-20 15:10:31 +00:00
|
|
|
|
[ServiceInjection(InjectionType.Transient)]
|
2024-05-20 14:56:49 +00:00
|
|
|
|
public class DeviceService : BaseService<Device>
|
|
|
|
|
|
{
|
2024-06-05 16:39:32 +00:00
|
|
|
|
public Hj212Service _hj212Service;
|
|
|
|
|
|
public DeviceService(IConfiguration config, Hj212Service hj212Service) : base(config, nameof(Device))
|
2024-05-20 14:56:49 +00:00
|
|
|
|
{
|
2024-06-05 16:39:32 +00:00
|
|
|
|
_hj212Service = hj212Service;
|
2024-05-20 14:56:49 +00:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 新加
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
/// <param name="input"></param>
|
|
|
|
|
|
/// <returns></returns>
|
2024-05-27 15:42:08 +00:00
|
|
|
|
public async Task<ApiResult> Add(DeviceAddDto input)
|
2024-05-20 14:56:49 +00:00
|
|
|
|
{
|
|
|
|
|
|
if (await Exist(input))
|
|
|
|
|
|
{
|
2024-05-27 15:42:08 +00:00
|
|
|
|
return new ApiResult { code = 1, msg = $"已经存在名称为:{input.NickName}" };
|
2024-05-20 14:56:49 +00:00
|
|
|
|
}
|
|
|
|
|
|
var entity = input.Adapt<Device>();
|
2024-05-28 16:00:38 +00:00
|
|
|
|
await base.CreateAsync(entity);
|
|
|
|
|
|
return new ApiResult { code = 0, msg = "" };
|
2024-05-20 14:56:49 +00:00
|
|
|
|
}
|
2024-06-05 16:39:32 +00:00
|
|
|
|
public async Task<ApiResult> GetDeviceAndData(string id)
|
|
|
|
|
|
{
|
|
|
|
|
|
var entity = await base.GetAsync(id);
|
|
|
|
|
|
if (entity == null)
|
|
|
|
|
|
{
|
|
|
|
|
|
return new ApiResult { code = 1, msg = "设备不存在" };
|
|
|
|
|
|
}
|
|
|
|
|
|
var items = await _hj212Service.GetViewByDeviceMn(entity.deviceMN);
|
|
|
|
|
|
return new ApiResult { code = 0, msg = "", data = new { device = entity, items } };
|
|
|
|
|
|
}
|
|
|
|
|
|
|
2024-05-20 14:56:49 +00:00
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 是否存在
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
/// <param name="input"></param>
|
|
|
|
|
|
/// <returns></returns>
|
2024-05-27 15:42:08 +00:00
|
|
|
|
public async Task<bool> Exist(DeviceAddDto input)
|
2024-05-20 14:56:49 +00:00
|
|
|
|
{
|
|
|
|
|
|
var entity = input.Adapt<Device>();
|
|
|
|
|
|
Expression<Func<Device, bool>> exp = filter => filter.deviceMN == entity.deviceMN;
|
|
|
|
|
|
return await base.Exist(exp);
|
|
|
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 更新
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
/// <param name="input"></param>
|
|
|
|
|
|
/// <returns></returns>
|
2024-05-27 15:42:08 +00:00
|
|
|
|
public async Task<ApiResult> update(DeviceUpdateDto input)
|
2024-05-20 14:56:49 +00:00
|
|
|
|
{
|
|
|
|
|
|
var entity = input.Adapt<Device>();
|
|
|
|
|
|
await base.UpdateAsync(entity.Id, entity);
|
|
|
|
|
|
return new ApiResult { code = 0, msg = "" };
|
|
|
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
2024-05-27 15:42:08 +00:00
|
|
|
|
/// 取单个
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
/// <param name="id"></param>
|
|
|
|
|
|
/// <returns></returns>
|
|
|
|
|
|
public async Task<Device> FindeById(string id)
|
|
|
|
|
|
{
|
|
|
|
|
|
return await GetAsync(id);
|
|
|
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
2024-05-20 14:56:49 +00:00
|
|
|
|
/// remove
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
/// <param name="ids"></param>
|
|
|
|
|
|
/// <returns></returns>
|
|
|
|
|
|
public async Task<ApiResult> remove(IEnumerable<string> ids)
|
|
|
|
|
|
{
|
|
|
|
|
|
if (ids.Any())
|
|
|
|
|
|
{
|
|
|
|
|
|
foreach (var item in ids)
|
|
|
|
|
|
{
|
|
|
|
|
|
var entity = await base.GetAsync(item);
|
|
|
|
|
|
entity.IsDelete = true;
|
|
|
|
|
|
await base.UpdateAsync(entity.Id, entity);
|
|
|
|
|
|
}
|
|
|
|
|
|
return new ApiResult { code = 0, msg = "" };
|
|
|
|
|
|
}
|
|
|
|
|
|
return new ApiResult { code = -1, msg = "" };
|
|
|
|
|
|
}
|
|
|
|
|
|
// 通过devicemn获取设备信息
|
|
|
|
|
|
public async Task<Device> GetByDeviceMN(string deviceMN)
|
|
|
|
|
|
{
|
|
|
|
|
|
Expression<Func<Device, bool>> exp = filter => filter.deviceMN == deviceMN && filter.IsDelete == false;
|
|
|
|
|
|
return (await base.GetListWithExp(exp)).FirstOrDefault();
|
|
|
|
|
|
}
|
2024-05-25 16:58:35 +00:00
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 通过orgid获取设备信息
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
/// <param name="ids"></param>
|
|
|
|
|
|
/// <returns></returns>
|
|
|
|
|
|
public async Task<List<Device>> GetDeviceByOrgids(IEnumerable<string> ids)
|
|
|
|
|
|
{
|
|
|
|
|
|
Expression<Func<Device, bool>> exp = filter => ids.Contains(filter.OrgId) && filter.IsDelete == false;
|
|
|
|
|
|
var list = (await base.GetListWithExp(exp)).ToList();
|
|
|
|
|
|
return list;
|
|
|
|
|
|
}
|
2024-05-20 14:56:49 +00:00
|
|
|
|
/// <summary>
|
2024-05-27 15:42:08 +00:00
|
|
|
|
/// 获取设备类型
|
2024-05-20 14:56:49 +00:00
|
|
|
|
/// </summary>
|
|
|
|
|
|
/// <returns></returns>
|
2024-05-28 16:00:38 +00:00
|
|
|
|
public Task<Dictionary<int, string>> GetDeviceTypes()
|
2024-05-20 14:56:49 +00:00
|
|
|
|
{
|
2024-05-27 15:42:08 +00:00
|
|
|
|
//1 voc,2 cems,3,tsp,4 video
|
|
|
|
|
|
Dictionary<int, string> dic = new Dictionary<int, string>
|
2024-05-20 14:56:49 +00:00
|
|
|
|
{
|
2024-05-27 15:42:08 +00:00
|
|
|
|
{ 1, "voc" },
|
|
|
|
|
|
{ 2, "cems" },
|
|
|
|
|
|
{ 3, "tsp" },
|
|
|
|
|
|
{ 4, "video" }
|
|
|
|
|
|
};
|
|
|
|
|
|
return Task.FromResult(dic);
|
2024-05-20 14:56:49 +00:00
|
|
|
|
}
|
2024-05-28 16:00:38 +00:00
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 分页取设备
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
/// <param name="key"></param>
|
|
|
|
|
|
/// <param name="pageSize"></param>
|
|
|
|
|
|
/// <param name="current"></param>
|
|
|
|
|
|
/// <param name="deviceType"></param>
|
|
|
|
|
|
/// <returns></returns>
|
|
|
|
|
|
public async Task<ApiResult> GetDeviceListByTypes(string key, int pageSize = 10, int current = 1, int deviceType = 1)
|
|
|
|
|
|
{
|
|
|
|
|
|
Expression<Func<Device, bool>> exp = filter => filter.IsDelete == false && filter.DeviceType == deviceType;
|
|
|
|
|
|
if (!string.IsNullOrEmpty(key))
|
|
|
|
|
|
{
|
|
|
|
|
|
exp = exp.And(filter => filter.NickName.Contains(key));
|
|
|
|
|
|
}
|
|
|
|
|
|
return await base.GetPager(new ReqPaing()
|
|
|
|
|
|
{
|
|
|
|
|
|
pageSize = pageSize,
|
|
|
|
|
|
current = current
|
|
|
|
|
|
}, exp);
|
|
|
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 分页取数据
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
/// <param name="input"></param>
|
|
|
|
|
|
/// <returns></returns>
|
|
|
|
|
|
public async Task<object> GetPage(reqpage input)
|
2024-05-27 15:42:08 +00:00
|
|
|
|
{
|
2024-05-28 16:00:38 +00:00
|
|
|
|
Expression<Func<Device, bool>> exp = filter => filter.NickName.Contains(input.key) && filter.IsDelete == false;
|
|
|
|
|
|
return await base.GetPager(new ReqPaing()
|
|
|
|
|
|
{
|
|
|
|
|
|
pageSize = input.pageSize,
|
|
|
|
|
|
current = input.current
|
|
|
|
|
|
}, exp);
|
|
|
|
|
|
}
|
2024-05-20 14:56:49 +00:00
|
|
|
|
}
|
|
|
|
|
|
}
|