From c296eca34741c9575fb1e9e3fe544e693d80ef68 Mon Sep 17 00:00:00 2001
From: lwh <2679599887@qq.com>
Date: Sun, 6 Aug 2023 16:18:42 +0800
Subject: [PATCH] =?UTF-8?q?fixed=20=E5=AE=8C=E5=96=84=E8=B4=AD=E7=89=A9?=
=?UTF-8?q?=E8=BD=A6=E6=8E=A5=E5=8F=A3?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
ARW.Model/Dto/Api/Carts/CartApiDto.cs | 3 +-
ARW.Model/Dto/Api/Carts/CartGoodsNumDto.cs | 22 ++
ARW.Model/Dto/Api/Carts/CartGoodsSelectDto.cs | 23 ++
ARW.Model/Dto/Business/Carts/CartDto.cs | 5 +-
ARW.Model/Models/Business/Carts/Cart.cs | 7 +-
ARW.Model/Vo/Api/Carts/CartApiVo.cs | 5 +
ARW.Model/Vo/Api/Carts/CartListApiVo.cs | 23 ++
.../BusinessService/Carts/CartServiceApi.cs | 286 +++++++++++-------
.../IBusinessService/Carts/ICartServiceApi.cs | 22 ++
.../BusinessService/Carts/CartService.cs | 1 +
.../IBusinessService/Carts/ICartService.cs | 2 +-
.../Api/Carts/CartApiController.cs | 67 ++++
12 files changed, 357 insertions(+), 109 deletions(-)
create mode 100644 ARW.Model/Dto/Api/Carts/CartGoodsNumDto.cs
create mode 100644 ARW.Model/Dto/Api/Carts/CartGoodsSelectDto.cs
diff --git a/ARW.Model/Dto/Api/Carts/CartApiDto.cs b/ARW.Model/Dto/Api/Carts/CartApiDto.cs
index 0ae0620..3ab6fc2 100644
--- a/ARW.Model/Dto/Api/Carts/CartApiDto.cs
+++ b/ARW.Model/Dto/Api/Carts/CartApiDto.cs
@@ -12,10 +12,9 @@ namespace ARW.Model.Dto.Api.Carts
/// @author lwh
/// @date 2023-07-20
///
- public class CartQueryDtoApi : PagerInfo
+ public class CartQueryDtoApi : PagerInfo
{
[Required(ErrorMessage = "客户Guid不能为空")]
public long CustomerGuid { get; set; }
}
-
}
diff --git a/ARW.Model/Dto/Api/Carts/CartGoodsNumDto.cs b/ARW.Model/Dto/Api/Carts/CartGoodsNumDto.cs
new file mode 100644
index 0000000..a54f54e
--- /dev/null
+++ b/ARW.Model/Dto/Api/Carts/CartGoodsNumDto.cs
@@ -0,0 +1,22 @@
+using System;
+using System.Collections.Generic;
+using System.ComponentModel.DataAnnotations;
+using ARW.Model.Models.Business.Carts;
+
+namespace ARW.Model.Dto.Api.Carts
+{
+
+ ///
+ /// 修改购物车商品选中状态Dto
+ ///
+ /// @author lwh
+ /// @date 2023-08-05
+ ///
+ public class CartGoodsNumDto
+ {
+ public int CartId { get; set; }
+ public int CartGoodsNum { get; set; }
+ }
+
+
+}
diff --git a/ARW.Model/Dto/Api/Carts/CartGoodsSelectDto.cs b/ARW.Model/Dto/Api/Carts/CartGoodsSelectDto.cs
new file mode 100644
index 0000000..e4ff715
--- /dev/null
+++ b/ARW.Model/Dto/Api/Carts/CartGoodsSelectDto.cs
@@ -0,0 +1,23 @@
+using System;
+using System.Collections.Generic;
+using System.ComponentModel.DataAnnotations;
+using ARW.Model.Models.Business.Carts;
+
+namespace ARW.Model.Dto.Api.Carts
+{
+
+ ///
+ /// 修改购物车商品选中状态Dto
+ ///
+ /// @author lwh
+ /// @date 2023-08-05
+ ///
+ public class CartGoodsSelectDto
+ {
+ public long CustomerGuid { get; set; }
+ public int CartId { get; set; }
+ public bool IsSelected { get; set; }
+ }
+
+
+}
diff --git a/ARW.Model/Dto/Business/Carts/CartDto.cs b/ARW.Model/Dto/Business/Carts/CartDto.cs
index 6f3eb00..1396086 100644
--- a/ARW.Model/Dto/Business/Carts/CartDto.cs
+++ b/ARW.Model/Dto/Business/Carts/CartDto.cs
@@ -18,13 +18,10 @@ namespace ARW.Model.Dto.Business.Carts
public long CartGuid { get; set; }
- [Required(ErrorMessage = "店铺Guid不能为空")]
public long ShopGuid { get; set; }
- [Required(ErrorMessage = "商品Guid不能为空")]
- public long GoodsGud { get; set; }
+ public long GoodsGuid { get; set; }
- [Required(ErrorMessage = "商品sku唯一标识不能为空")]
public int GoodsSkuId { get; set; }
[Required(ErrorMessage = "商品数量不能为空")]
diff --git a/ARW.Model/Models/Business/Carts/Cart.cs b/ARW.Model/Models/Business/Carts/Cart.cs
index 10b9611..3d9a60b 100644
--- a/ARW.Model/Models/Business/Carts/Cart.cs
+++ b/ARW.Model/Models/Business/Carts/Cart.cs
@@ -76,7 +76,12 @@ namespace ARW.Model.Models.Business.Carts
-
+ ///
+ /// 描述 :是否选中
+ /// 空值 : false
+ ///
+ [SugarColumn(ColumnName = "is_selected")]
+ public bool IsSelected { get; set; }
}
diff --git a/ARW.Model/Vo/Api/Carts/CartApiVo.cs b/ARW.Model/Vo/Api/Carts/CartApiVo.cs
index 5f8f0ec..2c627d6 100644
--- a/ARW.Model/Vo/Api/Carts/CartApiVo.cs
+++ b/ARW.Model/Vo/Api/Carts/CartApiVo.cs
@@ -73,6 +73,11 @@ namespace ARW.Model.Vo.Api.Carts
public class GoodsPromotion
{
+ ///
+ /// 购物车商品Guid
+ ///
+ public int CartId { get; set; }
+
///
/// 店铺Id
///
diff --git a/ARW.Model/Vo/Api/Carts/CartListApiVo.cs b/ARW.Model/Vo/Api/Carts/CartListApiVo.cs
index 8b960c2..7f13607 100644
--- a/ARW.Model/Vo/Api/Carts/CartListApiVo.cs
+++ b/ARW.Model/Vo/Api/Carts/CartListApiVo.cs
@@ -21,6 +21,29 @@ namespace ARW.Model.Vo.Api.Carts
public bool IsNotEmpty { get; set; }
+ ///
+ /// 描述 : 是否全选
+ ///
+ public bool IsAllSelected { get; set; }
+
+
+ ///
+ /// 描述 : 总计
+ ///
+ public decimal TotalAmount { get; set; }
+
+
+ ///
+ /// 描述 : 选中的商品总数
+ ///
+ public int SelectedGoodsCount { get; set; }
+
+
+ ///
+ /// 描述 : 折扣总计
+ ///
+ public decimal TotalDiscountAmount { get; set; }
+
///
/// 购物车信息
///
diff --git a/ARW.Service/Api/BusinessService/Carts/CartServiceApi.cs b/ARW.Service/Api/BusinessService/Carts/CartServiceApi.cs
index a61a06d..b77a6d9 100644
--- a/ARW.Service/Api/BusinessService/Carts/CartServiceApi.cs
+++ b/ARW.Service/Api/BusinessService/Carts/CartServiceApi.cs
@@ -64,6 +64,7 @@ namespace ARW.Service.Api.BusinessService.Carts
#region Api接口代码
+ #region 查询
///
/// 查询购物车记录列表(Api)
@@ -73,12 +74,21 @@ namespace ARW.Service.Api.BusinessService.Carts
public async Task GetCartListApi(CartQueryDtoApi parm)
{
// 找到当前客户的所有购物车列表
- var customerCartList = await _CartRepository.GetListAsync(s => s.CustomerGuid == parm.CustomerGuid);
+ var customerCartList = await _CartRepository.Queryable()
+ .Where(s => s.CustomerGuid == parm.CustomerGuid)
+ .OrderBy(s => s.Create_time, OrderByType.Desc)
+ .ToListAsync();
// 找到店铺的Guids
- var sameShopGuids = customerCartList.Select(item => item.ShopGuid).Distinct().ToList();
+ var sameShopGuids = customerCartList
+ .OrderByDescending(s => s.Create_time)
+ .Select(item => item.ShopGuid)
+ .Distinct()
+ .ToList();
+
var res = new List();
+
// 循环每个店铺中的购物车记录
foreach (var item in sameShopGuids)
{
@@ -89,77 +99,87 @@ namespace ARW.Service.Api.BusinessService.Carts
var promotionGoodsList = new List();
// 查找当前客户可使用的优惠券
- var couponList = await _CustomerCouponRepository.GetListAsync(s => s.CustomerGuid == parm.CustomerGuid && s.CustomerCouponIsUsed == 1 && s.CustomerCouponIsExpired == 1);
+ //var couponList = await _CustomerCouponRepository.GetListAsync(s => s.CustomerGuid == parm.CustomerGuid && s.CustomerCouponIsUsed == 1 && s.CustomerCouponIsExpired == 1);
// 如果有优惠券
- if (couponList.Count() > 0)
- {
- foreach (var customerCoupon in couponList)
- {
- var promotionGoods = new PromotionGoods();
- var coupon = await _CouponRepository.GetFirstAsync(s => s.CouponGuid == customerCoupon.CouponGuid);
- promotionGoods.PromotionId = coupon.CouponId;
- promotionGoods.Title = coupon.CouponName;
- promotionGoods.PromotionCode = "MERCHANT";
- if (coupon.CouponType == 1)
- promotionGoods.Tag = "满减";
- else
- promotionGoods.Tag = "折扣";
- promotionGoods.Description = coupon.CouponDesc;
+ //if (couponList.Count() > 0)
+ //{
+ // foreach (var customerCoupon in couponList)
+ // {
+ // var promotionGoods = new PromotionGoods();
+ // var coupon = await _CouponRepository.GetFirstAsync(s => s.CouponGuid == customerCoupon.CouponGuid);
+ // promotionGoods.PromotionId = coupon.CouponId;
+ // promotionGoods.Title = coupon.CouponName;
+ // promotionGoods.PromotionCode = "MERCHANT";
+ // if (coupon.CouponType == 1)
+ // promotionGoods.Tag = "满减";
+ // else
+ // promotionGoods.Tag = "折扣";
+ // promotionGoods.Description = coupon.CouponDesc;
- // 情况1:全部商品的通用券
- if (coupon.CouponApplicableScope == 1)
- {
- var goodsPromotionList = await GetGoodsPromotionList(customerCartList, shop.ShopGuid);
- promotionGoods.GoodsPromotionList = goodsPromotionList;
- promotionGoodsList.Add(promotionGoods);
- }
- // // 情况2:指定商品的券
- if (coupon.CouponApplicableScope == 2)
- {
- // 根据优惠券指定的商品查找购物车中是否有对应的商品
- if (string.IsNullOrEmpty(coupon.CouponGoodsIds)) throw new CustomException("该优惠券还未指定商品");
- var goodsIds = coupon.CouponGoodsIds.Split(',');
- var hasCouponGoodsList = new List();
- var notHasCouponGoodsList = new List();
- foreach (var id in goodsIds)
- {
- var couponGoods = await _GoodsRepository.GetFirstAsync(s => s.GoodsId == Convert.ToInt32(id));
- foreach (var cart in customerCartList)
- {
- if (cart.GoodsGuid == couponGoods.GoodsGuid)
- {
- hasCouponGoodsList.Add(cart);
- }
- else
- {
- notHasCouponGoodsList.Add(cart);
- }
- }
- }
- var goodsPromotionList = await GetGoodsPromotionList(hasCouponGoodsList, shop.ShopGuid);
- promotionGoods.GoodsPromotionList = goodsPromotionList;
- if(promotionGoods.GoodsPromotionList.Count() > 0)
- {
- promotionGoodsList.Add(promotionGoods);
- }
+ // // 情况1:全部商品的通用券
+ // if (coupon.CouponApplicableScope == 1)
+ // {
+ // var goodsPromotionList = await GetGoodsPromotionList(customerCartList, shop.ShopGuid);
+ // promotionGoods.GoodsPromotionList = goodsPromotionList;
+ // promotionGoodsList.Add(promotionGoods);
+ // }
+ // // // 情况2:指定商品的券
+ // if (coupon.CouponApplicableScope == 2)
+ // {
+ // // 从优惠券中获取指定的商品ID列表
+ // if (string.IsNullOrEmpty(coupon.CouponGoodsIds))
+ // {
+ // throw new CustomException("该优惠券还未指定商品");
+ // }
- var NotCouponPromotionGoods = new PromotionGoods();
- NotCouponPromotionGoods.GoodsPromotionList = await GetGoodsPromotionList(notHasCouponGoodsList, shop.ShopGuid); ;
- promotionGoodsList.Add(NotCouponPromotionGoods);
- }
- }
- }
- else // 如果没有优惠券
- {
- var promotionGoods = new PromotionGoods();
+ // var goodsGuids = coupon.CouponGoodsIds.Split(',')
+ // .Select(id => Convert.ToInt32(id))
+ // .Select(goodsId => _GoodsRepository.GetFirstAsync(s => s.GoodsId == goodsId))
+ // .Select(task => task.Result.GoodsGuid)
+ // .ToList();
- var goodsPromotionList = await GetGoodsPromotionList(customerCartList, shop.ShopGuid);
+ // var hasCouponGoodsList = new List();
+ // var notHasCouponGoodsList = new List();
- promotionGoods.GoodsPromotionList = goodsPromotionList;
- promotionGoodsList.Add(promotionGoods);
- }
+ // // 根据优惠券指定的商品分组购物车中的商品
+ // foreach (var cart in customerCartList)
+ // {
+ // foreach (var goodsGuid in goodsGuids)
+ // {
+ // if (cart.GoodsGuid == goodsGuid)
+ // {
+ // hasCouponGoodsList.Add(cart);
+ // }
+ // }
+ // }
+ // promotionGoods.GoodsPromotionList = await GetGoodsPromotionList(hasCouponGoodsList, shop.ShopGuid);
+ // if (promotionGoods.GoodsPromotionList.Count() > 0)
+ // {
+ // promotionGoodsList.Add(promotionGoods);
+ // }
+ // notHasCouponGoodsList = customerCartList.Except(hasCouponGoodsList).ToList();
+
+ // // 处理未包含在优惠券指定商品列表中的商品
+ // var NotCouponPromotionGoods = new PromotionGoods();
+ // NotCouponPromotionGoods.GoodsPromotionList = await GetGoodsPromotionList(notHasCouponGoodsList, shop.ShopGuid);
+ // if (NotCouponPromotionGoods.GoodsPromotionList.Count() > 0)
+ // {
+ // promotionGoodsList.Add(NotCouponPromotionGoods);
+ // }
+ // }
+ // }
+ //}
+ //else // 如果没有优惠券
+ //{
+ var promotionGoods = new PromotionGoods();
+
+ var goodsPromotionList = await GetGoodsPromotionList(customerCartList, shop.ShopGuid);
+
+ promotionGoods.GoodsPromotionList = goodsPromotionList;
+ promotionGoodsList.Add(promotionGoods);
+ //}
shopCart.PromotionGoodsList = promotionGoodsList;
res.Add(shopCart);
@@ -168,8 +188,24 @@ namespace ARW.Service.Api.BusinessService.Carts
var cartList = new CartListVoApi();
- if(res.Count() > 0)
+ decimal totalAmount = res
+ .SelectMany(item => item.PromotionGoodsList)
+ .SelectMany(item1 => item1.GoodsPromotionList)
+ .Where(item2 => item2.IsSelected)
+ .Sum(item2 => item2.Price * item2.Quantity);
+
+ int selectedGoodsCount = res
+ .SelectMany(item => item.PromotionGoodsList)
+ .SelectMany(item1 => item1.GoodsPromotionList)
+ .Count(item2 => item2.IsSelected);
+
+ cartList.TotalAmount = totalAmount;
+ cartList.SelectedGoodsCount = selectedGoodsCount;
+
+ if (res.Count() > 0)
{
+ // 判断是否全选购物车
+ cartList.IsAllSelected = customerCartList.All(cart => cart.IsSelected);
cartList.IsNotEmpty = true;
cartList.StoreGoods = res;
}
@@ -179,17 +215,6 @@ namespace ARW.Service.Api.BusinessService.Carts
}
- private async Task GetSpecInfo(int value)
- {
- var specInfo = new SpecInfo();
- var sepcValue = await _SpecValueRepository.GetFirstAsync(s => s.SpecValueId == value);
- var sepc = await _SpecRepository.GetFirstAsync(s => s.SpecId == sepcValue.SpecId);
- specInfo.SpecTitle = sepc.SpecName;
- specInfo.SpecValue = sepcValue.SpecValueName;
- return specInfo;
- }
-
-
///
/// 获取购物车商品信息
///
@@ -208,14 +233,14 @@ namespace ARW.Service.Api.BusinessService.Carts
{
var goods = new Goods();
goods = await _GoodsRepository.GetFirstAsync(s => s.GoodsGuid == _item.GoodsGuid);
-
-
+ if (goods == null) throw new CustomException("所选商品不存在,请重新挑选");
if (goods.GoodsId != 0)
{
-
+ goodsPromotion.CartId = _item.CartId;
+ goodsPromotion.IsSelected = _item.IsSelected;
goodsPromotion.StoreId = goods.ShopGuid;
goodsPromotion.SpuId = goods.GoodsGuid;
goodsPromotion.SkuId = _item.GoodsSkuId;
@@ -226,30 +251,38 @@ namespace ARW.Service.Api.BusinessService.Carts
goodsPromotion.StockQuantity = goods.GoodsTotalInventory;
// 查找当前规格的价格
- var sku = await _GoodsSkuRepository.GetFirstAsync(s => s.GoodsSkuId == _item.GoodsSkuId);
- if (sku == null) throw new CustomException("所选规格不存在,请重新挑选");
- goodsPromotion.Price = sku.GoodsSkuPrice;
- goodsPromotion.OriginPrice = sku.GoodsSkuLinePrice;
-
- // 查找当前规格的详细信息
- var specInfoList = new List();
-
- if (sku.SpecValueId != 0)
+ if (_item.GoodsSkuId != 0)
{
- var specInfo = await GetSpecInfo(sku.SpecValueId);
- specInfoList.Add(specInfo);
- if (sku.SpecSecondValueId != 0)
+ var sku = await _GoodsSkuRepository.GetFirstAsync(s => s.GoodsSkuId == _item.GoodsSkuId);
+ if (sku == null) throw new CustomException("所选规格不存在,请重新挑选");
+ goodsPromotion.Price = sku.GoodsSkuPrice;
+ goodsPromotion.OriginPrice = sku.GoodsSkuLinePrice;
+
+ // 查找当前规格的详细信息
+ var specInfoList = new List();
+
+ if (sku.SpecValueId != 0)
{
- var specInfo2 = await GetSpecInfo(sku.SpecSecondValueId);
- specInfoList.Add(specInfo2);
- }
- if (sku.SpecThirdValueId != 0)
- {
- var specInfo3 = await GetSpecInfo(sku.SpecThirdValueId);
- specInfoList.Add(specInfo3);
+ var specInfo = await GetSpecInfo(sku.SpecValueId);
+ specInfoList.Add(specInfo);
+ if (sku.SpecSecondValueId != 0)
+ {
+ var specInfo2 = await GetSpecInfo(sku.SpecSecondValueId);
+ specInfoList.Add(specInfo2);
+ }
+ if (sku.SpecThirdValueId != 0)
+ {
+ var specInfo3 = await GetSpecInfo(sku.SpecThirdValueId);
+ specInfoList.Add(specInfo3);
+ }
}
+ goodsPromotion.SpecInfo = specInfoList;
+ }
+ else
+ {
+ goodsPromotion.Price = goods.GoodsPriceHighest;
+ goodsPromotion.OriginPrice = goods.GoodsDashedPriceHighest;
}
- goodsPromotion.SpecInfo = specInfoList;
goodsPromotion.JoinCartTime = _item.Create_time;
goodsPromotionList.Add(goodsPromotion);
@@ -260,6 +293,57 @@ namespace ARW.Service.Api.BusinessService.Carts
return goodsPromotionList;
}
+ private async Task GetSpecInfo(int value)
+ {
+ var specInfo = new SpecInfo();
+ var sepcValue = await _SpecValueRepository.GetFirstAsync(s => s.SpecValueId == value);
+ var sepc = await _SpecRepository.GetFirstAsync(s => s.SpecId == sepcValue.SpecId);
+ specInfo.SpecTitle = sepc.SpecName;
+ specInfo.SpecValue = sepcValue.SpecValueName;
+ return specInfo;
+ }
+
+ #endregion
+
+
+ ///
+ /// 修改购物车商品数量
+ ///
+ public async Task UpdateCartGoodsNum(CartGoodsNumDto parm)
+ {
+ var response = await _CartRepository.UpdateAsync(f => new Cart
+ {
+ CartGoodsNum = parm.CartGoodsNum
+ }, s => s.CartId == parm.CartId);
+ return "修改成功!";
+ }
+
+
+ ///
+ /// 修改购物车商品选中状态
+ ///
+ public async Task UpdateCartGoodsSelect(CartGoodsSelectDto parm)
+ {
+ var response = await _CartRepository.UpdateAsync(f => new Cart
+ {
+ IsSelected = parm.IsSelected
+ }, s => s.CartId == parm.CartId);
+ return "修改成功!";
+ }
+
+
+ ///
+ /// 全选购物车商品
+ ///
+ public async Task SelectAllCartGoods(CartGoodsSelectDto parm)
+ {
+ var response = await _CartRepository.UpdateAsync(f => new Cart
+ {
+ IsSelected = parm.IsSelected
+ }, s => s.CustomerGuid == parm.CustomerGuid && s.IsDelete == false);
+ return "修改成功!";
+ }
+
#endregion
diff --git a/ARW.Service/Api/IBusinessService/Carts/ICartServiceApi.cs b/ARW.Service/Api/IBusinessService/Carts/ICartServiceApi.cs
index 492985c..5a466a2 100644
--- a/ARW.Service/Api/IBusinessService/Carts/ICartServiceApi.cs
+++ b/ARW.Service/Api/IBusinessService/Carts/ICartServiceApi.cs
@@ -25,6 +25,28 @@ namespace ARW.Service.Api.IBusinessService.Carts
///
Task GetCartListApi(CartQueryDtoApi parm);
+ ///
+ /// 修改购物车商品数量
+ ///
+ ///
+ ///
+ Task UpdateCartGoodsNum(CartGoodsNumDto parm);
+
+
+ ///
+ /// 修改购物车商品选中状态
+ ///
+ ///
+ ///
+ Task UpdateCartGoodsSelect(CartGoodsSelectDto parm);
+
+
+ ///
+ /// 全选购物车商品
+ ///
+ ///
+ ///
+ Task SelectAllCartGoods(CartGoodsSelectDto parm);
}
}
diff --git a/ARW.Service/Business/BusinessService/Carts/CartService.cs b/ARW.Service/Business/BusinessService/Carts/CartService.cs
index 06d9186..f56bec5 100644
--- a/ARW.Service/Business/BusinessService/Carts/CartService.cs
+++ b/ARW.Service/Business/BusinessService/Carts/CartService.cs
@@ -14,6 +14,7 @@ using ARW.Service.Business.IBusinessService.Carts;
using ARW.Model.Dto.Business.Carts;
using ARW.Model.Models.Business.Carts;
using ARW.Model.Vo.Business.Carts;
+using ARW.Model.Dto.Api.Carts;
namespace ARW.Service.Business.BusinessService.Carts
{
diff --git a/ARW.Service/Business/IBusinessService/Carts/ICartService.cs b/ARW.Service/Business/IBusinessService/Carts/ICartService.cs
index a66bd5f..75641be 100644
--- a/ARW.Service/Business/IBusinessService/Carts/ICartService.cs
+++ b/ARW.Service/Business/IBusinessService/Carts/ICartService.cs
@@ -4,6 +4,7 @@ using System.Linq;
using System.Text;
using System.Threading.Tasks;
using ARW.Model;
+using ARW.Model.Dto.Api.Carts;
using ARW.Model.Dto.Business.Carts;
using ARW.Model.Models.Business.Carts;
using ARW.Model.Vo.Business.Carts;
@@ -36,6 +37,5 @@ namespace ARW.Service.Business.IBusinessService.Carts
-
}
}
diff --git a/ARW.WebApi/Controllers/Api/Carts/CartApiController.cs b/ARW.WebApi/Controllers/Api/Carts/CartApiController.cs
index cbdb09a..03c5c19 100644
--- a/ARW.WebApi/Controllers/Api/Carts/CartApiController.cs
+++ b/ARW.WebApi/Controllers/Api/Carts/CartApiController.cs
@@ -84,5 +84,72 @@ namespace ARW.WebApi.Controllers.Api.Carts
}
+ ///
+ /// 修改购物车商品数量
+ ///
+ ///
+ ///
+ [HttpPost("updateCartGoodsNum")]
+ [Log(Title = "修改购物车商品数量", BusinessType = BusinessType.UPDATE)]
+ public async Task UpdateCartGoodsNum([FromBody] CartGoodsNumDto parm)
+ {
+ if (parm == null) { throw new CustomException("请求参数错误"); }
+
+ var res = await _CartServiceApi.UpdateCartGoodsNum(parm);
+ return SUCCESS(res);
+ }
+
+
+ ///
+ /// 修改购物车商品选中状态
+ ///
+ ///
+ ///
+ [HttpPost("updateCartGoodsSelect")]
+ [Log(Title = "修改购物车选中状态", BusinessType = BusinessType.UPDATE)]
+ public async Task UpdateCartGoodsSelect([FromBody] CartGoodsSelectDto parm)
+ {
+ if (parm == null) { throw new CustomException("请求参数错误"); }
+
+ var res = await _CartServiceApi.UpdateCartGoodsSelect(parm);
+ return SUCCESS(res);
+ }
+
+
+ ///
+ /// 全选购物车商品
+ ///
+ ///
+ ///
+ [HttpPost("selectAllCartGoods")]
+ [Log(Title = "全选购物车商品", BusinessType = BusinessType.UPDATE)]
+ public async Task SelectAllCartGoods([FromBody] CartGoodsSelectDto parm)
+ {
+ if (parm == null) { throw new CustomException("请求参数错误"); }
+
+ var user = JwtUtil.GetLoginUser(App.HttpContext);
+ parm.CustomerGuid = user.UserId;
+ var res = await _CartServiceApi.SelectAllCartGoods(parm);
+ return SUCCESS(res);
+ }
+
+
+ ///
+ /// 删除购物车记录
+ ///
+ ///
+ [HttpDelete("{ids}")]
+ [Log(Title = "购物车记录删除", BusinessType = BusinessType.DELETE)]
+ public async Task Delete(string ids)
+ {
+ long[] idsArr = Tools.SpitLongArrary(ids);
+ if (idsArr.Length <= 0) { return ToResponse(ApiResult.Error($"删除失败Id 不能为空")); }
+ foreach (var item in idsArr)
+ {
+ await _CartService.DeleteAsync(s => s.CartId == item);
+ }
+ return SUCCESS("删除成功!");
+ }
+
}
}