|
@@ -11,7 +11,6 @@ import cn.iocoder.yudao.framework.common.core.KeyValue;
|
|
|
import cn.iocoder.yudao.framework.common.enums.UserTypeEnum;
|
|
|
import cn.iocoder.yudao.framework.common.util.json.JsonUtils;
|
|
|
import cn.iocoder.yudao.framework.common.util.number.MoneyUtils;
|
|
|
-import cn.iocoder.yudao.framework.common.util.servlet.ServletUtils;
|
|
|
import cn.iocoder.yudao.module.member.api.address.AddressApi;
|
|
|
import cn.iocoder.yudao.module.member.api.address.dto.AddressRespDTO;
|
|
|
import cn.iocoder.yudao.module.pay.api.order.PayOrderApi;
|
|
@@ -159,11 +158,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) {
|
|
|
+ public TradeOrderDO createOrder(Long userId, String userIp, AppTradeOrderCreateReqVO createReqVO, Integer terminal) {
|
|
|
// 1.1 价格计算
|
|
|
TradePriceCalculateRespBO calculateRespBO = calculatePrice(userId, createReqVO);
|
|
|
// 1.2 构建订单
|
|
|
- TradeOrderDO order = buildTradeOrder(userId, userIp, createReqVO, calculateRespBO);
|
|
|
+ TradeOrderDO order = buildTradeOrder(userId, userIp, createReqVO, calculateRespBO, terminal);
|
|
|
List<TradeOrderItemDO> orderItems = buildTradeOrderItems(order, calculateRespBO);
|
|
|
|
|
|
// 2. 订单创建前的逻辑
|
|
@@ -180,15 +179,14 @@ public class TradeOrderUpdateServiceImpl implements TradeOrderUpdateService {
|
|
|
}
|
|
|
|
|
|
private TradeOrderDO buildTradeOrder(Long userId, String clientIp, AppTradeOrderCreateReqVO createReqVO,
|
|
|
- TradePriceCalculateRespBO calculateRespBO) {
|
|
|
+ TradePriceCalculateRespBO calculateRespBO, Integer terminal) {
|
|
|
TradeOrderDO order = TradeOrderConvert.INSTANCE.convert(userId, clientIp, 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));
|
|
|
- // TODO @疯狂:无状态,terminal 不从 servletuTILS 拿,而是通过 controller 传递给 service;
|
|
|
- order.setTerminal(ServletUtils.getTerminal());
|
|
|
+ order.setTerminal(terminal);
|
|
|
// 支付 + 退款信息
|
|
|
order.setAdjustPrice(0).setPayStatus(false);
|
|
|
order.setRefundStatus(TradeOrderRefundStatusEnum.NONE.getStatus()).setRefundPrice(0);
|