/*********************************************************************** * Project: baifenBinfa * ProjectName: 百分兵法管理系统 * Web: http://chuanyin.com * Author: * Email: * CreateTime: 202403/02 * Description: 暂无 ***********************************************************************/ using System; using System.Collections.Generic; using System.Linq.Expressions; using System.Threading.Tasks; using CoreCms.Net.DTO.ComponentsDTO; using CoreCms.Net.Model.Entities; using CoreCms.Net.Model.FromBody; using CoreCms.Net.Model.ViewModels.Basics; using CoreCms.Net.Model.ViewModels.UI; using SqlSugar; namespace CoreCms.Net.IRepository { /// /// 商品表 工厂接口 /// public interface ICoreCmsGoodsRepository : IBaseRepository { /// /// 事务重写异步插入方法 /// /// /// Task InsertAsync(FMGoodsInsertModel entity); /// /// 重写异步更新方法方法 /// /// /// Task UpdateAsync(FMGoodsInsertModel entity); /// /// 重写删除指定ID集合的数据(批量删除) /// /// /// Task DeleteByIdsAsync(int[] ids); /// /// 获取商品重量 /// /// /// Task GetWeight(int productsId); /// /// 库存改变机制。 /// 库存机制:商品下单 总库存不变,冻结库存加1, /// 商品发货:冻结库存减1,总库存减1, /// 订单完成但未发货:总库存不变,冻结库存减1 /// 商品退款&取消订单:总库存不变,冻结库存减1, /// 商品退货:总库存加1,冻结库存不变, /// 可销售库存:总库存-冻结库存 /// /// WebApiCallBack ChangeStock(int productsId, string type = "order", int num = 0); /// /// 获取随机推荐数据 /// /// 数量 /// 是否推荐 /// Task> GetGoodsRecommendList(int number, bool isRecommend = false); /// /// 获取数据总数 /// /// 条件表达式树 /// 是否使用WITH(NOLOCK) /// Task GetCountAsync(Expression> predicate, bool blUseNoLock = false); /// /// 重写根据条件查询分页数据 /// /// 判断集合 /// 排序方式 /// 当前页面索引 /// 分布大小 /// /// 是否使用WITH(NOLOCK) /// Task> QueryPageAsync( Expression> predicate, Expression> orderByExpression, OrderByType orderByType, int pageIndex = 1, int pageSize = 20, bool blUseNoLock = false); /// /// 重写根据条件查询一定数量数据 /// /// 条件表达式树 /// 获取数量 /// 排序字段 /// 排序顺序 /// 是否使用WITH(NOLOCK) /// Task> QueryListByClauseAsync(Expression> predicate, int take, Expression> orderByPredicate, OrderByType orderByType, bool blUseNoLock = false); /// /// 重写根据条件查询数据 /// /// 条件表达式树 /// 排序 /// 是否使用WITH(NOLOCK) /// 泛型实体集合 Task> QueryListByClauseAsync(Expression> predicate, string orderBy = "", bool blUseNoLock = false); /// /// 重写根据条件及自定义排序查询分页数据 /// /// /// /// 当前页面索引 /// 分布大小 /// 是否使用WITH(NOLOCK) /// Task> QueryPageAsync(Expression> predicate, string orderBy = "", int pageIndex = 1, int pageSize = 20, bool blUseNoLock = false); /// /// 重写根据条件及自定义排序查询分页数据(返回DTO) /// /// /// 当前页面索引 /// 分布大小 /// 是否使用WITH(NOLOCK) /// Task> QueryPageByDTOAsync(Expression> predicate, int pageIndex = 1, int pageSize = 20, bool blUseNoLock = false); /// /// 根据条件查询代理池商品分页数据 /// /// /// /// 当前页面索引 /// 分布大小 /// 是否使用WITH(NOLOCK) /// Task> QueryAgentGoodsPageAsync(Expression> predicate, int pageIndex = 1, int pageSize = 20, bool blUseNoLock = false); /// /// 根据条件查询商品及sku分页数据 /// /// 判断集合 /// 排序方式 /// 当前页面索引 /// 分布大小 /// /// 是否使用WITH(NOLOCK) /// Task> QueryGoodAndSkuPageAsync(Expression> predicate, Expression> orderByExpression, OrderByType orderByType, int pageIndex = 1, int pageSize = 20, bool blUseNoLock = false); /// /// 获取下拉商品数据 /// /// Task> QueryEnumEntityAsync(); /// /// 获取商品及默认货品信息 /// /// /// /// /// 是否使用WITH(NOLOCK) /// Task> QueryGoodWithDefaultProductAsync(Expression> predicate, Expression> orderByPredicate, OrderByType orderByType, bool blUseNoLock = false); /// /// 根据条件查询一定数量数据(用于组件) /// /// 条件表达式树 /// 获取数量 /// 排序字段 /// 排序顺序 /// 是否使用WITH(NOLOCK) /// 是否缓存 /// 缓存时间(分钟) /// Task> QueryListByComponentsAsync(Expression> predicate, int take, Expression> orderByPredicate, OrderByType orderByType, bool blUseNoLock = false, bool isDataCache = false, int cacheTimes = int.MaxValue); /// /// 根据条件查询一定数量数据(用于组件) /// /// 条件表达式树 /// 获取数量 /// 排序顺序 /// 是否使用WITH(NOLOCK) /// 是否缓存 /// 缓存时间(分钟) /// Task> QueryListByComponentsAsync(Expression> predicate, int take, string orderByType = "", bool blUseNoLock = false, bool isDataCache = false, int cacheTimes = int.MaxValue); /// /// 根据类型获取商品数据(用于PC,H5) /// /// 条件表达式树 /// 获取数量 /// 排序字段 /// 排序顺序 /// 是否使用WITH(NOLOCK) /// 是否缓存 /// 缓存时间(分钟) /// Task> QueryListByTypeAsync(Expression> predicate, int take, Expression> orderByPredicate, OrderByType orderByType, bool blUseNoLock = false, bool isDataCache = false, int cacheTimes = int.MaxValue); } }