/*********************************************************************** * Project: baifenBinfa * ProjectName: 百分兵法管理系统 * Web: http://chuanyin.com * Author: * Email: * CreateTime: 2024/5/7 16:00:53 * Description: 暂无 ***********************************************************************/ using System; using System.Collections.Generic; using System.Linq.Expressions; using System.Threading.Tasks; using CoreCms.Net.Configuration; using CoreCms.Net.IRepository; using CoreCms.Net.IRepository.UnitOfWork; using CoreCms.Net.IServices; using CoreCms.Net.Model.Entities; using CoreCms.Net.Model.ViewModels.Basics; using CoreCms.Net.Model.ViewModels.UI; using SqlSugar; using static CoreCms.Net.Configuration.GlobalEnumVars; namespace CoreCms.Net.Services { /// /// 货品表 接口实现 /// public class CoreCmsbaifenProductsServices : BaseServices, ICoreCmsbaifenProductsServices { private readonly ICoreCmsbaifenProductsRepository _dal; private readonly IUnitOfWork _unitOfWork; public CoreCmsbaifenProductsServices(IUnitOfWork unitOfWork, ICoreCmsbaifenProductsRepository dal) { this._dal = dal; base.BaseDal = dal; _unitOfWork = unitOfWork; } #region 实现重写增删改查操作========================================================== /// /// 重写异步插入方法 /// /// 实体数据 /// public async Task InsertAsync(CoreCmsProducts entity) { return await _dal.InsertAsync(entity); } /// /// 重写异步更新方法方法 /// /// /// public async Task UpdateAsync(CoreCmsProducts entity) { return await _dal.UpdateAsync(entity); } /// /// 重写异步更新方法方法 /// /// /// public async Task UpdateAsync(List entity) { return await _dal.UpdateAsync(entity); } /// /// 重写删除指定ID的数据 /// /// /// public async Task DeleteByIdAsync(object id) { return await _dal.DeleteByIdAsync(id); } /// /// 重写删除指定ID集合的数据(批量删除) /// /// /// public async Task DeleteByIdsAsync(int[] ids) { return await _dal.DeleteByIdsAsync(ids); } #endregion #region 获取缓存的所有数据========================================================== /// /// 获取缓存的所有数据 /// /// public async Task> GetCaChe() { return await _dal.GetCaChe(); } #endregion #region 重写根据条件查询分页数据 /// /// 重写根据条件查询分页数据 /// /// 判断集合 /// 排序方式 /// 当前页面索引 /// 分布大小 /// /// 是否使用WITH(NOLOCK) /// public async Task> QueryPageAsync(Expression> predicate, Expression> orderByExpression, OrderByType orderByType, int pageIndex = 1, int pageSize = 20, bool blUseNoLock = false) { return await _dal.QueryPageAsync(predicate, orderByExpression, orderByType, pageIndex, pageSize, blUseNoLock); } #endregion #region 获取关联商品的货品列表数据 /// /// 获取关联商品的货品列表数据 /// /// 判断集合 /// 排序方式 /// 当前页面索引 /// 分布大小 /// /// 是否使用WITH(NOLOCK) /// public async Task> QueryDetailPageAsync(Expression> predicate, Expression> orderByExpression, OrderByType orderByType, int pageIndex = 1, int pageSize = 20, bool blUseNoLock = false) { return await _dal.QueryDetailPageAsync(predicate, orderByExpression, orderByType, pageIndex, pageSize, blUseNoLock); } #endregion #region 查询所有满足条件的列表 public async Task> QueryDetaiListAsync(Expression> predicate, Expression> orderByExpression, OrderByType orderByType, bool blUseNoLock = false) { return await _dal.QueryDetaiListAsync(predicate, orderByExpression, orderByType, blUseNoLock); } public async Task QueryEditByID(int id) { return await _unitOfWork.GetDbClient().Queryable((good, product) => new JoinQueryInfos( JoinType.Inner, good.id == product.goodsId ) ).Where((good, product) =>product.id==id) .Select((good, product) => new CoreCmsProducts { id = product.id, goodsId = product.goodsId, barcode = product.barcode, sn = product.sn, price = product.price, costprice = product.costprice, mktprice = product.mktprice, marketable = product.marketable, weight = product.weight, stock = product.stock, freezeStock = product.freezeStock, pointsDeduction = product.pointsDeduction, points = product.points, spesDesc = product.spesDesc, isDefalut = product.isDefalut, images = product.images, isDel = good.isDel, name = good.name, bn = good.bn, isMarketable = good.isMarketable, unit = good.unit, distributionPrice = product.distributionPrice, cutMoney = product.cutMoney, distributionCutMoney = product.distributionCutMoney, }).With(SqlWith.NoLock) .FirstAsync(); } #endregion } }