feat(order): 完善订单生命周期与投诉处理;补充单元测试
This commit is contained in:
@@ -47,7 +47,7 @@ import com.starry.admin.modules.shop.module.entity.PlayCouponInfoEntity;
|
||||
import com.starry.admin.modules.shop.module.enums.CouponDiscountType;
|
||||
import com.starry.admin.modules.shop.service.IPlayCouponDetailsService;
|
||||
import com.starry.admin.modules.shop.service.IPlayCouponInfoService;
|
||||
import com.starry.admin.modules.weichat.service.WxCustomMpService;
|
||||
import com.starry.admin.modules.weichat.service.NotificationSender;
|
||||
import com.starry.admin.modules.withdraw.entity.EarningsLineEntity;
|
||||
import com.starry.admin.modules.withdraw.service.IEarningsService;
|
||||
import com.starry.admin.utils.SecurityUtils;
|
||||
@@ -85,7 +85,7 @@ public class OrderLifecycleServiceImpl implements IOrderLifecycleService {
|
||||
private IEarningsService earningsService;
|
||||
|
||||
@Resource
|
||||
private WxCustomMpService wxCustomMpService;
|
||||
private NotificationSender notificationSender;
|
||||
|
||||
@Resource
|
||||
private IPlayOrderRefundInfoService orderRefundInfoService;
|
||||
@@ -466,7 +466,7 @@ public class OrderLifecycleServiceImpl implements IOrderLifecycleService {
|
||||
}
|
||||
|
||||
if (shouldNotify) {
|
||||
wxCustomMpService.sendOrderFinishMessageAsync(latest);
|
||||
notificationSender.sendOrderFinishMessageAsync(latest);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -17,7 +17,7 @@ import com.starry.admin.modules.order.module.vo.PlayOrderComplaintQueryVo;
|
||||
import com.starry.admin.modules.order.module.vo.PlayOrderComplaintReturnVo;
|
||||
import com.starry.admin.modules.order.service.IPlayOrderComplaintInfoService;
|
||||
import com.starry.admin.modules.personnel.service.IPlayPersonnelGroupInfoService;
|
||||
import com.starry.admin.modules.weichat.service.WxCustomMpService;
|
||||
import com.starry.admin.modules.weichat.service.NotificationSender;
|
||||
import com.starry.admin.utils.SecurityUtils;
|
||||
import com.starry.common.utils.IdUtils;
|
||||
import java.util.Arrays;
|
||||
@@ -46,7 +46,7 @@ public class PlayOrderComplaintInfoServiceImpl
|
||||
@Resource
|
||||
private IPlayPersonnelGroupInfoService playClerkGroupInfoService;
|
||||
@Resource
|
||||
private WxCustomMpService wxCustomMpService;
|
||||
private NotificationSender notificationSender;
|
||||
|
||||
/**
|
||||
* 查询订单投诉信息
|
||||
@@ -169,7 +169,7 @@ public class PlayOrderComplaintInfoServiceImpl
|
||||
playOrderComplaintInfo.setClerkId(orderInfo.getAcceptBy());
|
||||
playOrderComplaintInfo.setCommodityId(orderInfo.getCommodityId());
|
||||
// 发送投诉消息给管理员以及客服
|
||||
wxCustomMpService.sendComplaintMessage(playOrderComplaintInfo, orderInfo);
|
||||
notificationSender.sendComplaintMessage(playOrderComplaintInfo, orderInfo);
|
||||
return save(playOrderComplaintInfo);
|
||||
}
|
||||
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
package com.starry.admin.modules.order.service.impl;
|
||||
|
||||
import cn.hutool.core.collection.CollectionUtil;
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
|
||||
@@ -41,10 +42,11 @@ import com.starry.admin.modules.order.service.IPlayOrderRefundInfoService;
|
||||
import com.starry.admin.modules.order.service.support.ClerkRevenueCalculator;
|
||||
import com.starry.admin.modules.personnel.module.entity.PlayPersonnelGroupInfoEntity;
|
||||
import com.starry.admin.modules.personnel.service.IPlayPersonnelGroupInfoService;
|
||||
import com.starry.admin.modules.shop.module.constant.CouponUseState;
|
||||
import com.starry.admin.modules.shop.module.vo.PlayCouponDetailsReturnVo;
|
||||
import com.starry.admin.modules.shop.service.IPlayCouponDetailsService;
|
||||
import com.starry.admin.modules.weichat.entity.order.*;
|
||||
import com.starry.admin.modules.weichat.service.WxCustomMpService;
|
||||
import com.starry.admin.modules.weichat.service.NotificationSender;
|
||||
import com.starry.admin.modules.withdraw.service.IEarningsService;
|
||||
import com.starry.admin.utils.DateRangeUtils;
|
||||
import com.starry.admin.utils.SecurityUtils;
|
||||
@@ -95,7 +97,7 @@ public class PlayOrderInfoServiceImpl extends ServiceImpl<PlayOrderInfoMapper, P
|
||||
private IPlayCouponDetailsService playCouponDetailsService;
|
||||
|
||||
@Resource
|
||||
private WxCustomMpService wxCustomMpService;
|
||||
private NotificationSender notificationSender;
|
||||
|
||||
@Resource
|
||||
private IPlayCustomUserInfoService customUserInfoService;
|
||||
@@ -644,7 +646,7 @@ public class PlayOrderInfoServiceImpl extends ServiceImpl<PlayOrderInfoMapper, P
|
||||
orderInfo.setFirstOrder(firstOrderFlag);
|
||||
log.info("Order accepted successfully. orderId={}, orderNo={}, acceptBy={}, operatorByType={}",
|
||||
orderId, orderInfo.getOrderNo(), acceptBy, operatorByType);
|
||||
wxCustomMpService.sendOrderMessageAsync(orderInfo);
|
||||
notificationSender.sendOrderMessageAsync(orderInfo);
|
||||
}
|
||||
|
||||
private void validateClerkQualificationForRandomOrder(PlayOrderInfoEntity orderInfo,
|
||||
@@ -835,7 +837,8 @@ public class PlayOrderInfoServiceImpl extends ServiceImpl<PlayOrderInfoMapper, P
|
||||
playOrderRefundInfoService.add(orderInfo.getId(), orderInfo.getPurchaserBy(), orderInfo.getAcceptBy(),
|
||||
orderInfo.getPayMethod(), OrderRefundRecordType.FULL.getCode(), orderInfo.getFinalAmount(), refundReason, operatorByType, operatorBy,
|
||||
OrderRefundState.PROCESSING.getCode(), ReviewRequirement.NOT_REQUIRED.getCode());
|
||||
wxCustomMpService.sendOrderCancelMessageAsync(orderInfo, refundReason);
|
||||
restoreCouponsForOrder(orderInfo);
|
||||
notificationSender.sendOrderCancelMessageAsync(orderInfo, refundReason);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -888,8 +891,10 @@ public class PlayOrderInfoServiceImpl extends ServiceImpl<PlayOrderInfoMapper, P
|
||||
orderInfo.getPayMethod(), forceCancelRefundType.getCode(), actualRefundAmount, refundReason, operatorByType, operatorBy,
|
||||
OrderRefundState.PROCESSING.getCode(), ReviewRequirement.NOT_REQUIRED.getCode());
|
||||
|
||||
restoreCouponsForOrder(orderInfo);
|
||||
|
||||
PlayOrderInfoEntity latest = this.selectOrderInfoById(orderId);
|
||||
wxCustomMpService.sendOrderCancelMessageAsync(latest, refundReason);
|
||||
notificationSender.sendOrderCancelMessageAsync(latest, refundReason);
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -1038,4 +1043,11 @@ public class PlayOrderInfoServiceImpl extends ServiceImpl<PlayOrderInfoMapper, P
|
||||
return OrderTriggerSource.SYSTEM;
|
||||
}
|
||||
}
|
||||
|
||||
private void restoreCouponsForOrder(PlayOrderInfoEntity orderInfo) {
|
||||
if (orderInfo == null || CollectionUtil.isEmpty(orderInfo.getCouponIds())) {
|
||||
return;
|
||||
}
|
||||
playCouponDetailsService.updateCouponUseStateByIds(orderInfo.getCouponIds(), CouponUseState.UNUSED.getCode());
|
||||
}
|
||||
}
|
||||
|
||||
@@ -50,7 +50,7 @@ import com.starry.admin.modules.shop.module.entity.PlayCouponDetailsEntity;
|
||||
import com.starry.admin.modules.shop.module.entity.PlayCouponInfoEntity;
|
||||
import com.starry.admin.modules.shop.service.IPlayCouponDetailsService;
|
||||
import com.starry.admin.modules.shop.service.IPlayCouponInfoService;
|
||||
import com.starry.admin.modules.weichat.service.WxCustomMpService;
|
||||
import com.starry.admin.modules.weichat.service.NotificationSender;
|
||||
import com.starry.admin.modules.withdraw.entity.EarningsLineEntity;
|
||||
import com.starry.admin.modules.withdraw.service.IEarningsService;
|
||||
import java.math.BigDecimal;
|
||||
@@ -81,7 +81,7 @@ class OrderLifecycleServiceImplTest {
|
||||
private IEarningsService earningsService;
|
||||
|
||||
@Mock
|
||||
private WxCustomMpService wxCustomMpService;
|
||||
private NotificationSender notificationSender;
|
||||
|
||||
@Mock
|
||||
private IPlayOrderRefundInfoService orderRefundInfoService;
|
||||
@@ -565,7 +565,7 @@ private PlayOrderLogInfoMapper orderLogInfoMapper;
|
||||
lifecycleService.placeOrder(command(context, null, false, null, null));
|
||||
|
||||
verify(orderInfoMapper, never()).selectById(anyString());
|
||||
verify(wxCustomMpService, never()).sendOrderFinishMessageAsync(any());
|
||||
verify(notificationSender, never()).sendOrderFinishMessageAsync(any());
|
||||
verify(earningsService, never()).createFromOrder(any());
|
||||
}
|
||||
|
||||
@@ -594,7 +594,7 @@ private PlayOrderLogInfoMapper orderLogInfoMapper;
|
||||
verify(orderInfoMapper, atLeastOnce()).selectById(anyString());
|
||||
verify(customUserInfoService).handleOrderCompletion(any());
|
||||
verify(earningsService).createFromOrder(completed);
|
||||
verify(wxCustomMpService).sendOrderFinishMessageAsync(completed);
|
||||
verify(notificationSender).sendOrderFinishMessageAsync(completed);
|
||||
}
|
||||
|
||||
@Test
|
||||
@@ -610,7 +610,7 @@ private PlayOrderLogInfoMapper orderLogInfoMapper;
|
||||
lifecycleService.placeOrder(command(context, null, false, null, null));
|
||||
|
||||
verify(orderInfoMapper, never()).selectById(anyString());
|
||||
verify(wxCustomMpService, never()).sendOrderFinishMessageAsync(any());
|
||||
verify(notificationSender, never()).sendOrderFinishMessageAsync(any());
|
||||
verify(earningsService, never()).createFromOrder(any());
|
||||
}
|
||||
|
||||
@@ -639,7 +639,7 @@ private PlayOrderLogInfoMapper orderLogInfoMapper;
|
||||
verify(orderInfoMapper, atLeastOnce()).selectById(anyString());
|
||||
verify(customUserInfoService).handleOrderCompletion(any());
|
||||
verify(earningsService).createFromOrder(completed);
|
||||
verify(wxCustomMpService).sendOrderFinishMessageAsync(completed);
|
||||
verify(notificationSender).sendOrderFinishMessageAsync(completed);
|
||||
}
|
||||
|
||||
@Test
|
||||
@@ -1031,7 +1031,7 @@ private PlayOrderLogInfoMapper orderLogInfoMapper;
|
||||
verify(orderInfoMapper).update(isNull(), any());
|
||||
verify(customUserInfoService).handleOrderCompletion(completed);
|
||||
verify(earningsService).createFromOrder(completed);
|
||||
verify(wxCustomMpService).sendOrderFinishMessageAsync(completed);
|
||||
verify(notificationSender).sendOrderFinishMessageAsync(completed);
|
||||
}
|
||||
|
||||
@Test
|
||||
@@ -1052,7 +1052,7 @@ private PlayOrderLogInfoMapper orderLogInfoMapper;
|
||||
OrderTriggerSource.ADMIN_CONSOLE));
|
||||
|
||||
verify(earningsService, never()).createFromOrder(any());
|
||||
verify(wxCustomMpService, never()).sendOrderFinishMessageAsync(any());
|
||||
verify(notificationSender, never()).sendOrderFinishMessageAsync(any());
|
||||
}
|
||||
|
||||
@Test
|
||||
@@ -1074,7 +1074,7 @@ private PlayOrderLogInfoMapper orderLogInfoMapper;
|
||||
|
||||
verify(customUserInfoService, never()).handleOrderCompletion(any());
|
||||
verify(earningsService, never()).createFromOrder(any());
|
||||
verify(wxCustomMpService, never()).sendOrderFinishMessageAsync(any());
|
||||
verify(notificationSender, never()).sendOrderFinishMessageAsync(any());
|
||||
verify(orderLogInfoMapper, never()).insert(any());
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user