CarDataRepository.cs 5.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121
  1. using AutoMapper;
  2. using OASystem.Domain;
  3. using OASystem.Domain.AesEncryption;
  4. using OASystem.Domain.Dtos.Resource;
  5. using OASystem.Domain.Entities.Resource;
  6. using OASystem.Domain.ViewModels.Resource;
  7. namespace OASystem.Infrastructure.Repositories.Resource
  8. {
  9. public class CarDataRepository: BaseRepository<Res_CarData, CarDataView>
  10. {
  11. private readonly IMapper _mapper;
  12. public CarDataRepository(SqlSugarClient sqlSugar, IMapper mapper) : base(sqlSugar)
  13. {
  14. _mapper = mapper;
  15. }
  16. /// <summary>
  17. /// 查询用车资料
  18. /// </summary>
  19. /// <param name="dto"></param>
  20. /// <returns></returns>
  21. public async Task<Result> QueryCarData(QueryCarDataDto dto)
  22. {
  23. string sqlWhere = string.Empty;
  24. if (!string.IsNullOrWhiteSpace(dto.UnitName)) sqlWhere += string.Format(@" And UnitName like '%{0}%'", dto.UnitName);
  25. if (!string.IsNullOrWhiteSpace(dto.UnitArea) && dto.UnitArea != "全部") sqlWhere += string.Format(@" And UnitArea like '%{0}%'", dto.UnitArea);
  26. if (!string.IsNullOrWhiteSpace(dto.Contact)) sqlWhere += string.Format(@" And Contact like '%{0}%'", dto.Contact);
  27. if (!string.IsNullOrWhiteSpace(dto.ContactTel)) sqlWhere += string.Format(@" And ContactTel like '%{0}%'", dto.ContactTel);
  28. sqlWhere += string.Format(@" And IsDel={0}", 0);
  29. if (!string.IsNullOrEmpty(sqlWhere.Trim()))
  30. {
  31. Regex r = new Regex("And");
  32. sqlWhere = r.Replace(sqlWhere, "Where", 1);
  33. }
  34. if (dto.PortType == 1)
  35. {
  36. string sql = string.Format(@"select * from Res_CarData {0}", sqlWhere);
  37. var carDatas = await _sqlSugar.SqlQueryable<Res_CarData>(sql).ToListAsync();
  38. if (carDatas.Count == 0) return new Result() { Code = -1, Msg = "暂无数据" };
  39. carDatas = carDatas.OrderByDescending(x => x.CreateTime).ToList();
  40. if (dto.PageSize == 0 && dto.PageIndex == 0)
  41. {
  42. return new Result()
  43. {
  44. Code = 0,
  45. Msg = "查询成功",
  46. Data = carDatas,
  47. };
  48. }
  49. else
  50. {
  51. int count = carDatas.Count;
  52. float totalPage = (float)count / dto.PageSize;//总页数
  53. if (totalPage == 0) totalPage = 1;
  54. else totalPage = (int)Math.Ceiling((double)totalPage);
  55. var ListData = new List<Res_CarData>();
  56. for (int i = 0; i < dto.PageSize; i++)
  57. {
  58. var RowIndex = i + (dto.PageIndex - 1) * dto.PageSize;
  59. if (RowIndex < carDatas.Count) ListData.Add(carDatas[RowIndex]);
  60. else break;
  61. }
  62. foreach (var item in ListData) EncryptionProcessor.DecryptProperties(item);
  63. return new Result()
  64. {
  65. Code = 0,
  66. Msg = "查询成功",
  67. Data = new { pageCount = count, totalPage = (int)totalPage, pageIndex = dto.PageIndex, pageSize = dto.PageSize, pageSource = ListData },
  68. };
  69. }
  70. }
  71. else if (dto.PortType == 2 || dto.PortType == 3)
  72. {
  73. string sql = string.Format(@"select * from Res_CarData {0}", sqlWhere);
  74. var carDatas = await _sqlSugar.SqlQueryable<Res_CarData>(sql).ToListAsync();
  75. if (carDatas.Count == 0) return new Result() { Code = -1, Msg = "暂无数据" };
  76. carDatas = carDatas.OrderByDescending(x => x.CreateTime).ToList();
  77. if (dto.PageSize == 0 || dto.PageIndex == 0)
  78. {
  79. return new Result()
  80. {
  81. Code = 0,
  82. Msg = "查询成功",
  83. Data = carDatas,
  84. };
  85. }
  86. else
  87. {
  88. int count = carDatas.Count;
  89. float totalPage = (float)count / dto.PageSize;//总页数
  90. if (totalPage == 0) totalPage = 1;
  91. else totalPage = (int)Math.Ceiling((double)totalPage);
  92. var ListData = new List<Res_CarData>();
  93. for (int i = 0; i < dto.PageSize; i++)
  94. {
  95. var RowIndex = i + (dto.PageIndex - 1) * dto.PageSize;
  96. if (RowIndex < carDatas.Count) ListData.Add(carDatas[RowIndex]);
  97. else break;
  98. }
  99. foreach (var item in ListData) EncryptionProcessor.DecryptProperties(item);
  100. return new Result()
  101. {
  102. Code = 0,
  103. Msg = "查询成功",
  104. Data = new { pageCount = count, totalPage = ((int)totalPage).ToString(), pageIndex = dto.PageIndex, pageSize = dto.PageSize, pageSource = ListData },
  105. };
  106. }
  107. }
  108. else return new Result() { Code = -2, Msg = MsgTips.Port };
  109. }
  110. }
  111. }