/*********************************************************************** * 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.DTO; using CoreCms.Net.Model.ViewModels.UI; using SqlSugar; namespace CoreCms.Net.IServices { /// /// 商品表 服务工厂接口 /// public interface ICoreCmsGoodsServices : IBaseServices { /// /// 批量修改价格 /// /// /// Task DoBatchModifyPrice(FmBatchModifyPrice entity); /// /// 批量修改价格 /// /// /// Task DoBatchModifyStock(FmBatchModifyStock entity); /// /// 批量上架 /// /// /// Task DoBatchMarketableUp(int[] ids); /// /// 批量下架 /// /// /// Task DoBatchMarketableDown(int[] ids); /// /// 设置标签 /// /// /// Task DoSetLabel(FmSetLabel entity); /// /// 取消标签 /// /// /// Task DoDeleteLabel(FmSetLabel entity); /// /// 判断商品是否参加团购或者秒杀 /// /// /// 返回团购或者秒杀序列 /// 团购秒杀优惠规则序列 /// bool IsInGroup(int goodId, out CoreCmsPromotion promotionsModel, int promotionId = 0); /// /// 获取商品重量 /// /// /// Task GetWeight(int productsId); /// /// 库存改变机制。 /// 库存机制:商品下单 总库存不变,冻结库存加1, /// 商品发货:冻结库存减1,总库存减1, /// 订单完成但未发货:总库存不变,冻结库存减1 /// 商品退款&取消订单:总库存不变,冻结库存减1, /// 商品退货:总库存加1,冻结库存不变, /// 可销售库存:总库存-冻结库存 /// /// WebApiCallBack ChangeStock(int productsId, string type = "order", int num = 0); /// /// 获取商品详情 /// /// /// /// /// /// /// /// Task GetGoodsDetail(int id, int userId = 0, bool isPromotion = false, string type = "goods", int groupId = 0, bool needSku = false); /// /// 通过商品序列获取sku列表 /// /// /// /// /// /// /// /// Task GetCoreCmsProductsView(CoreCmsGoods good, List products, int userId = 0, bool isPromotion = false, string type = "goods", int groupId = 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(); #region 重写增删改查操作=========================================================== /// /// 事务重写异步插入方法 /// /// /// Task InsertAsync(FMGoodsInsertModel entity); /// /// 重写异步更新方法方法 /// /// /// Task UpdateAsync(FMGoodsInsertModel entity); /// /// 重写删除指定ID集合的数据(批量删除) /// /// /// Task DeleteByIdsAsync(int[] ids); #endregion /// /// 获取商品及默认货品信息 /// /// /// /// /// 是否使用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); } }