PermissionService.cs 8.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208
  1. using LeaRun.Data.Repository;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System;
  5. using LeaRun.Application.IService.AuthorizeManage;
  6. using LeaRun.Application.Entity.BaseManage;
  7. using LeaRun.Application.Entity.AuthorizeManage;
  8. using LeaRun.Application.Code;
  9. namespace LeaRun.Application.Service.BaseManage
  10. {
  11. /// <summary>
  12. /// 版 本
  13. /// Copyright (c) 2013-2016 上海力软信息技术有限公司
  14. /// 创建人:佘赐雄
  15. /// 日 期:2015.11.5 22:35
  16. /// 描 述:权限配置管理(角色、岗位、职位、用户组、用户)
  17. /// </summary>
  18. public class PermissionService : RepositoryFactory, IPermissionService
  19. {
  20. #region 获取数据
  21. /// <summary>
  22. /// 获取成员列表
  23. /// </summary>
  24. /// <param name="objectId">对象Id</param>
  25. /// <returns></returns>
  26. public IEnumerable<UserRelationEntity> GetMemberList(string objectId)
  27. {
  28. return this.BaseRepository().IQueryable<UserRelationEntity>(t => t.ObjectId == objectId).OrderByDescending(t => t.CreateDate).ToList();
  29. }
  30. /// <summary>
  31. /// 获取对象列表
  32. /// </summary>
  33. /// <param name="UserId"></param>
  34. /// <returns></returns>
  35. public IEnumerable<UserRelationEntity> GetObjectList(string userId)
  36. {
  37. return this.BaseRepository().IQueryable<UserRelationEntity>(t => t.UserId == userId).OrderByDescending(t => t.CreateDate).ToList();
  38. }
  39. /// <summary>
  40. /// 获取功能列表
  41. /// </summary>
  42. /// <param name="objectId">对象Id</param>
  43. /// <returns></returns>
  44. public IEnumerable<AuthorizeEntity> GetModuleList(string objectId)
  45. {
  46. return this.BaseRepository().IQueryable<AuthorizeEntity>(t => t.ObjectId == objectId && t.ItemType == 1).ToList();
  47. }
  48. /// <summary>
  49. /// 获取功能列表
  50. /// </summary>
  51. /// <param name="objectId">对象Id</param>
  52. /// <returns></returns>
  53. public IEnumerable<AuthorizeEntity> GetModuleListN(string objectId)
  54. {
  55. return this.BaseRepository().IQueryable<AuthorizeEntity>(t => t.ObjectId == objectId && t.ItemType == 1).ToList();
  56. }
  57. /// <summary>
  58. /// 获取按钮列表
  59. /// </summary>
  60. /// <param name="objectId">对象Id</param>
  61. /// <returns></returns>
  62. public IEnumerable<AuthorizeEntity> GetModuleButtonList(string objectId)
  63. {
  64. return this.BaseRepository().IQueryable<AuthorizeEntity>(t => t.ObjectId == objectId && t.ItemType == 2).ToList();
  65. }
  66. /// <summary>
  67. /// 获取视图列表
  68. /// </summary>
  69. /// <param name="objectId">对象Id</param>
  70. /// <returns></returns>
  71. public IEnumerable<AuthorizeEntity> GetModuleColumnList(string objectId)
  72. {
  73. return this.BaseRepository().IQueryable<AuthorizeEntity>(t => t.ObjectId == objectId && t.ItemType == 3).ToList();
  74. }
  75. /// <summary>
  76. /// 获取数据权限列表
  77. /// </summary>
  78. /// <param name="objectId">对象Id</param>
  79. /// <returns></returns>
  80. public IEnumerable<AuthorizeDataEntity> GetAuthorizeDataList(string objectId)
  81. {
  82. return this.BaseRepository().IQueryable<AuthorizeDataEntity>(t => t.ObjectId == objectId).OrderBy(t => t.SortCode).ToList();
  83. }
  84. #endregion
  85. #region 提交数据
  86. /// <summary>
  87. /// 添加成员
  88. /// </summary>
  89. /// <param name="authorizeType">权限分类</param>
  90. /// <param name="objectId">对象Id</param>
  91. /// <param name="userIds">成员Id</param>
  92. public void SaveMember(AuthorizeTypeEnum authorizeType, string objectId, string[] userIds)
  93. {
  94. IRepository db = new RepositoryFactory().BaseRepository().BeginTrans();
  95. try
  96. {
  97. db.Delete<UserRelationEntity>(t => t.ObjectId == objectId && t.IsDefault == 0);
  98. int SortCode = 1;
  99. foreach (string item in userIds)
  100. {
  101. UserRelationEntity userRelationEntity = new UserRelationEntity();
  102. userRelationEntity.Create();
  103. userRelationEntity.Category = (int)authorizeType;
  104. userRelationEntity.ObjectId = objectId;
  105. userRelationEntity.UserId = item;
  106. userRelationEntity.SortCode = SortCode++;
  107. db.Insert(userRelationEntity);
  108. }
  109. db.Commit();
  110. }
  111. catch (Exception)
  112. {
  113. db.Rollback();
  114. throw;
  115. }
  116. }
  117. /// <summary>
  118. /// 添加授权
  119. /// </summary>
  120. /// <param name="authorizeType">权限分类</param>
  121. /// <param name="objectId">对象Id</param>
  122. /// <param name="moduleIds">功能Id</param>
  123. /// <param name="moduleButtonIds">按钮Id</param>
  124. /// <param name="moduleColumnIds">视图Id</param>
  125. /// <param name="authorizeDataList">数据权限</param>
  126. public void SaveAuthorize(AuthorizeTypeEnum authorizeType, string objectId, string[] moduleIds, string[] moduleButtonIds, string[] moduleColumnIds, IEnumerable<AuthorizeDataEntity> authorizeDataList)
  127. {
  128. IRepository db = new RepositoryFactory().BaseRepository().BeginTrans();
  129. try
  130. {
  131. db.Delete<AuthorizeEntity>(t => t.ObjectId == objectId);
  132. #region 功能
  133. int SortCode = 1;
  134. foreach (string item in moduleIds)
  135. {
  136. AuthorizeEntity authorizeEntity = new AuthorizeEntity();
  137. authorizeEntity.Create();
  138. authorizeEntity.Category = (int)authorizeType;
  139. authorizeEntity.ObjectId = objectId;
  140. authorizeEntity.ItemType = 1;
  141. authorizeEntity.ItemId = item;
  142. authorizeEntity.SortCode = SortCode++;
  143. db.Insert(authorizeEntity);
  144. }
  145. #endregion
  146. #region 按钮
  147. SortCode = 1;
  148. foreach (string item in moduleButtonIds)
  149. {
  150. AuthorizeEntity authorizeEntity = new AuthorizeEntity();
  151. authorizeEntity.Create();
  152. authorizeEntity.Category = (int)authorizeType;
  153. authorizeEntity.ObjectId = objectId;
  154. authorizeEntity.ItemType = 2;
  155. authorizeEntity.ItemId = item;
  156. authorizeEntity.SortCode = SortCode++;
  157. db.Insert(authorizeEntity);
  158. }
  159. #endregion
  160. #region 视图
  161. SortCode = 1;
  162. foreach (string item in moduleColumnIds)
  163. {
  164. AuthorizeEntity authorizeEntity = new AuthorizeEntity();
  165. authorizeEntity.Create();
  166. authorizeEntity.Category = (int)authorizeType;
  167. authorizeEntity.ObjectId = objectId;
  168. authorizeEntity.ItemType = 3;
  169. authorizeEntity.ItemId = item;
  170. authorizeEntity.SortCode = SortCode++;
  171. db.Insert(authorizeEntity);
  172. }
  173. #endregion
  174. #region 数据权限
  175. SortCode = 1;
  176. db.Delete<AuthorizeDataEntity>(objectId, "ObjectId");
  177. int index = 0;
  178. foreach (AuthorizeDataEntity authorizeDataEntity in authorizeDataList)
  179. {
  180. authorizeDataEntity.Create();
  181. authorizeDataEntity.Category = (int)authorizeType;
  182. authorizeDataEntity.ObjectId = objectId;
  183. // authorizeDataEntity.Module = "Department";
  184. authorizeDataEntity.SortCode = SortCode++;
  185. db.Insert(authorizeDataEntity);
  186. index++;
  187. }
  188. #endregion
  189. db.Commit();
  190. }
  191. catch (Exception)
  192. {
  193. db.Rollback();
  194. throw;
  195. }
  196. }
  197. #endregion
  198. }
  199. }