MenuManagerModelsService.cs 8.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197
  1. using System.Collections.Generic;
  2. using System.ComponentModel.DataAnnotations.Schema;
  3. using System.Data.Common;
  4. using System.Linq;
  5. using System.Threading.Tasks;
  6. using YiSha.Data;
  7. using YiSha.Entity.ZxOrTkMenuManagerModels;
  8. using YiSha.Enum;
  9. using YiSha.IService.TK;
  10. using YiSha.Model.Param.TK;
  11. using YiSha.Util.Extension;
  12. using YiSha.Util.Model;
  13. namespace YiSha.Service.TK
  14. {
  15. /// <summary>
  16. /// 创 建:cmzx
  17. /// 日 期:2021-04-21 09:30
  18. /// 描 述:图库菜单管理服务实现类
  19. /// </summary>
  20. public partial class MenuManagerModelsService : IMenuManagerModelsService
  21. {
  22. private DBConnectTypeEnum dbConnectType = DBConnectTypeEnum.TkDB;
  23. #region 获取数据
  24. /// <summary>
  25. /// 获取列表数据
  26. /// </summary>
  27. /// <param name="param">请求参数</param>
  28. /// <returns></returns>
  29. public async Task<List<MenuManagerModelsCommonEntity>> GetList(MenuManagerModelsListParam param)
  30. {
  31. var expression = ListFilterPartial(param);
  32. var list = await _baseRepository.BaseRepository(dbConnectType).FindList(expression);
  33. return list.ToList();
  34. }
  35. /// <summary>
  36. /// 获取分页数据
  37. /// </summary>
  38. /// <param name="param">请求参数</param>
  39. /// <param name="pagination">分页条件</param>
  40. /// <returns></returns>
  41. public async Task<List<MenuManagerModelsCommonEntity>> GetPageList(MenuManagerModelsListParam param, Pagination pagination)
  42. {
  43. var expression = ListFilterPartial(param);
  44. var list = await _baseRepository.BaseRepository(dbConnectType).FindList(expression, pagination);
  45. return list.ToList();
  46. }
  47. /// <summary>
  48. /// 获取指定列数据
  49. /// </summary>
  50. /// <param name="column">表字段列</param>
  51. /// <param name="where">条件</param>
  52. /// <param name="parameters">条件参数</param>
  53. /// <param name="sort">排序列</param>
  54. /// <param name="sortType">排序类型</param>
  55. /// <returns></returns>
  56. public async Task<List<MenuManagerModelsCommonEntity>> GetListColumn(string column, string where, List<DbParameter> parameters, string groupBy = "", string sort = "basecreatetime", string sortType = "desc")
  57. {
  58. if (string.IsNullOrEmpty(column) || string.IsNullOrEmpty(where))
  59. return new List<MenuManagerModelsCommonEntity>();
  60. if (!string.IsNullOrEmpty(groupBy))
  61. groupBy = $" group by {groupBy} ";
  62. string tableName = typeof(MenuManagerModelsCommonEntity).GetAttributeValue((TableAttribute ta) => ta.Name);
  63. string selectSql = $"select {column} from {tableName} where 1 = 1 and {where} {groupBy} order by {sort} {sortType}";
  64. var result = await _baseRepository.BaseRepository(dbConnectType).FindList<MenuManagerModelsCommonEntity>(selectSql, DbParameterExtension.ToDbParameter(parameters.ToArray()));
  65. return result.ToList();
  66. }
  67. /// <summary>
  68. /// 根据主键Id获取数据
  69. /// </summary>
  70. /// <param name="id">主键id</param>
  71. /// <returns></returns>
  72. public async Task<MenuManagerModelsCommonEntity> GetEntity(int id)
  73. {
  74. return await _baseRepository.BaseRepository(dbConnectType).FindEntity<MenuManagerModelsCommonEntity>(id);
  75. }
  76. #endregion
  77. #region 提交数据
  78. /// <summary>
  79. /// 保存数据
  80. /// </summary>
  81. /// <param name="entity">实体参数</param>
  82. /// <returns></returns>
  83. public async Task SaveForm(MenuManagerModelsCommonEntity entity)
  84. {
  85. if (entity.Id.IsNullOrZero())
  86. {
  87. entity.Create();
  88. await _baseRepository.BaseRepository(dbConnectType).Insert(entity);
  89. }
  90. else
  91. {
  92. await _baseRepository.BaseRepository(dbConnectType).Update(entity);
  93. }
  94. }
  95. /// <summary>
  96. /// 保存多条数据
  97. /// </summary>
  98. /// <param name="list">数据列表</param>
  99. /// <returns></returns>
  100. public async Task<int> InsertMany(List<MenuManagerModelsCommonEntity> list)
  101. {
  102. return await _baseRepository.BaseRepository(dbConnectType).Insert(list);
  103. }
  104. /// <summary>
  105. /// 根据主键Id删除数据
  106. /// </summary>
  107. /// <param name="ids">主键Id</param>
  108. /// <param name="del">是否真删除 true真删除 false软删除 默认false</param>
  109. /// <returns></returns>
  110. public async Task<int> DeleteFormById(string ids, bool del = false)
  111. {
  112. if (string.IsNullOrWhiteSpace(ids) || !ids.Split(", ").Any())
  113. {
  114. return await Task.FromResult(-1);
  115. }
  116. ids = $"{ string.Join(",", ids.Split(","))}";
  117. string tableName = typeof(MenuManagerModelsCommonEntity).GetAttributeValue((TableAttribute ta) => ta.Name);
  118. List<DbParameter> parameters = new List<DbParameter>();
  119. string deleteSql = $"delete from {tableName} where id in ({ids})";
  120. return await _baseRepository.BaseRepository(dbConnectType).ExecuteBySql(deleteSql, DbParameterExtension.ToDbParameter(parameters.ToArray()));
  121. }
  122. /// <summary>
  123. /// 根据条件删除数据
  124. /// </summary>
  125. /// <param name="where">where条件</param>
  126. /// <param name="parameters">参数</param>
  127. /// <param name="del">是否真删除 true真删除 false软删除 默认false</param>
  128. /// <returns></returns>
  129. public async Task<int> DeleteFormByWhere(string where, List<DbParameter> parameters, bool del = false)
  130. {
  131. if (string.IsNullOrWhiteSpace(where))
  132. {
  133. return await Task.FromResult(-1);
  134. }
  135. string tableName = typeof(MenuManagerModelsCommonEntity).GetAttributeValue((TableAttribute ta) => ta.Name);
  136. string deleteSql = $"delete from {tableName} where {where}";
  137. return await _baseRepository.BaseRepository(dbConnectType).ExecuteBySql(deleteSql, DbParameterExtension.ToDbParameter(parameters.ToArray()));
  138. }
  139. /// <summary>
  140. /// 修改多条数据
  141. /// </summary>
  142. /// <param name="list">数据列表</param>
  143. /// <returns></returns>
  144. public async Task<int> UpdateMany(List<MenuManagerModelsCommonEntity> list)
  145. {
  146. return await _baseRepository.BaseRepository(dbConnectType).Update(list);
  147. }
  148. /// <summary>
  149. /// 根据条件修改数据
  150. /// </summary>
  151. /// <param name="setField">修改字段</param>
  152. /// <param name="where">where条件</param>
  153. /// <param name="parameters">参数</param>
  154. /// <returns></returns>
  155. public async Task<int> UpdateFormByWhere(string setField, string where, List<DbParameter> parameters)
  156. {
  157. if (string.IsNullOrWhiteSpace(setField) || string.IsNullOrWhiteSpace(where))
  158. {
  159. return await Task.FromResult(-1);
  160. }
  161. string tableName = typeof(MenuManagerModelsCommonEntity).GetAttributeValue((TableAttribute ta) => ta.Name);
  162. string updateSql = $"update {tableName} set {setField} where {where}";
  163. return await _baseRepository.BaseRepository(dbConnectType).ExecuteBySql(updateSql, DbParameterExtension.ToDbParameter(parameters.ToArray()));
  164. }
  165. #endregion
  166. #region 私有方法
  167. ///// <summary>
  168. ///// 列表条件过滤
  169. ///// 建议该方法放在Partial部分类中,因为代码生成时当前类会被覆盖(该方法在生成时将会被注释)
  170. ///// </summary>
  171. ///// <param name="param"></param>
  172. ///// <returns></returns>
  173. //private Expression<Func<MenuManagerModelsEntity, bool>> ListFilter(MenuManagerModelsListParam param)
  174. //{
  175. // var expression = LinqExtensions.True<MenuManagerModelsEntity>();
  176. // expression = expression.And(t => t.BaseIsDelete == (int)IsDeleteEnum.No);
  177. // if (param != null)
  178. // {
  179. // }
  180. // return expression;
  181. //}
  182. #endregion
  183. }
  184. }