Am6hcService.cs 8.6 KB

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