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