TispSpotRouteRepository.cs 7.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138
  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 TispSpotRouteRepository : RepositoryBase<TISP_SpotRoute, Guid>, ITispSpotRouteRepository
  13. {
  14. public TispSpotRouteRepository(InspectionDbContext dbContext) : base(dbContext)
  15. {
  16. }
  17. public Task<int> DeleteByRouteIdAsync(Guid routeId)
  18. {
  19. MySqlConnector.MySqlParameter[] parameters = new[] { new MySqlConnector.MySqlParameter("Id", routeId) };
  20. int result = EntityFrameworkCoreExtensions.ExecuteSqlNoQuery(DbContext.Database, "DELETE from TISP_SpotRoute WHERE C_RouteCode = @Id", parameters);
  21. return Task.FromResult(result);
  22. }
  23. public Task<PageData<TispSpotsRouteViewModel>> GetSpotRoutesAsyncByPage(TispSpotRouteSearchModel searchViewModel)
  24. {
  25. MySqlConnector.MySqlParameter[] parameters = new[] {
  26. new MySqlConnector.MySqlParameter("spotId", searchViewModel.SpotId),
  27. new MySqlConnector.MySqlParameter("routeId", searchViewModel.RouteId) };
  28. string sql = "SELECT B.C_ID AS C_RouteID, B.C_Name AS C_RouteName,B.C_ImageUrl AS C_RouteImageUrl,D.C_Code AS C_SpotID,D.C_Name AS C_SpotName,C.C_Name AS C_UserName,A.D_CreateOn From TISP_SpotRoute A LEFT JOIN TISP_Route B ON A.C_RouteCode = 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' AND D.C_Code IS NOT NULL ";
  29. if (!string.IsNullOrEmpty(searchViewModel.SpotId))
  30. {
  31. sql += "AND A.C_SpotCode =@spotId ";
  32. }
  33. if (!string.IsNullOrEmpty(searchViewModel.RouteId))
  34. {
  35. sql += " AND A.C_RouteCode =@routeId";
  36. }
  37. var contentlist = EntityFrameworkCoreExtensions.GetList<TispSpotsRoutesViewModel>(DbContext.Database, sql, parameters);
  38. if (null == contentlist || contentlist.First() == null)
  39. {
  40. PageData<TispSpotsRouteViewModel> 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.RouteId))
  48. {
  49. contentlist = contentlist.Where(x => x.C_RouteID.Equals(Guid.Parse(searchViewModel.RouteId)));
  50. }
  51. var q = from b in contentlist
  52. group b by b.C_RouteID into g
  53. select new TispSpotsRouteViewModel
  54. {
  55. C_RouteID = g.Key,
  56. RouteSpotList = (from c in g where c.C_SpotID != Guid.Empty select new RouteSpot { C_SpotID = c.C_SpotID, C_SpotName = c.C_SpotName, }).ToList<RouteSpot>(),
  57. C_RouteName = g.FirstOrDefault<TispSpotsRoutesViewModel>().C_RouteName,
  58. C_RouteImageUrl = g.FirstOrDefault<TispSpotsRoutesViewModel>().C_RouteImageUrl,
  59. D_CreateOn = g.FirstOrDefault<TispSpotsRoutesViewModel>().D_CreateOn,
  60. C_UserName = g.FirstOrDefault<TispSpotsRoutesViewModel>().C_UserName
  61. };
  62. PageData<TispSpotsRouteViewModel> pageData = new PageData<TispSpotsRouteViewModel>
  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<TispSpotsRouteViewModel>> GetSpotsRouteAsyncByPage(TispSpotRouteSearchModel searchViewModel)
  70. {
  71. MySqlConnector.MySqlParameter[] parameters = new[] {
  72. new MySqlConnector.MySqlParameter("spotId", searchViewModel.SpotId),
  73. new MySqlConnector.MySqlParameter("StoreCode", searchViewModel.C_StoreCode),
  74. new MySqlConnector.MySqlParameter("routeId", searchViewModel.RouteId)
  75. };
  76. string sql = "SELECT B.C_Status,B.C_Remark, B.C_ID AS C_RouteID, B.C_Name AS C_RouteName,B.C_ImageUrl AS C_RouteImageUrl,D.C_Code AS C_SpotID,D.C_Name AS C_SpotName,C.C_Name AS C_UserName,A.D_CreateOn From TISP_Route B LEFT JOIN TISP_SpotRoute A ON A.C_RouteCode = 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' ";//AND D.C_Code IS NOT NULL
  77. sql = @"SELECT B.C_Status,B.C_Remark, B.C_ID AS C_RouteID, B.C_Name AS C_RouteName,B.C_ImageUrl AS C_RouteImageUrl,D.C_Code AS C_SpotID,D.C_StoreCode AS C_StoreCode,D.C_Name AS C_SpotName,C.C_Name AS C_UserName,A.D_CreateOn From TISP_Route B
  78. LEFT JOIN TISP_SpotRoute A ON A.C_RouteCode = B.C_ID
  79. LEFT JOIN TSYS_User C on C.C_UserID = A.C_CreateBy
  80. LEFT JOIN TISP_Spot D ON D.C_Code = A.C_SpotCode
  81. WHERE B.C_StoreCode =@StoreCode ";
  82. if (!string.IsNullOrEmpty(searchViewModel.SpotId))
  83. {
  84. sql += "AND A.C_SpotCode =@spotId ";
  85. }
  86. if (!string.IsNullOrEmpty(searchViewModel.RouteId))
  87. {
  88. sql += " AND A.C_RouteCode =@routeId";
  89. }
  90. sql += " ORDER BY A.D_CreateOn DESC ";
  91. var contentlist = EntityFrameworkCoreExtensions.GetList<TispSpotsRoutesViewModel>(DbContext.Database, sql, parameters);
  92. if (null == contentlist || contentlist.First() == null)
  93. {
  94. PageData<TispSpotsRouteViewModel> contentlistDetail = null;
  95. return Task.FromResult(contentlistDetail);
  96. }
  97. if (!string.IsNullOrEmpty(searchViewModel.SpotId))
  98. {
  99. contentlist = contentlist.Where(x => x.C_SpotID.Equals(Guid.Parse(searchViewModel.SpotId)));
  100. }
  101. if (!string.IsNullOrEmpty(searchViewModel.RouteId))
  102. {
  103. contentlist = contentlist.Where(x => x.C_RouteID.Equals(Guid.Parse(searchViewModel.RouteId)));
  104. }
  105. if (!string.IsNullOrEmpty(searchViewModel.RouteName))
  106. {
  107. contentlist = contentlist.Where(x => x.C_RouteName.Contains(searchViewModel.RouteName));
  108. }
  109. var q = from b in contentlist
  110. group b by b.C_RouteID into g
  111. select new TispSpotsRouteViewModel
  112. {
  113. C_RouteID = g.Key,
  114. RouteSpotList = (from c in g where c.C_SpotID != Guid.Empty && c !=null select new RouteSpot { C_SpotID = c.C_SpotID, C_SpotName = c.C_SpotName, }).ToList<RouteSpot>(),
  115. C_RouteName = g.FirstOrDefault<TispSpotsRoutesViewModel>().C_RouteName,
  116. C_RouteImageUrl = g.FirstOrDefault<TispSpotsRoutesViewModel>().C_RouteImageUrl,
  117. D_CreateOn = g.FirstOrDefault<TispSpotsRoutesViewModel>().D_CreateOn,
  118. C_UserName = g.FirstOrDefault<TispSpotsRoutesViewModel>().C_UserName,
  119. C_Remark = g.FirstOrDefault<TispSpotsRoutesViewModel>().C_Remark,
  120. C_Status = g.FirstOrDefault<TispSpotsRoutesViewModel>().C_Status
  121. };
  122. PageData<TispSpotsRouteViewModel> pageData = new PageData<TispSpotsRouteViewModel>
  123. {
  124. Totals = q.ToList().Count,
  125. Rows = searchViewModel.IsPagination ? q.Skip((searchViewModel.PageIndex - 1) * searchViewModel.PageSize).Take(searchViewModel.PageSize).ToList() : q.ToList()
  126. };
  127. return Task.FromResult(pageData);
  128. }
  129. }
  130. }