Ви не можете вибрати більше 25 тем Теми мають розпочинатися з літери або цифри, можуть містити дефіси (-) і не повинні перевищувати 35 символів.
 
 
 
 
 
 

262 рядки
7.7 KiB

  1. using Learun.DataBase.Repository;
  2. using Learun.Util;
  3. using System;
  4. using System.Collections.Generic;
  5. using System.Text;
  6. namespace Learun.Application.Organization
  7. {
  8. /// <summary>
  9. /// 版 本 Learun-ADMS-Ultimate V7.0.0 数字化智慧校园
  10. /// Copyright (c) 2013-2018 北京泉江科技有限公司
  11. /// 创建人:陈彬彬
  12. /// 日 期:2017.03.04
  13. /// 描 述:角色管理
  14. /// </summary>
  15. public class RoleService : RepositoryFactory
  16. {
  17. #region 构造函数和属性
  18. private string fieldSql;
  19. public RoleService()
  20. {
  21. fieldSql = @"
  22. t.F_RoleId,
  23. t.F_Category,
  24. t.F_EnCode,
  25. t.F_FullName,
  26. t.F_SortCode,
  27. t.F_DeleteMark,
  28. t.F_EnabledMark,
  29. t.F_Description,
  30. t.F_CreateDate,
  31. t.F_CreateUserId,
  32. t.F_CreateUserName,
  33. t.F_ModifyDate,
  34. t.F_ModifyUserId,
  35. t.F_ModifyUserName
  36. ";
  37. }
  38. #endregion
  39. #region 获取数据
  40. /// <summary>
  41. /// 获取角色数据列表
  42. /// </summary>
  43. /// <returns></returns>
  44. public IEnumerable<RoleEntity> GetList()
  45. {
  46. try
  47. {
  48. var strSql = new StringBuilder();
  49. strSql.Append("SELECT ");
  50. strSql.Append(fieldSql);
  51. strSql.Append(" FROM LR_Base_Role t WHERE t.F_EnabledMark = 1 AND t.F_DeleteMark = 0 ORDER BY t.F_FullName ");
  52. return this.BaseRepository().FindList<RoleEntity>(strSql.ToString());
  53. }
  54. catch (Exception ex)
  55. {
  56. if (ex is ExceptionEx)
  57. {
  58. throw;
  59. }
  60. else
  61. {
  62. throw ExceptionEx.ThrowServiceException(ex);
  63. }
  64. }
  65. }
  66. /// <summary>
  67. /// 获取角色数据列表
  68. /// </summary>
  69. /// <returns></returns>
  70. public IEnumerable<RoleEntity> GetListForSelect()
  71. {
  72. try
  73. {
  74. var strSql = new StringBuilder();
  75. strSql.Append("SELECT t.F_RoleId,t.F_FullName,t.F_EnCode");
  76. strSql.Append(" FROM LR_Base_Role t WHERE t.F_EnabledMark = 1 AND t.F_DeleteMark = 0 ORDER BY t.F_EnCode ");
  77. return this.BaseRepository().FindList<RoleEntity>(strSql.ToString());
  78. }
  79. catch (Exception ex)
  80. {
  81. if (ex is ExceptionEx)
  82. {
  83. throw;
  84. }
  85. else
  86. {
  87. throw ExceptionEx.ThrowServiceException(ex);
  88. }
  89. }
  90. }
  91. public IEnumerable<RoleEntity> GetPageList(Pagination pagination, string keyword)
  92. {
  93. try
  94. {
  95. var strSql = new StringBuilder();
  96. strSql.Append("SELECT ");
  97. strSql.Append(fieldSql);
  98. strSql.Append(" FROM LR_Base_Role t WHERE t.F_EnabledMark = 1 AND t.F_DeleteMark = 0 ");
  99. if (!string.IsNullOrEmpty(keyword))
  100. {
  101. keyword = "%" + keyword + "%";
  102. strSql.Append(" AND( t.F_FullName like @keyword or t.F_EnCode like @keyword ) ");
  103. }
  104. return this.BaseRepository().FindList<RoleEntity>(strSql.ToString(), new { keyword }, pagination);
  105. }
  106. catch (Exception ex)
  107. {
  108. if (ex is ExceptionEx)
  109. {
  110. throw;
  111. }
  112. else
  113. {
  114. throw ExceptionEx.ThrowServiceException(ex);
  115. }
  116. }
  117. }
  118. /// <summary>
  119. /// 根据角色名获取角色
  120. /// </summary>
  121. /// <param name="roleName"></param>
  122. /// <returns></returns>
  123. public RoleEntity GetRoleByRoleName(string roleName)
  124. {
  125. try
  126. {
  127. return this.BaseRepository().FindEntity<RoleEntity>(a => a.F_FullName == roleName);
  128. }
  129. catch (Exception ex)
  130. {
  131. if (ex is ExceptionEx)
  132. {
  133. throw;
  134. }
  135. else
  136. {
  137. throw ExceptionEx.ThrowServiceException(ex);
  138. }
  139. }
  140. }
  141. internal string GetIdByRoleName(string v)
  142. {
  143. try
  144. {
  145. return this.BaseRepository().FindEntity<RoleEntity>(t => t.F_FullName == v).F_RoleId;
  146. }
  147. catch (Exception ex)
  148. {
  149. if (ex is ExceptionEx)
  150. {
  151. throw;
  152. }
  153. else
  154. {
  155. throw ExceptionEx.ThrowServiceException(ex);
  156. }
  157. }
  158. }
  159. /// <summary>
  160. /// 获取角色数据列表
  161. /// </summary>
  162. /// <param name="roleIds">主键串</param>
  163. /// <returns></returns>
  164. public IEnumerable<RoleEntity> GetListByRoleIds(string roleIds)
  165. {
  166. try
  167. {
  168. return this.BaseRepository().FindList<RoleEntity>(t => roleIds.Contains(t.F_RoleId));
  169. }
  170. catch (Exception ex)
  171. {
  172. if (ex is ExceptionEx)
  173. {
  174. throw;
  175. }
  176. else
  177. {
  178. throw ExceptionEx.ThrowServiceException(ex);
  179. }
  180. }
  181. }
  182. #endregion
  183. #region 提交数据
  184. /// <summary>
  185. /// 虚拟删除角色
  186. /// </summary>
  187. /// <param name="keyValue">主键</param>
  188. public void VirtualDelete(string keyValue)
  189. {
  190. var db = this.BaseRepository().BeginTrans();
  191. try
  192. {
  193. RoleEntity entity = new RoleEntity()
  194. {
  195. F_RoleId = keyValue,
  196. F_DeleteMark = 1
  197. };
  198. db.Update(entity);
  199. db.ExecuteBySql(" Delete From LR_BASE_USERRELATION where F_OBJECTID = @keyValue ", new { keyValue = keyValue });
  200. db.Commit();
  201. }
  202. catch (Exception ex)
  203. {
  204. db.Rollback();
  205. if (ex is ExceptionEx)
  206. {
  207. throw;
  208. }
  209. else
  210. {
  211. throw ExceptionEx.ThrowServiceException(ex);
  212. }
  213. }
  214. }
  215. /// <summary>
  216. /// 保存角色(新增、修改)
  217. /// </summary>
  218. /// <param name="keyValue">主键值</param>
  219. /// <param name="roleEntity">角色实体</param>
  220. /// <returns></returns>
  221. public void SaveEntity(string keyValue, RoleEntity roleEntity)
  222. {
  223. try
  224. {
  225. if (!string.IsNullOrEmpty(keyValue))
  226. {
  227. roleEntity.Modify(keyValue);
  228. this.BaseRepository().Update(roleEntity);
  229. }
  230. else
  231. {
  232. roleEntity.Create();
  233. this.BaseRepository().Insert(roleEntity);
  234. }
  235. }
  236. catch (Exception ex)
  237. {
  238. if (ex is ExceptionEx)
  239. {
  240. throw;
  241. }
  242. else
  243. {
  244. throw ExceptionEx.ThrowServiceException(ex);
  245. }
  246. }
  247. }
  248. #endregion
  249. }
  250. }