Bläddra i källkod

update: 修复订单支付成功后,订单状态不会更新的问题。

Ben 1 år sedan
förälder
incheckning
ac399f0d93

+ 9 - 9
feifan-module-mall/feifan-module-trade-biz/src/main/java/cn/newfeifan/mall/module/trade/service/order/TradeOrderUpdateServiceImpl.java

@@ -9,7 +9,6 @@ import cn.hutool.core.util.RandomUtil;
 import cn.hutool.extra.spring.SpringUtil;
 import cn.newfeifan.mall.framework.common.core.KeyValue;
 import cn.newfeifan.mall.framework.common.enums.UserTypeEnum;
-import cn.newfeifan.mall.framework.common.pojo.CommonResult;
 import cn.newfeifan.mall.framework.common.util.json.JsonUtils;
 import cn.newfeifan.mall.framework.common.util.number.MoneyUtils;
 import cn.newfeifan.mall.module.distri.constant.DistriConstants;
@@ -20,8 +19,6 @@ import cn.newfeifan.mall.module.member.api.address.dto.MemberAddressRespDTO;
 import cn.newfeifan.mall.module.pay.api.order.PayOrderApi;
 import cn.newfeifan.mall.module.pay.api.order.dto.PayOrderCreateReqDTO;
 import cn.newfeifan.mall.module.pay.api.order.dto.PayOrderRespDTO;
-import cn.newfeifan.mall.module.pay.controller.admin.order.vo.PayOrderRespVO;
-import cn.newfeifan.mall.module.pay.convert.order.PayOrderConvert;
 import cn.newfeifan.mall.module.pay.dal.dataobject.order.PayOrderDO;
 import cn.newfeifan.mall.module.pay.dal.mysql.order.PayOrderMapper;
 import cn.newfeifan.mall.module.pay.enums.order.PayOrderStatusEnum;
@@ -62,22 +59,17 @@ import cn.newfeifan.mall.module.trade.service.price.TradePriceService;
 import cn.newfeifan.mall.module.trade.service.price.bo.TradePriceCalculateReqBO;
 import cn.newfeifan.mall.module.trade.service.price.bo.TradePriceCalculateRespBO;
 import cn.newfeifan.mall.module.trade.service.price.calculator.TradePriceCalculatorHelper;
-import io.swagger.v3.oas.annotations.Operation;
-import io.swagger.v3.oas.annotations.Parameter;
 import lombok.extern.slf4j.Slf4j;
 import org.jetbrains.annotations.NotNull;
 import org.springframework.beans.BeanUtils;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
-import org.springframework.web.bind.annotation.GetMapping;
-import org.springframework.web.bind.annotation.RequestParam;
 
 import javax.annotation.Resource;
 import java.time.LocalDateTime;
 import java.util.*;
 
 import static cn.newfeifan.mall.framework.common.exception.util.ServiceExceptionUtil.exception;
-import static cn.newfeifan.mall.framework.common.pojo.CommonResult.success;
 import static cn.newfeifan.mall.framework.common.util.collection.CollectionUtils.*;
 import static cn.newfeifan.mall.framework.common.util.date.LocalDateTimeUtils.minusTime;
 import static cn.newfeifan.mall.framework.common.util.servlet.ServletUtils.getClientIP;
@@ -565,7 +557,15 @@ public class TradeOrderUpdateServiceImpl implements TradeOrderUpdateService {
         BeanUtils.copyProperties(firstOrder, virtualOrder);
         virtualOrder.setPayPrice(allShopPayRMB);
         virtualOrder.setPayRmb(allShopPayRMB);
-        virtualOrder.setId(0l);//为了让payOrder中的tradeOrderId为0;
+
+        Integer shopCount = shopSkuIds.keySet().size();//订单对应的店铺数目
+        if(shopCount>1) {//如果多店铺拆分订单,则支付订单的商户订单id为0
+            virtualOrder.setId(0l);//为了让payOrder中的tradeOrderId为0;
+        } else if (shopCount==1) {
+            virtualOrder.setId(firstOrder.getId());//为了指定payOrder中的tradeOrderId;
+        }else{
+            throw new RuntimeException("订单id"+firstOrder.getId()+",对应一间店铺都没");
+        }
 
         // 3. 生成预支付:生成支付订单记录
         Long payOrderId = createPayOrder(virtualOrder, firstOrderItems);