飞星
您最多选择25个主题 主题必须以字母或数字开头,可以包含连字符 (-),并且长度不得超过35个字符
 
 
 
 

155 行
4.9 KiB

  1. using System;
  2. using System.Collections.Generic;
  3. using Permission.Entity.System;
  4. using Permission.Service.IServices;
  5. using Permission.Infrastructure.Repositories;
  6. using System.Linq;
  7. using Permission.Infrastructure.WebControls;
  8. using Permission.Utils.Validate;
  9. namespace Permission.Service.Services
  10. {
  11. public class SysMenuService : ISysMenuService
  12. {
  13. private readonly IBaseRepository<SysMenu> _sysMenuRepository;
  14. public SysMenuService(IBaseRepository<SysMenu> sysMenuRepository)
  15. {
  16. this._sysMenuRepository = sysMenuRepository;
  17. }
  18. public bool AddModel(SysMenu model)
  19. {
  20. try
  21. {
  22. model.GuidId = Guid.NewGuid().ToString();
  23. if (model.ParentId == null || model.ParentId == 0)
  24. {
  25. model.Layer = 0;
  26. }
  27. else
  28. {
  29. var layer = _sysMenuRepository.Get(model.ParentId.Value).Layer;
  30. if (layer != null)
  31. {
  32. int parentLayer = layer.Value;
  33. model.Layer = parentLayer + 1;
  34. }
  35. }
  36. model.ParentId = model.ParentId ?? 0;
  37. model.IsEnable = model.IsEnable != null;
  38. model.IsEdit = model.IsEdit != null;
  39. model.IsPublic = model.IsPublic != null;
  40. model.DeleteMark = false;
  41. model.CreateTime = DateTime.Now;
  42. var res = _sysMenuRepository.Save(model);
  43. return res;
  44. }
  45. catch (Exception ex)
  46. {
  47. throw ex;
  48. }
  49. }
  50. public bool ModifyModel(SysMenu model)
  51. {
  52. try
  53. {
  54. var menu = _sysMenuRepository.Get(model.Id);
  55. menu.EnCode = model.EnCode;
  56. menu.ParentId = model.ParentId;
  57. if (model.ParentId == null || model.ParentId == 0)
  58. {
  59. model.Layer = 0;
  60. }
  61. else
  62. {
  63. var layer = _sysMenuRepository.Get(model.ParentId.Value).Layer;
  64. if (layer != null)
  65. {
  66. int parentLayer = layer.Value;
  67. model.Layer = parentLayer + 1;
  68. }
  69. }
  70. menu.Type = model.Type;
  71. menu.MenuName = model.MenuName;
  72. menu.JsEvent = model.JsEvent;
  73. menu.Url = model.Url;
  74. menu.Icon = model.Icon;
  75. menu.SortCode = model.SortCode;
  76. menu.IsPublic = model.IsPublic;
  77. menu.IsEdit = model.IsEdit;
  78. menu.IsEnable = model.IsEnable;
  79. menu.ModifyTime = DateTime.Now;
  80. menu.ModifyUser = model.ModifyUser;
  81. menu.Remark = model.Remark;
  82. var res = _sysMenuRepository.Update(menu);
  83. return res;
  84. }
  85. catch (Exception ex)
  86. {
  87. throw ex;
  88. }
  89. }
  90. public List<SysMenu> GetMenuList()
  91. {
  92. try
  93. {
  94. var data = _sysMenuRepository.QueryEntity<SysMenu, int, SysMenu>(m => m.IsEnable.Value == true && m.DeleteMark.Value == false, ms => ms.SortCode.Value, null, true).ToList();
  95. return data;
  96. }
  97. catch (Exception ex)
  98. {
  99. throw ex;
  100. }
  101. }
  102. public Page<SysMenu> PageList(string keyword, int pagesize, int pageindex)
  103. {
  104. try
  105. {
  106. int total = 0;
  107. if (keyword.IsEmpty())
  108. {
  109. var data = _sysMenuRepository.PageList(pageindex, pagesize, us => us.OrderBy(ur =>
  110. ur.SortCode),
  111. u => u,
  112. out total,
  113. u => u.DeleteMark == false);
  114. return data;
  115. }
  116. else
  117. {
  118. var data = _sysMenuRepository.PageList(pageindex, pagesize, us => us.OrderBy(ur => ur.SortCode),
  119. u => u,
  120. out total,
  121. u => (u.MenuName.Contains(keyword) || u.EnCode.Contains(keyword)) && u.DeleteMark == false);
  122. return data;
  123. }
  124. }
  125. catch (Exception e)
  126. {
  127. throw e;
  128. }
  129. }
  130. public SysMenu GetMenuByKey(int key)
  131. {
  132. try
  133. {
  134. if (!key.IsEmpty() || key > 0)
  135. {
  136. var data = _sysMenuRepository.Get(key);
  137. return data;
  138. }
  139. return null;
  140. }
  141. catch (Exception e)
  142. {
  143. throw e;
  144. }
  145. }
  146. }
  147. }