From 7a92c0228a9b282e4b3cb2ae4a0035cec34feb67 Mon Sep 17 00:00:00 2001 From: mitao <2763622819@qq.com> Date: 星期三, 12 三月 2025 18:12:31 +0800 Subject: [PATCH] bug修改 --- ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/OrderServiceImpl.java | 35 ++++++++++++++++++++++++++++++++--- 1 files changed, 32 insertions(+), 3 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 85f9b40..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; @@ -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()); @@ -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(); @@ -571,6 +587,18 @@ 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) { @@ -606,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()); -- Gitblit v1.7.1