From 02327402a84670f3c1a73e57185c7bf7e4000db0 Mon Sep 17 00:00:00 2001 From: Chopper Date: Thu, 29 Jul 2021 17:00:15 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BB=A3=E7=A0=81=E6=8E=A5=E5=8F=A3=EF=BC=8C?= =?UTF-8?q?=E5=BC=82=E5=B8=B8=E8=A7=84=E8=8C=83=E9=97=AE=E9=A2=98=E5=A4=84?= =?UTF-8?q?=E7=90=86=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../event/impl/MemberExperienceExecute.java | 3 +-- .../lili/event/impl/MemberPointExecute.java | 5 ++-- .../lili/event/impl/NoticeMessageExecute.java | 8 ++++-- .../listener/AfterSaleMessageListener.java | 26 ++++++++----------- .../GlobalControllerExceptionHandler.java | 7 ++++- .../DistributionOrderServiceImpl.java | 15 +++++++---- .../serviceimpl/NoticeMessageServiceImpl.java | 5 +++- .../message/util/WechatMessageUtil.java | 8 +++++- .../order/order/service/OrderService.java | 7 +++++ .../order/serviceimpl/OrderServiceImpl.java | 18 +++++++++++-- 10 files changed, 71 insertions(+), 31 deletions(-) diff --git a/consumer/src/main/java/cn/lili/event/impl/MemberExperienceExecute.java b/consumer/src/main/java/cn/lili/event/impl/MemberExperienceExecute.java index 883e3e70..aeffd014 100644 --- a/consumer/src/main/java/cn/lili/event/impl/MemberExperienceExecute.java +++ b/consumer/src/main/java/cn/lili/event/impl/MemberExperienceExecute.java @@ -18,7 +18,6 @@ import cn.lili.modules.system.entity.enums.SettingEnum; import cn.lili.modules.system.service.SettingService; import com.google.gson.Gson; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Service; /** * 会员经验值 @@ -26,7 +25,7 @@ import org.springframework.stereotype.Service; * @author Bulbasaur * @since: 2021/5/16 11:16 下午 */ -@Service +//@Service public class MemberExperienceExecute implements MemberRegisterEvent, GoodsCommentCompleteEvent, OrderStatusChangeEvent { /** diff --git a/consumer/src/main/java/cn/lili/event/impl/MemberPointExecute.java b/consumer/src/main/java/cn/lili/event/impl/MemberPointExecute.java index 71cd6d01..8251d47b 100644 --- a/consumer/src/main/java/cn/lili/event/impl/MemberPointExecute.java +++ b/consumer/src/main/java/cn/lili/event/impl/MemberPointExecute.java @@ -2,6 +2,7 @@ package cn.lili.event.impl; import cn.lili.common.utils.CurrencyUtil; +import cn.lili.common.utils.StringUtils; import cn.lili.event.AfterSaleStatusChangeEvent; import cn.lili.event.GoodsCommentCompleteEvent; import cn.lili.event.MemberRegisterEvent; @@ -84,9 +85,9 @@ public class MemberPointExecute implements MemberRegisterEvent, GoodsCommentComp public void orderChange(OrderMessage orderMessage) { if (orderMessage.getNewStatus().equals(OrderStatusEnum.COMPLETED)) { - //根据订单编号获取订单数据,如果为积分订单则跳回 Order order = orderService.getBySn(orderMessage.getOrderSn()); - if (order.getOrderPromotionType().equals(OrderPromotionTypeEnum.POINT.name())) { + //根据订单编号获取订单数据,如果订单促销类型不为空,并且订单促销类型为积分订单 则直接返回 + if (StringUtils.isNotEmpty(order.getOrderPromotionType()) && order.getOrderPromotionType().equals(OrderPromotionTypeEnum.POINT.name())) { return; } //获取积分设置 diff --git a/consumer/src/main/java/cn/lili/event/impl/NoticeMessageExecute.java b/consumer/src/main/java/cn/lili/event/impl/NoticeMessageExecute.java index dbd7032f..4858a260 100644 --- a/consumer/src/main/java/cn/lili/event/impl/NoticeMessageExecute.java +++ b/consumer/src/main/java/cn/lili/event/impl/NoticeMessageExecute.java @@ -95,8 +95,12 @@ public class NoticeMessageExecute implements TradeEvent, OrderStatusChangeEvent, //添加站内信参数 params.put(NoticeMessageParameterEnum.GOODS.getType(), orderDetailVO.getOrderItems().get(0).getGoodsName()); noticeMessageDTO.setParameter(params); - //保存站内信 - noticeMessageService.noticeMessage(noticeMessageDTO); + + //如果有消息,则发送消息 + if (noticeMessageDTO.getNoticeMessageNodeEnum() != null) { + //保存站内信 + noticeMessageService.noticeMessage(noticeMessageDTO); + } } } diff --git a/consumer/src/main/java/cn/lili/listener/AfterSaleMessageListener.java b/consumer/src/main/java/cn/lili/listener/AfterSaleMessageListener.java index ed0ee8a7..d950ac59 100644 --- a/consumer/src/main/java/cn/lili/listener/AfterSaleMessageListener.java +++ b/consumer/src/main/java/cn/lili/listener/AfterSaleMessageListener.java @@ -32,22 +32,18 @@ public class AfterSaleMessageListener implements RocketMQListener { @Override public void onMessage(MessageExt messageExt) { - switch (AfterSaleTagsEnum.valueOf(messageExt.getTags())) { - case AFTER_SALE_STATUS_CHANGE: - for (AfterSaleStatusChangeEvent afterSaleStatusChangeEvent : afterSaleStatusChangeEvents) { - try { - AfterSale afterSale = JSONUtil.toBean(new String(messageExt.getBody()), AfterSale.class); - afterSaleStatusChangeEvent.afterSaleStatusChange(afterSale); - } catch (Exception e) { - log.error("售后{},在{}业务中,状态修改事件执行异常", - new String(messageExt.getBody()), - afterSaleStatusChangeEvent.getClass().getName(), - e); - } + if (AfterSaleTagsEnum.valueOf(messageExt.getTags()) == AfterSaleTagsEnum.AFTER_SALE_STATUS_CHANGE) { + for (AfterSaleStatusChangeEvent afterSaleStatusChangeEvent : afterSaleStatusChangeEvents) { + try { + AfterSale afterSale = JSONUtil.toBean(new String(messageExt.getBody()), AfterSale.class); + afterSaleStatusChangeEvent.afterSaleStatusChange(afterSale); + } catch (Exception e) { + log.error("售后{},在{}业务中,状态修改事件执行异常", + new String(messageExt.getBody()), + afterSaleStatusChangeEvent.getClass().getName(), + e); } - default: - log.error("售后状态修改事件执行异常:", new String(messageExt.getBody())); - break; + } } } diff --git a/framework/src/main/java/cn/lili/common/exception/GlobalControllerExceptionHandler.java b/framework/src/main/java/cn/lili/common/exception/GlobalControllerExceptionHandler.java index 0411f7e3..c7ad4bc8 100644 --- a/framework/src/main/java/cn/lili/common/exception/GlobalControllerExceptionHandler.java +++ b/framework/src/main/java/cn/lili/common/exception/GlobalControllerExceptionHandler.java @@ -40,7 +40,6 @@ public class GlobalControllerExceptionHandler { @ResponseStatus(value = HttpStatus.BAD_REQUEST) public ResultMessage handleServiceException(HttpServletRequest request, final Exception e, HttpServletResponse response) { - log.error("全局异常[ServiceException]:", e); //如果是自定义异常,则获取异常,返回自定义错误消息 if (e instanceof ServiceException) { @@ -58,7 +57,13 @@ public class GlobalControllerExceptionHandler { if (!serviceException.getMsg().equals(ServiceException.DEFAULT_MESSAGE)) { message += ":" + serviceException.getMsg(); } + + log.error("全局异常[ServiceException]:{}-{}", serviceException.getResultCode().code(), serviceException.getResultCode().message(), e); return ResultUtil.error(code, message); + + } else { + + log.error("全局异常[ServiceException]:", e); } //默认错误消息 diff --git a/framework/src/main/java/cn/lili/modules/distribution/serviceimpl/DistributionOrderServiceImpl.java b/framework/src/main/java/cn/lili/modules/distribution/serviceimpl/DistributionOrderServiceImpl.java index 7bef10f3..f9d05941 100644 --- a/framework/src/main/java/cn/lili/modules/distribution/serviceimpl/DistributionOrderServiceImpl.java +++ b/framework/src/main/java/cn/lili/modules/distribution/serviceimpl/DistributionOrderServiceImpl.java @@ -166,17 +166,22 @@ public class DistributionOrderServiceImpl extends ServiceImpl() .eq(DistributionOrder::getOrderItemSn, storeFlow.getOrderItemSn())); - + //分销订单不存在,则直接返回 + if (distributionOrder == null) { + return; + } //已提交无法重复提交 - //如果未结算则将分销订单取消 - //如果已结算则创建退款分销订单 if (distributionOrder.getDistributionOrderStatus().equals(DistributionOrderStatusEnum.CANCEL.name())) { return; - } else if (distributionOrder.getDistributionOrderStatus().equals(DistributionOrderStatusEnum.WAIT_BILL.name())) { + } + //如果未结算则将分销订单取消 + else if (distributionOrder.getDistributionOrderStatus().equals(DistributionOrderStatusEnum.WAIT_BILL.name())) { this.update(new LambdaUpdateWrapper() .eq(DistributionOrder::getOrderItemSn, storeFlow.getOrderItemSn()) .set(DistributionOrder::getDistributionOrderStatus, DistributionOrderStatusEnum.CANCEL.name())); - } else { + } + //如果已结算则创建退款分销订单 + else { //修改分销员提成金额 distributionService.subCanRebate(CurrencyUtil.sub(0, storeFlow.getDistributionRebate()), distributionOrder.getDistributionId()); } diff --git a/framework/src/main/java/cn/lili/modules/message/serviceimpl/NoticeMessageServiceImpl.java b/framework/src/main/java/cn/lili/modules/message/serviceimpl/NoticeMessageServiceImpl.java index 03d2512f..8bc64782 100644 --- a/framework/src/main/java/cn/lili/modules/message/serviceimpl/NoticeMessageServiceImpl.java +++ b/framework/src/main/java/cn/lili/modules/message/serviceimpl/NoticeMessageServiceImpl.java @@ -51,7 +51,10 @@ public class NoticeMessageServiceImpl extends ServiceImpl().eq(NoticeMessage::getNoticeNode, noticeMessageDTO.getNoticeMessageNodeEnum().getDescription().trim())); + NoticeMessage noticeMessage = this.getOne( + new LambdaQueryWrapper() + .eq(NoticeMessage::getNoticeNode + , noticeMessageDTO.getNoticeMessageNodeEnum().getDescription().trim())); //如果通知类站内信开启的情况下 if (noticeMessage != null && noticeMessage.getNoticeStatus().equals(SwitchEnum.OPEN.name())) { MemberMessage memberMessage = new MemberMessage(); diff --git a/framework/src/main/java/cn/lili/modules/message/util/WechatMessageUtil.java b/framework/src/main/java/cn/lili/modules/message/util/WechatMessageUtil.java index 1c42ffb2..9bca0c8f 100644 --- a/framework/src/main/java/cn/lili/modules/message/util/WechatMessageUtil.java +++ b/framework/src/main/java/cn/lili/modules/message/util/WechatMessageUtil.java @@ -76,6 +76,9 @@ public class WechatMessageUtil { public void wechatMessage(String sn) { Order order = orderService.getBySn(sn); + if (order == null) { + throw new ServiceException("订单" + sn + "不存在,发送微信公众号消息错误"); + } //获取微信消息 LambdaQueryWrapper wechatMessageQueryWrapper = new LambdaQueryWrapper(); wechatMessageQueryWrapper.eq(WechatMessage::getOrderStatus, order.getOrderStatus()); @@ -130,8 +133,11 @@ public class WechatMessageUtil { */ public void wechatMpMessage(String sn) { - log.error("发送消息订阅"); + log.info("发送消息订阅"); Order order = orderService.getBySn(sn); + if (order == null) { + throw new ServiceException("订单" + sn + "不存在,发送订阅消息错误"); + } //获取微信消息 LambdaQueryWrapper wechatMPMessageQueryWrapper = new LambdaQueryWrapper(); wechatMPMessageQueryWrapper.eq(WechatMPMessage::getOrderStatus, order.getOrderStatus()); diff --git a/framework/src/main/java/cn/lili/modules/order/order/service/OrderService.java b/framework/src/main/java/cn/lili/modules/order/order/service/OrderService.java index e35b03eb..64817558 100644 --- a/framework/src/main/java/cn/lili/modules/order/order/service/OrderService.java +++ b/framework/src/main/java/cn/lili/modules/order/order/service/OrderService.java @@ -157,6 +157,13 @@ public interface OrderService extends IService { */ void complete(String orderSn); + /** + * 系统定时完成订单 + * + * @param orderSn 订单编号 + */ + void systemComplete(String orderSn); + /** * 通过trade 获取订单列表 * diff --git a/framework/src/main/java/cn/lili/modules/order/order/serviceimpl/OrderServiceImpl.java b/framework/src/main/java/cn/lili/modules/order/order/serviceimpl/OrderServiceImpl.java index ef2982b4..a0c9082b 100644 --- a/framework/src/main/java/cn/lili/modules/order/order/serviceimpl/OrderServiceImpl.java +++ b/framework/src/main/java/cn/lili/modules/order/order/serviceimpl/OrderServiceImpl.java @@ -407,8 +407,23 @@ public class OrderServiceImpl extends ServiceImpl implements public void complete(String orderSn) { //是否可以查询到订单 Order order = OperationalJudgment.judgment(this.getBySn(orderSn)); + complete(order, orderSn); + } - //修改订单状态为完成 + @Override + @OrderLogPoint(description = "'订单['+#orderSn+']完成'", orderSn = "#orderSn") + public void systemComplete(String orderSn) { + Order order = this.getBySn(orderSn); + complete(order, orderSn); + } + + /** + * 完成订单方法封装 + * + * @param order 订单 + * @param orderSn 订单编号 + */ + private void complete(Order order, String orderSn) {//修改订单状态为完成 this.updateStatus(orderSn, OrderStatusEnum.COMPLETED); //修改订单货物可以进行评价 @@ -437,7 +452,6 @@ public class OrderServiceImpl extends ServiceImpl implements //发送订单变更mq消息 rocketMQTemplate.asyncSend(destination, JSONUtil.toJsonStr(goodsCompleteMessageList), RocketmqSendCallbackBuilder.commonCallback()); } - } @Override