|
@@ -29,8 +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.CouponApi;
|
|
import cn.iocoder.yudao.module.promotion.api.coupon.dto.CouponUseReqDTO;
|
|
import cn.iocoder.yudao.module.promotion.api.coupon.dto.CouponUseReqDTO;
|
|
import cn.iocoder.yudao.module.promotion.enums.combination.CombinationRecordStatusEnum;
|
|
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.TradeOrderUpdateAddressReqVO;
|
|
|
|
+import cn.iocoder.yudao.module.trade.controller.admin.order.vo.TradeOrderUpdatePriceReqVO;
|
|
import cn.iocoder.yudao.module.trade.controller.admin.order.vo.TradeOrderDeliveryReqVO;
|
|
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.admin.order.vo.TradeOrderRemarkReqVO;
|
|
import cn.iocoder.yudao.module.trade.controller.app.order.vo.AppTradeOrderCreateReqVO;
|
|
import cn.iocoder.yudao.module.trade.controller.app.order.vo.AppTradeOrderCreateReqVO;
|
|
@@ -68,7 +68,7 @@ import java.util.Objects;
|
|
import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception;
|
|
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.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_NOT_FOUND;
|
|
-import static cn.iocoder.yudao.module.pay.enums.ErrorCodeConstants.ORDER_PAID_NO_ADJUST_PRICE;
|
|
|
|
|
|
+import static cn.iocoder.yudao.module.pay.enums.ErrorCodeConstants.ORDER_UPDATE_PRICE_FAIL_PAID;
|
|
import static cn.iocoder.yudao.module.trade.enums.ErrorCodeConstants.*;
|
|
import static cn.iocoder.yudao.module.trade.enums.ErrorCodeConstants.*;
|
|
|
|
|
|
/**
|
|
/**
|
|
@@ -350,7 +350,7 @@ public class TradeOrderUpdateServiceImpl implements TradeOrderUpdateService {
|
|
*/
|
|
*/
|
|
private KeyValue<TradeOrderDO, PayOrderRespDTO> validateOrderPayable(Long id, Long payOrderId) {
|
|
private KeyValue<TradeOrderDO, PayOrderRespDTO> validateOrderPayable(Long id, Long payOrderId) {
|
|
// 校验订单是否存在
|
|
// 校验订单是否存在
|
|
- TradeOrderDO order = validateOrder(id);
|
|
|
|
|
|
+ TradeOrderDO order = validateOrderExists(id);
|
|
// 校验订单未支付
|
|
// 校验订单未支付
|
|
if (!TradeOrderStatusEnum.isUnpaid(order.getStatus()) || order.getPayStatus()) {
|
|
if (!TradeOrderStatusEnum.isUnpaid(order.getStatus()) || order.getPayStatus()) {
|
|
log.error("[validateOrderPaid][order({}) 不处于待支付状态,请进行处理!order 数据是:{}]",
|
|
log.error("[validateOrderPaid][order({}) 不处于待支付状态,请进行处理!order 数据是:{}]",
|
|
@@ -397,8 +397,10 @@ public class TradeOrderUpdateServiceImpl implements TradeOrderUpdateService {
|
|
// TODO @puhui999:只有选择快递的,才可以发货
|
|
// TODO @puhui999:只有选择快递的,才可以发货
|
|
// 1.1 校验并获得交易订单(可发货)
|
|
// 1.1 校验并获得交易订单(可发货)
|
|
TradeOrderDO order = validateOrderDeliverable(deliveryReqVO.getId());
|
|
TradeOrderDO order = validateOrderDeliverable(deliveryReqVO.getId());
|
|
- TradeOrderDO updateOrderObj = new TradeOrderDO();
|
|
|
|
|
|
+
|
|
|
|
+ // TODO @puhui999:下面不修改 deliveryType,直接校验 deliveryType 是否为快递,是快递才可以发货;先做严格的方式哈。
|
|
// 判断发货类型
|
|
// 判断发货类型
|
|
|
|
+ TradeOrderDO updateOrderObj = new TradeOrderDO();
|
|
// 2.1 快递发货
|
|
// 2.1 快递发货
|
|
if (ObjectUtil.notEqual(deliveryReqVO.getLogisticsId(), 0L)) {
|
|
if (ObjectUtil.notEqual(deliveryReqVO.getLogisticsId(), 0L)) {
|
|
// 校验快递公司
|
|
// 校验快递公司
|
|
@@ -414,13 +416,13 @@ public class TradeOrderUpdateServiceImpl implements TradeOrderUpdateService {
|
|
// 2.2 无需发货
|
|
// 2.2 无需发货
|
|
updateOrderObj.setLogisticsId(0L).setLogisticsNo("").setDeliveryType(DeliveryTypeEnum.NULL.getMode());
|
|
updateOrderObj.setLogisticsId(0L).setLogisticsNo("").setDeliveryType(DeliveryTypeEnum.NULL.getMode());
|
|
}
|
|
}
|
|
-
|
|
|
|
// 更新 TradeOrderDO 状态为已发货,等待收货
|
|
// 更新 TradeOrderDO 状态为已发货,等待收货
|
|
updateOrderObj.setStatus(TradeOrderStatusEnum.DELIVERED.getStatus()).setDeliveryTime(LocalDateTime.now());
|
|
updateOrderObj.setStatus(TradeOrderStatusEnum.DELIVERED.getStatus()).setDeliveryTime(LocalDateTime.now());
|
|
int updateCount = tradeOrderMapper.updateByIdAndStatus(order.getId(), order.getStatus(), updateOrderObj);
|
|
int updateCount = tradeOrderMapper.updateByIdAndStatus(order.getId(), order.getStatus(), updateOrderObj);
|
|
if (updateCount == 0) {
|
|
if (updateCount == 0) {
|
|
throw exception(ORDER_DELIVERY_FAIL_STATUS_NOT_UNDELIVERED);
|
|
throw exception(ORDER_DELIVERY_FAIL_STATUS_NOT_UNDELIVERED);
|
|
}
|
|
}
|
|
|
|
+
|
|
// TODO 芋艿:发送订单变化的消息
|
|
// TODO 芋艿:发送订单变化的消息
|
|
|
|
|
|
// 发送站内信
|
|
// 发送站内信
|
|
@@ -428,7 +430,6 @@ public class TradeOrderUpdateServiceImpl implements TradeOrderUpdateService {
|
|
.setUserId(order.getUserId()).setMessage(null));
|
|
.setUserId(order.getUserId()).setMessage(null));
|
|
|
|
|
|
// TODO 芋艿:OrderLog
|
|
// TODO 芋艿:OrderLog
|
|
- // TODO 设计:lili:是不是发货后,才支持售后?
|
|
|
|
}
|
|
}
|
|
|
|
|
|
/**
|
|
/**
|
|
@@ -440,8 +441,9 @@ public class TradeOrderUpdateServiceImpl implements TradeOrderUpdateService {
|
|
* @return 交易订单
|
|
* @return 交易订单
|
|
*/
|
|
*/
|
|
private TradeOrderDO validateOrderDeliverable(Long id) {
|
|
private TradeOrderDO validateOrderDeliverable(Long id) {
|
|
- TradeOrderDO order = validateOrder(id);
|
|
|
|
|
|
+ TradeOrderDO order = validateOrderExists(id);
|
|
// 校验订单是否是待发货状态
|
|
// 校验订单是否是待发货状态
|
|
|
|
+ // TODO @puhui999:已经发货,可以重新发货,修改信息;
|
|
if (!TradeOrderStatusEnum.isUndelivered(order.getStatus())) {
|
|
if (!TradeOrderStatusEnum.isUndelivered(order.getStatus())) {
|
|
throw exception(ORDER_DELIVERY_FAIL_STATUS_NOT_UNDELIVERED);
|
|
throw exception(ORDER_DELIVERY_FAIL_STATUS_NOT_UNDELIVERED);
|
|
}
|
|
}
|
|
@@ -452,6 +454,7 @@ public class TradeOrderUpdateServiceImpl implements TradeOrderUpdateService {
|
|
// 订单类型:拼团
|
|
// 订单类型:拼团
|
|
if (Objects.equals(TradeOrderTypeEnum.COMBINATION.getType(), order.getType())) {
|
|
if (Objects.equals(TradeOrderTypeEnum.COMBINATION.getType(), order.getType())) {
|
|
// 校验订单拼团是否成功
|
|
// 校验订单拼团是否成功
|
|
|
|
+ // TODO @puhui999:是不是取反?
|
|
if (combinationRecordApi.isCombinationRecordSuccess(order.getUserId(), order.getId())) {
|
|
if (combinationRecordApi.isCombinationRecordSuccess(order.getUserId(), order.getId())) {
|
|
throw exception(ORDER_DELIVERY_FAIL_COMBINATION_RECORD_STATUS_NOT_SUCCESS);
|
|
throw exception(ORDER_DELIVERY_FAIL_COMBINATION_RECORD_STATUS_NOT_SUCCESS);
|
|
}
|
|
}
|
|
@@ -459,6 +462,7 @@ public class TradeOrderUpdateServiceImpl implements TradeOrderUpdateService {
|
|
// 订单类类型:砍价
|
|
// 订单类类型:砍价
|
|
if (Objects.equals(TradeOrderTypeEnum.BARGAIN.getType(), order.getType())) {
|
|
if (Objects.equals(TradeOrderTypeEnum.BARGAIN.getType(), order.getType())) {
|
|
// 校验订单砍价是否成功
|
|
// 校验订单砍价是否成功
|
|
|
|
+ // TODO @puhui999:是不是取反?
|
|
if (bargainRecordApi.isBargainRecordSuccess(order.getUserId(), order.getId())) {
|
|
if (bargainRecordApi.isBargainRecordSuccess(order.getUserId(), order.getId())) {
|
|
throw exception(ORDER_DELIVERY_FAIL_BARGAIN_RECORD_STATUS_NOT_SUCCESS);
|
|
throw exception(ORDER_DELIVERY_FAIL_BARGAIN_RECORD_STATUS_NOT_SUCCESS);
|
|
}
|
|
}
|
|
@@ -467,7 +471,7 @@ public class TradeOrderUpdateServiceImpl implements TradeOrderUpdateService {
|
|
}
|
|
}
|
|
|
|
|
|
@NotNull
|
|
@NotNull
|
|
- private TradeOrderDO validateOrder(Long id) {
|
|
|
|
|
|
+ private TradeOrderDO validateOrderExists(Long id) {
|
|
// 校验订单是否存在
|
|
// 校验订单是否存在
|
|
TradeOrderDO order = tradeOrderMapper.selectById(id);
|
|
TradeOrderDO order = tradeOrderMapper.selectById(id);
|
|
if (order == null) {
|
|
if (order == null) {
|
|
@@ -496,9 +500,9 @@ public class TradeOrderUpdateServiceImpl implements TradeOrderUpdateService {
|
|
}
|
|
}
|
|
|
|
|
|
@Override
|
|
@Override
|
|
- public void remarkOrder(TradeOrderRemarkReqVO reqVO) {
|
|
|
|
|
|
+ public void updateOrderRemark(TradeOrderRemarkReqVO reqVO) {
|
|
// 校验并获得交易订单
|
|
// 校验并获得交易订单
|
|
- validateOrder(reqVO.getId());
|
|
|
|
|
|
+ validateOrderExists(reqVO.getId());
|
|
|
|
|
|
// 更新
|
|
// 更新
|
|
TradeOrderDO order = TradeOrderConvert.INSTANCE.convert(reqVO);
|
|
TradeOrderDO order = TradeOrderConvert.INSTANCE.convert(reqVO);
|
|
@@ -506,23 +510,24 @@ public class TradeOrderUpdateServiceImpl implements TradeOrderUpdateService {
|
|
}
|
|
}
|
|
|
|
|
|
@Override
|
|
@Override
|
|
- public void adjustPrice(TradeOrderAdjustPriceReqVO reqVO) {
|
|
|
|
|
|
+ public void updateOrderPrice(TradeOrderUpdatePriceReqVO reqVO) {
|
|
// 校验交易订单
|
|
// 校验交易订单
|
|
- TradeOrderDO order = validateOrder(reqVO.getId());
|
|
|
|
|
|
+ TradeOrderDO order = validateOrderExists(reqVO.getId());
|
|
if (order.getPayStatus()) {
|
|
if (order.getPayStatus()) {
|
|
- throw exception(ORDER_PAID_NO_ADJUST_PRICE);
|
|
|
|
|
|
+ throw exception(ORDER_UPDATE_PRICE_FAIL_PAID);
|
|
}
|
|
}
|
|
|
|
|
|
// 更新
|
|
// 更新
|
|
|
|
+ // TODO @puhui999:TradeOrderItemDO 需要做 adjustPrice 的分摊;另外,支付订单那的价格,需要 update 下;
|
|
TradeOrderDO update = TradeOrderConvert.INSTANCE.convert(reqVO);
|
|
TradeOrderDO update = TradeOrderConvert.INSTANCE.convert(reqVO);
|
|
update.setPayPrice(update.getPayPrice() + update.getAdjustPrice());
|
|
update.setPayPrice(update.getPayPrice() + update.getAdjustPrice());
|
|
tradeOrderMapper.updateById(update);
|
|
tradeOrderMapper.updateById(update);
|
|
}
|
|
}
|
|
|
|
|
|
@Override
|
|
@Override
|
|
- public void adjustAddress(TradeOrderAdjustAddressReqVO reqVO) {
|
|
|
|
|
|
+ public void updateOrderAddress(TradeOrderUpdateAddressReqVO reqVO) {
|
|
// 校验交易订单
|
|
// 校验交易订单
|
|
- validateOrder(reqVO.getId());
|
|
|
|
|
|
+ validateOrderExists(reqVO.getId());
|
|
// TODO 是否需要校验订单是否发货
|
|
// TODO 是否需要校验订单是否发货
|
|
// TODO 发货后是否支持修改收货地址
|
|
// TODO 发货后是否支持修改收货地址
|
|
|
|
|