fixed 完善购物车接口
This commit is contained in:
parent
33942e2a60
commit
c296eca347
@ -17,5 +17,4 @@ namespace ARW.Model.Dto.Api.Carts
|
|||||||
[Required(ErrorMessage = "客户Guid不能为空")]
|
[Required(ErrorMessage = "客户Guid不能为空")]
|
||||||
public long CustomerGuid { get; set; }
|
public long CustomerGuid { get; set; }
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
22
ARW.Model/Dto/Api/Carts/CartGoodsNumDto.cs
Normal file
22
ARW.Model/Dto/Api/Carts/CartGoodsNumDto.cs
Normal file
@ -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
|
||||||
|
{
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 修改购物车商品选中状态Dto
|
||||||
|
///
|
||||||
|
/// @author lwh
|
||||||
|
/// @date 2023-08-05
|
||||||
|
/// </summary>
|
||||||
|
public class CartGoodsNumDto
|
||||||
|
{
|
||||||
|
public int CartId { get; set; }
|
||||||
|
public int CartGoodsNum { get; set; }
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
23
ARW.Model/Dto/Api/Carts/CartGoodsSelectDto.cs
Normal file
23
ARW.Model/Dto/Api/Carts/CartGoodsSelectDto.cs
Normal file
@ -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
|
||||||
|
{
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 修改购物车商品选中状态Dto
|
||||||
|
///
|
||||||
|
/// @author lwh
|
||||||
|
/// @date 2023-08-05
|
||||||
|
/// </summary>
|
||||||
|
public class CartGoodsSelectDto
|
||||||
|
{
|
||||||
|
public long CustomerGuid { get; set; }
|
||||||
|
public int CartId { get; set; }
|
||||||
|
public bool IsSelected { get; set; }
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
@ -18,13 +18,10 @@ namespace ARW.Model.Dto.Business.Carts
|
|||||||
|
|
||||||
public long CartGuid { get; set; }
|
public long CartGuid { get; set; }
|
||||||
|
|
||||||
[Required(ErrorMessage = "店铺Guid不能为空")]
|
|
||||||
public long ShopGuid { get; set; }
|
public long ShopGuid { get; set; }
|
||||||
|
|
||||||
[Required(ErrorMessage = "商品Guid不能为空")]
|
public long GoodsGuid { get; set; }
|
||||||
public long GoodsGud { get; set; }
|
|
||||||
|
|
||||||
[Required(ErrorMessage = "商品sku唯一标识不能为空")]
|
|
||||||
public int GoodsSkuId { get; set; }
|
public int GoodsSkuId { get; set; }
|
||||||
|
|
||||||
[Required(ErrorMessage = "商品数量不能为空")]
|
[Required(ErrorMessage = "商品数量不能为空")]
|
||||||
|
@ -76,7 +76,12 @@ namespace ARW.Model.Models.Business.Carts
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 描述 :是否选中
|
||||||
|
/// 空值 : false
|
||||||
|
/// </summary>
|
||||||
|
[SugarColumn(ColumnName = "is_selected")]
|
||||||
|
public bool IsSelected { get; set; }
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -73,6 +73,11 @@ namespace ARW.Model.Vo.Api.Carts
|
|||||||
|
|
||||||
public class GoodsPromotion
|
public class GoodsPromotion
|
||||||
{
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// 购物车商品Guid
|
||||||
|
/// </summary>
|
||||||
|
public int CartId { get; set; }
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 店铺Id
|
/// 店铺Id
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
@ -21,6 +21,29 @@ namespace ARW.Model.Vo.Api.Carts
|
|||||||
public bool IsNotEmpty { get; set; }
|
public bool IsNotEmpty { get; set; }
|
||||||
|
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 描述 : 是否全选
|
||||||
|
/// </summary>
|
||||||
|
public bool IsAllSelected { get; set; }
|
||||||
|
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 描述 : 总计
|
||||||
|
/// </summary>
|
||||||
|
public decimal TotalAmount { get; set; }
|
||||||
|
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 描述 : 选中的商品总数
|
||||||
|
/// </summary>
|
||||||
|
public int SelectedGoodsCount { get; set; }
|
||||||
|
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 描述 : 折扣总计
|
||||||
|
/// </summary>
|
||||||
|
public decimal TotalDiscountAmount { get; set; }
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 购物车信息
|
/// 购物车信息
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
@ -64,6 +64,7 @@ namespace ARW.Service.Api.BusinessService.Carts
|
|||||||
|
|
||||||
#region Api接口代码
|
#region Api接口代码
|
||||||
|
|
||||||
|
#region 查询
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 查询购物车记录列表(Api)
|
/// 查询购物车记录列表(Api)
|
||||||
@ -73,12 +74,21 @@ namespace ARW.Service.Api.BusinessService.Carts
|
|||||||
public async Task<CartListVoApi> GetCartListApi(CartQueryDtoApi parm)
|
public async Task<CartListVoApi> 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
|
// 找到店铺的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<CartVoApi>();
|
var res = new List<CartVoApi>();
|
||||||
|
|
||||||
// 循环每个店铺中的购物车记录
|
// 循环每个店铺中的购物车记录
|
||||||
foreach (var item in sameShopGuids)
|
foreach (var item in sameShopGuids)
|
||||||
{
|
{
|
||||||
@ -89,77 +99,87 @@ namespace ARW.Service.Api.BusinessService.Carts
|
|||||||
|
|
||||||
var promotionGoodsList = new List<PromotionGoods>();
|
var promotionGoodsList = new List<PromotionGoods>();
|
||||||
// 查找当前客户可使用的优惠券
|
// 查找当前客户可使用的优惠券
|
||||||
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)
|
//if (couponList.Count() > 0)
|
||||||
{
|
//{
|
||||||
foreach (var customerCoupon in couponList)
|
// foreach (var customerCoupon in couponList)
|
||||||
{
|
// {
|
||||||
var promotionGoods = new PromotionGoods();
|
// var promotionGoods = new PromotionGoods();
|
||||||
var coupon = await _CouponRepository.GetFirstAsync(s => s.CouponGuid == customerCoupon.CouponGuid);
|
// var coupon = await _CouponRepository.GetFirstAsync(s => s.CouponGuid == customerCoupon.CouponGuid);
|
||||||
promotionGoods.PromotionId = coupon.CouponId;
|
// promotionGoods.PromotionId = coupon.CouponId;
|
||||||
promotionGoods.Title = coupon.CouponName;
|
// promotionGoods.Title = coupon.CouponName;
|
||||||
promotionGoods.PromotionCode = "MERCHANT";
|
// promotionGoods.PromotionCode = "MERCHANT";
|
||||||
if (coupon.CouponType == 1)
|
// if (coupon.CouponType == 1)
|
||||||
promotionGoods.Tag = "满减";
|
// promotionGoods.Tag = "满减";
|
||||||
else
|
// else
|
||||||
promotionGoods.Tag = "折扣";
|
// promotionGoods.Tag = "折扣";
|
||||||
promotionGoods.Description = coupon.CouponDesc;
|
// promotionGoods.Description = coupon.CouponDesc;
|
||||||
|
|
||||||
|
|
||||||
// 情况1:全部商品的通用券
|
// // 情况1:全部商品的通用券
|
||||||
if (coupon.CouponApplicableScope == 1)
|
// if (coupon.CouponApplicableScope == 1)
|
||||||
{
|
// {
|
||||||
var goodsPromotionList = await GetGoodsPromotionList(customerCartList, shop.ShopGuid);
|
// var goodsPromotionList = await GetGoodsPromotionList(customerCartList, shop.ShopGuid);
|
||||||
promotionGoods.GoodsPromotionList = goodsPromotionList;
|
// promotionGoods.GoodsPromotionList = goodsPromotionList;
|
||||||
promotionGoodsList.Add(promotionGoods);
|
// promotionGoodsList.Add(promotionGoods);
|
||||||
}
|
// }
|
||||||
// // 情况2:指定商品的券
|
// // // 情况2:指定商品的券
|
||||||
if (coupon.CouponApplicableScope == 2)
|
// if (coupon.CouponApplicableScope == 2)
|
||||||
{
|
// {
|
||||||
// 根据优惠券指定的商品查找购物车中是否有对应的商品
|
// // 从优惠券中获取指定的商品ID列表
|
||||||
if (string.IsNullOrEmpty(coupon.CouponGoodsIds)) throw new CustomException("该优惠券还未指定商品");
|
// if (string.IsNullOrEmpty(coupon.CouponGoodsIds))
|
||||||
var goodsIds = coupon.CouponGoodsIds.Split(',');
|
// {
|
||||||
var hasCouponGoodsList = new List<Cart>();
|
// throw new CustomException("该优惠券还未指定商品");
|
||||||
var notHasCouponGoodsList = new List<Cart>();
|
// }
|
||||||
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);
|
|
||||||
}
|
|
||||||
|
|
||||||
var NotCouponPromotionGoods = new PromotionGoods();
|
// var goodsGuids = coupon.CouponGoodsIds.Split(',')
|
||||||
NotCouponPromotionGoods.GoodsPromotionList = await GetGoodsPromotionList(notHasCouponGoodsList, shop.ShopGuid); ;
|
// .Select(id => Convert.ToInt32(id))
|
||||||
promotionGoodsList.Add(NotCouponPromotionGoods);
|
// .Select(goodsId => _GoodsRepository.GetFirstAsync(s => s.GoodsId == goodsId))
|
||||||
}
|
// .Select(task => task.Result.GoodsGuid)
|
||||||
}
|
// .ToList();
|
||||||
}
|
|
||||||
else // 如果没有优惠券
|
|
||||||
{
|
|
||||||
var promotionGoods = new PromotionGoods();
|
|
||||||
|
|
||||||
var goodsPromotionList = await GetGoodsPromotionList(customerCartList, shop.ShopGuid);
|
// var hasCouponGoodsList = new List<Cart>();
|
||||||
|
// var notHasCouponGoodsList = new List<Cart>();
|
||||||
|
|
||||||
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;
|
shopCart.PromotionGoodsList = promotionGoodsList;
|
||||||
res.Add(shopCart);
|
res.Add(shopCart);
|
||||||
@ -168,8 +188,24 @@ namespace ARW.Service.Api.BusinessService.Carts
|
|||||||
|
|
||||||
var cartList = new CartListVoApi();
|
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.IsNotEmpty = true;
|
||||||
cartList.StoreGoods = res;
|
cartList.StoreGoods = res;
|
||||||
}
|
}
|
||||||
@ -179,17 +215,6 @@ namespace ARW.Service.Api.BusinessService.Carts
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
private async Task<SpecInfo> 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;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 获取购物车商品信息
|
/// 获取购物车商品信息
|
||||||
/// </summary>
|
/// </summary>
|
||||||
@ -208,14 +233,14 @@ namespace ARW.Service.Api.BusinessService.Carts
|
|||||||
{
|
{
|
||||||
var goods = new Goods();
|
var goods = new Goods();
|
||||||
goods = await _GoodsRepository.GetFirstAsync(s => s.GoodsGuid == _item.GoodsGuid);
|
goods = await _GoodsRepository.GetFirstAsync(s => s.GoodsGuid == _item.GoodsGuid);
|
||||||
|
if (goods == null) throw new CustomException("所选商品不存在,请重新挑选");
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
if (goods.GoodsId != 0)
|
if (goods.GoodsId != 0)
|
||||||
{
|
{
|
||||||
|
goodsPromotion.CartId = _item.CartId;
|
||||||
|
goodsPromotion.IsSelected = _item.IsSelected;
|
||||||
goodsPromotion.StoreId = goods.ShopGuid;
|
goodsPromotion.StoreId = goods.ShopGuid;
|
||||||
goodsPromotion.SpuId = goods.GoodsGuid;
|
goodsPromotion.SpuId = goods.GoodsGuid;
|
||||||
goodsPromotion.SkuId = _item.GoodsSkuId;
|
goodsPromotion.SkuId = _item.GoodsSkuId;
|
||||||
@ -226,30 +251,38 @@ namespace ARW.Service.Api.BusinessService.Carts
|
|||||||
goodsPromotion.StockQuantity = goods.GoodsTotalInventory;
|
goodsPromotion.StockQuantity = goods.GoodsTotalInventory;
|
||||||
|
|
||||||
// 查找当前规格的价格
|
// 查找当前规格的价格
|
||||||
var sku = await _GoodsSkuRepository.GetFirstAsync(s => s.GoodsSkuId == _item.GoodsSkuId);
|
if (_item.GoodsSkuId != 0)
|
||||||
if (sku == null) throw new CustomException("所选规格不存在,请重新挑选");
|
|
||||||
goodsPromotion.Price = sku.GoodsSkuPrice;
|
|
||||||
goodsPromotion.OriginPrice = sku.GoodsSkuLinePrice;
|
|
||||||
|
|
||||||
// 查找当前规格的详细信息
|
|
||||||
var specInfoList = new List<SpecInfo>();
|
|
||||||
|
|
||||||
if (sku.SpecValueId != 0)
|
|
||||||
{
|
{
|
||||||
var specInfo = await GetSpecInfo(sku.SpecValueId);
|
var sku = await _GoodsSkuRepository.GetFirstAsync(s => s.GoodsSkuId == _item.GoodsSkuId);
|
||||||
specInfoList.Add(specInfo);
|
if (sku == null) throw new CustomException("所选规格不存在,请重新挑选");
|
||||||
if (sku.SpecSecondValueId != 0)
|
goodsPromotion.Price = sku.GoodsSkuPrice;
|
||||||
|
goodsPromotion.OriginPrice = sku.GoodsSkuLinePrice;
|
||||||
|
|
||||||
|
// 查找当前规格的详细信息
|
||||||
|
var specInfoList = new List<SpecInfo>();
|
||||||
|
|
||||||
|
if (sku.SpecValueId != 0)
|
||||||
{
|
{
|
||||||
var specInfo2 = await GetSpecInfo(sku.SpecSecondValueId);
|
var specInfo = await GetSpecInfo(sku.SpecValueId);
|
||||||
specInfoList.Add(specInfo2);
|
specInfoList.Add(specInfo);
|
||||||
}
|
if (sku.SpecSecondValueId != 0)
|
||||||
if (sku.SpecThirdValueId != 0)
|
{
|
||||||
{
|
var specInfo2 = await GetSpecInfo(sku.SpecSecondValueId);
|
||||||
var specInfo3 = await GetSpecInfo(sku.SpecThirdValueId);
|
specInfoList.Add(specInfo2);
|
||||||
specInfoList.Add(specInfo3);
|
}
|
||||||
|
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;
|
goodsPromotion.JoinCartTime = _item.Create_time;
|
||||||
goodsPromotionList.Add(goodsPromotion);
|
goodsPromotionList.Add(goodsPromotion);
|
||||||
@ -260,6 +293,57 @@ namespace ARW.Service.Api.BusinessService.Carts
|
|||||||
return goodsPromotionList;
|
return goodsPromotionList;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private async Task<SpecInfo> 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
|
||||||
|
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 修改购物车商品数量
|
||||||
|
/// </summary>
|
||||||
|
public async Task<string> UpdateCartGoodsNum(CartGoodsNumDto parm)
|
||||||
|
{
|
||||||
|
var response = await _CartRepository.UpdateAsync(f => new Cart
|
||||||
|
{
|
||||||
|
CartGoodsNum = parm.CartGoodsNum
|
||||||
|
}, s => s.CartId == parm.CartId);
|
||||||
|
return "修改成功!";
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 修改购物车商品选中状态
|
||||||
|
/// </summary>
|
||||||
|
public async Task<string> UpdateCartGoodsSelect(CartGoodsSelectDto parm)
|
||||||
|
{
|
||||||
|
var response = await _CartRepository.UpdateAsync(f => new Cart
|
||||||
|
{
|
||||||
|
IsSelected = parm.IsSelected
|
||||||
|
}, s => s.CartId == parm.CartId);
|
||||||
|
return "修改成功!";
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 全选购物车商品
|
||||||
|
/// </summary>
|
||||||
|
public async Task<string> SelectAllCartGoods(CartGoodsSelectDto parm)
|
||||||
|
{
|
||||||
|
var response = await _CartRepository.UpdateAsync(f => new Cart
|
||||||
|
{
|
||||||
|
IsSelected = parm.IsSelected
|
||||||
|
}, s => s.CustomerGuid == parm.CustomerGuid && s.IsDelete == false);
|
||||||
|
return "修改成功!";
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
|
@ -25,6 +25,28 @@ namespace ARW.Service.Api.IBusinessService.Carts
|
|||||||
/// <returns></returns>
|
/// <returns></returns>
|
||||||
Task<CartListVoApi> GetCartListApi(CartQueryDtoApi parm);
|
Task<CartListVoApi> GetCartListApi(CartQueryDtoApi parm);
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 修改购物车商品数量
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="parm"></param>
|
||||||
|
/// <returns></returns>
|
||||||
|
Task<string> UpdateCartGoodsNum(CartGoodsNumDto parm);
|
||||||
|
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 修改购物车商品选中状态
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="parm"></param>
|
||||||
|
/// <returns></returns>
|
||||||
|
Task<string> UpdateCartGoodsSelect(CartGoodsSelectDto parm);
|
||||||
|
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 全选购物车商品
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="parm"></param>
|
||||||
|
/// <returns></returns>
|
||||||
|
Task<string> SelectAllCartGoods(CartGoodsSelectDto parm);
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -14,6 +14,7 @@ using ARW.Service.Business.IBusinessService.Carts;
|
|||||||
using ARW.Model.Dto.Business.Carts;
|
using ARW.Model.Dto.Business.Carts;
|
||||||
using ARW.Model.Models.Business.Carts;
|
using ARW.Model.Models.Business.Carts;
|
||||||
using ARW.Model.Vo.Business.Carts;
|
using ARW.Model.Vo.Business.Carts;
|
||||||
|
using ARW.Model.Dto.Api.Carts;
|
||||||
|
|
||||||
namespace ARW.Service.Business.BusinessService.Carts
|
namespace ARW.Service.Business.BusinessService.Carts
|
||||||
{
|
{
|
||||||
|
@ -4,6 +4,7 @@ using System.Linq;
|
|||||||
using System.Text;
|
using System.Text;
|
||||||
using System.Threading.Tasks;
|
using System.Threading.Tasks;
|
||||||
using ARW.Model;
|
using ARW.Model;
|
||||||
|
using ARW.Model.Dto.Api.Carts;
|
||||||
using ARW.Model.Dto.Business.Carts;
|
using ARW.Model.Dto.Business.Carts;
|
||||||
using ARW.Model.Models.Business.Carts;
|
using ARW.Model.Models.Business.Carts;
|
||||||
using ARW.Model.Vo.Business.Carts;
|
using ARW.Model.Vo.Business.Carts;
|
||||||
@ -36,6 +37,5 @@ namespace ARW.Service.Business.IBusinessService.Carts
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -84,5 +84,72 @@ namespace ARW.WebApi.Controllers.Api.Carts
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 修改购物车商品数量
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="parm"></param>
|
||||||
|
/// <returns></returns>
|
||||||
|
[HttpPost("updateCartGoodsNum")]
|
||||||
|
[Log(Title = "修改购物车商品数量", BusinessType = BusinessType.UPDATE)]
|
||||||
|
public async Task<IActionResult> UpdateCartGoodsNum([FromBody] CartGoodsNumDto parm)
|
||||||
|
{
|
||||||
|
if (parm == null) { throw new CustomException("请求参数错误"); }
|
||||||
|
|
||||||
|
var res = await _CartServiceApi.UpdateCartGoodsNum(parm);
|
||||||
|
return SUCCESS(res);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 修改购物车商品选中状态
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="parm"></param>
|
||||||
|
/// <returns></returns>
|
||||||
|
[HttpPost("updateCartGoodsSelect")]
|
||||||
|
[Log(Title = "修改购物车选中状态", BusinessType = BusinessType.UPDATE)]
|
||||||
|
public async Task<IActionResult> UpdateCartGoodsSelect([FromBody] CartGoodsSelectDto parm)
|
||||||
|
{
|
||||||
|
if (parm == null) { throw new CustomException("请求参数错误"); }
|
||||||
|
|
||||||
|
var res = await _CartServiceApi.UpdateCartGoodsSelect(parm);
|
||||||
|
return SUCCESS(res);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 全选购物车商品
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="parm"></param>
|
||||||
|
/// <returns></returns>
|
||||||
|
[HttpPost("selectAllCartGoods")]
|
||||||
|
[Log(Title = "全选购物车商品", BusinessType = BusinessType.UPDATE)]
|
||||||
|
public async Task<IActionResult> 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);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 删除购物车记录
|
||||||
|
/// </summary>
|
||||||
|
/// <returns></returns>
|
||||||
|
[HttpDelete("{ids}")]
|
||||||
|
[Log(Title = "购物车记录删除", BusinessType = BusinessType.DELETE)]
|
||||||
|
public async Task<IActionResult> 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("删除成功!");
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user