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 积分,解读结果公开显示在下面。

还没有人解读过这个文件。