using langguanApi.Extensions; using langguanApi.Extensions.AutoDI; using langguanApi.Model; using langguanApi.Model.Dto; using Mapster; using System.Linq.Expressions; namespace langguanApi.Service { [ServiceInjection(InjectionType.Transient)] public class DeviceService : BaseService { public Hj212Service _hj212Service; public DeviceService(IConfiguration config, Hj212Service hj212Service) : base(config, nameof(Device)) { _hj212Service = hj212Service; } /// /// 新加 /// /// /// public async Task Add(DeviceAddDto input) { if (await Exist(input)) { return new ApiResult { code = 1, msg = $"已经存在名称为:{input.NickName}" }; } var entity = input.Adapt(); await base.CreateAsync(entity); return new ApiResult { code = 0, msg = "" }; } public async Task 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 } }; } /// /// 是否存在 /// /// /// public async Task Exist(DeviceAddDto input) { var entity = input.Adapt(); Expression> exp = filter => filter.deviceMN == entity.deviceMN; return await base.Exist(exp); } /// /// 更新 /// /// /// public async Task update(DeviceUpdateDto input) { var entity = input.Adapt(); await base.UpdateAsync(entity.Id, entity); return new ApiResult { code = 0, msg = "" }; } /// /// 取单个 /// /// /// public async Task FindeById(string id) { return await GetAsync(id); } /// /// remove /// /// /// public async Task remove(IEnumerable 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 GetByDeviceMN(string deviceMN) { Expression> exp = filter => filter.deviceMN == deviceMN && filter.IsDelete == false; return (await base.GetListWithExp(exp)).FirstOrDefault(); } /// /// 通过orgid获取设备信息 /// /// /// public async Task> GetDeviceByOrgids(IEnumerable ids) { Expression> exp = filter => ids.Contains(filter.OrgId) && filter.IsDelete == false; var list = (await base.GetListWithExp(exp)).ToList(); return list; } /// /// 获取设备类型 /// /// public Task> GetDeviceTypes() { //1 voc,2 cems,3,tsp,4 video Dictionary dic = new Dictionary { { 1, "voc" }, { 2, "cems" }, { 3, "tsp" }, { 4, "video" } }; return Task.FromResult(dic); } /// /// 分页取设备 /// /// /// /// /// /// public async Task GetDeviceListByTypes(string key, int pageSize = 10, int current = 1, int deviceType = 1) { Expression> 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); } /// /// 分页取数据 /// /// /// public async Task GetPage(reqpage input) { Expression> exp = filter => filter.NickName.Contains(input.key) && filter.IsDelete == false; return await base.GetPager(new ReqPaing() { pageSize = input.pageSize, current = input.current }, exp); } } }