From 8dceb015ec8bd9642297d757e73936af84f4aaf1 Mon Sep 17 00:00:00 2001
From: mitao <2763622819@qq.com>
Date: 星期三, 14 八月 2024 18:32:19 +0800
Subject: [PATCH] 修改bug

---
 ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/PaylogServiceImpl.java |   48 +++++++++++++++++++++++++++++++++++++-----------
 1 files changed, 37 insertions(+), 11 deletions(-)

diff --git a/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/PaylogServiceImpl.java b/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/PaylogServiceImpl.java
index 3830f2c..07acaaf 100644
--- a/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/PaylogServiceImpl.java
+++ b/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/PaylogServiceImpl.java
@@ -13,9 +13,11 @@
 import com.ruoyi.common.core.constant.SecurityConstants;
 import com.ruoyi.common.core.domain.R;
 import com.ruoyi.common.core.enums.BondStatusEnum;
+import com.ruoyi.common.core.enums.OrderFromEnum;
 import com.ruoyi.common.core.enums.OrderStatusEnum;
 import com.ruoyi.common.core.enums.PaymentMethodEnum;
 import com.ruoyi.common.core.enums.PointStatusEnum;
+import com.ruoyi.common.core.exception.ServiceException;
 import com.ruoyi.common.core.utils.StringUtils;
 import com.ruoyi.order.domain.Paylog;
 import com.ruoyi.order.mapper.OrderAuctionBondMapper;
@@ -30,6 +32,7 @@
 import com.ruoyi.order.util.tencent.common.XMLParser;
 import com.ruoyi.system.api.domain.GoodsGroupPurchase;
 import com.ruoyi.system.api.domain.GoodsGroupPurchaseInfo;
+import com.ruoyi.system.api.domain.GoodsSeckill;
 import com.ruoyi.system.api.domain.GoodsSku;
 import com.ruoyi.system.api.domain.Member;
 import com.ruoyi.system.api.domain.Order;
@@ -52,6 +55,7 @@
 import java.util.Iterator;
 import java.util.List;
 import java.util.Map;
+import java.util.Objects;
 import java.util.Optional;
 import java.util.Set;
 import java.util.SortedMap;
@@ -117,11 +121,6 @@
                     wrapper1.eq(OrderAuctionBond::getOrderNo,orderNO);
                     wrapper1.eq(OrderAuctionBond::getDelFlag,0);
                     OrderAuctionBond one1 = orderAuctionBondMapper.selectOne(wrapper1);
-                    one1.setBoundStatus(BondStatusEnum.PAID);
-                    one1.setPaymentMethod(paymentMethodEnum);
-                    orderAuctionBondMapper.updateById(one1);
-
-
                     if (one1.getBond()==null||one1.getBond().compareTo(new BigDecimal(0))==0){
                         one1.setBoundStatus(BondStatusEnum.PAID);
                         Map<String, Object> returnMap = new HashMap<>();
@@ -136,17 +135,44 @@
                     wrapper1.eq(Order::getOrderNo,orderNO);
                     wrapper1.eq(Order::getDelFlag,0);
                     Order page1 = OrderMapper.selectOne(wrapper1);
-                    page1.setOrderStatus(OrderStatusEnum.TO_BE_SHIPPED);
-                    page1.setPaymentMethod(paymentMethodEnum);
-                    page1.setPayTime(LocalDateTime.now());
-                    OrderMapper.updateById(page1);
+                    // 判断商品库存
+                    Long goodsSkuId = page1.getGoodsSkuId();
+                    OrderFromEnum orderFrom = page1.getOrderFrom();
+                    switch (orderFrom) {
+                        case COMMODITY_ORDER:
+                            GoodsSku goods = goodsSkuClient.getGoodsSkuOne(goodsSkuId,
+                                    SecurityConstants.INNER).getData();
+                            if (Objects.isNull(goods)) {
+                                throw new ServiceException("该商品已下架");
+                            }
+                            if (goods.getStock() <= 0) {
+                                throw new ServiceException("该商品已售罄");
+                            }
+                            if (goods.getStock() < page1.getGoodsQuantity()) {
+                                throw new ServiceException("该商品库存不足");
+                            }
+                            break;
+                        case SNAP_ORDERS:
+                            GoodsSeckill data = goodsSkuClient.getGoodsSeckillOne(goodsSkuId,
+                                    SecurityConstants.INNER).getData();
+                            if (Objects.isNull(data)) {
+                                throw new ServiceException("该商品已下架");
+                            }
+                            if (data.getSeckillStock() <= 0) {
+                                throw new ServiceException("该商品已售罄");
+                            }
+                            if (data.getSeckillStock() < page1.getGoodsQuantity()) {
+                                throw new ServiceException("该商品库存不足");
+                            }
+                            break;
+                        default:
+                            break;
+                    }
                     if (page1.getTotalAmount().compareTo(new BigDecimal(0))==0){
                         Map<String, Object> returnMap = new HashMap<>();
                         returnMap.put("Type",1);
                         return R.ok(returnMap);
                     }
-                    OrderMapper.updateById(page1);
-
                     if (page1.getPoints()!=0){
                         MemberPointsDTO memberPointsDTO=new MemberPointsDTO();
                         memberPointsDTO.setMemberId(page1.getMemberId());

--
Gitblit v1.7.1