HotelDataRepository.cs 8.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211
  1. using AutoMapper;
  2. using OASystem.Domain;
  3. using OASystem.Domain.Dtos.Groups;
  4. using OASystem.Domain.Dtos.Resource;
  5. using OASystem.Domain.Entities.Resource;
  6. using OASystem.Domain.ViewModels.Resource;
  7. using System;
  8. using System.Collections.Generic;
  9. using System.Linq;
  10. using System.Text;
  11. using System.Threading.Tasks;
  12. namespace OASystem.Infrastructure.Repositories.Resource
  13. {
  14. public class HotelDataRepository:BaseRepository<Res_HotelData,HotelDataView>
  15. {
  16. private readonly IMapper _mapper;
  17. public HotelDataRepository(SqlSugarClient sqlSugar, IMapper mapper) : base(sqlSugar)
  18. {
  19. _mapper= mapper;
  20. }
  21. public async Task<Result> OperationHotelData(OperationHotelDto dto)
  22. {
  23. Result result = new Result() { Code = -2, Msg = "未知错误" };
  24. if (dto.Status == 1)//添加
  25. {
  26. string selectSql = string.Format(@"select * from Res_HotelData where Name='{0}' and IsDel='{1}'"
  27. , dto.Name, 0);
  28. var HotelData = await _sqlSugar.SqlQueryable<Res_HotelData>(selectSql).FirstAsync();//查询是否存在
  29. if (HotelData != null)
  30. {
  31. return result = new Result() { Code = -1, Msg = "该信息已存在,请勿重复添加!" };
  32. }
  33. else//不存在,可添加
  34. {
  35. Res_HotelData _HotelDataDto = _mapper.Map<Res_HotelData>(dto);
  36. int id = await AddAsyncReturnId(_HotelDataDto);
  37. if (id == 0)
  38. {
  39. return result = new Result() { Code = -1, Msg = "添加失败!" };
  40. }
  41. return result = new Result() { Code = 0, Msg = "添加成功!", Data = new { Id = id } };
  42. }
  43. }
  44. else if (dto.Status == 2)//修改
  45. {
  46. bool res = await UpdateAsync(a => a.Id == dto.Id, a => new Res_HotelData
  47. {
  48. City = dto.City,
  49. Name = dto.Name,
  50. Level = dto.Level,
  51. Address = dto.Address,
  52. Tel = dto.Tel,
  53. Fax = dto.Fax,
  54. Contact = dto.Contact,
  55. ContactPhone = dto.ContactPhone,
  56. OtherInformation = dto.OtherInformation,
  57. Remark = dto.Remark,
  58. });
  59. if (!res)
  60. {
  61. return result = new Result() { Code = -1, Msg = "修改失败!" };
  62. }
  63. return result = new Result() { Code = 0, Msg = "修改成功!" };
  64. }
  65. else
  66. {
  67. return result = new Result() { Code = -1, Msg = "请传入Status参数,1添加 2修改!" };
  68. }
  69. }
  70. public async Task<Result> QueryHotelData(QueryHotelDataDto dto)
  71. {
  72. Result result = new Result() { Code = -2, Msg = "未知错误" };
  73. try
  74. {
  75. string sqlWhere = string.Empty;
  76. if (!string.IsNullOrWhiteSpace(dto.Name))
  77. {
  78. sqlWhere += string.Format(@" And Name like '%{0}%'", dto.Name);
  79. }
  80. if (!string.IsNullOrWhiteSpace(dto.City) && dto.City != "全部")
  81. {
  82. sqlWhere += string.Format(@" And City like '%{0}%'", dto.City);
  83. }
  84. if (!string.IsNullOrWhiteSpace(dto.Contact))
  85. {
  86. sqlWhere += string.Format(@" And Contact like '%{0}%'", dto.Contact);
  87. }
  88. if (!string.IsNullOrWhiteSpace(dto.ContactPhone))
  89. {
  90. sqlWhere += string.Format(@" And ContactPhone like '%{0}%'", dto.ContactPhone);
  91. }
  92. sqlWhere += string.Format(@" And IsDel={0}", 0);
  93. if (!string.IsNullOrEmpty(sqlWhere.Trim()))
  94. {
  95. Regex r = new Regex("And");
  96. sqlWhere = r.Replace(sqlWhere, "Where", 1);
  97. }
  98. if (dto.PortType == 1)
  99. {
  100. string sql = string.Format(@"select * from Res_HotelData {0}", sqlWhere);
  101. List<Res_HotelData> HotelDataData = await _sqlSugar.SqlQueryable<Res_HotelData>(sql).ToListAsync();
  102. if (HotelDataData.Count == 0)
  103. {
  104. return result = new Result() { Code = -1, Msg = "暂无数据" };
  105. }
  106. HotelDataData = HotelDataData.OrderByDescending(x => x.CreateTime).ToList();
  107. if (dto.PageSize == 0 && dto.PageIndex == 0)
  108. {
  109. return result = new Result()
  110. {
  111. Code = 0,
  112. Msg = "查询成功",
  113. Data = HotelDataData,
  114. };
  115. }
  116. else
  117. {
  118. int count = HotelDataData.Count;
  119. float totalPage = (float)count / dto.PageSize;//总页数
  120. if (totalPage == 0) totalPage = 1;
  121. else totalPage = (int)Math.Ceiling((double)totalPage);
  122. List<Res_HotelData> _HotelData = new List<Res_HotelData>();
  123. for (int i = 0; i < dto.PageSize; i++)
  124. {
  125. var RowIndex = i + (dto.PageIndex - 1) * dto.PageSize;
  126. if (RowIndex < HotelDataData.Count)
  127. {
  128. _HotelData.Add(HotelDataData[RowIndex]);
  129. }
  130. else
  131. {
  132. break;
  133. }
  134. }
  135. return result = new Result()
  136. {
  137. Code = 0,
  138. Msg = "查询成功",
  139. Data = new { pageCount = count, totalPage = (int)totalPage, pageIndex = dto.PageIndex, pageSize = dto.PageSize, pageSource = _HotelData },
  140. };
  141. }
  142. }
  143. else if (dto.PortType == 2)
  144. {
  145. string sql = string.Format(@"select * from Res_HotelData {0}", sqlWhere);
  146. List<Res_HotelData> HotelDataData = await _sqlSugar.SqlQueryable<Res_HotelData>(sql).ToListAsync();
  147. if (HotelDataData.Count == 0)
  148. {
  149. return result = new Result() { Code = -1, Msg = "暂无数据" };
  150. }
  151. HotelDataData = HotelDataData.OrderByDescending(x => x.CreateTime).ToList();
  152. if (dto.PageSize == 0 && dto.PageIndex == 0)
  153. {
  154. return result = new Result()
  155. {
  156. Code = 0,
  157. Msg = "查询成功",
  158. Data = HotelDataData,
  159. };
  160. }
  161. else
  162. {
  163. int count = HotelDataData.Count;
  164. float totalPage = (float)count / dto.PageSize;//总页数
  165. if (totalPage == 0) totalPage = 1;
  166. else totalPage = (int)Math.Ceiling((double)totalPage);
  167. List<Res_HotelData> _HotelData = new List<Res_HotelData>();
  168. for (int i = 0; i < dto.PageSize; i++)
  169. {
  170. var RowIndex = i + (dto.PageIndex - 1) * dto.PageSize;
  171. if (RowIndex < HotelDataData.Count)
  172. {
  173. _HotelData.Add(HotelDataData[RowIndex]);
  174. }
  175. else
  176. {
  177. break;
  178. }
  179. }
  180. return result = new Result()
  181. {
  182. Code = 0,
  183. Msg = "查询成功",
  184. Data = new { pageCount = count, totalPage = (int)totalPage, pageIndex = dto.PageIndex, pageSize = dto.PageSize, pageSource = _HotelData },
  185. };
  186. }
  187. }
  188. else
  189. {
  190. return result = new Result() { Code = -2, Msg = "请传入PortType参数!1:Web,2:Android,3:IOS" };
  191. }
  192. }
  193. catch (Exception)
  194. {
  195. return result;
  196. throw;
  197. }
  198. }
  199. }
  200. }