using Mapster; using WMS.BZModels; using WMS.BZModels.Dto.UserCenterManager.SysModuleDtos; using WMS.BZModels.Models.UserCenterManager; using WMS.Info; using WMS.BZSqlSugar; using WMS.Util; namespace WMS.BZServices.UserCenterManager { public class SysModuleService { private readonly Repository _sysModuleRepository; public SysModuleService(Repository sysModuleRepository) { _sysModuleRepository = sysModuleRepository; } public List GetList() { var lists = _sysModuleRepository.Queryable().Where(o => o.IsStop == 0).OrderBy(x => x.SortNum).ToList(); return lists.Adapt>(); } /// /// 获取功能列表的树形数据 /// /// public List GetTree() { List modulelist = GetList(); List treeList = new List(); foreach (var item in modulelist) { TreeModel node = new TreeModel(); node.id = item.Code; node.text = item.Name; node.value = item.Code; node.showcheck = false; node.checkstate = 0; node.isexpand = (item.AllowExpand == 1); node.icon = item.Icon; node.parentId = item.PNO; treeList.Add(node); } var listTree = treeList.ToTree(); return listTree; } /// /// 获取功能列表的树形数据(只有展开项) /// /// public List GetExpendTree() { List modulelist = GetList(); List treeList = new List(); foreach (var item in modulelist) { if (item.Target == (int)EModuleTarget.Expand) { TreeModel node = new TreeModel(); node.id = item.Code; node.text = item.Name; node.value = item.Code; node.showcheck = false; node.checkstate = 0; node.isexpand = true; node.icon = item.Icon; node.parentId = item.PNO; treeList.Add(node); } } var ExpendTree = treeList.ToTree(); return ExpendTree; } public void Delete(string ModuleNo) { if (_sysModuleRepository.Queryable().Any(o => o.PNO == ModuleNo)) { throw new ArgumentException("存在子菜单没有删除"); } _sysModuleRepository.Deleteable().Where(it => it.Code == ModuleNo).ExecuteCommand(); } public void Save(LoginUserInfo loginUser, string keyValue, SysModule 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") { entity.Id = IdFactory.NewId(); entity.AddTime = DateTime.Now; entity.AddWho = loginUser.UserNo; entity.EditTime = DateTime.Now; entity.EditWho = loginUser.UserNo; _sysModuleRepository.Insert(entity); } else { entity.Id = Convert.ToInt64(keyValue); entity.EditTime = DateTime.Now; entity.EditWho = loginUser.UserNo; _sysModuleRepository.UpdateEntity(entity); } } catch (Exception ex) { throw ex; } } public bool ExistNo(string ModuleNo) { return _sysModuleRepository.Queryable().Any(it => it.Code == ModuleNo); } public SysModuleDto GetOpenFrmParams(string keys, string types) { SysModule entity = null; if (types == "0") { entity = _sysModuleRepository.Queryable().Single(v => v.Code == keys) ; if (entity == null) throw new Exception("未找到相关菜单"); } else { string[] pno = new string[] { "Web_InM", "Web_OutM", "Web_QCM" }; var mon = _sysModuleRepository.Queryable().Where(v => pno.Contains(v.PNO)).ToArray(); foreach (var item in mon) { int t = item.URLAddr.Split('=').Count() > 1 ? int.Parse(item.URLAddr.Split('=')[1]) : 0; //if (t == sysdate.F_NUM) //{ // entity = item; // break; //} entity = item; } //var no = mon.Where(v =>v.F_ORDERTYPE == sysdate.F_NUM).First().F_NO; //entity = ctx.Queryable().Where(v => v.F_NO == no).First(); if (entity == null) throw new Exception("未找到相关菜单"); } return entity.Adapt(); } } }