ModuleService.cs 5.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162
  1. using LeaRun.Application.Entity.AuthorizeManage;
  2. using LeaRun.Application.IService.AuthorizeManage;
  3. using LeaRun.Data.Repository;
  4. using LeaRun.Util.Extension;
  5. using System;
  6. using System.Collections.Generic;
  7. using System.Linq;
  8. using System.Text;
  9. namespace LeaRun.Application.Service.BaseManage
  10. {
  11. /// <summary>
  12. /// 版 本 6.1
  13. /// Copyright (c) 2013-2016 上海力软信息技术有限公司
  14. /// 创建人:佘赐雄
  15. /// 日 期:2015.10.27 09:16
  16. /// 描 述:系统功能
  17. /// </summary>
  18. public class ModuleService : RepositoryFactory<ModuleEntity>, IModuleService
  19. {
  20. #region 获取数据
  21. /// <summary>
  22. /// 获取最大编号
  23. /// </summary>
  24. /// <returns></returns>
  25. public int GetSortCode()
  26. {
  27. int sortCode = this.BaseRepository().IQueryable().Max(t => t.SortCode).ToInt();
  28. if (!string.IsNullOrEmpty(sortCode.ToString()))
  29. {
  30. return sortCode + 1;
  31. }
  32. return 100001;
  33. }
  34. /// <summary>
  35. /// 功能列表
  36. /// </summary>
  37. /// <returns></returns>
  38. public IEnumerable<ModuleEntity> GetList()
  39. {
  40. StringBuilder strSql = new StringBuilder();
  41. strSql.Append("SELECT * FROM bASE_Module Order By SortCode");
  42. return this.BaseRepository().FindList(strSql.ToString());
  43. }
  44. /// <summary>
  45. /// 功能实体
  46. /// </summary>
  47. /// <param name="keyValue">主键值</param>
  48. /// <returns></returns>
  49. public ModuleEntity GetEntity(string keyValue)
  50. {
  51. return this.BaseRepository().FindEntity(keyValue);
  52. }
  53. #endregion
  54. #region 验证数据
  55. /// <summary>
  56. /// 功能编号不能重复
  57. /// </summary>
  58. /// <param name="enCode">编号</param>
  59. /// <param name="keyValue">主键</param>
  60. /// <returns></returns>
  61. public bool ExistEnCode(string enCode, string keyValue)
  62. {
  63. var expression = LinqExtensions.True<ModuleEntity>();
  64. expression = expression.And(t => t.EnCode == enCode);
  65. if (!string.IsNullOrEmpty(keyValue))
  66. {
  67. expression = expression.And(t => t.ModuleId != keyValue);
  68. }
  69. return this.BaseRepository().IQueryable(expression).Count() == 0 ? true : false;
  70. }
  71. /// <summary>
  72. /// 功能名称不能重复
  73. /// </summary>
  74. /// <param name="fullName">名称</param>
  75. /// <param name="keyValue">主键</param>
  76. /// <returns></returns>
  77. public bool ExistFullName(string fullName, string keyValue)
  78. {
  79. var expression = LinqExtensions.True<ModuleEntity>();
  80. expression = expression.And(t => t.FullName == fullName);
  81. if (!string.IsNullOrEmpty(keyValue))
  82. {
  83. expression = expression.And(t => t.ModuleId != keyValue);
  84. }
  85. return this.BaseRepository().IQueryable(expression).Count() == 0 ? true : false;
  86. }
  87. #endregion
  88. #region 提交数据
  89. /// <summary>
  90. /// 删除功能
  91. /// </summary>
  92. /// <param name="keyValue">主键</param>
  93. public void RemoveForm(string keyValue)
  94. {
  95. IRepository db = new RepositoryFactory().BaseRepository().BeginTrans();
  96. try
  97. {
  98. int count = db.IQueryable<ModuleEntity>(t => t.ParentId == keyValue).Count();
  99. if (count > 0)
  100. {
  101. throw new Exception("当前所选数据有子节点数据!");
  102. }
  103. db.Delete<ModuleEntity>(keyValue);
  104. db.Delete<ModuleButtonEntity>(t => t.ModuleId.Equals(keyValue));
  105. db.Delete<ModuleColumnEntity>(t => t.ModuleId.Equals(keyValue));
  106. db.Commit();
  107. }
  108. catch (Exception)
  109. {
  110. db.Rollback();
  111. throw;
  112. }
  113. }
  114. /// <summary>
  115. /// 保存表单(新增、修改)
  116. /// </summary>
  117. /// <param name="keyValue">主键值</param>
  118. /// <param name="moduleEntity">功能实体</param>
  119. /// <param name="moduleButtonList">按钮实体列表</param>
  120. /// <param name="moduleColumnList">视图实体列表</param>
  121. /// <returns></returns>
  122. public void SaveForm(string keyValue, ModuleEntity moduleEntity, List<ModuleButtonEntity> moduleButtonList, List<ModuleColumnEntity> moduleColumnList)
  123. {
  124. IRepository db = new RepositoryFactory().BaseRepository().BeginTrans();
  125. try
  126. {
  127. if (!string.IsNullOrEmpty(keyValue))
  128. {
  129. moduleEntity.Modify(keyValue);
  130. db.Update(moduleEntity);
  131. }
  132. else
  133. {
  134. moduleEntity.Create();
  135. db.Insert(moduleEntity);
  136. }
  137. db.Delete<ModuleButtonEntity>(t => t.ModuleId.Equals(keyValue));
  138. if (moduleButtonList != null)
  139. {
  140. db.Insert(moduleButtonList);
  141. }
  142. db.Delete<ModuleColumnEntity>(t => t.ModuleId.Equals(keyValue));
  143. if (moduleColumnList != null)
  144. {
  145. db.Insert(moduleColumnList);
  146. }
  147. db.Commit();
  148. }
  149. catch (Exception)
  150. {
  151. db.Rollback();
  152. throw;
  153. }
  154. }
  155. #endregion
  156. }
  157. }