152 lines
		
	
	
		
			5.2 KiB
		
	
	
	
		
			C#
		
	
	
	
			
		
		
	
	
			152 lines
		
	
	
		
			5.2 KiB
		
	
	
	
		
			C#
		
	
	
	
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<Device>
 | 
						|
    {
 | 
						|
        public DeviceService(IConfiguration config) : base(config, nameof(Device))
 | 
						|
        {
 | 
						|
        }
 | 
						|
 | 
						|
        /// <summary>
 | 
						|
        /// 新加
 | 
						|
        /// </summary>
 | 
						|
        /// <param name="input"></param>
 | 
						|
        /// <returns></returns>
 | 
						|
        public async Task<ApiResult> Add(DeviceAddDto input)
 | 
						|
        {
 | 
						|
            if (await Exist(input))
 | 
						|
            {
 | 
						|
                return new ApiResult { code = 1, msg = $"已经存在名称为:{input.NickName}" };
 | 
						|
            }
 | 
						|
            var entity = input.Adapt<Device>();
 | 
						|
            await base.CreateAsync(entity);
 | 
						|
            return new ApiResult { code = 0, msg = "" };
 | 
						|
        }
 | 
						|
        /// <summary>
 | 
						|
        /// 是否存在
 | 
						|
        /// </summary>
 | 
						|
        /// <param name="input"></param>
 | 
						|
        /// <returns></returns>
 | 
						|
        public async Task<bool> Exist(DeviceAddDto input)
 | 
						|
        {
 | 
						|
            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>
 | 
						|
        public async Task<ApiResult> update(DeviceUpdateDto input)
 | 
						|
        {
 | 
						|
            var entity = input.Adapt<Device>();
 | 
						|
            await base.UpdateAsync(entity.Id, entity);
 | 
						|
            return new ApiResult { code = 0, msg = "" };
 | 
						|
        }
 | 
						|
        /// <summary>
 | 
						|
        /// 取单个
 | 
						|
        /// </summary>
 | 
						|
        /// <param name="id"></param>
 | 
						|
        /// <returns></returns>
 | 
						|
        public async Task<Device> FindeById(string id)
 | 
						|
        {
 | 
						|
            return await GetAsync(id);
 | 
						|
        }
 | 
						|
        /// <summary>
 | 
						|
        /// 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();
 | 
						|
        }
 | 
						|
        /// <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;
 | 
						|
        }
 | 
						|
        /// <summary>
 | 
						|
        /// 获取设备类型
 | 
						|
        /// </summary>
 | 
						|
        /// <returns></returns>
 | 
						|
        public Task<Dictionary<int, string>> GetDeviceTypes()
 | 
						|
        {
 | 
						|
            //1 voc,2 cems,3,tsp,4 video
 | 
						|
            Dictionary<int, string> dic = new Dictionary<int, string>
 | 
						|
            {
 | 
						|
                { 1, "voc" },
 | 
						|
                { 2, "cems" },
 | 
						|
                { 3, "tsp" },
 | 
						|
                { 4, "video" }
 | 
						|
            };
 | 
						|
            return Task.FromResult(dic);
 | 
						|
        }
 | 
						|
        /// <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)
 | 
						|
        {
 | 
						|
            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);
 | 
						|
        }
 | 
						|
    }
 | 
						|
}
 |