using AutoMapper; using Ropin.Inspection.Common.Accessor.Interface; using Ropin.Inspection.Model.Entities; using Ropin.Inspection.Model; using Ropin.Inspection.Repository; using Ropin.Inspection.Repository.SYS.Interface; using Ropin.Inspection.Service.SYS.Interface; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using Ropin.Inspection.Model.ViewModel.SYS; using Ropin.Inspection.Model.ViewModel; namespace Ropin.Inspection.Service.SYS { public class TsysPrivService: ITsysPrivService { private readonly ITsysPrivRepository _repository; private readonly IMapper _mapper; private readonly IClaimsAccessor _claims; private readonly ITsysLicenseTypePrivRepository _sysLicenseTypePrivRepository; public TsysPrivService(IClaimsAccessor claims, ITsysPrivRepository repository, IMapper mapper, ITsysLicenseTypePrivRepository sysLicenseTypePrivRepository) { _repository = repository; _mapper = mapper; _claims = claims; _sysLicenseTypePrivRepository = sysLicenseTypePrivRepository; } /// /// 新增 /// /// /// /// public async Task CreateOneAsync(TsysPrivViewModel viewModel) { var pagedList = await _repository.GetAllAsync(); TSYS_Priv content = _mapper.Map(viewModel); if (string.IsNullOrEmpty(viewModel.C_Code)) { //content.C_Code = Guid.NewGuid().ToString(); throw new Exception("请输入编号!"); } int num = pagedList.Where(t => t.C_Code == viewModel.C_Code).Count(); if (num >= 1) { throw new Exception("编号已存在!"); } content.C_Status = "1"; _repository.Create(content); var result = await _repository.SaveAsync(); if (!result) { throw new Exception("创建失败"); } } /// /// 真删除数据 /// /// /// /// public async Task DeleteAsync(string id) { var content = _repository.GetPrivEntity(id); if (content == null) { throw new Exception("数据库中没有此数据"); } var delList = await _repository.GetByConditionAsync(t=>t.C_ParentCode==id); if (delList != null&&delList.Any()) { throw new Exception("该数据下存在子级,删除失败!"); } var icenseTypePriv = await _sysLicenseTypePrivRepository.GetByConditionAsync(t => t.C_PrivilegeCode == content.C_Code); if (icenseTypePriv?.Count()>0) { throw new Exception("该关联其它表,删除失败!"); } _repository.Delete(content); var result = await _repository.SaveAsync(); if (!result) { throw new Exception("删除失败"); } } /// /// 假删除-修改状态为禁用 /// /// /// /// public async Task UpdateStatusAsync(string id) { var content = _repository.GetPrivEntity(id); if (content == null) { throw new Exception("数据库中没有此数据"); } content.C_Status = "0"; _repository.Update(content); var result = await _repository.SaveAsync(); if (!result) { throw new Exception("删除失败"); } } /// /// 修改 /// /// /// /// /// public async Task UpdateOneAsync(string id, TsysPrivViewModel updateModel) { var content = _repository.GetPrivEntity(id); if (content == null) { throw new Exception("没有此数据"); } _mapper.Map(updateModel, content, typeof(TsysPrivViewModel), typeof(TSYS_Priv)); _repository.Update(content); var result = await _repository.SaveAsync(); if (!result) { throw new Exception("更新失败"); } } /// /// 树型列表 /// /// /// public async Task> GetPrivTree(TsysPrivSearch model) { var list = await _repository.GetPrivTree(model); if (!string.IsNullOrWhiteSpace(model.C_Name)) { if (list != null&&list.Count>0) { list = list.Where(t => t.C_Name.Contains(model.C_Name)).ToList(); } } return list; } public async Task GetByIdAsync(string id) { var content = _repository.GetPrivEntity(id); var contentDto = _mapper.Map(content); return contentDto; } public Task IsExistAsync(string id) { throw new NotImplementedException(); } } }