rentaiming
2024-06-19 4d2d00c13c629e8dedac96f18387a12c6d3e4cb3
ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/OrderServiceImpl.java
@@ -349,6 +349,7 @@
            order.setCoverPic(goodsSku.getCoverPic());
            order.setSjPrice(goodsSku.getPrice());
        }
        order.setOrderRemark(memberOrderDTO.getOrderRemark());
        order.setMemberId(memberOrderDTO.getMemberId());
        order.setGoodsQuantity(memberOrderDTO.getGoodsQuantity());
        order.setOrderTime(LocalDateTime.now());
@@ -406,6 +407,9 @@
    @Override
    public MemberTiOrderVO updMemberOrder(MemberOrderDTO memberOrderDTO) {
        Order order = baseMapper.selectById(memberOrderDTO.getId());
        if(memberOrderDTO.getOrderRemark()!=null){
            order.setOrderRemark(memberOrderDTO.getOrderRemark());
        }
        MemberTiOrderVO memberOrderVO=new MemberTiOrderVO();
        if (memberOrderDTO.getReceiverDetailAddress()!=null){
@@ -515,70 +519,73 @@
            }
        }
        BigDecimal pice=order.getPrice().multiply(new BigDecimal(memberOrderDTO.getGoodsQuantity()));
        if (memberOrderDTO.getCouponId()!=null){
            CouponMemberDTO couponMemberDTO=new CouponMemberDTO();
            couponMemberDTO.setId(memberOrderDTO.getCouponId());
            CouponMember data = promotionClient.getCouponMember(couponMemberDTO, SecurityConstants.INNER).getData();
            if (order.getCouponId()!=0){
                CouponMemberDTO couponMemberDTO1=new CouponMemberDTO();
                couponMemberDTO1.setId(memberOrderDTO.getCouponId());
                couponMemberDTO1.setCouponStatus(0);
                promotionClient.updCouponMember(couponMemberDTO1, SecurityConstants.INNER);
            }
            order.setCouponId(data.getId());
            if (data.getCouponType().getCode()==1){
                if (pice.doubleValue()>=data.getFullReductionAmount().doubleValue()){
                    pice=pice.subtract(data.getReductionAmount());
                    order.setDiscountMoney(data.getReductionAmount());
        if (memberOrderDTO.getGoodsQuantity()!=null){
            BigDecimal pice=order.getPrice().multiply(new BigDecimal(memberOrderDTO.getGoodsQuantity()));
            if (memberOrderDTO.getCouponId()!=null){
                CouponMemberDTO couponMemberDTO=new CouponMemberDTO();
                couponMemberDTO.setId(memberOrderDTO.getCouponId());
                CouponMember data = promotionClient.getCouponMember(couponMemberDTO, SecurityConstants.INNER).getData();
                if (order.getCouponId()!=0){
                    CouponMemberDTO couponMemberDTO1=new CouponMemberDTO();
                    couponMemberDTO1.setId(memberOrderDTO.getCouponId());
                    couponMemberDTO1.setCouponStatus(0);
                    promotionClient.updCouponMember(couponMemberDTO1, SecurityConstants.INNER);
                }
            }
            if (data.getCouponType().getCode()==2){
                pice= order.getTotalAmount();
                pice=pice.subtract(data.getVoucherAmount());
                order.setDiscountMoney(data.getVoucherAmount());
            }
            if (data.getCouponType().getCode()==3){
                pice= order.getTotalAmount();
                BigDecimal pice1=new BigDecimal(data.getDiscountRate());
                BigDecimal pice2=new BigDecimal(0.1);
                BigDecimal pice3=pice.multiply(pice1.multiply(pice2));
                BigDecimal pice4= pice.subtract(pice3);
               if (pice4.doubleValue()>data.getMaxDiscount().doubleValue()){
                   pice=pice.subtract(data.getMaxDiscount());
                   order.setDiscountMoney(data.getMaxDiscount());
               }else{
                   order.setDiscountMoney(pice4);
                   pice=pice3;
               }
                order.setCouponId(data.getId());
                if (data.getCouponType().getCode()==1){
                    if (pice.doubleValue()>=data.getFullReductionAmount().doubleValue()){
                        pice=pice.subtract(data.getReductionAmount());
                        order.setDiscountMoney(data.getReductionAmount());
                    }
                }
                if (data.getCouponType().getCode()==2){
                    pice= order.getTotalAmount();
                    pice=pice.subtract(data.getVoucherAmount());
                    order.setDiscountMoney(data.getVoucherAmount());
                }
                if (data.getCouponType().getCode()==3){
                    pice= order.getTotalAmount();
                    BigDecimal pice1=new BigDecimal(data.getDiscountRate());
                    BigDecimal pice2=new BigDecimal(0.1);
                    BigDecimal pice3=pice.multiply(pice1.multiply(pice2));
                    BigDecimal pice4= pice.subtract(pice3);
                    if (pice4.doubleValue()>data.getMaxDiscount().doubleValue()){
                        pice=pice.subtract(data.getMaxDiscount());
                        order.setDiscountMoney(data.getMaxDiscount());
                    }else{
                        order.setDiscountMoney(pice4);
                        pice=pice3;
                    }
                }
                order.setCouponId(memberOrderDTO.getCouponId());
                CouponMemberDTO couponMemberDTO2=new CouponMemberDTO();
                couponMemberDTO2.setId(memberOrderDTO.getCouponId());
                couponMemberDTO2.setCouponStatus(1);
                promotionClient.updCouponMember(couponMemberDTO2, SecurityConstants.INNER);
            }else{
                if (order.getCouponId()!=null&&order.getCouponId()!=0){
                    CouponMemberDTO couponMemberDTO1=new CouponMemberDTO();
                    couponMemberDTO1.setCouponStatus(0);
                    couponMemberDTO1.setId(order.getCouponId());
                    promotionClient.updCouponMember(couponMemberDTO1, SecurityConstants.INNER);
                }
                order.setCouponId(0L);
                order.setDiscountMoney(new BigDecimal(0));
            }
            order.setCouponId(memberOrderDTO.getCouponId());
            CouponMemberDTO couponMemberDTO2=new CouponMemberDTO();
            couponMemberDTO2.setId(memberOrderDTO.getCouponId());
            couponMemberDTO2.setCouponStatus(1);
            promotionClient.updCouponMember(couponMemberDTO2, SecurityConstants.INNER);
        }else{
            if (order.getCouponId()!=null&&order.getCouponId()!=0){
                CouponMemberDTO couponMemberDTO1=new CouponMemberDTO();
                couponMemberDTO1.setCouponStatus(0);
                couponMemberDTO1.setId(order.getCouponId());
                promotionClient.updCouponMember(couponMemberDTO1, SecurityConstants.INNER);
            }
            order.setCouponId(0L);
            order.setDiscountMoney(new BigDecimal(0));
            order.setTotalAmount(pice);
            CustomConfig memberPointsMoney = sysUserClient.getconfig("MEMBER_POINTS_MONEY").getData();
            CustomConfig memberPointsPoints = sysUserClient.getconfig("MEMBER_POINTS_POINTS").getData();
            Double aDouble= Double.valueOf(memberPointsMoney.getConfigValue()) * Double.valueOf(memberPointsPoints.getConfigValue());
            BigDecimal pi=pice.multiply(new BigDecimal(aDouble));
            order.setPoints(pi.intValue());
            baseMapper.updateById(order);
        }
        order.setTotalAmount(pice);
        CustomConfig memberPointsMoney = sysUserClient.getconfig("MEMBER_POINTS_MONEY").getData();
        CustomConfig memberPointsPoints = sysUserClient.getconfig("MEMBER_POINTS_POINTS").getData();
        Double aDouble= Double.valueOf(memberPointsMoney.getConfigValue()) * Double.valueOf(memberPointsPoints.getConfigValue());
        BigDecimal pi=pice.multiply(new BigDecimal(aDouble));
        order.setPoints(pi.intValue());
        baseMapper.updateById(order);
        memberOrderVO.setId(order.getId());
        memberOrderVO.setOrderStatus(OrderStatusEnum.TO_PLAY);