using Mapster; using NPOI.OpenXmlFormats.Spreadsheet; using SqlSugar; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using WMS.BZModels; using WMS.BZModels.Dto.UserCenterManager.ACLConstDtos; using WMS.BZModels.Dto.UserCenterManager.UserInfoDtos; using WMS.BZModels.Models.UserCenterManager; using WMS.Info; using WMS.BZSqlSugar; namespace WMS.BZServices.UserCenterManager { public class ACLConstService { private readonly Repository _aclConstRepository; private readonly SysModuleService _sysModuleService; public ACLConstService(Repository aclConstRepository, SysModuleService sysModuleService) { _aclConstRepository = aclConstRepository; _sysModuleService = sysModuleService; } /// /// 获取列表数据 /// /// public IList GetList(string keyword) { if (string.IsNullOrEmpty(keyword)) { return _aclConstRepository.Queryable().ToList().Adapt>(); } else { var lst = _aclConstRepository.Queryable().Where(it => it.Name.Contains(keyword)).Select(v => v.Code).ToList(); var lists = _aclConstRepository.Queryable().Where(v => lst.Contains(v.PNO) || v.Name.Contains(keyword)).ToList(); return lists.Adapt>(); } } /// /// 删除实体数据 /// 主键 /// /// public void DeleteEntity(string keyValue) { _aclConstRepository.Deleteable().Where(it => it.Code == keyValue).ExecuteCommand(); } public void Save(LoginUserInfo loginUser, string keyValue, AclConst entity) { try { if (string.IsNullOrWhiteSpace(entity.Code)) { throw new ArgumentException("菜单编号为空。"); } if (string.IsNullOrWhiteSpace(entity.PNO)) { throw new ArgumentException("父菜单编号为空。"); } if (string.IsNullOrWhiteSpace(entity.Name)) { throw new ArgumentException("菜单名称为空。"); } DateTime nowdt = DateTime.Now; if (keyValue.IsEmpty() || keyValue == "undefined") { if (_aclConstRepository.Queryable().Any(o => o.Code == entity.Code)) { throw new ArgumentException("菜单编号已存在。"); } var sort = _aclConstRepository.Queryable().Count(o => o.PNO == entity.PNO) + 1; entity.Id = IdFactory.NewId(); entity.AddTime = DateTime.Now; entity.AddWho = loginUser.UserNo; entity.EditTime = DateTime.Now; entity.EditWho = loginUser.UserNo; entity.AppTypeNum = 1; entity.SortNum = sort; entity.ACLItem = entity.Code; var searchentity = entity.Adapt(); searchentity.Id = IdFactory.NewId(); searchentity.Code = entity.Code + "_lr_search"; searchentity.ACLItem = searchentity.Code; searchentity.PNO = entity.Code; searchentity.SortNum = 0; searchentity.Name = "查看"; _aclConstRepository.Deleteable().Where(it => it.Code == searchentity.Code).ExecuteCommand(); _aclConstRepository.Insert(entity); _aclConstRepository.Insert(searchentity); } else { entity.Id = Convert.ToInt64(keyValue); entity.EditTime = DateTime.Now; entity.EditWho = loginUser.UserNo; _aclConstRepository.UpdateEntity(entity); } } catch (Exception ex) { throw ex; } } /// /// 保存实体数据(新增、修改) /// 主键 /// /// public void SaveEntity(LoginUserInfo loginUserInfo, string keyValue, AclConst entity) { if (entity == null) { throw new ArgumentException("输入数据为空"); } if (string.IsNullOrWhiteSpace(entity.Code)) { throw new ArgumentException("编号为空"); } if (string.IsNullOrWhiteSpace(entity.Name)) { throw new ArgumentException("名称为空"); } entity.EditTime = DateTime.Now; entity.EditWho = loginUserInfo.UserNo; if (string.IsNullOrEmpty(keyValue)) { entity.Id = IdFactory.NewId(); entity.AddTime = DateTime.Now; entity.AddWho = loginUserInfo.UserNo; _aclConstRepository.Insert(entity); } else { entity.Id = Convert.ToInt64(keyValue); _aclConstRepository.UpdateEntity(entity); } } public void SaveWebACLConst(LoginUserInfo loginUser) { var list = _sysModuleService.GetList(); if (list == null) { return; } _aclConstRepository.Deleteable().Where(it => it.AppTypeNum == (int)EAppType.PC).ExecuteCommand(); List aclConstList = new List(); foreach (var item in list) { if (item.Code.Contains("Web_DevelopmentM")) { continue; } aclConstList.Add(new AclConst() { ACLItem = item.Code, AddTime = DateTime.Now, AddWho = loginUser.UserNo, AppTypeNum = (int)EAppType.PC, Code = item.Code, EditTime = DateTime.Now, EditWho = loginUser.UserNo, Name = item.Name, PNO = item.PNO, SortNum = item.SortNum }); } _aclConstRepository.Insert(aclConstList); } public void SaveWebACLBtnConst(LoginUserInfo loginUser, string keyValue, List AclList) { _aclConstRepository.Deleteable().Where(it => it.PNO == keyValue).ExecuteCommand(); List list = new List(); if (AclList == null) { return; } AclList.ForEach(it => { int i = 0; it.AddTime = DateTime.Now; it.AddWho = loginUser.UserNo; it.AppTypeNum = (int)EAppType.PC; it.EditTime = DateTime.Now; it.EditWho = loginUser.UserNo; it.PNO = keyValue; it.SortNum = i++; it.Code = it.ACLItem; }); _aclConstRepository.Insert(AclList); } } }