TispSpotRegionRepository.cs 7.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126
  1. using Ropin.Inspection.Model.Entities;
  2. using Ropin.Inspection.Model.SearchModel;
  3. using Ropin.Inspection.Model.ViewModel;
  4. using Ropin.Inspection.Repository.Interface;
  5. using System;
  6. using System.Collections.Generic;
  7. using System.Linq;
  8. using System.Text;
  9. using System.Threading.Tasks;
  10. namespace Ropin.Inspection.Repository
  11. {
  12. public class TispSpotRegionRepository : RepositoryBase<TISP_SpotRegion, Guid>, ITispSpotRegionRepository
  13. {
  14. public TispSpotRegionRepository(InspectionDbContext dbContext) : base(dbContext)
  15. {
  16. }
  17. public Task<int> DeleteByRegionIdAsync(Guid RegionId)
  18. {
  19. MySqlConnector.MySqlParameter[] parameters = new[] { new MySqlConnector.MySqlParameter("Id", RegionId) };
  20. int result = EntityFrameworkCoreExtensions.ExecuteSqlNoQuery(DbContext.Database, "DELETE from TISP_SpotRegion WHERE C_RegionCode = @Id", parameters);
  21. return Task.FromResult(result);
  22. }
  23. public Task<PageData<TispSpotsRegionViewModel>> GetSpotRegionsAsyncByPage(TispSpotRegionSearchModel searchViewModel)
  24. {
  25. MySqlConnector.MySqlParameter[] parameters = new[] {
  26. new MySqlConnector.MySqlParameter("spotId", searchViewModel.SpotId),
  27. new MySqlConnector.MySqlParameter("RegionId", searchViewModel.RegionId) };
  28. string sql = "SELECT B.C_ID AS C_RegionID, B.C_Name AS C_RegionName,B.C_ImageUrl AS C_RegionImageUrl,D.C_Code AS C_SpotID,D.C_Name AS C_SpotName,D.C_GPS AS C_SpotGPS,C.C_Name AS C_UserName,A.D_CreateOn From TISP_SpotRegion A LEFT JOIN TISP_Region B ON A.C_RegionCode = B.C_ID LEFT JOIN TSYS_User C on C.C_UserID = A.C_CreateBy LEFT JOIN TISP_Spot D ON D.C_Code = A.C_SpotCode WHERE B.C_Status ='1'";
  29. if (!string.IsNullOrEmpty(searchViewModel.SpotId))
  30. {
  31. sql += "AND A.C_SpotCode =@spotId ";
  32. }
  33. if (!string.IsNullOrEmpty(searchViewModel.RegionId))
  34. {
  35. sql += " AND A.C_RegionCode =@RegionId";
  36. }
  37. var contentlist = EntityFrameworkCoreExtensions.GetList<TispSpotsRegionsViewModel>(DbContext.Database, sql, parameters);
  38. if (null == contentlist || contentlist.First() == null)
  39. {
  40. PageData<TispSpotsRegionViewModel> contentlistDetail = null;
  41. return Task.FromResult(contentlistDetail);
  42. }
  43. if (!string.IsNullOrEmpty(searchViewModel.SpotId))
  44. {
  45. contentlist = contentlist.Where(x => x.C_SpotID.Equals(Guid.Parse(searchViewModel.SpotId)));
  46. }
  47. if (!string.IsNullOrEmpty(searchViewModel.RegionId))
  48. {
  49. contentlist = contentlist.Where(x => x.C_RegionID.Equals(Guid.Parse(searchViewModel.RegionId)));
  50. }
  51. var q = from b in contentlist
  52. group b by b.C_RegionID into g
  53. select new TispSpotsRegionViewModel
  54. {
  55. C_RegionID = g.Key,
  56. RegionSpotList = (from c in g where c.C_SpotID != Guid.Empty select new RegionSpot { C_SpotID = c.C_SpotID, C_SpotName = c.C_SpotName,C_SpotGPS = c.C_SpotGPS }).ToList<RegionSpot>(),
  57. C_RegionName = g.FirstOrDefault<TispSpotsRegionsViewModel>().C_RegionName,
  58. C_RegionImageUrl = g.FirstOrDefault<TispSpotsRegionsViewModel>().C_RegionImageUrl,
  59. D_CreateOn = g.FirstOrDefault<TispSpotsRegionsViewModel>().D_CreateOn,
  60. C_UserName = g.FirstOrDefault<TispSpotsRegionsViewModel>().C_UserName
  61. };
  62. PageData<TispSpotsRegionViewModel> pageData = new PageData<TispSpotsRegionViewModel>
  63. {
  64. Totals = q.ToList().Count,
  65. Rows = searchViewModel.IsPagination ? q.Skip((searchViewModel.PageIndex - 1) * searchViewModel.PageSize).Take(searchViewModel.PageSize).ToList() : q.ToList()
  66. };
  67. return Task.FromResult(pageData);
  68. }
  69. public Task<PageData<TispSpotsRegionViewModel>> GetSpotsRegionAsyncByPage(TispSpotRegionSearchModel searchViewModel)
  70. {
  71. MySqlConnector.MySqlParameter[] parameters = new[] {
  72. new MySqlConnector.MySqlParameter("spotId", searchViewModel.SpotId),
  73. new MySqlConnector.MySqlParameter("RegionId", searchViewModel.RegionId) };
  74. //string sql = "SELECT B.C_Status,B.C_Remark, B.C_ID AS C_RegionID, B.C_Name AS C_RegionName,B.C_ImageUrl AS C_RegionImageUrl,D.C_Code AS C_SpotID,D.C_Name AS C_SpotName,D.C_GPS AS C_SpotGPS,C.C_Name AS C_UserName,A.D_CreateOn From TISP_Region B LEFT JOIN TISP_SpotRegion A ON A.C_RegionCode = B.C_ID LEFT JOIN TSYS_User C on C.C_UserID = A.C_CreateBy LEFT JOIN TISP_Spot D ON D.C_Code = A.C_SpotCode WHERE B.C_Status ='1'";
  75. string sql = "SELECT B.C_Status,B.C_Remark, B.C_ID AS C_RegionID, B.C_Name AS C_RegionName,B.C_ImageUrl AS C_RegionImageUrl,D.C_Code AS C_SpotID,D.C_Name AS C_SpotName,D.C_GPS AS C_SpotGPS, E.C_Status AS C_SpotStatus, C.C_Name AS C_UserName,A.D_CreateOn From TISP_Region B LEFT JOIN TISP_SpotRegion A ON A.C_RegionCode = B.C_ID LEFT JOIN TSYS_User C on C.C_UserID = A.C_CreateBy LEFT JOIN TISP_Spot D ON D.C_Code = A.C_SpotCode LEFT JOIN (SELECT * FROM TISP_Record WHERE DATE_FORMAT(D_CreateOn,'%Y-%m-%d') = DATE_SUB(curdate(),INTERVAL 0 DAY) GROUP BY C_SpotCode ORDER BY D_CreateOn desc ) E ON E.C_SpotCode = D.C_Code WHERE B.C_Status ='1' ";
  76. if (!string.IsNullOrEmpty(searchViewModel.SpotId))
  77. {
  78. sql += "AND A.C_SpotCode =@spotId ";
  79. }
  80. if (!string.IsNullOrEmpty(searchViewModel.RegionId))
  81. {
  82. sql += " AND B.C_ID =@RegionId";
  83. }
  84. var contentlist = EntityFrameworkCoreExtensions.GetList<TispSpotsRegionsViewModel>(DbContext.Database, sql, parameters);
  85. if (null == contentlist || contentlist.First() == null)
  86. {
  87. PageData<TispSpotsRegionViewModel> contentlistDetail = null;
  88. return Task.FromResult(contentlistDetail);
  89. }
  90. if (!string.IsNullOrEmpty(searchViewModel.SpotId))
  91. {
  92. contentlist = contentlist.Where(x => x.C_SpotID.Equals(Guid.Parse(searchViewModel.SpotId)));
  93. }
  94. if (!string.IsNullOrEmpty(searchViewModel.RegionId))
  95. {
  96. contentlist = contentlist.Where(x => x.C_RegionID.Equals(Guid.Parse(searchViewModel.RegionId)));
  97. }
  98. var q = from b in contentlist
  99. group b by b.C_RegionID into g
  100. select new TispSpotsRegionViewModel
  101. {
  102. C_RegionID = g.Key,
  103. RegionSpotList = (from c in g where c.C_SpotID != Guid.Empty select new RegionSpot { C_SpotID = c.C_SpotID, C_SpotName = c.C_SpotName,C_SpotGPS = c.C_SpotGPS,C_SpotStatus = c.C_SpotStatus }).ToList<RegionSpot>(),
  104. C_RegionName = g.FirstOrDefault<TispSpotsRegionsViewModel>().C_RegionName,
  105. C_RegionImageUrl = g.FirstOrDefault<TispSpotsRegionsViewModel>().C_RegionImageUrl,
  106. D_CreateOn = g.FirstOrDefault<TispSpotsRegionsViewModel>().D_CreateOn,
  107. C_UserName = g.FirstOrDefault<TispSpotsRegionsViewModel>().C_UserName,
  108. C_Remark = g.FirstOrDefault<TispSpotsRegionsViewModel>().C_Remark,
  109. C_Status = g.FirstOrDefault<TispSpotsRegionsViewModel>().C_Status
  110. };
  111. PageData<TispSpotsRegionViewModel> pageData = new PageData<TispSpotsRegionViewModel>
  112. {
  113. Totals = q.ToList().Count,
  114. Rows = searchViewModel.IsPagination ? q.Skip((searchViewModel.PageIndex - 1) * searchViewModel.PageSize).Take(searchViewModel.PageSize).ToList() : q.ToList()
  115. };
  116. return Task.FromResult(pageData);
  117. }
  118. }
  119. }