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

145 строки
6.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 Product GetModelNavByMFID(string MFID)
  65. {
  66. var lt = base.AsSugarClient().Queryable<Product>()
  67. //.Includes(m => m.ClassesInfo)
  68. .Includes(m => m.QualifiedLimitList)
  69. .Includes(m => m.GradeLimitList)
  70. .ToList();
  71. foreach (var item in lt)
  72. {
  73. if(!string.IsNullOrWhiteSpace(item.Spec))
  74. {
  75. if (item.Spec.Split(',').Contains(MFID))
  76. return item;
  77. }
  78. }
  79. return null;
  80. //return base.AsSugarClient().Queryable<Product>()
  81. // //.Includes(m => m.ClassesInfo)
  82. // .Includes(m => m.QualifiedLimitList)
  83. // .Includes(m => m.GradeLimitList)
  84. // .First(m => m.Spec.IndexOf(MFID)>=0);//string.IsNullOrWhiteSpace(m.Spec)? false :m.Spec.Split(',').Contains(MFID)
  85. }
  86. public bool InsertNav(Models.Product model)
  87. {
  88. return base.AsSugarClient().InsertNav(model)
  89. //.Include(a => a.ProductParamsList)//.ThenInclude(z1 => z1.RoomList) //插入2层 Root->ShoolA->RoomList
  90. .Include(m => m.QualifiedLimitList)
  91. .Include(m => m.GradeLimitList)
  92. .ExecuteCommand();
  93. }
  94. public bool UpdateNav(Models.Product model)
  95. {
  96. return base.AsSugarClient().UpdateNav(model)
  97. .Include(m => m.QualifiedLimitList)
  98. .Include(m => m.GradeLimitList)
  99. .ExecuteCommand();
  100. }
  101. public bool DelNav(Models.Product model)
  102. {
  103. return base.AsSugarClient().DeleteNav(model)
  104. .Include(m => m.QualifiedLimitList)
  105. .Include(m => m.GradeLimitList)
  106. .ExecuteCommand();
  107. }
  108. ///// <summary>
  109. ///// 注:导航更新子表时会先把子表当前pid全delete再重新insert,即使子表数据和Id都没变动
  110. ///// </summary>
  111. ///// <param name="model"></param>
  112. ///// <param name="rootOption"></param>
  113. ///// <returns></returns>
  114. //public bool UpdateNav(Models.Product model, UpdateNavRootOptions rootOption = null)
  115. //{
  116. // return base.AsSugarClient().UpdateNav(model, rootOption)
  117. // //会先把子表当前pid全delete再重新insert,即使子表数据和Id都没变动
  118. // //.Include(a => a.ProductParamsList)//.ThenInclude(z1 => z1.RoomList) //插入2层 Root->ShoolA->RoomList
  119. // .ExecuteCommand();
  120. //}
  121. //public bool DelNav(Models.Product model)
  122. //{
  123. // return base.AsSugarClient().DeleteNav(model)
  124. // //.Include(a => a.ProductParamsList)//.ThenInclude(z1 => z1.RoomList) //插入2层 Root->ShoolA->RoomList
  125. // .ExecuteCommand();
  126. //}
  127. //分页
  128. //public List<Models.User> GetOrderPage(Expression<Func<Models.User, bool>> where, int pagesize, int pageindex)
  129. //{
  130. // return base.GetPageList(where, new SqlSugar.PageModel() { PageIndex = pageindex, PageSize = pagesize }); //使用自已的仓储方法
  131. //}
  132. //调用仓储扩展方法
  133. //public List<Models.User> GetOrderByJson(string Json)
  134. //{
  135. // return base.CommQuery(Json);
  136. //}
  137. }
  138. }