From c4307aa82197f37febf1be03e6f546d1742106d9 Mon Sep 17 00:00:00 2001 From: paulGao Date: Wed, 2 Mar 2022 11:49:41 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E7=A7=92=E6=9D=80=E5=95=86?= =?UTF-8?q?=E5=93=81=E4=B8=8B=E5=8D=95=E6=97=B6=EF=BC=8C=E4=B8=8D=E4=BC=9A?= =?UTF-8?q?=E6=9B=B4=E6=96=B0=E7=A7=92=E6=9D=80=E5=95=86=E5=93=81=E7=9A=84?= =?UTF-8?q?=E5=87=BA=E5=94=AE=E6=95=B0=E9=87=8F=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../lili/event/impl/StockUpdateExecute.java | 2 +- .../order/cart/entity/dto/TradeDTO.java | 1 - .../cart/render/impl/CheckDataRender.java | 2 +- .../order/order/entity/vo/ReceiptVO.java | 6 ++- .../service/PromotionGoodsService.java | 7 +--- .../service/SeckillApplyService.java | 6 +-- .../PromotionGoodsServiceImpl.java | 40 +++++++++---------- .../serviceimpl/SeckillApplyServiceImpl.java | 8 ++-- 8 files changed, 36 insertions(+), 36 deletions(-) diff --git a/consumer/src/main/java/cn/lili/event/impl/StockUpdateExecute.java b/consumer/src/main/java/cn/lili/event/impl/StockUpdateExecute.java index ab9f5d63..77806014 100644 --- a/consumer/src/main/java/cn/lili/event/impl/StockUpdateExecute.java +++ b/consumer/src/main/java/cn/lili/event/impl/StockUpdateExecute.java @@ -332,7 +332,7 @@ public class StockUpdateExecute implements OrderStatusChangeEvent { Integer num = promotionGoods.get(i).getNum(); promotionGoods.get(i).setNum((num != null ? num : 0) + order.getOrder().getGoodsNum()); } - promotionGoodsService.updateBatchById(promotionGoods); + promotionGoodsService.updatePromotionGoodsStock(promotionGoods); } //商品库存,包含sku库存集合,批量更新商品库存相关 goodsSkuService.updateGoodsStuck(goodsSkus); diff --git a/framework/src/main/java/cn/lili/modules/order/cart/entity/dto/TradeDTO.java b/framework/src/main/java/cn/lili/modules/order/cart/entity/dto/TradeDTO.java index 36f84b7f..e05113b1 100644 --- a/framework/src/main/java/cn/lili/modules/order/cart/entity/dto/TradeDTO.java +++ b/framework/src/main/java/cn/lili/modules/order/cart/entity/dto/TradeDTO.java @@ -139,7 +139,6 @@ public class TradeDTO implements Serializable { this.cartList = new ArrayList<>(); this.skuPromotionDetail = new HashMap<>(); this.storeCoupons = new HashMap<>(); - this.storeCoupons = new HashMap<>(); this.priceDetailDTO = new PriceDetailDTO(); this.cantUseCoupons = new ArrayList<>(); this.canUseCoupons = new ArrayList<>(); diff --git a/framework/src/main/java/cn/lili/modules/order/cart/render/impl/CheckDataRender.java b/framework/src/main/java/cn/lili/modules/order/cart/render/impl/CheckDataRender.java index 8012158f..58ca809d 100644 --- a/framework/src/main/java/cn/lili/modules/order/cart/render/impl/CheckDataRender.java +++ b/framework/src/main/java/cn/lili/modules/order/cart/render/impl/CheckDataRender.java @@ -193,7 +193,7 @@ public class CheckDataRender implements CartRenderStep { } } //积分商品,判断用户积分是否满足 - } else if (tradeDTO.getCartTypeEnum().equals(CartTypeEnum.POINTS) && tradeDTO.getSkuList().get(0).getPromotionMap() != null && !tradeDTO.getSkuList().get(0).getPromotionMap().isEmpty()) { + } else if (tradeDTO.getCartTypeEnum().equals(CartTypeEnum.POINTS) && tradeDTO.getSkuList().get(0).getPromotionMap() != null && !tradeDTO.getSkuList().get(0).getPromotionMap().isEmpty()) { //获取积分商品VO Optional> pointsPromotions = tradeDTO.getSkuList().get(0).getPromotionMap().entrySet().stream().filter(i -> i.getKey().contains(PromotionTypeEnum.POINTS_GOODS.name())).findFirst(); if (pointsPromotions.isPresent()) { diff --git a/framework/src/main/java/cn/lili/modules/order/order/entity/vo/ReceiptVO.java b/framework/src/main/java/cn/lili/modules/order/order/entity/vo/ReceiptVO.java index ad7b73ce..6047ea88 100644 --- a/framework/src/main/java/cn/lili/modules/order/order/entity/vo/ReceiptVO.java +++ b/framework/src/main/java/cn/lili/modules/order/order/entity/vo/ReceiptVO.java @@ -4,6 +4,8 @@ import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; +import java.io.Serializable; + /** * 发票 * @@ -12,8 +14,10 @@ import lombok.Data; */ @Data @ApiModel(value = "发票") -public class ReceiptVO { +public class ReceiptVO implements Serializable { + private static final long serialVersionUID = -8402457457074092957L; + @ApiModelProperty(value = "发票抬头") private String receiptTitle; diff --git a/framework/src/main/java/cn/lili/modules/promotion/service/PromotionGoodsService.java b/framework/src/main/java/cn/lili/modules/promotion/service/PromotionGoodsService.java index f019298b..58a80e00 100644 --- a/framework/src/main/java/cn/lili/modules/promotion/service/PromotionGoodsService.java +++ b/framework/src/main/java/cn/lili/modules/promotion/service/PromotionGoodsService.java @@ -121,12 +121,9 @@ public interface PromotionGoodsService extends IService { /** * 更新促销活动商品库存 * - * @param typeEnum 促销商品类型 - * @param promotionId 促销活动id - * @param skuId 商品skuId - * @param quantity 更新后的库存数量 + * @param promotionGoodsList 更新促销活动商品信息 */ - void updatePromotionGoodsStock(PromotionTypeEnum typeEnum, String promotionId, String skuId, Integer quantity); + void updatePromotionGoodsStock(List promotionGoodsList); /** * 更新促销活动商品索引 diff --git a/framework/src/main/java/cn/lili/modules/promotion/service/SeckillApplyService.java b/framework/src/main/java/cn/lili/modules/promotion/service/SeckillApplyService.java index 8d67dd74..f674b489 100644 --- a/framework/src/main/java/cn/lili/modules/promotion/service/SeckillApplyService.java +++ b/framework/src/main/java/cn/lili/modules/promotion/service/SeckillApplyService.java @@ -90,13 +90,13 @@ public interface SeckillApplyService extends IService { void removeSeckillApply(String seckillId, String id); /** - * 更新秒杀商品库存 + * 更新秒杀商品出售数量 * * @param seckillId 秒杀活动id * @param skuId 商品skuId - * @param quantity 库存 + * @param saleNum 出售数量 */ - void updateSeckillApplyQuantity(String seckillId, String skuId, Integer quantity); + void updateSeckillApplySaleNum(String seckillId, String skuId, Integer saleNum); /** * 更新秒杀活动时间 diff --git a/framework/src/main/java/cn/lili/modules/promotion/serviceimpl/PromotionGoodsServiceImpl.java b/framework/src/main/java/cn/lili/modules/promotion/serviceimpl/PromotionGoodsServiceImpl.java index e3846103..21917405 100644 --- a/framework/src/main/java/cn/lili/modules/promotion/serviceimpl/PromotionGoodsServiceImpl.java +++ b/framework/src/main/java/cn/lili/modules/promotion/serviceimpl/PromotionGoodsServiceImpl.java @@ -3,8 +3,6 @@ package cn.lili.modules.promotion.serviceimpl; import cn.hutool.core.convert.Convert; import cn.hutool.core.text.CharSequenceUtil; import cn.lili.common.enums.PromotionTypeEnum; -import cn.lili.common.enums.ResultCode; -import cn.lili.common.exception.ServiceException; import cn.lili.common.vo.PageVO; import cn.lili.modules.goods.entity.dos.GoodsSku; import cn.lili.modules.goods.service.GoodsSkuService; @@ -27,6 +25,7 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.data.redis.core.StringRedisTemplate; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; import java.util.ArrayList; import java.util.Arrays; @@ -209,31 +208,32 @@ public class PromotionGoodsServiceImpl extends ServiceImpl promotionGoodsList) { + for (PromotionGoods promotionGoods : promotionGoodsList) { + String promotionStockKey = PromotionGoodsService.getPromotionGoodsStockCacheKey(PromotionTypeEnum.valueOf(promotionGoods.getPromotionType()), promotionGoods.getPromotionId(), promotionGoods.getSkuId()); + if (promotionGoods.getPromotionType().equals(PromotionTypeEnum.SECKILL.name())) { + SeckillSearchParams searchParams = new SeckillSearchParams(); + searchParams.setSeckillId(promotionGoods.getPromotionId()); + searchParams.setSkuId(promotionGoods.getSkuId()); + SeckillApply seckillApply = this.seckillApplyService.getSeckillApply(searchParams); + if (seckillApply != null) { + seckillApplyService.updateSeckillApplySaleNum(promotionGoods.getPromotionId(), promotionGoods.getSkuId(), promotionGoods.getNum()); + } } - seckillApplyService.updateSeckillApplyQuantity(promotionId, skuId, quantity); - } else { + LambdaUpdateWrapper updateWrapper = new LambdaUpdateWrapper<>(); - updateWrapper.eq(PromotionGoods::getPromotionType, typeEnum.name()).eq(PromotionGoods::getPromotionId, promotionId).eq(PromotionGoods::getSkuId, skuId); - updateWrapper.set(PromotionGoods::getQuantity, quantity); + updateWrapper.eq(PromotionGoods::getPromotionType, promotionGoods.getPromotionType()).eq(PromotionGoods::getPromotionId, promotionGoods.getPromotionId()).eq(PromotionGoods::getSkuId, promotionGoods.getSkuId()); + updateWrapper.set(PromotionGoods::getQuantity, promotionGoods.getQuantity()).set(PromotionGoods::getNum, promotionGoods.getNum()); + this.update(updateWrapper); + stringRedisTemplate.opsForValue().set(promotionStockKey, promotionGoods.getQuantity().toString()); } - stringRedisTemplate.opsForValue().set(promotionStockKey, quantity.toString()); + } /** diff --git a/framework/src/main/java/cn/lili/modules/promotion/serviceimpl/SeckillApplyServiceImpl.java b/framework/src/main/java/cn/lili/modules/promotion/serviceimpl/SeckillApplyServiceImpl.java index 66071234..633e453f 100644 --- a/framework/src/main/java/cn/lili/modules/promotion/serviceimpl/SeckillApplyServiceImpl.java +++ b/framework/src/main/java/cn/lili/modules/promotion/serviceimpl/SeckillApplyServiceImpl.java @@ -231,17 +231,17 @@ public class SeckillApplyServiceImpl extends ServiceImpl updateWrapper = new LambdaUpdateWrapper<>(); updateWrapper.eq(SeckillApply::getSeckillId, seckillId).eq(SeckillApply::getSkuId, skuId); - updateWrapper.set(SeckillApply::getQuantity, quantity); + updateWrapper.set(SeckillApply::getSalesNum, saleNum); this.update(updateWrapper); }