ThreeCodeRepository.cs 8.8 KB

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