From 968e374ed1c2ef0595b277fc44067fb61e063a41 Mon Sep 17 00:00:00 2001
From: huliguo <2023611923@qq.com>
Date: 星期五, 04 七月 2025 17:33:57 +0800
Subject: [PATCH] bug修改

---
 ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/order/OrderServiceImpl.java |   88 +++++++++++++++++++++++++++++++++++++++-----
 1 files changed, 78 insertions(+), 10 deletions(-)

diff --git a/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/order/OrderServiceImpl.java b/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/order/OrderServiceImpl.java
index 6d9e8e8..41499eb 100644
--- a/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/order/OrderServiceImpl.java
+++ b/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/order/OrderServiceImpl.java
@@ -184,7 +184,7 @@
         if(shop!=null&&shop.getShopStatus()!=1){
             throw new ServiceException(AppErrorConstant.SHOP_CLOSED);
         }
-        Shop belongShop = remoteShopService.getShop(shop.getBelongShopId()).getData();
+//        Shop belongShop = remoteShopService.getShop(shop.getBelongShopId()).getData();
         // 初始化订单对象
         AppSureOrderVo appSureOrderVo = new AppSureOrderVo();
         // 初始化订单商品列表
@@ -268,15 +268,20 @@
             appShopGoodsGetDto.setGoodsId(goods.getGoodsId());
             appShopGoodsGetDto.setShopId(appSureOrderDto.getShopId());
             ShopGoods shopGoods = remoteGoodsService.getShopGoods(appShopGoodsGetDto).getData();
+            //商户是否定制价格
             if (shopGoods != null) {
                 goodsPrice = shopGoods.getSalesPrice();
-            } else {
+            }
+            //是否绑定经销商
+            if(shop.getBelongShopId()!=null &&shop.getShopType()==2){
                 //经销商定制价格
-                appShopGoodsGetDto.setGoodsId(goods.getGoodsId());
-                appShopGoodsGetDto.setShopId(belongShop.getShopId());
-                shopGoods = remoteGoodsService.getShopGoods(appShopGoodsGetDto).getData();
+                AppShopGoodsGetDto shopGoodsGetDto=new AppShopGoodsGetDto();
+                shopGoodsGetDto.setGoodsId(goods.getGoodsId());
+                shopGoodsGetDto.setShopId(shop.getBelongShopId());
+                Shop belongShop = remoteShopService.getShop(shop.getBelongShopId()).getData();
+                shopGoods = remoteGoodsService.getShopGoods(shopGoodsGetDto).getData();
                 if (1 == belongShop.getModifyPricePermission() && null != shopGoods) {
-                    goodsPrice = shopGoods.getSalesPrice();
+                    goodsPrice=shopGoods.getSalesPrice();
                 }
             }
             appSureOrderGoodsVo.setGoodsPrice(goodsPrice);
@@ -461,7 +466,9 @@
         ShopGoods shopGoods = remoteGoodsService.getShopGoods(appShopGoodsGetDto).getData();
         if (shopGoods != null) {
             goodsPrice = shopGoods.getSalesPrice();
-        } else {
+        }
+        //是否绑定经销商
+        if(shop.getBelongShopId()!=null &&shop.getShopType()==2){
             //经销商定制价格
             Shop belongShop = remoteShopService.getShop(shop.getBelongShopId()).getData();
             appShopGoodsGetDto = new AppShopGoodsGetDto();
@@ -577,6 +584,10 @@
         //使用优惠券
         StringJoiner memberCouponSJ = new StringJoiner(",");
         List<String> goodsNameList = new ArrayList<>();
+        Shop shop = remoteShopService.getShop(appPlaceOrderDto.getShopId()).getData();
+        if(shop!=null&&shop.getShopStatus()!=1){
+            throw new ServiceException(AppErrorConstant.SHOP_CLOSED);
+        }
         // 遍历购买的商品列表
         for (AppBuyGoodsDto appBuyGoodsDto : appBuyGoodsDtoList) {
             appSureOrderGoodsVo = new AppSureOrderGoodsVo();
@@ -610,9 +621,10 @@
             if (shopGoods != null) {
                 goodsPrice = shopGoods.getSalesPrice();
                 serviceNum = shopGoods.getServiceNum();
-            } else {
+            }
+            //是否绑定经销商
+            if(shop.getBelongShopId()!=null &&shop.getShopType()==2){
                 //经销商定制价格
-                Shop shop = remoteShopService.getShop(appPlaceOrderDto.getShopId()).getData();
                 Shop belongShop = remoteShopService.getShop(shop.getBelongShopId()).getData();
                 appShopGoodsGetDto = new AppShopGoodsGetDto();
                 appShopGoodsGetDto.setGoodsId(goods.getGoodsId());
@@ -1584,7 +1596,7 @@
             List<TLotteryEvent> collect = data.stream().filter(s -> s.getPayMoney().compareTo(order.getPayMoney()) >= 0).collect(Collectors.toList());
             appPlaceOrderVo.setLotteryDraw(collect.size() > 0);
             if (collect.size() > 0) {
-                appPlaceOrderVo.setLotteryEventId(collect.get(0).getEventId());
+                appPlaceOrderVo.setLotteryEventId(collect.get(0).getId());
             }
         } else {
             appPlaceOrderVo.setLotteryDraw(false);
@@ -6709,4 +6721,60 @@
         }
         return new ArrayList<>();
     }
+    /**
+     * 后台取消订单
+     * 订单状态变为已取消 不退款
+     * @param dto
+     */
+    @Override
+    public R cancelOrderBySys(CancelOrderDTO dto) {
+        Order order = this.getById(dto.getOrderId());
+        // 订单状态-1.删除 0.已取消 1.待支付 2.待核销 3.已完成
+        if(null == order || order.getDelFlag() == -1){
+            return R.fail("订单不存在");
+        }
+
+        if (order.getOrderStatus() == 0) {
+            return R.fail(AppErrorConstant.CANCEL_CANCEL_ORDER);
+        } else if (order.getOrderStatus() == 1) {
+            //删除待支付超时取消延时任务
+            redisService.deleteObject(DelayTaskEnum.ORDER_AUTOMATIC_CANCEL.getCode() + "-" + order.getOrderId());
+            remoteConfigService.deleteDelayTask(DelayTaskEnum.ORDER_AUTOMATIC_CANCEL.getCode()+"-"+order.getOrderId());
+            order.setOrderStatus(0);
+            order.setCancelTime(new Date());
+            this.saveOrUpdate(order);
+        } else if (order.getOrderStatus() == 2) {
+            // 2.待核销
+            order.setOrderStatus(0);
+            order.setCancelTime(new Date());
+            this.saveOrUpdate(order);
+        } else {
+            return R.fail(AppErrorConstant.CANCEL_ERROR_ORDER);
+        }
+        return R.ok();
+    }
+
+    @Override
+    public R refundOrderBySys(CancelOrderDTO dto) {
+        Order order = this.getById(dto.getOrderId());
+        // 订单状态-1.删除 0.已取消 1.待支付 2.待核销 3.已完成
+        if(null == order || order.getDelFlag() == -1){
+            return R.fail("订单不存在");
+        }
+        if (order.getOrderStatus() == 0) {
+            return R.fail(AppErrorConstant.CANCEL_CANCEL_ORDER);
+        }else if (order.getOrderStatus() == 1) {
+            //删除待支付超时取消延时任务
+            redisService.deleteObject(DelayTaskEnum.ORDER_AUTOMATIC_CANCEL.getCode() + "-" + order.getOrderId());
+            remoteConfigService.deleteDelayTask(DelayTaskEnum.ORDER_AUTOMATIC_CANCEL.getCode()+"-"+ order.getOrderId());
+            this.autoCancelOrder( order.getOrderId());
+        } else if (order.getOrderStatus() == 2) {
+            // 2.待核销 -> 订单退款
+            this.refundOrder( order.getOrderId());
+        } else {
+            return R.fail("已核销订单不能退款");
+        }
+        return R.ok();
+
+    }
 }

--
Gitblit v1.7.1