From c305c2c555deda505af789ab3a7471996379c525 Mon Sep 17 00:00:00 2001
From: rentaiming <806181062@qq.com>
Date: 星期三, 03 七月 2024 18:35:13 +0800
Subject: [PATCH] 修改bug

---
 ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/OrderServiceImpl.java |  108 +++++++++++++++++++++++++++++++++++++++++++-----------
 1 files changed, 86 insertions(+), 22 deletions(-)

diff --git a/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/OrderServiceImpl.java b/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/OrderServiceImpl.java
index f79a88e..f52612c 100644
--- a/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/OrderServiceImpl.java
+++ b/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/OrderServiceImpl.java
@@ -291,7 +291,7 @@
             String goodsLock = "goods_lock_" + CacheConstants.SECKILL_GOODS + data.getId();
             RLock redissonLock = redissonClient.getLock(goodsLock);
             Integer surpNum = 0;
-            try {
+        /*    try {
                 redissonLock.lock(30, TimeUnit.SECONDS);
                 surpNum = redisService.getCacheObject(CacheConstants.SECKILL_GOODS + data.getId());
                 if (surpNum == null || surpNum < memberOrderDTO.getGoodsQuantity()) {
@@ -300,10 +300,26 @@
 
             }catch (Exception e){
                 throw new ServiceException("reids 出错");
+            }*/
+
+            MemberOrderDTO memberOrderDTO1=new MemberOrderDTO();
+            memberOrderDTO1.setMemberId(order.getMemberId());
+            memberOrderDTO1.setGoodsSkuId(memberOrderDTO.getGoodsSkuId());
+            Integer num=baseMapper.getSeckillMembers1(memberOrderDTO1);
+            Integer num1=0;
+            if (num!=null){
+                num1 =num+1;
+            }else{
+                num1=order.getGoodsQuantity();
             }
-            order.setOrderFrom(OrderFromEnum.SNAP_ORDERS);
+
 
             GoodsSku goodsSku = goodsSkuClient.getGoodsSkuOne(data.getGoodsSkuId(), SecurityConstants.INNER).getData();
+            if (data.getLimitNumber()<num1) {
+                throw new ServiceException("对不起,大于商品购买数");
+            }
+
+            order.setOrderFrom(OrderFromEnum.SNAP_ORDERS);
             memberOrderVO.setGoodsSkuId(memberOrderDTO.getGoodsSkuId());
             memberOrderVO.setPrice(data.getSeckillPrice());
             memberOrderVO.setSjPrice(goodsSku.getPrice());
@@ -312,12 +328,12 @@
             memberOrderVO.setYouhiPrice(data.getSeckillPrice());
             pice=data.getSeckillPrice();
 
-            if (data.getSeckillStock()<memberOrderDTO.getGoodsQuantity()){
+            if (data.getSeckillStock()<1){
                 throw new ServiceException("对不起,购买数大于库存");
             }else{
                 GoodsStockUpdDTO goodsStockUpdDTO = new GoodsStockUpdDTO();
-                goodsStockUpdDTO.setGoodsSkuId(goodsSku.getId());
-                goodsStockUpdDTO.setAuctionStock(data.getSeckillStock()-memberOrderDTO.getGoodsQuantity());
+                goodsStockUpdDTO.setGoodsSkuId(data.getId());
+                goodsStockUpdDTO.setAuctionStock(data.getSeckillStock()-1);
                 goodsSkuClient.updGoodsSeckill(goodsStockUpdDTO,SecurityConstants.INNER);
 
             }
@@ -421,21 +437,20 @@
         }if (memberOrderDTO.getGoodsQuantity()!=null){
             if (order.getOrderFrom().getCode()==1){
                 GoodsSku goodsSku = goodsSkuClient.getGoodsSkuOne(order.getGoodsSkuId(), SecurityConstants.INNER).getData();
-                if (goodsSku.getStock()<memberOrderDTO.getGoodsQuantity()){
-                    throw new ServiceException("对不起,购买数大于库存");
-                }else{
+
                     GoodsStockUpdDTO goodsStockUpdDTO = new GoodsStockUpdDTO();
                     goodsStockUpdDTO.setGoodsSkuId(goodsSku.getId());
                     goodsStockUpdDTO.setAuctionStock(goodsSku.getStock()+order.getGoodsQuantity());
                     goodsSkuClient.updGoodsStock1(goodsStockUpdDTO,
                             SecurityConstants.INNER);
 
-                    GoodsStockUpdDTO goodsStockUpdDTO1 = new GoodsStockUpdDTO();
-                    goodsStockUpdDTO1.setGoodsSkuId(goodsSku.getId());
-                    goodsStockUpdDTO1.setAuctionStock(goodsSku.getStock()-memberOrderDTO.getGoodsQuantity());
+                if (goodsSku.getStock()+order.getGoodsQuantity()<memberOrderDTO.getGoodsQuantity()){
+                    throw new ServiceException("对不起,购买数大于库存");
+                }
+                     Integer m= goodsSku.getStock()+order.getGoodsQuantity();
+                    goodsStockUpdDTO.setAuctionStock(m-memberOrderDTO.getGoodsQuantity());
                     goodsSkuClient.updGoodsStock1(goodsStockUpdDTO,
                             SecurityConstants.INNER);
-
                     order.setTotalAmount(goodsSku.getPrice().multiply(new BigDecimal(memberOrderDTO.getGoodsQuantity())));
                     order.setGoodsQuantity(memberOrderDTO.getGoodsQuantity());
                     memberOrderVO.setGoodsSkuId(memberOrderDTO.getGoodsSkuId());
@@ -444,7 +459,7 @@
                     memberOrderVO.setSkuName(goodsSku.getSkuName());
                 }
 
-            }
+
             if (order.getOrderFrom().getCode()==2){
                 MemberOrderDTO memberOrderDTO1=new MemberOrderDTO();
                 memberOrderDTO1.setMemberId(order.getMemberId());
@@ -459,22 +474,23 @@
 
                 GoodsSeckill data = goodsSkuClient.getGoodsSeckillOne(order.getGoodsSkuId(), SecurityConstants.INNER).getData();
                 GoodsSku goodsSku = goodsSkuClient.getGoodsSkuOne(data.getGoodsSkuId(), SecurityConstants.INNER).getData();
-                if (data.getLimitNumber()<=num1){
+                if (data.getLimitNumber()<num1){
                     throw new ServiceException("对不起,大于商品购买数");
                 }else{
-                    if (data.getSeckillStock()<memberOrderDTO.getGoodsQuantity()){
-                        throw new ServiceException("对不起,购买数大于库存");
-                    }else{
-                        order.setGoodsQuantity(memberOrderDTO.getGoodsQuantity());
                     GoodsStockUpdDTO goodsStockUpdDTO = new GoodsStockUpdDTO();
                     goodsStockUpdDTO.setGoodsSkuId(data.getId());
                     goodsStockUpdDTO.setAuctionStock(data.getSeckillStock()+order.getGoodsQuantity());
                     goodsSkuClient.updGoodsSeckill(goodsStockUpdDTO,SecurityConstants.INNER);
 
+                    if (data.getSeckillStock()+order.getGoodsQuantity()<memberOrderDTO.getGoodsQuantity()){
+                        throw new ServiceException("对不起,购买数大于库存");
+                    }
+
+                    Integer m=data.getSeckillStock()+order.getGoodsQuantity();
                     GoodsStockUpdDTO goodsStockUpdDTO1 = new GoodsStockUpdDTO();
                     goodsStockUpdDTO1.setGoodsSkuId(data.getId());
-                    goodsStockUpdDTO1.setAuctionStock(data.getSeckillStock()-memberOrderDTO.getGoodsQuantity());
-                    goodsSkuClient.updGoodsSeckill(goodsStockUpdDTO,SecurityConstants.INNER);
+                    goodsStockUpdDTO1.setAuctionStock(m-memberOrderDTO.getGoodsQuantity());
+                    goodsSkuClient.updGoodsSeckill(goodsStockUpdDTO1,SecurityConstants.INNER);
 
                         order.setTotalAmount(data.getSeckillPrice().multiply(new BigDecimal(memberOrderDTO.getGoodsQuantity())));
                         order.setGoodsQuantity(memberOrderDTO.getGoodsQuantity());
@@ -483,7 +499,7 @@
                         order.setCoverPic(goodsSku.getCoverPic());
                         order.setSjPrice(goodsSku.getPrice());
 
-                }
+
             }
                 memberOrderVO.setGoodsSkuId(memberOrderDTO.getGoodsSkuId());
                 memberOrderVO.setPrice(goodsSku.getPrice());
@@ -652,6 +668,20 @@
         PageDTO<MemberOrderListVO> memberOrderListVOPageDTO = PageDTO.of(page1, MemberOrderListVO.class);
         List<MemberOrderListVO> list = memberOrderListVOPageDTO.getList();
         for (MemberOrderListVO MemberOrderList:list){
+            if (MemberOrderList.getOrderStatus().getCode()==1){
+                if (MemberOrderList.getOrderFrom().getCode()==1||MemberOrderList.getOrderFrom().getCode()==2||MemberOrderList.getOrderFrom().getCode()==3){
+                    LocalDateTime localDateTime = MemberOrderList.getOrderTime().plusMinutes(30);
+                    if (LocalDateTime.now().isAfter(localDateTime)) {
+                        // dateTime1 在 dateTime2 之后
+                        MemberOrderList.setOrderStatus(OrderStatusEnum.CANCELED);
+                        Order order = this.getOrder(MemberOrderList.getId());
+                        order.setOrderStatus(OrderStatusEnum.CANCELED);
+                        this.updateById(order);
+                    }
+
+                }
+
+            }
             OrderReturnRequest orderReturnRequest = orderReturnRequestService.getOne(
                     Wrappers.lambdaQuery(OrderReturnRequest.class)
                             .eq(OrderReturnRequest::getOrderId,
@@ -730,11 +760,45 @@
             order.setOrderStatus(OrderStatusEnum.CANCELED);
             order.setCancelTime(LocalDateTime.now());
             baseMapper.updateById(order);
+
+            if(order.getOrderNo().contains("SP")){
+                GoodsSku goodsSku = goodsSkuClient.getGoodsSkuOne(order.getGoodsSkuId(), SecurityConstants.INNER).getData();
+                GoodsStockUpdDTO goodsStockUpdDTO1 = new GoodsStockUpdDTO();
+                goodsStockUpdDTO1.setGoodsSkuId(order.getGoodsSkuId());
+                goodsStockUpdDTO1.setAuctionStock(goodsSku.getStock()+order.getGoodsQuantity());
+                goodsSkuClient.updGoodsStock1(goodsStockUpdDTO1,SecurityConstants.INNER);
+            }
+
+            if(order.getOrderNo().contains("MS")){
+                GoodsSeckill data = goodsSkuClient.getGoodsSeckillOne(order.getGoodsSkuId(), SecurityConstants.INNER).getData();
+                GoodsStockUpdDTO goodsStockUpdDTO1 = new GoodsStockUpdDTO();
+                goodsStockUpdDTO1.setGoodsSkuId(order.getGoodsSkuId());
+                goodsStockUpdDTO1.setAuctionStock(data.getSeckillStock()+order.getGoodsQuantity());
+                goodsSkuClient.updGoodsStock1(goodsStockUpdDTO1,SecurityConstants.INNER);
+            }
+
+
         }
         if (order.getOrderStatus().getCode() == 2) {
             order.setOrderStatus(OrderStatusEnum.CANCELED);
             order.setCancelTime(LocalDateTime.now());
             baseMapper.updateById(order);
+
+            if(order.getOrderNo().contains("SP")){
+                GoodsSku goodsSku = goodsSkuClient.getGoodsSkuOne(order.getGoodsSkuId(), SecurityConstants.INNER).getData();
+                GoodsStockUpdDTO goodsStockUpdDTO1 = new GoodsStockUpdDTO();
+                goodsStockUpdDTO1.setGoodsSkuId(order.getGoodsSkuId());
+                goodsStockUpdDTO1.setAuctionStock(goodsSku.getStock()+order.getGoodsQuantity());
+                goodsSkuClient.updGoodsStock1(goodsStockUpdDTO1,SecurityConstants.INNER);
+            }
+
+            if(order.getOrderNo().contains("MS")){
+                GoodsSeckill data = goodsSkuClient.getGoodsSeckillOne(order.getGoodsSkuId(), SecurityConstants.INNER).getData();
+                GoodsStockUpdDTO goodsStockUpdDTO1 = new GoodsStockUpdDTO();
+                goodsStockUpdDTO1.setGoodsSkuId(order.getGoodsSkuId());
+                goodsStockUpdDTO1.setAuctionStock(data.getSeckillStock()+order.getGoodsQuantity());
+                goodsSkuClient.updGoodsStock1(goodsStockUpdDTO1,SecurityConstants.INNER);
+            }
 
             if (order.getCouponId()!=0){
                 CouponMemberDTO couponMemberDTO1=new CouponMemberDTO();
@@ -749,7 +813,7 @@
             MembeOneDTO.setMemberId(order.getMemberId());
             MembeOneDTO.setMoney(order.getTotalAmount());
             MembeOneDTO.setTotalPoints(order.getPoints());
-            memberClient.updMembeOne(MembeOneDTO);
+            memberClient.updMembeOne(MembeOneDTO, SecurityConstants.INNER);
 
 
             if (order.getPaymentMethod() != null && order.getPaymentMethod().getCode() == 1) {//支付宝

--
Gitblit v1.7.1