TsysMessageRepository.cs 5.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126
  1. using Ropin.Inspection.Model;
  2. using Ropin.Inspection.Model.Common;
  3. using Ropin.Inspection.Model.Entities;
  4. using Ropin.Inspection.Model.SearchModel.MTN;
  5. using Ropin.Inspection.Model.ViewModel.MTN;
  6. using System;
  7. using System.Collections.Generic;
  8. using System.Linq;
  9. using System.Text;
  10. using System.Threading.Tasks;
  11. namespace Ropin.Inspection.Repository
  12. {
  13. public class TsysMessageRepository : RepositoryBase<TSYS_Message, string>, ITsysMessageRepository
  14. {
  15. public TsysMessageRepository(InspectionDbContext dbContext) : base(dbContext)
  16. {
  17. }
  18. public Task<bool> UpdateMsgStatus(string id,int? msgStatus)
  19. {
  20. MySqlConnector.MySqlParameter[] parameters = new[] {
  21. new MySqlConnector.MySqlParameter("code", id),
  22. new MySqlConnector.MySqlParameter("msgStatus", msgStatus)
  23. };
  24. string sql = $" UPDATE TSYS_Message SET I_MsgStatus = @msgStatus WHERE (C_ID =@code); ";
  25. int iResult = EntityFrameworkCoreExtensions.ExecuteSqlNoQuery(DbContext.Database, sql, parameters);
  26. bool result = iResult > 0;
  27. return Task.FromResult(result);
  28. }
  29. public Task<IEnumerable<TsysMessageViewModel>> GetList(TsysMessageSearchModel searchModel)
  30. {
  31. MySqlConnector.MySqlParameter[] parameters = new[] {
  32. new MySqlConnector.MySqlParameter("Status", searchModel.C_Status),
  33. new MySqlConnector.MySqlParameter("id", searchModel.C_ID),
  34. new MySqlConnector.MySqlParameter("generationType", searchModel.I_GenerationType),
  35. new MySqlConnector.MySqlParameter("msgTypeCode", searchModel.C_MsgTypeCode),
  36. new MySqlConnector.MySqlParameter("pushMsgToCode", searchModel.C_PushMsgToCode),
  37. new MySqlConnector.MySqlParameter("storeCode", searchModel.C_StoreCode),
  38. new MySqlConnector.MySqlParameter("devCode", searchModel.C_DevCode),
  39. new MySqlConnector.MySqlParameter("content", "%"+searchModel.C_Content+"%"),
  40. new MySqlConnector.MySqlParameter("beginTme", searchModel.BeginTime?.ToString("yyyy-MM-dd")),
  41. new MySqlConnector.MySqlParameter("endTime ", searchModel.EndTime?.ToString("yyyy-MM-dd"))
  42. };
  43. StringBuilder sql = new StringBuilder();
  44. sql.Append(@"
  45. select * from (
  46. select m.*,d.C_StoreCode,d.C_Name as C_DevName,c.C_Name as C_MsgTypeName,pm.C_PushMsgToCode,ifnull(f.cut,0) as IsFile
  47. from TSYS_Message m
  48. LEFT JOIN TDEV_DevStore d on (m.C_DevStoreCode=d.C_ID)
  49. LEFT JOIN TBDM_CodeDetail c on (m.C_MsgTypeCode=c.C_Code)
  50. LEFT JOIN
  51. (select C_MessageCode,C_PushMsgToCode,count(1) cut from TMTN_PushMsgResult
  52. ");
  53. if (!string.IsNullOrEmpty(searchModel.C_PushMsgToCode))
  54. {
  55. sql.Append(" where C_PushMsgToCode=@pushMsgToCode ");
  56. }
  57. sql.Append(@" group by C_MessageCode,C_PushMsgToCode) pm on(m.C_ID=pm.C_MessageCode)
  58. LEFT JOIN ( select C_MessageCode,Count(1) cut from TSYS_MessageFile group by C_MessageCode) f on (m.C_ID=f.C_MessageCode)
  59. ) tab ");
  60. if (!string.IsNullOrEmpty(searchModel.C_Status))
  61. {
  62. sql.Append(" where C_Status=@Status ");
  63. }
  64. else
  65. {
  66. sql.Append(" where C_Status!='0' ");
  67. }
  68. if (!string.IsNullOrEmpty(searchModel.C_ID))
  69. {
  70. sql.Append(" and C_ID=@id ");
  71. }
  72. if (searchModel.I_GenerationType!=null)
  73. {
  74. sql.Append(" and I_GenerationType=@generationType ");
  75. }
  76. if (searchModel.MsgStatus != null&& searchModel.MsgStatus.Count>0)
  77. {
  78. string msgStatus=string.Join(", ", searchModel.MsgStatus);
  79. sql.Append($" and I_MsgStatus in ({msgStatus})");
  80. }
  81. if (!string.IsNullOrEmpty(searchModel.C_MsgTypeCode))
  82. {
  83. sql.Append(" and C_MsgTypeCode=@msgTypeCode ");
  84. }
  85. if (searchModel.MsgTypeList != null && searchModel.MsgTypeList.Count > 0)
  86. {
  87. StringBuilder contsql = new StringBuilder();
  88. sql.Append($" and C_MsgTypeCode in ('{String.Join("','", searchModel.MsgTypeList)}') ");
  89. }
  90. if (!string.IsNullOrEmpty(searchModel.C_StoreCode))
  91. {
  92. sql.Append(" and C_StoreCode=@storeCode ");
  93. }
  94. if (!string.IsNullOrEmpty(searchModel.C_DevCode))
  95. {
  96. sql.Append(" and C_DevStoreCode=@devCode ");
  97. }
  98. if (!string.IsNullOrEmpty(searchModel.C_Content))
  99. {
  100. sql.Append(" and C_Content like @content ");
  101. }
  102. if (searchModel.BeginTime != null && searchModel.BeginTime != DateTime.MinValue)
  103. {
  104. sql.Append(" and DATE_FORMAT(D_CreateOn, '%Y-%m-%d')>=@beginTme ");
  105. }
  106. if (searchModel.EndTime != null && searchModel.EndTime != DateTime.MinValue)
  107. {
  108. sql.Append(" and DATE_FORMAT(D_CreateOn, '%Y-%m-%d')<=@endTime ");
  109. }
  110. sql.Append(" order by D_CreateOn desc ");
  111. IEnumerable<TsysMessageViewModel> recordItemlist = EntityFrameworkCoreExtensions.GetList<TsysMessageViewModel>(DbContext.Database, sql.ToString(), parameters);
  112. searchModel.TotalCount = recordItemlist.First() != null ? recordItemlist.ToList().Count : 0;
  113. if (searchModel.TotalCount == 0)
  114. {
  115. recordItemlist = new List<TsysMessageViewModel>();
  116. }
  117. return Task.FromResult(searchModel.IsPagination ? recordItemlist.Skip((searchModel.PageIndex - 1) * searchModel.PageSize).Take(searchModel.PageSize) : recordItemlist);
  118. }
  119. }
  120. }