/***********************************************************************
|
* 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
|
{
|
/// <summary>
|
/// 货品表 接口实现
|
/// </summary>
|
public class CoreCmsbaifenProductsServices : BaseServices<CoreCmsProducts>, ICoreCmsbaifenProductsServices
|
{
|
private readonly ICoreCmsbaifenProductsRepository _dal;
|
private readonly IUnitOfWork _unitOfWork;
|
|
public CoreCmsbaifenProductsServices(IUnitOfWork unitOfWork, ICoreCmsbaifenProductsRepository dal)
|
{
|
this._dal = dal;
|
base.BaseDal = dal;
|
_unitOfWork = unitOfWork;
|
}
|
|
#region 实现重写增删改查操作==========================================================
|
|
/// <summary>
|
/// 重写异步插入方法
|
/// </summary>
|
/// <param name="entity">实体数据</param>
|
/// <returns></returns>
|
public async Task<AdminUiCallBack> InsertAsync(CoreCmsProducts entity)
|
{
|
return await _dal.InsertAsync(entity);
|
}
|
|
/// <summary>
|
/// 重写异步更新方法方法
|
/// </summary>
|
/// <param name="entity"></param>
|
/// <returns></returns>
|
public async Task<AdminUiCallBack> UpdateAsync(CoreCmsProducts entity)
|
{
|
return await _dal.UpdateAsync(entity);
|
}
|
|
/// <summary>
|
/// 重写异步更新方法方法
|
/// </summary>
|
/// <param name="entity"></param>
|
/// <returns></returns>
|
public async Task<AdminUiCallBack> UpdateAsync(List<CoreCmsProducts> entity)
|
{
|
return await _dal.UpdateAsync(entity);
|
}
|
|
/// <summary>
|
/// 重写删除指定ID的数据
|
/// </summary>
|
/// <param name="id"></param>
|
/// <returns></returns>
|
public async Task<AdminUiCallBack> DeleteByIdAsync(object id)
|
{
|
return await _dal.DeleteByIdAsync(id);
|
}
|
|
/// <summary>
|
/// 重写删除指定ID集合的数据(批量删除)
|
/// </summary>
|
/// <param name="ids"></param>
|
/// <returns></returns>
|
public async Task<AdminUiCallBack> DeleteByIdsAsync(int[] ids)
|
{
|
return await _dal.DeleteByIdsAsync(ids);
|
}
|
|
#endregion
|
|
#region 获取缓存的所有数据==========================================================
|
|
/// <summary>
|
/// 获取缓存的所有数据
|
/// </summary>
|
/// <returns></returns>
|
public async Task<List<CoreCmsProducts>> GetCaChe()
|
{
|
return await _dal.GetCaChe();
|
}
|
|
#endregion
|
|
#region 重写根据条件查询分页数据
|
/// <summary>
|
/// 重写根据条件查询分页数据
|
/// </summary>
|
/// <param name="predicate">判断集合</param>
|
/// <param name="orderByType">排序方式</param>
|
/// <param name="pageIndex">当前页面索引</param>
|
/// <param name="pageSize">分布大小</param>
|
/// <param name="orderByExpression"></param>
|
/// <param name="blUseNoLock">是否使用WITH(NOLOCK)</param>
|
/// <returns></returns>
|
public async Task<IPageList<CoreCmsProducts>> QueryPageAsync(Expression<Func<CoreCmsProducts, bool>> predicate,
|
Expression<Func<CoreCmsProducts, object>> orderByExpression, OrderByType orderByType, int pageIndex = 1,
|
int pageSize = 20, bool blUseNoLock = false)
|
{
|
return await _dal.QueryPageAsync(predicate, orderByExpression, orderByType, pageIndex, pageSize, blUseNoLock);
|
}
|
#endregion
|
|
#region 获取关联商品的货品列表数据
|
/// <summary>
|
/// 获取关联商品的货品列表数据
|
/// </summary>
|
/// <param name="predicate">判断集合</param>
|
/// <param name="orderByType">排序方式</param>
|
/// <param name="pageIndex">当前页面索引</param>
|
/// <param name="pageSize">分布大小</param>
|
/// <param name="orderByExpression"></param>
|
/// <param name="blUseNoLock">是否使用WITH(NOLOCK)</param>
|
/// <returns></returns>
|
public async Task<IPageList<CoreCmsProducts>> QueryDetailPageAsync(Expression<Func<CoreCmsProducts, bool>> predicate,
|
Expression<Func<CoreCmsProducts, object>> 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<List<CoreCmsProducts>> QueryDetaiListAsync(Expression<Func<CoreCmsProducts, bool>> predicate, Expression<Func<CoreCmsProducts, object>> orderByExpression, OrderByType orderByType, bool blUseNoLock = false)
|
{
|
return await _dal.QueryDetaiListAsync(predicate, orderByExpression, orderByType, blUseNoLock);
|
}
|
|
public async Task<CoreCmsProducts> QueryEditByID(int id)
|
{
|
return await _unitOfWork.GetDbClient().Queryable<CoreCmsGoods, CoreCmsProducts>((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
|
|
|
|
}
|
}
|