mirror of
https://gitee.com/hhyykk/ipms-sjy.git
synced 2025-02-08 22:54:59 +08:00
trade:取消订单、确认收货,增加订单日志
This commit is contained in:
parent
e9c9ac0cab
commit
a9485ad6bf
@ -14,7 +14,9 @@ import lombok.RequiredArgsConstructor;
|
|||||||
public enum TradeOrderOperateTypeEnum {
|
public enum TradeOrderOperateTypeEnum {
|
||||||
|
|
||||||
MEMBER_CREATE(1, "用户下单"),
|
MEMBER_CREATE(1, "用户下单"),
|
||||||
MEMBER_RECEIVE(30, "用户已收货")
|
MEMBER_RECEIVE(30, "用户已收货"),
|
||||||
|
MEMBER_COMMENT(31, "用户评价"),
|
||||||
|
MEMBER_CANCEL(40, "取消订单"),
|
||||||
;
|
;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -63,6 +63,9 @@ public class TradeOrderLogAspect {
|
|||||||
Long userId = getUserId();
|
Long userId = getUserId();
|
||||||
// 1.2 订单信息
|
// 1.2 订单信息
|
||||||
Long orderId = ORDER_ID.get();
|
Long orderId = ORDER_ID.get();
|
||||||
|
if (orderId == null) { // 如果未设置,只有注解,说明不需要记录订单日志
|
||||||
|
return;
|
||||||
|
}
|
||||||
Integer beforeStatus = BEFORE_STATUS.get();
|
Integer beforeStatus = BEFORE_STATUS.get();
|
||||||
Integer afterStatus = AFTER_STATUS.get();
|
Integer afterStatus = AFTER_STATUS.get();
|
||||||
Map<String, Object> exts = ObjectUtil.defaultIfNull(EXTS.get(), emptyMap());
|
Map<String, Object> exts = ObjectUtil.defaultIfNull(EXTS.get(), emptyMap());
|
||||||
|
@ -486,6 +486,7 @@ public class TradeOrderUpdateServiceImpl implements TradeOrderUpdateService {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
@Transactional(rollbackFor = Exception.class)
|
@Transactional(rollbackFor = Exception.class)
|
||||||
|
@TradeOrderLog(operateType = TradeOrderOperateTypeEnum.MEMBER_RECEIVE)
|
||||||
public void receiveOrder(Long userId, Long id) {
|
public void receiveOrder(Long userId, Long id) {
|
||||||
// 校验并获得交易订单(可收货)
|
// 校验并获得交易订单(可收货)
|
||||||
TradeOrderDO order = validateOrderReceivable(userId, id);
|
TradeOrderDO order = validateOrderReceivable(userId, id);
|
||||||
@ -677,6 +678,7 @@ public class TradeOrderUpdateServiceImpl implements TradeOrderUpdateService {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
@Transactional(rollbackFor = Exception.class)
|
@Transactional(rollbackFor = Exception.class)
|
||||||
|
@TradeOrderLog(operateType = TradeOrderOperateTypeEnum.MEMBER_COMMENT)
|
||||||
public Long createOrderItemComment(Long userId, AppTradeOrderItemCommentCreateReqVO createReqVO) {
|
public Long createOrderItemComment(Long userId, AppTradeOrderItemCommentCreateReqVO createReqVO) {
|
||||||
// 先通过订单项 ID,查询订单项是否存在
|
// 先通过订单项 ID,查询订单项是否存在
|
||||||
TradeOrderItemDO orderItem = tradeOrderItemMapper.selectByIdAndUserId(createReqVO.getOrderItemId(), userId);
|
TradeOrderItemDO orderItem = tradeOrderItemMapper.selectByIdAndUserId(createReqVO.getOrderItemId(), userId);
|
||||||
@ -704,12 +706,15 @@ public class TradeOrderUpdateServiceImpl implements TradeOrderUpdateService {
|
|||||||
List<TradeOrderItemDO> orderItems = tradeOrderItemMapper.selectListByOrderId(order.getId());
|
List<TradeOrderItemDO> orderItems = tradeOrderItemMapper.selectListByOrderId(order.getId());
|
||||||
if (!anyMatch(orderItems, item -> Objects.equals(item.getCommentStatus(), Boolean.FALSE))) {
|
if (!anyMatch(orderItems, item -> Objects.equals(item.getCommentStatus(), Boolean.FALSE))) {
|
||||||
tradeOrderMapper.updateById(new TradeOrderDO().setId(order.getId()).setCommentStatus(Boolean.TRUE));
|
tradeOrderMapper.updateById(new TradeOrderDO().setId(order.getId()).setCommentStatus(Boolean.TRUE));
|
||||||
// TODO 待实现:已完成评价,要不要写一条订单日志?目前 crmeb 会写,有赞可以研究下
|
// 增加订单日志
|
||||||
|
TradeOrderLogUtils.setOrderInfo(order.getId(), order.getStatus(), order.getStatus());
|
||||||
}
|
}
|
||||||
return comment;
|
return comment;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@Transactional(rollbackFor = Exception.class)
|
||||||
|
@TradeOrderLog(operateType = TradeOrderOperateTypeEnum.MEMBER_CANCEL)
|
||||||
public void cancelOrder(Long userId, Long id) {
|
public void cancelOrder(Long userId, Long id) {
|
||||||
// 校验存在
|
// 校验存在
|
||||||
TradeOrderDO order = tradeOrderMapper.selectOrderByIdAndUserId(id, userId);
|
TradeOrderDO order = tradeOrderMapper.selectOrderByIdAndUserId(id, userId);
|
||||||
@ -730,7 +735,7 @@ public class TradeOrderUpdateServiceImpl implements TradeOrderUpdateService {
|
|||||||
throw exception(ORDER_CANCEL_FAIL_STATUS_NOT_UNPAID);
|
throw exception(ORDER_CANCEL_FAIL_STATUS_NOT_UNPAID);
|
||||||
}
|
}
|
||||||
|
|
||||||
// TODO 活动相关库存回滚需要活动 id,活动 id 怎么获取?app 端能否传过来
|
// TODO 活动相关库存回滚需要活动 id,活动 id 怎么获取?app 端能否传过来;回复:从订单里拿呀
|
||||||
tradeOrderHandlers.forEach(handler -> handler.rollback());
|
tradeOrderHandlers.forEach(handler -> handler.rollback());
|
||||||
|
|
||||||
// 2. 回滚库存
|
// 2. 回滚库存
|
||||||
@ -738,14 +743,15 @@ public class TradeOrderUpdateServiceImpl implements TradeOrderUpdateService {
|
|||||||
productSkuApi.updateSkuStock(TradeOrderConvert.INSTANCE.convert(orderItems));
|
productSkuApi.updateSkuStock(TradeOrderConvert.INSTANCE.convert(orderItems));
|
||||||
|
|
||||||
// 3. 回滚优惠券
|
// 3. 回滚优惠券
|
||||||
|
if (order.getCouponId() > 0) {
|
||||||
couponApi.returnUsedCoupon(order.getCouponId());
|
couponApi.returnUsedCoupon(order.getCouponId());
|
||||||
|
}
|
||||||
|
|
||||||
// 4. 回滚积分:积分是支付成功后才增加的吧? 回复:每个项目不同,目前看下来,确认收货貌似更合适,我再看看其它项目的业务选择;
|
// 4. 回滚积分:积分是支付成功后才增加的吧? 回复:每个项目不同,目前看下来,确认收货貌似更合适,我再看看其它项目的业务选择;
|
||||||
// TODO @疯狂:有赞是可配置(支付 or 确认收货),我们按照支付好列;然后这里的退积分,指的是下单时的积分抵扣。
|
// TODO @疯狂:有赞是可配置(支付 or 确认收货),我们按照支付好列;然后这里的退积分,指的是下单时的积分抵扣。
|
||||||
|
|
||||||
// TODO 芋艿:OrderLog
|
// 5. 增加订单日志
|
||||||
|
TradeOrderLogUtils.setOrderInfo(order.getId(), order.getStatus(), TradeOrderStatusEnum.CANCELED.getStatus());
|
||||||
// TODO 芋艿:lili 发送订单变化的消息
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
Loading…
Reference in New Issue
Block a user