From dba9034024de73ebf8d1184b53ec9a559c1c12c6 Mon Sep 17 00:00:00 2001
From: mitao <2763622819@qq.com>
Date: 星期四, 13 三月 2025 18:08:33 +0800
Subject: [PATCH] bug修改

---
 ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/OrderServiceImpl.java |   52 ++++++++++++++++++++++++++++++++++++++++++++--------
 1 files changed, 44 insertions(+), 8 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 a6c20d4..b880dd1 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
@@ -13,6 +13,7 @@
 import com.ruoyi.common.core.enums.BondStatusEnum;
 import com.ruoyi.common.core.enums.CouponUseEnum;
 import com.ruoyi.common.core.enums.GroupStatusEnum;
+import com.ruoyi.common.core.enums.MemberVipClassifyEnum;
 import com.ruoyi.common.core.enums.OrderFromEnum;
 import com.ruoyi.common.core.enums.OrderStatusEnum;
 import com.ruoyi.common.core.enums.OrderTypeEnum;
@@ -160,7 +161,7 @@
 
 
     @Override
-    public void saveOrderOne(OrderDTO OrderDTO) {
+    public Long saveOrderOne(OrderDTO OrderDTO) {
         Order order=new Order();
         if (OrderDTO.getOrderFrom().getCode()==1){
             order.setOrderFrom(OrderFromEnum.COMMODITY_ORDER);
@@ -192,7 +193,8 @@
         order.setTotalAmount(OrderDTO.getTotalAmount());
         order.setOrderStatus(OrderStatusEnum.TO_PLAY);
         order.setPoints(OrderDTO.getPoints());
-        order.setGoodsQuantity(1);
+        order.setGoodsQuantity(
+                Objects.nonNull(OrderDTO.getGoodsQuantity()) ? OrderDTO.getGoodsQuantity() : 1);
         order.setReceiverName(OrderDTO.getReceiverName());
         order.setReceiverPhone(OrderDTO.getReceiverphone());
         order.setReceiverCity(OrderDTO.getReceiverCity());
@@ -234,7 +236,7 @@
 
         }
 
-
+        return order.getId();
     }
 
     /**
@@ -337,22 +339,36 @@
             if (goodsSku.getStock()<memberOrderDTO.getGoodsQuantity()){
                 throw new ServiceException("该商品已售罄,暂无库存");
             }else{
+                // 远程调用用户服务,获取用户信息
+                Member member = memberClient.getMembeOne(memberOrderDTO.getMemberId(),
+                                SecurityConstants.INNER)
+                        .getData();
+                if (Objects.isNull(member)) {
+                    throw new ServiceException("获取用户信息失败");
+                }
                 GoodsStockUpdDTO goodsStockUpdDTO = new GoodsStockUpdDTO();
                 goodsStockUpdDTO.setGoodsSkuId(goodsSku.getId());
                 goodsStockUpdDTO.setAuctionStock(goodsSku.getStock()-memberOrderDTO.getGoodsQuantity());
                 goodsSkuClient.updGoodsStock1(goodsStockUpdDTO,
                         SecurityConstants.INNER);
 
+
                 order.setSkuName(goodsSku.getSkuName());
                 order.setPrice(goodsSku.getPrice());
                 order.setCoverPic(goodsSku.getCoverPic());
                 order.setGoodsId(goodsSku.getId());
+                if (Objects.nonNull(member.getVipClassify()) && !member.getVipClassify()
+                        .equals(MemberVipClassifyEnum.NORMAL.getCode())) {
+                    BigDecimal vipPrice = getVipPrice(goodsSku, member.getVipClassify());
+                    order.setPrice(vipPrice);
+                }
             }
             memberOrderVO.setGoodsSkuId(memberOrderDTO.getGoodsSkuId());
             memberOrderVO.setPrice(goodsSku.getPrice());
             memberOrderVO.setCoverPic(goodsSku.getCoverPic());
             memberOrderVO.setSkuName(goodsSku.getSkuName());
-            pice=goodsSku.getPrice();
+
+            pice = order.getPrice();
         }
         if (memberOrderDTO.getOrderFrom()==2){
             GoodsSeckill data = goodsSkuClient.getGoodsSeckillOne(memberOrderDTO.getGoodsSkuId(), SecurityConstants.INNER).getData();
@@ -493,6 +509,11 @@
             memberOrderVO.setCoverPic(recommend.getGoodsImageUrl());
             memberOrderVO.setSkuName(recommend.getGoodsName());
             pice = recommend.getSellingPrice();
+            order.setSkuName(recommend.getGoodsName());
+            order.setPrice(recommend.getSellingPrice());
+            order.setCoverPic(recommend.getGoodsImageUrl());
+            order.setSjPrice(recommend.getSellingPrice());
+            order.setGoodsId(recommend.getId());
         }
         order.setOrderRemark(memberOrderDTO.getOrderRemark());
         order.setMemberId(memberOrderDTO.getMemberId());
@@ -566,8 +587,21 @@
         return memberOrderVO;
     }
 
+    private BigDecimal getVipPrice(GoodsSku goodsSku, Integer vipClassify) {
+        if (Objects.isNull(goodsSku)) {
+            throw new ServiceException("当前商品已下架");
+        }
+        BigDecimal price = BigDecimal.ZERO;
+        if (MemberVipClassifyEnum.VIP.getCode().equals(vipClassify)) {
+            price = goodsSku.getVipPrice();
+        } else if (MemberVipClassifyEnum.SUPER_VIP.getCode().equals(vipClassify)) {
+            price = goodsSku.getSuperVipPrice();
+        }
+        return price;
+    }
     @Override
     public MemberTiOrderVO updMemberOrder(MemberOrderDTO memberOrderDTO) {
+
         Order order = baseMapper.selectById(memberOrderDTO.getId());
         if(memberOrderDTO.getOrderRemark()!=null){
             order.setOrderRemark(memberOrderDTO.getOrderRemark());
@@ -600,7 +634,8 @@
                     goodsStockUpdDTO.setAuctionStock(m-memberOrderDTO.getGoodsQuantity());
                     goodsSkuClient.updGoodsStock1(goodsStockUpdDTO,
                             SecurityConstants.INNER);
-                    order.setTotalAmount(goodsSku.getPrice().multiply(new BigDecimal(memberOrderDTO.getGoodsQuantity())));
+                order.setTotalAmount(order.getPrice()
+                        .multiply(new BigDecimal(memberOrderDTO.getGoodsQuantity())));
                     order.setGoodsQuantity(memberOrderDTO.getGoodsQuantity());
                     memberOrderVO.setGoodsSkuId(memberOrderDTO.getGoodsSkuId());
                     memberOrderVO.setPrice(goodsSku.getPrice());
@@ -692,10 +727,10 @@
                     }
                 }
             }
-            if (memberOrderDTO.getOrderFrom() == OrderFromEnum.WISH_ORDER.getCode()) {
+            if (order.getOrderFrom() == OrderFromEnum.WISH_ORDER) {
                 // 远程调用营销服务,获取推荐商品信息
                 PromotionWishRecommend recommend = promotionClient.getPromotionWishRecommend(
-                        memberOrderDTO.getGoodsSkuId(),
+                        order.getGoodsSkuId(),
                         SecurityConstants.INNER).getData();
                 if (Objects.isNull(recommend)) {
                     throw new ServiceException("推荐商品不存在");
@@ -721,7 +756,7 @@
                 order.setTotalAmount(recommend.getSellingPrice()
                         .multiply(new BigDecimal(memberOrderDTO.getGoodsQuantity())));
                 order.setGoodsQuantity(memberOrderDTO.getGoodsQuantity());
-                memberOrderVO.setGoodsSkuId(memberOrderDTO.getGoodsSkuId());
+                memberOrderVO.setGoodsSkuId(order.getGoodsSkuId());
                 memberOrderVO.setPrice(recommend.getSellingPrice());
                 memberOrderVO.setCoverPic(recommend.getGoodsImageUrl());
                 memberOrderVO.setSkuName(recommend.getGoodsName());
@@ -1860,6 +1895,7 @@
             LogisticsDTO logisticsDTO = new LogisticsDTO();
             logisticsDTO.setCompany(order.getLogisticsNum());
             logisticsDTO.setPostid(order.getCourierNumber());
+            logisticsDTO.setReceiverPhone(order.getReceiverPhone());
             Express100VO logisticsList = logisticsService.getLogisticsList(logisticsDTO);
             if (StringUtils.isNotNull(logisticsList)) {
                 mgtOrderVO.setExpress100VO(logisticsList);

--
Gitblit v1.7.1