using Models; using SqlSugar; using System; using System.Collections.Generic; using System.Linq; using System.Linq.Expressions; using System.Text; using System.Threading.Tasks; namespace Service { public class ProductService : Repository { //更新选项 //public class UpdateNavRootOptions //{ // public string[] IgnoreColumns { get; set; }//主表更新忽略列(实体配置特性也可以方便的实现) // public string[] UpdateColumns { get; set; }//只更新哪几列 // public bool IsInsertRoot { get; set; }//强制插入主表 可以实现 更新或者插入效果 // public string[] IgnoreInsertColumns { get; set; }//主表启用插入忽略列 5.1.3.58 // public bool IsDiffLogEvent { get; set; }//启用主表差异日志 // public object DiffLogBizData { get; set; }//差异日志参数 // public bool IsDisableUpdateRoot { get; set; }//禁更新主表5.1.3.33-preview05 //} public List GetListNav() { return base.AsSugarClient().Queryable() .Includes(m => m.ClassesInfo) .Includes(m => m.StoreList.Where(c => c.Type == 0).OrderBy(x => x.SPH).OrderBy(x => x.CYL).ToList()) .Includes(m => m.DiameterList.Where(c => c.Type == 1).OrderBy(x => x.SPH).OrderBy(x => x.CYL).ToList()) .Includes(m => m.ThicknessList.Where(c => c.Type == 2).OrderBy(x => x.SPH).OrderBy(x => x.CYL).ToList()) .Includes(m => m.BarcodeList.Where(c => c.Type == 3).OrderBy(x => x.SPH).OrderBy(x => x.CYL).ToList()) .Includes(m => m.Barcode2List.Where(c => c.Type == 4).OrderBy(x => x.SPH).OrderBy(x => x.CYL).OrderBy(x => x.ADD).ToList()) .ToList(); } public Product GetModelNav(int id) { return base.AsSugarClient().Queryable() .Includes(m => m.ClassesInfo) .Includes(m => m.StoreList.Where(c => c.Type == 0).OrderBy(x => x.SPH).OrderBy(x => x.CYL).ToList()) .Includes(m => m.DiameterList.Where(c => c.Type == 1).OrderBy(x => x.SPH).OrderBy(x => x.CYL).ToList()) .Includes(m => m.ThicknessList.Where(c => c.Type == 2).OrderBy(x => x.SPH).OrderBy(x => x.CYL).ToList()) .Includes(m => m.BarcodeList.Where(c => c.Type == 3).OrderBy(x => x.SPH).OrderBy(x => x.CYL).ToList()) //.Includes(m => m.Barcode2List.Where(c => c.Type == 4).OrderBy(x => new { x.SPH,x.CYL,x.ADD}).ToList()) .Includes(m => m.Barcode2List.Where(c => c.Type == 4).OrderBy(x => x.SPH).OrderBy(x => x.CYL).OrderBy(x => x.ADD).ToList()) .First(m => m.Id == id); } public Product GetModelNav(string code) { return base.AsSugarClient().Queryable() .Includes(m => m.ClassesInfo) .Includes(m => m.StoreList.Where(c => c.Type == 0).OrderBy(x => x.SPH).OrderBy(x => x.CYL).ToList()) .Includes(m => m.DiameterList.Where(c => c.Type == 1).OrderBy(x => x.SPH).OrderBy(x => x.CYL).ToList()) .Includes(m => m.ThicknessList.Where(c => c.Type == 2).OrderBy(x => x.SPH).OrderBy(x => x.CYL).ToList()) .Includes(m => m.BarcodeList.Where(c => c.Type == 3).OrderBy(x => x.SPH).OrderBy(x => x.CYL).ToList()) .Includes(m => m.Barcode2List.Where(c => c.Type == 4).OrderBy(x => x.SPH).OrderBy(x => x.CYL).OrderBy(x => x.ADD).ToList()) .First(m => m.Code == code); } public bool InsertNav(Models.Product model) { return base.AsSugarClient().InsertNav(model) .Include(a => a.StoreList)//.ThenInclude(z1 => z1.RoomList) //插入2层 Root->ShoolA->RoomList .Include(a => a.DiameterList) .Include(a => a.ThicknessList) .Include(a => a.BarcodeList) .Include(a => a.Barcode2List) .ExecuteCommand(); } public bool UpdateNav(Models.Product model, UpdateNavRootOptions rootOption = null) { return base.AsSugarClient().UpdateNav(model, rootOption) .Include(a => a.StoreList) .Include(a => a.DiameterList)//.ThenInclude(z1 => z1.RoomList) //插入2层 Root->ShoolA->RoomList .Include(a => a.ThicknessList) .Include(a => a.BarcodeList) .Include(a => a.Barcode2List) .ExecuteCommand(); } public bool DelNav(Models.Product model) { return base.AsSugarClient().DeleteNav(model) .Include(a => a.StoreList) .Include(a => a.DiameterList)//.ThenInclude(z1 => z1.RoomList) //插入2层 Root->ShoolA->RoomList .Include(a => a.ThicknessList) .Include(a => a.BarcodeList) .Include(a => a.Barcode2List) .ExecuteCommand(); } //分页 //public List GetOrderPage(Expression> where, int pagesize, int pageindex) //{ // return base.GetPageList(where, new SqlSugar.PageModel() { PageIndex = pageindex, PageSize = pagesize }); //使用自已的仓储方法 //} //调用仓储扩展方法 //public List GetOrderByJson(string Json) //{ // return base.CommQuery(Json); //} } }