代码接口,异常规范问题处理。

This commit is contained in:
Chopper 2021-07-29 17:00:15 +08:00
parent f8ae17b360
commit 02327402a8
10 changed files with 71 additions and 31 deletions

View File

@ -18,7 +18,6 @@ import cn.lili.modules.system.entity.enums.SettingEnum;
import cn.lili.modules.system.service.SettingService; import cn.lili.modules.system.service.SettingService;
import com.google.gson.Gson; import com.google.gson.Gson;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
/** /**
* 会员经验值 * 会员经验值
@ -26,7 +25,7 @@ import org.springframework.stereotype.Service;
* @author Bulbasaur * @author Bulbasaur
* @since: 2021/5/16 11:16 下午 * @since: 2021/5/16 11:16 下午
*/ */
@Service //@Service
public class MemberExperienceExecute implements MemberRegisterEvent, GoodsCommentCompleteEvent, OrderStatusChangeEvent { public class MemberExperienceExecute implements MemberRegisterEvent, GoodsCommentCompleteEvent, OrderStatusChangeEvent {
/** /**

View File

@ -2,6 +2,7 @@ package cn.lili.event.impl;
import cn.lili.common.utils.CurrencyUtil; import cn.lili.common.utils.CurrencyUtil;
import cn.lili.common.utils.StringUtils;
import cn.lili.event.AfterSaleStatusChangeEvent; import cn.lili.event.AfterSaleStatusChangeEvent;
import cn.lili.event.GoodsCommentCompleteEvent; import cn.lili.event.GoodsCommentCompleteEvent;
import cn.lili.event.MemberRegisterEvent; import cn.lili.event.MemberRegisterEvent;
@ -84,9 +85,9 @@ public class MemberPointExecute implements MemberRegisterEvent, GoodsCommentComp
public void orderChange(OrderMessage orderMessage) { public void orderChange(OrderMessage orderMessage) {
if (orderMessage.getNewStatus().equals(OrderStatusEnum.COMPLETED)) { if (orderMessage.getNewStatus().equals(OrderStatusEnum.COMPLETED)) {
//根据订单编号获取订单数据,如果为积分订单则跳回
Order order = orderService.getBySn(orderMessage.getOrderSn()); 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; return;
} }
//获取积分设置 //获取积分设置

View File

@ -95,8 +95,12 @@ public class NoticeMessageExecute implements TradeEvent, OrderStatusChangeEvent,
//添加站内信参数 //添加站内信参数
params.put(NoticeMessageParameterEnum.GOODS.getType(), orderDetailVO.getOrderItems().get(0).getGoodsName()); params.put(NoticeMessageParameterEnum.GOODS.getType(), orderDetailVO.getOrderItems().get(0).getGoodsName());
noticeMessageDTO.setParameter(params); noticeMessageDTO.setParameter(params);
//保存站内信
noticeMessageService.noticeMessage(noticeMessageDTO); //如果有消息则发送消息
if (noticeMessageDTO.getNoticeMessageNodeEnum() != null) {
//保存站内信
noticeMessageService.noticeMessage(noticeMessageDTO);
}
} }
} }

View File

@ -32,22 +32,18 @@ public class AfterSaleMessageListener implements RocketMQListener<MessageExt> {
@Override @Override
public void onMessage(MessageExt messageExt) { public void onMessage(MessageExt messageExt) {
switch (AfterSaleTagsEnum.valueOf(messageExt.getTags())) { if (AfterSaleTagsEnum.valueOf(messageExt.getTags()) == AfterSaleTagsEnum.AFTER_SALE_STATUS_CHANGE) {
case AFTER_SALE_STATUS_CHANGE: for (AfterSaleStatusChangeEvent afterSaleStatusChangeEvent : afterSaleStatusChangeEvents) {
for (AfterSaleStatusChangeEvent afterSaleStatusChangeEvent : afterSaleStatusChangeEvents) { try {
try { AfterSale afterSale = JSONUtil.toBean(new String(messageExt.getBody()), AfterSale.class);
AfterSale afterSale = JSONUtil.toBean(new String(messageExt.getBody()), AfterSale.class); afterSaleStatusChangeEvent.afterSaleStatusChange(afterSale);
afterSaleStatusChangeEvent.afterSaleStatusChange(afterSale); } catch (Exception e) {
} catch (Exception e) { log.error("售后{},在{}业务中,状态修改事件执行异常",
log.error("售后{},在{}业务中,状态修改事件执行异常", new String(messageExt.getBody()),
new String(messageExt.getBody()), afterSaleStatusChangeEvent.getClass().getName(),
afterSaleStatusChangeEvent.getClass().getName(), e);
e);
}
} }
default: }
log.error("售后状态修改事件执行异常:", new String(messageExt.getBody()));
break;
} }
} }

View File

@ -40,7 +40,6 @@ public class GlobalControllerExceptionHandler {
@ResponseStatus(value = HttpStatus.BAD_REQUEST) @ResponseStatus(value = HttpStatus.BAD_REQUEST)
public ResultMessage<Object> handleServiceException(HttpServletRequest request, final Exception e, HttpServletResponse response) { public ResultMessage<Object> handleServiceException(HttpServletRequest request, final Exception e, HttpServletResponse response) {
log.error("全局异常[ServiceException]:", e);
//如果是自定义异常则获取异常返回自定义错误消息 //如果是自定义异常则获取异常返回自定义错误消息
if (e instanceof ServiceException) { if (e instanceof ServiceException) {
@ -58,7 +57,13 @@ public class GlobalControllerExceptionHandler {
if (!serviceException.getMsg().equals(ServiceException.DEFAULT_MESSAGE)) { if (!serviceException.getMsg().equals(ServiceException.DEFAULT_MESSAGE)) {
message += ":" + serviceException.getMsg(); message += ":" + serviceException.getMsg();
} }
log.error("全局异常[ServiceException]:{}-{}", serviceException.getResultCode().code(), serviceException.getResultCode().message(), e);
return ResultUtil.error(code, message); return ResultUtil.error(code, message);
} else {
log.error("全局异常[ServiceException]:", e);
} }
//默认错误消息 //默认错误消息

View File

@ -166,17 +166,22 @@ public class DistributionOrderServiceImpl extends ServiceImpl<DistributionOrderM
//获取收款分销订单 //获取收款分销订单
DistributionOrder distributionOrder = this.getOne(new LambdaQueryWrapper<DistributionOrder>() DistributionOrder distributionOrder = this.getOne(new LambdaQueryWrapper<DistributionOrder>()
.eq(DistributionOrder::getOrderItemSn, storeFlow.getOrderItemSn())); .eq(DistributionOrder::getOrderItemSn, storeFlow.getOrderItemSn()));
//分销订单不存在则直接返回
if (distributionOrder == null) {
return;
}
//已提交无法重复提交 //已提交无法重复提交
//如果未结算则将分销订单取消
//如果已结算则创建退款分销订单
if (distributionOrder.getDistributionOrderStatus().equals(DistributionOrderStatusEnum.CANCEL.name())) { if (distributionOrder.getDistributionOrderStatus().equals(DistributionOrderStatusEnum.CANCEL.name())) {
return; return;
} else if (distributionOrder.getDistributionOrderStatus().equals(DistributionOrderStatusEnum.WAIT_BILL.name())) { }
//如果未结算则将分销订单取消
else if (distributionOrder.getDistributionOrderStatus().equals(DistributionOrderStatusEnum.WAIT_BILL.name())) {
this.update(new LambdaUpdateWrapper<DistributionOrder>() this.update(new LambdaUpdateWrapper<DistributionOrder>()
.eq(DistributionOrder::getOrderItemSn, storeFlow.getOrderItemSn()) .eq(DistributionOrder::getOrderItemSn, storeFlow.getOrderItemSn())
.set(DistributionOrder::getDistributionOrderStatus, DistributionOrderStatusEnum.CANCEL.name())); .set(DistributionOrder::getDistributionOrderStatus, DistributionOrderStatusEnum.CANCEL.name()));
} else { }
//如果已结算则创建退款分销订单
else {
//修改分销员提成金额 //修改分销员提成金额
distributionService.subCanRebate(CurrencyUtil.sub(0, storeFlow.getDistributionRebate()), distributionOrder.getDistributionId()); distributionService.subCanRebate(CurrencyUtil.sub(0, storeFlow.getDistributionRebate()), distributionOrder.getDistributionId());
} }

View File

@ -51,7 +51,10 @@ public class NoticeMessageServiceImpl extends ServiceImpl<NoticeMessageTemplateM
return; return;
} }
try { try {
NoticeMessage noticeMessage = this.getOne(new LambdaQueryWrapper<NoticeMessage>().eq(NoticeMessage::getNoticeNode, noticeMessageDTO.getNoticeMessageNodeEnum().getDescription().trim())); NoticeMessage noticeMessage = this.getOne(
new LambdaQueryWrapper<NoticeMessage>()
.eq(NoticeMessage::getNoticeNode
, noticeMessageDTO.getNoticeMessageNodeEnum().getDescription().trim()));
//如果通知类站内信开启的情况下 //如果通知类站内信开启的情况下
if (noticeMessage != null && noticeMessage.getNoticeStatus().equals(SwitchEnum.OPEN.name())) { if (noticeMessage != null && noticeMessage.getNoticeStatus().equals(SwitchEnum.OPEN.name())) {
MemberMessage memberMessage = new MemberMessage(); MemberMessage memberMessage = new MemberMessage();

View File

@ -76,6 +76,9 @@ public class WechatMessageUtil {
public void wechatMessage(String sn) { public void wechatMessage(String sn) {
Order order = orderService.getBySn(sn); Order order = orderService.getBySn(sn);
if (order == null) {
throw new ServiceException("订单" + sn + "不存在,发送微信公众号消息错误");
}
//获取微信消息 //获取微信消息
LambdaQueryWrapper<WechatMessage> wechatMessageQueryWrapper = new LambdaQueryWrapper(); LambdaQueryWrapper<WechatMessage> wechatMessageQueryWrapper = new LambdaQueryWrapper();
wechatMessageQueryWrapper.eq(WechatMessage::getOrderStatus, order.getOrderStatus()); wechatMessageQueryWrapper.eq(WechatMessage::getOrderStatus, order.getOrderStatus());
@ -130,8 +133,11 @@ public class WechatMessageUtil {
*/ */
public void wechatMpMessage(String sn) { public void wechatMpMessage(String sn) {
log.error("发送消息订阅"); log.info("发送消息订阅");
Order order = orderService.getBySn(sn); Order order = orderService.getBySn(sn);
if (order == null) {
throw new ServiceException("订单" + sn + "不存在,发送订阅消息错误");
}
//获取微信消息 //获取微信消息
LambdaQueryWrapper<WechatMPMessage> wechatMPMessageQueryWrapper = new LambdaQueryWrapper(); LambdaQueryWrapper<WechatMPMessage> wechatMPMessageQueryWrapper = new LambdaQueryWrapper();
wechatMPMessageQueryWrapper.eq(WechatMPMessage::getOrderStatus, order.getOrderStatus()); wechatMPMessageQueryWrapper.eq(WechatMPMessage::getOrderStatus, order.getOrderStatus());

View File

@ -157,6 +157,13 @@ public interface OrderService extends IService<Order> {
*/ */
void complete(String orderSn); void complete(String orderSn);
/**
* 系统定时完成订单
*
* @param orderSn 订单编号
*/
void systemComplete(String orderSn);
/** /**
* 通过trade 获取订单列表 * 通过trade 获取订单列表
* *

View File

@ -407,8 +407,23 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
public void complete(String orderSn) { public void complete(String orderSn) {
//是否可以查询到订单 //是否可以查询到订单
Order order = OperationalJudgment.judgment(this.getBySn(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); this.updateStatus(orderSn, OrderStatusEnum.COMPLETED);
//修改订单货物可以进行评价 //修改订单货物可以进行评价
@ -437,7 +452,6 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
//发送订单变更mq消息 //发送订单变更mq消息
rocketMQTemplate.asyncSend(destination, JSONUtil.toJsonStr(goodsCompleteMessageList), RocketmqSendCallbackBuilder.commonCallback()); rocketMQTemplate.asyncSend(destination, JSONUtil.toJsonStr(goodsCompleteMessageList), RocketmqSendCallbackBuilder.commonCallback());
} }
} }
@Override @Override