TdevBoxRepository.cs 2.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  1. using Ropin.Inspection.Model;
  2. using Ropin.Inspection.Model.Entities;
  3. using Ropin.Inspection.Model.ViewModel.DEV;
  4. using System;
  5. using System.Collections.Generic;
  6. using System.Linq;
  7. using System.Text;
  8. using System.Threading.Tasks;
  9. namespace Ropin.Inspection.Repository
  10. {
  11. public class TdevBoxRepository : RepositoryBase<TDEV_Box, string>, ITdevBoxRepository
  12. {
  13. public TdevBoxRepository(InspectionDbContext DbContext) : base(DbContext)
  14. {
  15. }
  16. public Task<IEnumerable<TdevBoxViewModel>> GetConditionAsync(TdevBoxSearchModel searchModel)
  17. {
  18. MySqlConnector.MySqlParameter[] parameters = new[] {
  19. new MySqlConnector.MySqlParameter("Status", searchModel.C_Status),
  20. new MySqlConnector.MySqlParameter("name", "%"+searchModel.C_Name+"%"),
  21. new MySqlConnector.MySqlParameter("devName", "%"+searchModel.C_DeviceName+"%"),
  22. new MySqlConnector.MySqlParameter("StoreCode", searchModel.C_StoreCode),
  23. new MySqlConnector.MySqlParameter("Id ", searchModel.C_ID)
  24. };
  25. StringBuilder sql = new StringBuilder();
  26. sql.Append(@"select * from (
  27. select b.*,t.C_ImagePath,t.C_Name as C_BoxTempName from TDEV_Box b LEFT JOIN TDEV_BoxTemplate t on (b.C_BoxTempCode=t.C_ID)
  28. ) tab where 1=1");
  29. if (!string.IsNullOrEmpty(searchModel.C_Status))
  30. {
  31. sql.Append(" and C_Status=@Status ");
  32. }
  33. else
  34. {
  35. sql.Append(" and C_Status!='0' ");
  36. }
  37. if (!string.IsNullOrEmpty(searchModel.C_Name))
  38. {
  39. sql.Append(" and C_Name like @name");
  40. }
  41. if (!string.IsNullOrEmpty(searchModel.C_StoreCode))
  42. {
  43. sql.Append(" and C_StoreCode=@StoreCode ");
  44. }
  45. if (!string.IsNullOrEmpty(searchModel.C_ID))
  46. {
  47. sql.Append(" and C_ID=@Id ");
  48. }
  49. if (!string.IsNullOrEmpty(searchModel.C_DeviceName))
  50. {
  51. sql.Append(" and C_ID in ( select b.C_BoxCode from TDEV_DevBox b LEFT JOIN TDEV_DevStore d on (b.C_DevStoreCode=d.C_ID) where d.C_Name like @devName) ");
  52. }
  53. sql.Append(" order by I_Sort ");
  54. IEnumerable<TdevBoxViewModel> recordItemlist = EntityFrameworkCoreExtensions.GetList<TdevBoxViewModel>(DbContext.Database, sql.ToString(), parameters);
  55. searchModel.TotalCount = recordItemlist.First() != null ? recordItemlist.ToList().Count : 0;
  56. if (recordItemlist.Count()==1&& recordItemlist.FirstOrDefault()==null)
  57. {
  58. recordItemlist = null;
  59. return Task.FromResult(recordItemlist);
  60. }
  61. return Task.FromResult(searchModel.IsPagination ? recordItemlist.Skip((searchModel.PageIndex - 1) * searchModel.PageSize).Take(searchModel.PageSize) : recordItemlist);
  62. }
  63. }
  64. }