革博士程序V1仓库
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

103 lines
5.5 KiB

  1. using Models;
  2. using SqlSugar;
  3. using System;
  4. using System.Collections.Generic;
  5. using System.Linq;
  6. using System.Linq.Expressions;
  7. using System.Text;
  8. using System.Threading.Tasks;
  9. namespace Service
  10. {
  11. public class ProductService : Repository<Models.Product>
  12. {
  13. //更新选项
  14. //public class UpdateNavRootOptions
  15. //{
  16. // public string[] IgnoreColumns { get; set; }//主表更新忽略列(实体配置特性也可以方便的实现)
  17. // public string[] UpdateColumns { get; set; }//只更新哪几列
  18. // public bool IsInsertRoot { get; set; }//强制插入主表 可以实现 更新或者插入效果
  19. // public string[] IgnoreInsertColumns { get; set; }//主表启用插入忽略列 5.1.3.58
  20. // public bool IsDiffLogEvent { get; set; }//启用主表差异日志
  21. // public object DiffLogBizData { get; set; }//差异日志参数
  22. // public bool IsDisableUpdateRoot { get; set; }//禁更新主表5.1.3.33-preview05
  23. //}
  24. public List<Product> GetListNav()
  25. {
  26. return base.AsSugarClient().Queryable<Product>()
  27. .Includes(m => m.ClassesInfo)
  28. .Includes(m => m.StoreList.Where(c => c.Type == 0).OrderBy(x => x.SPH).OrderBy(x => x.CYL).ToList())
  29. .Includes(m => m.DiameterList.Where(c => c.Type == 1).OrderBy(x => x.SPH).OrderBy(x => x.CYL).ToList())
  30. .Includes(m => m.ThicknessList.Where(c => c.Type == 2).OrderBy(x => x.SPH).OrderBy(x => x.CYL).ToList())
  31. .Includes(m => m.BarcodeList.Where(c => c.Type == 3).OrderBy(x => x.SPH).OrderBy(x => x.CYL).ToList())
  32. .Includes(m => m.Barcode2List.Where(c => c.Type == 4).OrderBy(x => x.SPH).OrderBy(x => x.CYL).OrderBy(x => x.ADD).ToList())
  33. .ToList();
  34. }
  35. public Product GetModelNav(int id)
  36. {
  37. return base.AsSugarClient().Queryable<Product>()
  38. .Includes(m => m.ClassesInfo)
  39. .Includes(m => m.StoreList.Where(c => c.Type == 0).OrderBy(x => x.SPH).OrderBy(x => x.CYL).ToList())
  40. .Includes(m => m.DiameterList.Where(c => c.Type == 1).OrderBy(x => x.SPH).OrderBy(x => x.CYL).ToList())
  41. .Includes(m => m.ThicknessList.Where(c => c.Type == 2).OrderBy(x => x.SPH).OrderBy(x => x.CYL).ToList())
  42. .Includes(m => m.BarcodeList.Where(c => c.Type == 3).OrderBy(x => x.SPH).OrderBy(x => x.CYL).ToList())
  43. //.Includes(m => m.Barcode2List.Where(c => c.Type == 4).OrderBy(x => new { x.SPH,x.CYL,x.ADD}).ToList())
  44. .Includes(m => m.Barcode2List.Where(c => c.Type == 4).OrderBy(x => x.SPH).OrderBy(x => x.CYL).OrderBy(x => x.ADD).ToList())
  45. .First(m => m.Id == id);
  46. }
  47. public Product GetModelNav(string code)
  48. {
  49. return base.AsSugarClient().Queryable<Product>()
  50. .Includes(m => m.ClassesInfo)
  51. .Includes(m => m.StoreList.Where(c => c.Type == 0).OrderBy(x => x.SPH).OrderBy(x => x.CYL).ToList())
  52. .Includes(m => m.DiameterList.Where(c => c.Type == 1).OrderBy(x => x.SPH).OrderBy(x => x.CYL).ToList())
  53. .Includes(m => m.ThicknessList.Where(c => c.Type == 2).OrderBy(x => x.SPH).OrderBy(x => x.CYL).ToList())
  54. .Includes(m => m.BarcodeList.Where(c => c.Type == 3).OrderBy(x => x.SPH).OrderBy(x => x.CYL).ToList())
  55. .Includes(m => m.Barcode2List.Where(c => c.Type == 4).OrderBy(x => x.SPH).OrderBy(x => x.CYL).OrderBy(x => x.ADD).ToList())
  56. .First(m => m.Code == code);
  57. }
  58. public bool InsertNav(Models.Product model)
  59. {
  60. return base.AsSugarClient().InsertNav(model)
  61. .Include(a => a.StoreList)//.ThenInclude(z1 => z1.RoomList) //插入2层 Root->ShoolA->RoomList
  62. .Include(a => a.DiameterList)
  63. .Include(a => a.ThicknessList)
  64. .Include(a => a.BarcodeList)
  65. .Include(a => a.Barcode2List)
  66. .ExecuteCommand();
  67. }
  68. public bool UpdateNav(Models.Product model, UpdateNavRootOptions rootOption = null)
  69. {
  70. return base.AsSugarClient().UpdateNav(model, rootOption)
  71. .Include(a => a.StoreList)
  72. .Include(a => a.DiameterList)//.ThenInclude(z1 => z1.RoomList) //插入2层 Root->ShoolA->RoomList
  73. .Include(a => a.ThicknessList)
  74. .Include(a => a.BarcodeList)
  75. .Include(a => a.Barcode2List)
  76. .ExecuteCommand();
  77. }
  78. public bool DelNav(Models.Product model)
  79. {
  80. return base.AsSugarClient().DeleteNav(model)
  81. .Include(a => a.StoreList)
  82. .Include(a => a.DiameterList)//.ThenInclude(z1 => z1.RoomList) //插入2层 Root->ShoolA->RoomList
  83. .Include(a => a.ThicknessList)
  84. .Include(a => a.BarcodeList)
  85. .Include(a => a.Barcode2List)
  86. .ExecuteCommand();
  87. }
  88. //分页
  89. //public List<Models.User> GetOrderPage(Expression<Func<Models.User, bool>> where, int pagesize, int pageindex)
  90. //{
  91. // return base.GetPageList(where, new SqlSugar.PageModel() { PageIndex = pageindex, PageSize = pagesize }); //使用自已的仓储方法
  92. //}
  93. //调用仓储扩展方法
  94. //public List<Models.User> GetOrderByJson(string Json)
  95. //{
  96. // return base.CommQuery(Json);
  97. //}
  98. }
  99. }