ImageManagerModelsService.cs 6.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159
  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.TK;
  16. using YiSha.Model.Param.TK;
  17. using YiSha.IService.TK;
  18. using YiSha.Model.Result.TK;
  19. using YiSha.Web.Code;
  20. namespace YiSha.Service.TK
  21. {
  22. /// <summary>
  23. /// 创 建:cmzx
  24. /// 日 期:2021-04-21 15:55
  25. /// 描 述:图库图片信息表服务实现类(部分类)
  26. /// </summary>
  27. public partial class ImageManagerModelsService
  28. {
  29. private IRepositoryFactory _baseRepository;
  30. public ImageManagerModelsService(IRepositoryFactory baseRepository)
  31. {
  32. _baseRepository = baseRepository;
  33. }
  34. /// <summary>
  35. /// 获取分页数据
  36. /// </summary>
  37. /// <param name="param">请求参数</param>
  38. /// <param name="pagination">分页条件</param>
  39. /// <returns></returns>
  40. public async Task<List<ImageManagerModelsPageJoinModel>> GetPageListPartial(ImageManagerModelsListParam param, Pagination pagination)
  41. {
  42. var parameters = new List<DbParameter>();
  43. var sql = SqlPageList(param, pagination, out parameters);
  44. var list = await _baseRepository.BaseRepository(dbConnectType).FindList<ImageManagerModelsPageJoinModel>(sql, parameters.ToArray());
  45. return list.ToList();
  46. }
  47. /// <summary>
  48. /// 保存数据(由于之前数据库设计不规范,无法实现在新增、修改时保存正确的操作用户信息,每张表的创建时间和创建人id、创建人姓名都不一样,且这些字段是必填项)
  49. /// </summary>
  50. /// <param name="entity">实体参数</param>
  51. /// <returns></returns>
  52. public async Task<int> SaveFormPartial(ImageManagerModelsEntity entity)
  53. {
  54. OperatorInfo user = await Operator.Instance.Current(entity.Token);
  55. if (entity.Id.IsNullOrZero())
  56. {
  57. entity.createTime = DateTime.Now;
  58. entity.createUserId = user?.UserId;
  59. entity.createUserName = user?.UserName;
  60. entity.Years = DateTime.Now.Year.ToString();
  61. entity.updateTime = DateTime.Now;
  62. return await _baseRepository.BaseRepository(dbConnectType).Insert(entity);
  63. }
  64. else
  65. {
  66. return await _baseRepository.BaseRepository(dbConnectType).Update(entity);
  67. }
  68. }
  69. /// <summary>
  70. /// 获取最后一期 期数
  71. /// </summary>
  72. /// <param name="Year"></param>
  73. /// <returns></returns>
  74. public async Task<string> GetLastQi(int Year)
  75. {
  76. var sql = @"select top 1 periodsNumber from ImageManagerModels
  77. where Years = @Year and isDelete = 0 order by periodsNumber desc;";
  78. var param = new List<DbParameter>();
  79. param.Add(DbParameterExtension.CreateDbParameter("@Year", Year, dbConnectType));
  80. var list = await _baseRepository.BaseRepository(dbConnectType).FindList<ImageManagerModelsEntity>(sql, param.ToArray());
  81. return list.FirstOrDefault()?.periodsNumber;
  82. }
  83. #region 私有方法
  84. /// <summary>
  85. /// 列表条件过滤
  86. /// 建议该方法放在Partial部分类中,因为代码生成时当前类会被覆盖(该方法在生成时将会被注释)
  87. /// </summary>
  88. /// <param name="param"></param>
  89. /// <returns></returns>
  90. private Expression<Func<ImageManagerModelsEntity, bool>> ListFilterPartial(ImageManagerModelsListParam param)
  91. {
  92. var expression = LinqExtensions.True<ImageManagerModelsEntity>();
  93. if (param != null)
  94. {
  95. }
  96. return expression;
  97. }
  98. /// <summary>
  99. /// 获取分页Sql语句
  100. /// </summary>
  101. /// <param name="param"></param>
  102. /// <returns></returns>
  103. private string SqlPageList(ImageManagerModelsListParam param, Pagination pagination, out List<DbParameter> parameters)
  104. {
  105. parameters = new List<DbParameter>();
  106. var where = new StringBuilder();
  107. where.Append(" 1 = 1 ");
  108. if (param != null)
  109. {
  110. if (!string.IsNullOrEmpty(param.GalleryName))
  111. {
  112. where.Append(" and gal.GalleryName like @GalleryName ");
  113. parameters.Add(DbParameterExtension.CreateDbParameter("@GalleryName", $"%{param.GalleryName}%", dbConnectType));
  114. }
  115. if (!param.PeriodsNumber.IsNullOrZero())
  116. {
  117. where.Append(" and img.periodsNumber = @PeriodsNumber ");
  118. parameters.Add(DbParameterExtension.CreateDbParameter("@PeriodsNumber", param.PeriodsNumber, dbConnectType));
  119. }
  120. if (!string.IsNullOrEmpty(param.CreateUserName))
  121. {
  122. where.Append(" and img.createUserName = @CreateUserName ");
  123. parameters.Add(DbParameterExtension.CreateDbParameter("@CreateUserName", param.CreateUserName, dbConnectType));
  124. }
  125. }
  126. //获取分页数据Sql
  127. var pageSql = $@"select
  128. img.Id,
  129. img.periodsNumber,
  130. img.Years,
  131. img.createTime,
  132. img.createUserName,
  133. gal.galleryNumber,
  134. gal.galleryName,
  135. gal.isPicZip
  136. from ImageManagerModels img
  137. left join galleryManagerModels gal on img.galleryId = gal.ID
  138. where {where.ToString()}";
  139. //统计总数据Sql
  140. var totalSql = $@"select
  141. count(1)
  142. from ImageManagerModels img
  143. left join galleryManagerModels gal on img.galleryId = gal.ID
  144. where {where.ToString()}";
  145. pageSql = SqlserverHelper.GetInstance.SqlPageList(pageSql, totalSql, pagination);
  146. return pageSql;
  147. }
  148. #endregion
  149. }
  150. }