|
@@ -29,6 +29,8 @@ import cn.iocoder.yudao.module.promotion.api.combination.dto.CombinationRecordUp
|
|
|
import cn.iocoder.yudao.module.promotion.api.coupon.CouponApi;
|
|
|
import cn.iocoder.yudao.module.promotion.api.coupon.dto.CouponUseReqDTO;
|
|
|
import cn.iocoder.yudao.module.promotion.enums.combination.CombinationRecordStatusEnum;
|
|
|
+import cn.iocoder.yudao.module.trade.controller.admin.order.vo.TradeOrderAdjustAddressReqVO;
|
|
|
+import cn.iocoder.yudao.module.trade.controller.admin.order.vo.TradeOrderAdjustPriceReqVO;
|
|
|
import cn.iocoder.yudao.module.trade.controller.admin.order.vo.TradeOrderDeliveryReqVO;
|
|
|
import cn.iocoder.yudao.module.trade.controller.admin.order.vo.TradeOrderRemarkReqVO;
|
|
|
import cn.iocoder.yudao.module.trade.controller.app.order.vo.AppTradeOrderCreateReqVO;
|
|
@@ -54,6 +56,7 @@ import cn.iocoder.yudao.module.trade.service.price.TradePriceService;
|
|
|
import cn.iocoder.yudao.module.trade.service.price.bo.TradePriceCalculateReqBO;
|
|
|
import cn.iocoder.yudao.module.trade.service.price.bo.TradePriceCalculateRespBO;
|
|
|
import lombok.extern.slf4j.Slf4j;
|
|
|
+import org.jetbrains.annotations.NotNull;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
|
|
|
@@ -65,6 +68,7 @@ import java.util.Objects;
|
|
|
import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception;
|
|
|
import static cn.iocoder.yudao.framework.common.util.collection.CollectionUtils.*;
|
|
|
import static cn.iocoder.yudao.module.pay.enums.ErrorCodeConstants.ORDER_NOT_FOUND;
|
|
|
+import static cn.iocoder.yudao.module.pay.enums.ErrorCodeConstants.ORDER_PAID_NO_ADJUST_PRICE;
|
|
|
import static cn.iocoder.yudao.module.trade.enums.ErrorCodeConstants.*;
|
|
|
|
|
|
/**
|
|
@@ -346,10 +350,7 @@ public class TradeOrderUpdateServiceImpl implements TradeOrderUpdateService {
|
|
|
*/
|
|
|
private KeyValue<TradeOrderDO, PayOrderRespDTO> validateOrderPayable(Long id, Long payOrderId) {
|
|
|
// 校验订单是否存在
|
|
|
- TradeOrderDO order = tradeOrderMapper.selectById(id);
|
|
|
- if (order == null) {
|
|
|
- throw exception(ORDER_NOT_FOUND);
|
|
|
- }
|
|
|
+ TradeOrderDO order = validateOrder(id);
|
|
|
// 校验订单未支付
|
|
|
if (!TradeOrderStatusEnum.isUnpaid(order.getStatus()) || order.getPayStatus()) {
|
|
|
log.error("[validateOrderPaid][order({}) 不处于待支付状态,请进行处理!order 数据是:{}]",
|
|
@@ -392,7 +393,7 @@ public class TradeOrderUpdateServiceImpl implements TradeOrderUpdateService {
|
|
|
|
|
|
@Override
|
|
|
@Transactional(rollbackFor = Exception.class)
|
|
|
- public void deliveryOrder(Long userId, TradeOrderDeliveryReqVO deliveryReqVO) {
|
|
|
+ public void deliveryOrder(TradeOrderDeliveryReqVO deliveryReqVO) {
|
|
|
// TODO @puhui999:只有选择快递的,才可以发货
|
|
|
// 1.1 校验并获得交易订单(可发货)
|
|
|
TradeOrderDO order = validateOrderDeliverable(deliveryReqVO.getId());
|
|
@@ -424,7 +425,7 @@ public class TradeOrderUpdateServiceImpl implements TradeOrderUpdateService {
|
|
|
|
|
|
// 发送站内信
|
|
|
tradeMessageService.sendMessageWhenDeliveryOrder(new TradeOrderMessageWhenDeliveryOrderReqBO().setOrderId(order.getId())
|
|
|
- .setUserId(userId).setMessage(null));
|
|
|
+ .setUserId(order.getUserId()).setMessage(null));
|
|
|
|
|
|
// TODO 芋艿:OrderLog
|
|
|
// TODO 设计:lili:是不是发货后,才支持售后?
|
|
@@ -439,11 +440,7 @@ public class TradeOrderUpdateServiceImpl implements TradeOrderUpdateService {
|
|
|
* @return 交易订单
|
|
|
*/
|
|
|
private TradeOrderDO validateOrderDeliverable(Long id) {
|
|
|
- // 校验订单是否存在
|
|
|
- TradeOrderDO order = tradeOrderMapper.selectById(id);
|
|
|
- if (order == null) {
|
|
|
- throw exception(ORDER_NOT_FOUND);
|
|
|
- }
|
|
|
+ TradeOrderDO order = validateOrder(id);
|
|
|
// 校验订单是否是待发货状态
|
|
|
if (!TradeOrderStatusEnum.isUndelivered(order.getStatus())) {
|
|
|
throw exception(ORDER_DELIVERY_FAIL_STATUS_NOT_UNDELIVERED);
|
|
@@ -469,6 +466,16 @@ public class TradeOrderUpdateServiceImpl implements TradeOrderUpdateService {
|
|
|
return order;
|
|
|
}
|
|
|
|
|
|
+ @NotNull
|
|
|
+ private TradeOrderDO validateOrder(Long id) {
|
|
|
+ // 校验订单是否存在
|
|
|
+ TradeOrderDO order = tradeOrderMapper.selectById(id);
|
|
|
+ if (order == null) {
|
|
|
+ throw exception(ORDER_NOT_FOUND);
|
|
|
+ }
|
|
|
+ return order;
|
|
|
+ }
|
|
|
+
|
|
|
@Override
|
|
|
@Transactional(rollbackFor = Exception.class)
|
|
|
public void receiveOrder(Long userId, Long id) {
|
|
@@ -489,14 +496,39 @@ public class TradeOrderUpdateServiceImpl implements TradeOrderUpdateService {
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
- public void remarkOrder(Long loginUserId, TradeOrderRemarkReqVO remarkReqVO) {
|
|
|
+ public void remarkOrder(TradeOrderRemarkReqVO reqVO) {
|
|
|
// 校验并获得交易订单
|
|
|
- validateOrderDeliverable(remarkReqVO.getId());
|
|
|
+ validateOrder(reqVO.getId());
|
|
|
|
|
|
- TradeOrderDO updateOrderObj = new TradeOrderDO();
|
|
|
- updateOrderObj.setId(remarkReqVO.getId());
|
|
|
- updateOrderObj.setRemark(remarkReqVO.getRemark());
|
|
|
- tradeOrderMapper.updateById(updateOrderObj);
|
|
|
+ // 更新
|
|
|
+ TradeOrderDO order = TradeOrderConvert.INSTANCE.convert(reqVO);
|
|
|
+ tradeOrderMapper.updateById(order);
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public void adjustPrice(TradeOrderAdjustPriceReqVO reqVO) {
|
|
|
+ // 校验交易订单
|
|
|
+ TradeOrderDO order = validateOrder(reqVO.getId());
|
|
|
+ if (order.getPayStatus()) {
|
|
|
+ throw exception(ORDER_PAID_NO_ADJUST_PRICE);
|
|
|
+ }
|
|
|
+
|
|
|
+ // 更新
|
|
|
+ TradeOrderDO update = TradeOrderConvert.INSTANCE.convert(reqVO);
|
|
|
+ update.setPayPrice(update.getPayPrice() + update.getAdjustPrice());
|
|
|
+ tradeOrderMapper.updateById(update);
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public void adjustAddress(TradeOrderAdjustAddressReqVO reqVO) {
|
|
|
+ // 校验交易订单
|
|
|
+ validateOrder(reqVO.getId());
|
|
|
+ // TODO 是否需要校验订单是否发货
|
|
|
+ // TODO 发货后是否支持修改收货地址
|
|
|
+
|
|
|
+ // 更新
|
|
|
+ TradeOrderDO update = TradeOrderConvert.INSTANCE.convert(reqVO);
|
|
|
+ tradeOrderMapper.updateById(update);
|
|
|
}
|
|
|
|
|
|
/**
|