src/ShenNius.Share.Domain/Services/Shop/CartService.cs
(开头部分) 3KB这里只显示每个文件的开头 60 行。登录后可以解锁完整代码。
using ShenNius.Share.Domain.Repository;
using ShenNius.Share.Models.Configs;
using ShenNius.Share.Models.Dtos.Output.Shop;
using ShenNius.Share.Models.Entity.Shop;
using ShenNius.Share.Models.Enums.Extension;
using ShenNius.Share.Models.Enums.Shop;
using SqlSugar;
using System;
using System.Linq;
using System.Threading.Tasks;
/*************************************
* 类名:CartService
* 作者:realyrare
* 邮箱:mhg215@yeah.net
* 时间:2021/8/20 11:53:40
*┌───────────────────────────────────┐
*│ 版权所有:神牛软件 │
*└───────────────────────────────────┘
**************************************/
namespace ShenNius.Share.Domain.Services.Shop
{
public interface ICartService : IBaseServer<Cart>
{
Task<ApiResult> AddAsync(int goodsId, int goodsNum, int appUserId, string specSkuId);
Task<ApiResult> GetListsAsync(int appUserId, int tenantId);
}
public class CartService : BaseServer<Cart>, ICartService
{
private readonly IGoodsService _goodsService;
public CartService(IGoodsService goodsService)
{
_goodsService = goodsService;
}
public async Task<ApiResult> GetListsAsync(int appUserId, int tenantId)
{
var cartList = await GetListAsync(l => l.AppUserId == appUserId);
var inCludeGoods = cartList.Select(d => d.GoodsId).ToList();
var goodsList = await Db.Queryable<Goods, GoodsSpec>((g, gc) => new JoinQueryInfos(JoinType.Inner, g.Id == gc.GoodsId))
.Where((g, gc) => g.TenantId == tenantId)
.Select((g, gc) => new CartGoodsOutput
{
GoodsId = g.Id,
ImgUrl = g.ImgUrl,
GoodsPrice = gc.GoodsPrice,
SpecType = g.SpecType,
LinePrice = gc.LinePrice,
GoodsSales = gc.GoodsSales,
SalesActual = g.SalesActual,
SpecMany = g.SpecMany
}).ToListAsync();
double totalPrice = 0;
foreach (var item in goodsList)
{
//去查商品对应的购物车中的数量
var cartGoodsNum = cartList.Where(d => d.GoodsId == item.GoodsId).Select(d => d.GoodsNum).FirstOrDefault();
后面还有 40 行代码,解锁后查看完整代码
24 小时内免费解锁 3 个项目,之后 1 积分/个。 规则说明
AI 解读
登录后可用,每次 10 积分,解读结果公开显示在下面。
还没有人解读过这个文件。
