TispSpotUserRepository.cs 10 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173
  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 TispSpotUserRepository : RepositoryBase<TISP_SpotUser, Guid>, ITispSpotUserRepository
  13. {
  14. public TispSpotUserRepository(InspectionDbContext dbContext) : base(dbContext)
  15. {
  16. }
  17. public Task<IEnumerable<TispSpotUserViewModel>> GetBySpotIdAsync(Guid spotId)
  18. {
  19. MySqlConnector.MySqlParameter[] parameters = new[] { new MySqlConnector.MySqlParameter("Id", spotId)};
  20. var contentlist = EntityFrameworkCoreExtensions.SqlQuery<TispSpotUserViewModel>(DbContext.Database, "SELECT A.*,B.C_Name AS C_UserName,C.C_Name AS C_SpotName FROM TISP_SpotUser A,TSYS_User B,TISP_Spot C WHERE A.C_UserCode = B.C_UserID AND A.C_SpotCode = C.C_Code AND A.C_SpotCode = @Id", parameters);
  21. return Task.FromResult(contentlist.AsEnumerable());
  22. }
  23. public Task<IEnumerable<TispUserStoreRouteSpotViewModel>> GetByUserIdAsync(Guid userId)
  24. {
  25. MySqlConnector.MySqlParameter[] parameters = new[] { new MySqlConnector.MySqlParameter("Id", userId) };
  26. string sql = @"SELECT A.*,B.C_Name AS C_UserName,C.C_Name AS C_SpotName ,D.C_Name AS StoreName,D.C_Code AS StoreCode
  27. FROM TISP_SpotUser A,TSYS_User B,TISP_Spot C , TPNT_Store D
  28. WHERE A.C_UserCode = B.C_UserID AND A.C_SpotCode = C.C_Code AND D.C_Code = C.C_StoreCode AND A.C_UserCode = @Id";
  29. var contentlist = EntityFrameworkCoreExtensions.SqlQuery<TispSpotUserViewModel>(DbContext.Database, sql, parameters);
  30. var q = from b in contentlist
  31. group b by b.StoreCode into g
  32. select new TispUserStoreRouteSpotViewModel
  33. {
  34. StoreCode = g.Key,
  35. StoreName = g.FirstOrDefault<TispSpotUserViewModel>().StoreName,
  36. SpotUserList = (from c in g select new SimSpot { C_SpotCode = c.C_SpotCode, C_SpotName = c.C_SpotName }).ToList<SimSpot>()
  37. };
  38. return Task.FromResult(q);
  39. }
  40. //public Task<IEnumerable<TispUserStoreRouteSpotViewModel>> GetStoreRouteSpotByUserIdAsync(Guid userId)
  41. //{
  42. // var query = from a in DbContext.TBDM_Prov
  43. // join b in DbContext.TBDM_City
  44. // on a.C_Code equals b.C_ProvCode
  45. // join c in DbContext.TBDM_Area
  46. // on b.C_Code equals c.C_CityCode
  47. // group a by a.C_Code into g
  48. // select new TbdmProvViewModel
  49. // {
  50. // C_Code = g.First().C_Code,
  51. // C_Name = g.First().C_Name,
  52. // I_Sort = g.First().I_Sort,
  53. // C_Status = g.First().C_Status,
  54. // Citys = (from h in b group g by g into m
  55. // select new TbdmCity
  56. // {
  57. // C_Code = m.First().C_Code,
  58. // C_Name = m.First().C_Name,
  59. // I_Sort = m.First().I_Sort,
  60. // C_Status = m.First().C_Status,
  61. // }).ToList<TbdmCity>(),
  62. // };
  63. // var v = query.ToList();
  64. //}
  65. public Task<IEnumerable<TispSpotUserViewModel>> GetAsyncByPage(int pageSize, int pageIndex)
  66. {
  67. string sql = "SELECT A.*,B.C_Name AS C_UserName,C.C_Name AS C_SpotName FROM TISP_SpotUser A,TSYS_User B,TISP_Spot C WHERE A.C_UserCode = B.C_UserID AND A.C_SpotCode = C.C_Code";
  68. var contentlist = EntityFrameworkCoreExtensions.GetList<TispSpotUserViewModel>(DbContext.Database, sql,null,pageSize,pageIndex);
  69. return Task.FromResult(contentlist.AsEnumerable());
  70. }
  71. public Task<IEnumerable<TispSpotUsersViewModel>> GetGroupBySpotAsyncByPage(int pageSize, int pageIndex)
  72. {
  73. string sql = "SELECT C.C_UserID,C.C_Name AS C_UserName, B.C_Remark,A.C_Code AS C_SpotID,A.C_Name AS C_SpotName,A.C_Number,A.C_GPS,A.C_Position,A.C_QRCode From TISP_Spot A LEFT JOIN TISP_SpotUser B ON A.C_Code = B.C_SpotCode LEFT JOIN TSYS_User C on B.C_UserCode = C.C_UserID";
  74. var contentlist = EntityFrameworkCoreExtensions.GetList<TispSpotsUsersViewModel>(DbContext.Database, sql, null, pageSize, pageIndex);
  75. var q = from b in contentlist
  76. group b by b.C_SpotID into g
  77. select new TispSpotUsersViewModel
  78. {
  79. C_SpotID = g.Key,
  80. SpotUserList = (from c in g where c.C_UserID != Guid.Empty select new SpotUser { C_UserID = c.C_UserID, C_UserName = c.C_UserName, }).ToList<SpotUser>(),
  81. C_GPS = g.FirstOrDefault<TispSpotsUsersViewModel>().C_GPS,
  82. C_SpotName = g.FirstOrDefault<TispSpotsUsersViewModel>().C_SpotName,
  83. C_Number = g.FirstOrDefault<TispSpotsUsersViewModel>().C_Number,
  84. C_Position = g.FirstOrDefault<TispSpotsUsersViewModel>().C_Position,
  85. C_QRCode = g.FirstOrDefault<TispSpotsUsersViewModel>().C_QRCode,
  86. C_Remark = g.FirstOrDefault<TispSpotsUsersViewModel>().C_Remark
  87. };
  88. return Task.FromResult(q);
  89. }
  90. public Task<PageData<TispSpotUsersViewModel>> GetGroupBySpotAsyncByPage(TispSpotUserSearchModel searchViewModel)
  91. {
  92. MySqlConnector.MySqlParameter[] parameters = new[] {
  93. new MySqlConnector.MySqlParameter("spotId", searchViewModel.SpotId),
  94. new MySqlConnector.MySqlParameter("userId", searchViewModel.UserId) };
  95. string sql = "SELECT C.C_UserID,C.C_Name AS C_UserName, B.C_Remark,A.C_Code AS C_SpotID,A.C_Name AS C_SpotName,A.C_Number,A.C_GPS,A.C_Position,A.C_QRCode From TISP_Spot A LEFT JOIN TISP_SpotUser B ON A.C_Code = B.C_SpotCode LEFT JOIN TSYS_User C on B.C_UserCode = C.C_UserID WHERE A.C_Status ='1' ";
  96. //if (Guid.Empty != searchViewModel.SpotId)
  97. //{
  98. // sql += "AND A.C_Code =@spotId ";
  99. //}
  100. //if (Guid.Empty != searchViewModel.UserId)
  101. //{
  102. // sql += " AND C.C_UserID =@userId";
  103. //}
  104. var contentlist = EntityFrameworkCoreExtensions.GetList<TispSpotsUsersViewModel>(DbContext.Database, sql, null);
  105. if (null == contentlist || contentlist.First() == null)
  106. {
  107. PageData<TispSpotUsersViewModel> contentlistDetail = null;
  108. return Task.FromResult(contentlistDetail);
  109. }
  110. if (!string.IsNullOrEmpty(searchViewModel.SpotId))
  111. {
  112. contentlist = contentlist.Where(x => x.C_SpotID.Equals(Guid.Parse(searchViewModel.SpotId)));
  113. }
  114. if (!string.IsNullOrEmpty(searchViewModel.UserId))
  115. {
  116. contentlist = contentlist.Where(x => x.C_UserID.Equals(Guid.Parse(searchViewModel.UserId)));
  117. }
  118. var q = from b in contentlist
  119. group b by b.C_SpotID into g
  120. select new TispSpotUsersViewModel
  121. {
  122. C_SpotID = g.Key,
  123. SpotUserList = (from c in g where c.C_UserID != Guid.Empty select new SpotUser { C_UserID = c.C_UserID, C_UserName = c.C_UserName, }).ToList<SpotUser>(),
  124. C_GPS = g.FirstOrDefault<TispSpotsUsersViewModel>().C_GPS,
  125. C_SpotName = g.FirstOrDefault<TispSpotsUsersViewModel>().C_SpotName,
  126. C_Number = g.FirstOrDefault<TispSpotsUsersViewModel>().C_Number,
  127. C_Position = g.FirstOrDefault<TispSpotsUsersViewModel>().C_Position,
  128. C_QRCode = g.FirstOrDefault<TispSpotsUsersViewModel>().C_QRCode,
  129. C_Remark = g.FirstOrDefault<TispSpotsUsersViewModel>().C_Remark
  130. };
  131. PageData<TispSpotUsersViewModel> pageData = new PageData<TispSpotUsersViewModel>
  132. {
  133. Totals = q.ToList().Count,
  134. Rows = searchViewModel.IsPagination ? q.Skip((searchViewModel.PageIndex - 1) * searchViewModel.PageSize).Take(searchViewModel.PageSize).ToList() : q.ToList()
  135. };
  136. return Task.FromResult(pageData);
  137. }
  138. public Task<int> DeleteBySpotIdAsync(Guid spotId)
  139. {
  140. MySqlConnector.MySqlParameter[] parameters = new[] { new MySqlConnector.MySqlParameter("Id", spotId) };
  141. int result = EntityFrameworkCoreExtensions.ExecuteSqlNoQuery(DbContext.Database, "DELETE from TISP_SpotUser WHERE C_SpotCode = @Id", parameters);
  142. return Task.FromResult(result);
  143. }
  144. public Task<int> DeleteByUserIdAsync(Guid userId)
  145. {
  146. MySqlConnector.MySqlParameter[] parameters = new[] { new MySqlConnector.MySqlParameter("Id", userId) };
  147. int result = EntityFrameworkCoreExtensions.ExecuteSqlNoQuery(DbContext.Database, "DELETE from TISP_SpotUser WHERE C_UserCode = @Id", parameters);
  148. return Task.FromResult(result);
  149. }
  150. public Task<int> GetBySpotIdAndUserIdAsync(Guid spotId, Guid userId)
  151. {
  152. MySqlConnector.MySqlParameter[] parameters = new[] { new MySqlConnector.MySqlParameter("spotId", spotId), new MySqlConnector.MySqlParameter("userId", userId) };
  153. string sql = "Select count(*) from TISP_SpotUser WHERE C_SpotCode = @spotId And C_UserCode = @userId";
  154. //string sql = "Select count(*) from TISP_SpotUser WHERE C_SpotCode = '08d8ff14-f250-4ba2-8499-8b96ac8fa407' And C_UserCode = '2812fd35-f276-4eed-822b-36a85d119437'";
  155. //int result = EntityFrameworkCoreExtensions.SqlQuery(DbContext.Database, "Select count(*) from TISP_SpotUser WHERE C_SpotCode = @spotId And C_UserCode = @userId", parameters);
  156. //return Task.FromResult(result);
  157. object result = EntityFrameworkCoreExtensions.SqlQuery(DbContext.Database, sql, parameters).Rows[0][0];
  158. return Task.FromResult(int.Parse(result.ToString()));
  159. }
  160. }
  161. }