diff --git a/consumer/src/main/java/cn/lili/event/impl/FullDiscountExecute.java b/consumer/src/main/java/cn/lili/event/impl/FullDiscountExecute.java index a3507d83d..86a08cbb6 100644 --- a/consumer/src/main/java/cn/lili/event/impl/FullDiscountExecute.java +++ b/consumer/src/main/java/cn/lili/event/impl/FullDiscountExecute.java @@ -19,6 +19,7 @@ import cn.lili.modules.order.cart.entity.vo.CartVO; import cn.lili.modules.order.order.entity.dos.Order; import cn.lili.modules.order.order.entity.dos.OrderItem; import cn.lili.modules.order.order.entity.dto.OrderMessage; +import cn.lili.modules.order.order.entity.dto.OrderSearchParams; import cn.lili.modules.order.order.entity.dto.PriceDetailDTO; import cn.lili.modules.order.order.entity.enums.*; import cn.lili.modules.order.order.service.OrderItemService; @@ -96,6 +97,15 @@ public class FullDiscountExecute implements TradeEvent, OrderStatusChangeEvent { if (orderMessage.getNewStatus().equals(OrderStatusEnum.PAID)) { log.debug("满减活动,订单状态操作 {}", CachePrefix.ORDER.getPrefix() + orderMessage.getOrderSn()); renderGift(JSONUtil.toBean(cache.getString(CachePrefix.ORDER.getPrefix() + orderMessage.getOrderSn()), CartVO.class), orderMessage); + } else if (orderMessage.getNewStatus().equals(OrderStatusEnum.CANCELLED)) { + log.debug("满减活动,取消订单状态操作 {}", CachePrefix.ORDER.getPrefix() + orderMessage.getOrderSn()); + OrderSearchParams searchParams = new OrderSearchParams(); + searchParams.setParentOrderSn(orderMessage.getOrderSn()); + searchParams.setOrderPromotionType(OrderPromotionTypeEnum.GIFT.name()); + List orders = orderService.queryListByParams(searchParams); + if (orders != null && !orders.isEmpty()) { + orderService.systemCancel(orders.get(0).getSn(),"主订单取消,赠送订单字段自动取消"); + } } } @@ -190,6 +200,7 @@ public class FullDiscountExecute implements TradeEvent, OrderStatusChangeEvent { BeanUtil.copyProperties(priceDetailDTO, order, "id"); //生成订单参数 order.setSn(SnowFlake.createStr("G")); + order.setParentOrderSn(originOrder.getSn()); order.setOrderPromotionType(OrderPromotionTypeEnum.GIFT.name()); order.setOrderStatus(OrderStatusEnum.UNPAID.name()); order.setPayStatus(PayStatusEnum.PAID.name()); 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 77806014d..e03d38c0e 100644 --- a/consumer/src/main/java/cn/lili/event/impl/StockUpdateExecute.java +++ b/consumer/src/main/java/cn/lili/event/impl/StockUpdateExecute.java @@ -29,6 +29,7 @@ import org.springframework.transaction.annotation.Transactional; import java.util.ArrayList; import java.util.List; +import java.util.Objects; /** * 库存扣减,他表示了订单状态是否出库成功 @@ -156,7 +157,7 @@ public class StockUpdateExecute implements OrderStatusChangeEvent { * @param stocks */ private void checkStocks(List stocks, OrderDetailVO order) { - if (order.getOrderItems().size() == stocks.size()) { + if (!stocks.isEmpty() && order.getOrderItems().size() == stocks.size() && stocks.stream().anyMatch(Objects::nonNull)) { return; } initSkuCache(order.getOrderItems()); diff --git a/framework/src/main/java/cn/lili/modules/search/serviceimpl/EsGoodsSearchServiceImpl.java b/framework/src/main/java/cn/lili/modules/search/serviceimpl/EsGoodsSearchServiceImpl.java index 63d53d137..bafc965d5 100644 --- a/framework/src/main/java/cn/lili/modules/search/serviceimpl/EsGoodsSearchServiceImpl.java +++ b/framework/src/main/java/cn/lili/modules/search/serviceimpl/EsGoodsSearchServiceImpl.java @@ -130,7 +130,11 @@ public class EsGoodsSearchServiceImpl implements EsGoodsSearchService { */ @Override public void deleteHotWords(String keywords) { - cache.zRemove(CachePrefix.HOT_WORD.getPrefix(), keywords); + if (CharSequenceUtil.isEmpty(keywords)) { + cache.vagueDel(CachePrefix.HOT_WORD.getPrefix()); + } else { + cache.zRemove(CachePrefix.HOT_WORD.getPrefix(), keywords); + } } @Override diff --git a/manager-api/src/main/java/cn/lili/controller/hotwords/HotWordsManagerController.java b/manager-api/src/main/java/cn/lili/controller/hotwords/HotWordsManagerController.java index ce4eb8d32..cf7a46d3c 100644 --- a/manager-api/src/main/java/cn/lili/controller/hotwords/HotWordsManagerController.java +++ b/manager-api/src/main/java/cn/lili/controller/hotwords/HotWordsManagerController.java @@ -37,11 +37,18 @@ public class HotWordsManagerController { return ResultUtil.success(); } - @ApiOperation(value = "设置热词") + @ApiOperation(value = "删除热词") @DeleteMapping("/{words}") public ResultMessage deleteWords(@PathVariable String words) { esGoodsSearchService.deleteHotWords(words); return ResultUtil.success(); } + @ApiOperation(value = "删除全部热词") + @DeleteMapping("") + public ResultMessage deleteWordsAll() { + esGoodsSearchService.deleteHotWords(null); + return ResultUtil.success(); + } + }