革博士程序V1仓库
Вы не можете выбрать более 25 тем Темы должны начинаться с буквы или цифры, могут содержать дефисы(-) и должны содержать не более 35 символов.

120 строки
5.1 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 bool InsertNav(Models.Product model)
  65. {
  66. return base.AsSugarClient().InsertNav(model)
  67. //.Include(a => a.ProductParamsList)//.ThenInclude(z1 => z1.RoomList) //插入2层 Root->ShoolA->RoomList
  68. .Include(m => m.QualifiedLimitList)
  69. .Include(m => m.GradeLimitList)
  70. .ExecuteCommand();
  71. }
  72. public bool UpdateNav(Models.Product model)
  73. {
  74. return base.AsSugarClient().UpdateNav(model)
  75. .Include(m => m.QualifiedLimitList)
  76. .Include(m => m.GradeLimitList)
  77. .ExecuteCommand();
  78. }
  79. public bool DelNav(Models.Product model)
  80. {
  81. return base.AsSugarClient().DeleteNav(model)
  82. .Include(m => m.QualifiedLimitList)
  83. .Include(m => m.GradeLimitList)
  84. .ExecuteCommand();
  85. }
  86. ///// <summary>
  87. ///// 注:导航更新子表时会先把子表当前pid全delete再重新insert,即使子表数据和Id都没变动
  88. ///// </summary>
  89. ///// <param name="model"></param>
  90. ///// <param name="rootOption"></param>
  91. ///// <returns></returns>
  92. //public bool UpdateNav(Models.Product model, UpdateNavRootOptions rootOption = null)
  93. //{
  94. // return base.AsSugarClient().UpdateNav(model, rootOption)
  95. // //会先把子表当前pid全delete再重新insert,即使子表数据和Id都没变动
  96. // //.Include(a => a.ProductParamsList)//.ThenInclude(z1 => z1.RoomList) //插入2层 Root->ShoolA->RoomList
  97. // .ExecuteCommand();
  98. //}
  99. //public bool DelNav(Models.Product model)
  100. //{
  101. // return base.AsSugarClient().DeleteNav(model)
  102. // //.Include(a => a.ProductParamsList)//.ThenInclude(z1 => z1.RoomList) //插入2层 Root->ShoolA->RoomList
  103. // .ExecuteCommand();
  104. //}
  105. //分页
  106. //public List<Models.User> GetOrderPage(Expression<Func<Models.User, bool>> where, int pagesize, int pageindex)
  107. //{
  108. // return base.GetPageList(where, new SqlSugar.PageModel() { PageIndex = pageindex, PageSize = pagesize }); //使用自已的仓储方法
  109. //}
  110. //调用仓储扩展方法
  111. //public List<Models.User> GetOrderByJson(string Json)
  112. //{
  113. // return base.CommQuery(Json);
  114. //}
  115. }
  116. }