革博士V2程序
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.

128 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.QualifiedLimitList)
  29. .Includes(m => m.GradeLimitList)
  30. .ToList();
  31. }
  32. //分页查询
  33. public List<Product> GetListNav(int pageNum, int pageSize, ref int totalCount, Expression<Func<Product, bool>> exp)
  34. {
  35. return base.AsSugarClient().Queryable<Product>()
  36. .WhereIF(exp != null, exp)
  37. .OrderByDescending(m => m.CreateTime)
  38. .ToPageList(pageNum, pageSize, ref totalCount);
  39. }
  40. public Product GetModelNav(int id)
  41. {
  42. return base.AsSugarClient().Queryable<Product>()
  43. //.Includes(m => m.ClassesInfo)
  44. .Includes(m => m.QualifiedLimitList)
  45. .Includes(m => m.GradeLimitList)
  46. .First(m => m.Id == id);
  47. }
  48. public Product GetModelNav(string code)
  49. {
  50. return base.AsSugarClient().Queryable<Product>()
  51. //.Includes(m => m.ClassesInfo)
  52. .Includes(m => m.QualifiedLimitList)
  53. .Includes(m => m.GradeLimitList)
  54. .First(m => m.Code == code);
  55. }
  56. public Product GetModelNavByName(string name)
  57. {
  58. return base.AsSugarClient().Queryable<Product>()
  59. //.Includes(m => m.ClassesInfo)
  60. .Includes(m => m.QualifiedLimitList)
  61. .Includes(m => m.GradeLimitList)
  62. .First(m => m.Name == name);
  63. }
  64. public Product GetModelNavByMaterialColor(string code, string Material)
  65. {
  66. return base.AsSugarClient().Queryable<Product>()
  67. //.Includes(m => m.ClassesInfo)
  68. .Includes(m => m.QualifiedLimitList)
  69. .Includes(m => m.GradeLimitList)
  70. .First(m => m.Material == Material && m.ColorName == code);
  71. }
  72. public bool InsertNav(Models.Product model)
  73. {
  74. return base.AsSugarClient().InsertNav(model)
  75. //.Include(a => a.ProductParamsList)//.ThenInclude(z1 => z1.RoomList) //插入2层 Root->ShoolA->RoomList
  76. .Include(m => m.QualifiedLimitList)
  77. .Include(m => m.GradeLimitList)
  78. .ExecuteCommand();
  79. }
  80. public bool UpdateNav(Models.Product model)
  81. {
  82. return base.AsSugarClient().UpdateNav(model)
  83. .Include(m => m.QualifiedLimitList)
  84. .Include(m => m.GradeLimitList)
  85. .ExecuteCommand();
  86. }
  87. public bool DelNav(Models.Product model)
  88. {
  89. return base.AsSugarClient().DeleteNav(model)
  90. .Include(m => m.QualifiedLimitList)
  91. .Include(m => m.GradeLimitList)
  92. .ExecuteCommand();
  93. }
  94. ///// <summary>
  95. ///// 注:导航更新子表时会先把子表当前pid全delete再重新insert,即使子表数据和Id都没变动
  96. ///// </summary>
  97. ///// <param name="model"></param>
  98. ///// <param name="rootOption"></param>
  99. ///// <returns></returns>
  100. //public bool UpdateNav(Models.Product model, UpdateNavRootOptions rootOption = null)
  101. //{
  102. // return base.AsSugarClient().UpdateNav(model, rootOption)
  103. // //会先把子表当前pid全delete再重新insert,即使子表数据和Id都没变动
  104. // //.Include(a => a.ProductParamsList)//.ThenInclude(z1 => z1.RoomList) //插入2层 Root->ShoolA->RoomList
  105. // .ExecuteCommand();
  106. //}
  107. //public bool DelNav(Models.Product model)
  108. //{
  109. // return base.AsSugarClient().DeleteNav(model)
  110. // //.Include(a => a.ProductParamsList)//.ThenInclude(z1 => z1.RoomList) //插入2层 Root->ShoolA->RoomList
  111. // .ExecuteCommand();
  112. //}
  113. //分页
  114. //public List<Models.User> GetOrderPage(Expression<Func<Models.User, bool>> where, int pagesize, int pageindex)
  115. //{
  116. // return base.GetPageList(where, new SqlSugar.PageModel() { PageIndex = pageindex, PageSize = pagesize }); //使用自已的仓储方法
  117. //}
  118. //调用仓储扩展方法
  119. //public List<Models.User> GetOrderByJson(string Json)
  120. //{
  121. // return base.CommQuery(Json);
  122. //}
  123. }
  124. }