|
@@ -275,6 +275,27 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
|
|
|
List<OrderItem> orderItems = order.getOrderItems();
|
|
|
allOrderItems.addAll(orderItems);
|
|
|
eventPublisher.publishEvent(new CancelOrderEvent(order));
|
|
|
+ // 判定是不是积分订单,如果是或者包含积分则退积分
|
|
|
+ if (Objects.equals(OrderType.ORDINARY.value(), order.getOrderType())) {
|
|
|
+ List<PointsRecord> pointsRecords = pointsRecordMapper.selectList(new LambdaQueryWrapper<PointsRecord>()
|
|
|
+ .eq(PointsRecord::getOrderNumber, order.getOrderNumber())
|
|
|
+ .eq(PointsRecord::getPointsType, 2)//购物的积分
|
|
|
+ .and(wrapper -> wrapper
|
|
|
+ .gt(PointsRecord::getExpiryDate, LocalDateTime.now())
|
|
|
+ .or()
|
|
|
+ .isNull(PointsRecord::getExpiryDate)
|
|
|
+ ));
|
|
|
+ for (PointsRecord pointsRecord : pointsRecords) {
|
|
|
+ Long l = pointsRecordMapper.statisticsPoint(pointsRecord.getUserId(), Math.toIntExact(pointsRecord.getChannelId()));
|
|
|
+ pointsRecord.setId(null);
|
|
|
+ pointsRecord.setCreationDate(new Date());
|
|
|
+ pointsRecord.setPoints(pointsRecord.getVariablePoints());
|
|
|
+ pointsRecord.setVariablePoints(BigDecimal.valueOf(0));
|
|
|
+ pointsRecord.setPointsType(3);
|
|
|
+ pointsRecord.setCurrentlyAvailablePoints(BigDecimal.valueOf(l).add(pointsRecord.getPoints()));
|
|
|
+ pointsRecordMapper.updateById(pointsRecord);
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|
|
|
// 如果是秒杀订单也不必还原库存
|
|
|
if (CollectionUtil.isEmpty(allOrderItems) || OrderType.SECKILL.value().equals(orders.get(0).getOrderType())) {
|
|
@@ -795,7 +816,6 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
|
|
|
// 判断退款单类型(1:整单退款,2:单个物品退款)
|
|
|
|
|
|
|
|
|
-
|
|
|
if (orderRefundParam.getRefundType().equals(RefundType.ALL.value())) {
|
|
|
// 全部物品退款
|
|
|
// 计算该订单项的分销金额
|
|
@@ -926,7 +946,7 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
|
|
|
OrderSettlement orderSettlement = orderSettlementMapper.selectOne(new LambdaQueryWrapper<OrderSettlement>()
|
|
|
.eq(OrderSettlement::getOrderNumber, order.getOrderNumber())
|
|
|
.eq(OrderSettlement::getPayType, 1));
|
|
|
- if (ObjectUtil.isNotEmpty(order.getOffsetPoints()) && order.getOffsetPoints() > 0) {//混合支付
|
|
|
+ if (ObjectUtil.isNotEmpty(order.getOffsetPoints()) && order.getOffsetPoints() > 0) {//混合支付
|
|
|
//退钱
|
|
|
RefundInfoPo po = new RefundInfoPo();
|
|
|
po.setOutTradeNo(orderSettlement.getPayNo());
|