SysModuleService.cs 5.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174
  1. using Mapster;
  2. using WMS.BZModels;
  3. using WMS.BZModels.Dto.UserCenterManager.SysModuleDtos;
  4. using WMS.BZModels.Models.UserCenterManager;
  5. using WMS.Info;
  6. using WMS.BZSqlSugar;
  7. using WMS.Util;
  8. namespace WMS.BZServices.UserCenterManager
  9. {
  10. public class SysModuleService
  11. {
  12. private readonly Repository<SysModule> _sysModuleRepository;
  13. public SysModuleService(Repository<SysModule> sysModuleRepository)
  14. {
  15. _sysModuleRepository = sysModuleRepository;
  16. }
  17. public List<SysModuleDto> GetList()
  18. {
  19. var lists = _sysModuleRepository.Queryable().Where(o => o.IsStop == 0).OrderBy(x => x.SortNum).ToList();
  20. return lists.Adapt<List<SysModuleDto>>();
  21. }
  22. /// <summary>
  23. /// 获取功能列表的树形数据
  24. /// </summary>
  25. /// <returns></returns>
  26. public List<TreeModel> GetTree()
  27. {
  28. List<SysModuleDto> modulelist = GetList();
  29. List<TreeModel> treeList = new List<TreeModel>();
  30. foreach (var item in modulelist)
  31. {
  32. TreeModel node = new TreeModel();
  33. node.id = item.Code;
  34. node.text = item.Name;
  35. node.value = item.Code;
  36. node.showcheck = false;
  37. node.checkstate = 0;
  38. node.isexpand = (item.AllowExpand == 1);
  39. node.icon = item.Icon;
  40. node.parentId = item.PNO;
  41. treeList.Add(node);
  42. }
  43. var listTree = treeList.ToTree();
  44. return listTree;
  45. }
  46. /// <summary>
  47. /// 获取功能列表的树形数据(只有展开项)
  48. /// </summary>
  49. /// <returns></returns>
  50. public List<TreeModel> GetExpendTree()
  51. {
  52. List<SysModuleDto> modulelist = GetList();
  53. List<TreeModel> treeList = new List<TreeModel>();
  54. foreach (var item in modulelist)
  55. {
  56. if (item.Target == (int)EModuleTarget.Expand)
  57. {
  58. TreeModel node = new TreeModel();
  59. node.id = item.Code;
  60. node.text = item.Name;
  61. node.value = item.Code;
  62. node.showcheck = false;
  63. node.checkstate = 0;
  64. node.isexpand = true;
  65. node.icon = item.Icon;
  66. node.parentId = item.PNO;
  67. treeList.Add(node);
  68. }
  69. }
  70. var ExpendTree = treeList.ToTree();
  71. return ExpendTree;
  72. }
  73. public void Delete(string ModuleNo)
  74. {
  75. if (_sysModuleRepository.Queryable().Any(o => o.PNO == ModuleNo))
  76. {
  77. throw new ArgumentException("存在子菜单没有删除");
  78. }
  79. _sysModuleRepository.Deleteable().Where(it => it.Code == ModuleNo).ExecuteCommand();
  80. }
  81. public void Save(LoginUserInfo loginUser, string keyValue, SysModule entity)
  82. {
  83. try
  84. {
  85. if (string.IsNullOrWhiteSpace(entity.Code))
  86. {
  87. throw new ArgumentException("菜单编号为空。");
  88. }
  89. if (string.IsNullOrWhiteSpace(entity.PNO))
  90. {
  91. throw new ArgumentException("父菜单编号为空。");
  92. }
  93. if (string.IsNullOrWhiteSpace(entity.Name))
  94. {
  95. throw new ArgumentException("菜单名称为空。");
  96. }
  97. DateTime nowdt = DateTime.Now;
  98. if (keyValue.IsEmpty() || keyValue == "undefined")
  99. {
  100. entity.Id = IdFactory.NewId();
  101. entity.AddTime = DateTime.Now;
  102. entity.AddWho = loginUser.UserNo;
  103. entity.EditTime = DateTime.Now;
  104. entity.EditWho = loginUser.UserNo;
  105. _sysModuleRepository.Insert(entity);
  106. }
  107. else
  108. {
  109. entity.Id = Convert.ToInt64(keyValue);
  110. entity.EditTime = DateTime.Now;
  111. entity.EditWho = loginUser.UserNo;
  112. _sysModuleRepository.UpdateEntity(entity);
  113. }
  114. }
  115. catch (Exception ex)
  116. {
  117. throw ex;
  118. }
  119. }
  120. public bool ExistNo(string ModuleNo)
  121. {
  122. return _sysModuleRepository.Queryable().Any(it => it.Code == ModuleNo);
  123. }
  124. public SysModuleDto GetOpenFrmParams(string keys, string types)
  125. {
  126. SysModule entity = null;
  127. if (types == "0")
  128. {
  129. entity = _sysModuleRepository.Queryable().Single(v => v.Code == keys) ;
  130. if (entity == null)
  131. throw new Exception("未找到相关菜单");
  132. }
  133. else
  134. {
  135. string[] pno = new string[] { "Web_InM", "Web_OutM", "Web_QCM" };
  136. var mon = _sysModuleRepository.Queryable().Where(v => pno.Contains(v.PNO)).ToArray();
  137. foreach (var item in mon)
  138. {
  139. int t = item.URLAddr.Split('=').Count() > 1 ? int.Parse(item.URLAddr.Split('=')[1]) : 0;
  140. //if (t == sysdate.F_NUM)
  141. //{
  142. // entity = item;
  143. // break;
  144. //}
  145. entity = item;
  146. }
  147. //var no = mon.Where(v =>v.F_ORDERTYPE == sysdate.F_NUM).First().F_NO;
  148. //entity = ctx.Queryable<SYS_MODULE>().Where(v => v.F_NO == no).First();
  149. if (entity == null)
  150. throw new Exception("未找到相关菜单");
  151. }
  152. return entity.Adapt<SysModuleDto>();
  153. }
  154. }
  155. }