mitao
2025-03-12 7a92c0228a9b282e4b3cb2ae4a0035cec34feb67
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());