/***********************************************************************
* Project: baifenBinfa
* ProjectName: 百分兵法管理系统
* Web: http://chuanyin.com
* Author:
* Email:
* CreateTime: 202403/02
* Description: 暂无
***********************************************************************/
using System.Threading.Tasks;
using CoreCms.Net.Configuration;
using CoreCms.Net.IRepository;
using CoreCms.Net.IRepository.UnitOfWork;
using CoreCms.Net.Model.Entities;
using SqlSugar;
namespace CoreCms.Net.Repository
{
///
/// 购物车表 接口实现
///
public class CoreCmsCartRepository : BaseRepository, ICoreCmsCartRepository
{
public CoreCmsCartRepository(IUnitOfWork unitOfWork) : base(unitOfWork)
{
}
#region 获取购物车用户数据总数
///
/// 获取购物车用户数据总数
///
///
public async Task GetCountAsync(int userId)
{
var count = await DbClient.Queryable((cart, products, goods) =>
new object[]
{
JoinType.Inner, cart.productId == products.id,
JoinType.Inner, products.goodsId == goods.id
})
.Where((cart, products, goods) => cart.type == (int)GlobalEnumVars.OrderType.Common)
.Select((cart, products, goods) => new { cart.id, cart.userId, goodId = goods.id })
.MergeTable()
.CountAsync(p => p.userId == userId);
return count;
}
#endregion
#region 获取购物车商品总价格
///
/// 获取购物车商品总价格
///
///
public async Task GetMoneyAsync(int userId)
{
var count = await DbClient.Queryable((cart, products, goods) =>
new object[]
{
JoinType.Inner, cart.productId == products.id,
JoinType.Inner, products.goodsId == goods.id
})
.Where((cart, products, goods) => cart.type == (int)GlobalEnumVars.OrderType.Common && cart.userId == userId)
.Select((cart, products, goods) => new { cart.nums, products.price, sunMoney = cart.nums * products.price })
.MergeTable()
.SumAsync(p => p.sunMoney);
return count;
}
#endregion
}
}