|
@@ -64,6 +64,8 @@ import java.util.Set;
|
|
|
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.date.LocalDateTimeUtils.minusTime;
|
|
|
+import static cn.iocoder.yudao.framework.common.util.servlet.ServletUtils.getClientIP;
|
|
|
+import static cn.iocoder.yudao.framework.web.core.util.WebFrameworkUtils.getTerminal;
|
|
|
import static cn.iocoder.yudao.module.trade.enums.ErrorCodeConstants.*;
|
|
|
|
|
|
/**
|
|
@@ -158,11 +160,11 @@ public class TradeOrderUpdateServiceImpl implements TradeOrderUpdateService {
|
|
|
@Override
|
|
|
@Transactional(rollbackFor = Exception.class)
|
|
|
@TradeOrderLog(operateType = TradeOrderOperateTypeEnum.MEMBER_CREATE)
|
|
|
- public TradeOrderDO createOrder(Long userId, String userIp, AppTradeOrderCreateReqVO createReqVO, Integer terminal) {
|
|
|
+ public TradeOrderDO createOrder(Long userId, AppTradeOrderCreateReqVO createReqVO) {
|
|
|
// 1.1 价格计算
|
|
|
TradePriceCalculateRespBO calculateRespBO = calculatePrice(userId, createReqVO);
|
|
|
// 1.2 构建订单
|
|
|
- TradeOrderDO order = buildTradeOrder(userId, userIp, createReqVO, calculateRespBO, terminal);
|
|
|
+ TradeOrderDO order = buildTradeOrder(userId, createReqVO, calculateRespBO);
|
|
|
List<TradeOrderItemDO> orderItems = buildTradeOrderItems(order, calculateRespBO);
|
|
|
|
|
|
// 2. 订单创建前的逻辑
|
|
@@ -178,15 +180,15 @@ public class TradeOrderUpdateServiceImpl implements TradeOrderUpdateService {
|
|
|
return order;
|
|
|
}
|
|
|
|
|
|
- private TradeOrderDO buildTradeOrder(Long userId, String clientIp, AppTradeOrderCreateReqVO createReqVO,
|
|
|
- TradePriceCalculateRespBO calculateRespBO, Integer terminal) {
|
|
|
- TradeOrderDO order = TradeOrderConvert.INSTANCE.convert(userId, clientIp, createReqVO, calculateRespBO);
|
|
|
+ private TradeOrderDO buildTradeOrder(Long userId, AppTradeOrderCreateReqVO createReqVO,
|
|
|
+ TradePriceCalculateRespBO calculateRespBO) {
|
|
|
+ TradeOrderDO order = TradeOrderConvert.INSTANCE.convert(userId, createReqVO, calculateRespBO);
|
|
|
order.setType(calculateRespBO.getType());
|
|
|
order.setNo(tradeNoRedisDAO.generate(TradeNoRedisDAO.TRADE_ORDER_NO_PREFIX));
|
|
|
order.setStatus(TradeOrderStatusEnum.UNPAID.getStatus());
|
|
|
order.setRefundStatus(TradeOrderRefundStatusEnum.NONE.getStatus());
|
|
|
order.setProductCount(getSumValue(calculateRespBO.getItems(), TradePriceCalculateRespBO.OrderItem::getCount, Integer::sum));
|
|
|
- order.setTerminal(terminal);
|
|
|
+ order.setUserIp(getClientIP()).setTerminal(getTerminal());
|
|
|
// 支付 + 退款信息
|
|
|
order.setAdjustPrice(0).setPayStatus(false);
|
|
|
order.setRefundStatus(TradeOrderRefundStatusEnum.NONE.getStatus()).setRefundPrice(0);
|