rentaiming
2024-06-21 d91d49d51503a22a424a5600b8bfa7586cf3cd91
ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/OrderServiceImpl.java
@@ -52,6 +52,7 @@
import com.ruoyi.system.api.domain.dto.MemberDTO;
import com.ruoyi.system.api.domain.dto.MemberOrderDTO;
import com.ruoyi.system.api.domain.dto.MemberOrderListDTO;
import com.ruoyi.system.api.domain.dto.MgtAfterSaleSettingDTO;
import com.ruoyi.system.api.domain.dto.OrderDTO;
import com.ruoyi.system.api.domain.dto.updMembeOneDTO;
import com.ruoyi.system.api.domain.vo.Express100VO;
@@ -187,8 +188,11 @@
                wrapper.eq(OrderAuctionBond::getAuctionSalesroomId,OrderDTO.getAuctionSalesroomId());
                wrapper.eq(OrderAuctionBond::getBondType,2);
                OrderAuctionBond orderAuctionBond = orderAuctionBondMapper.selectOne(wrapper);
                orderAuctionBond.setOrderId(order.getId());
                orderAuctionBondMapper.updateById(orderAuctionBond);
                if (orderAuctionBond!=null){
                    orderAuctionBond.setOrderId(order.getId());
                    orderAuctionBondMapper.updateById(orderAuctionBond);
                }
            }
        }
@@ -348,6 +352,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());
@@ -405,6 +410,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){
@@ -514,75 +522,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);
            order.setTotalAmount(pice);
            CustomConfig memberPointsMoney = sysUserClient.getconfig("MEMBER_POINTS_MONEY").getData();
            CustomConfig memberPointsPoints = sysUserClient.getconfig("MEMBER_POINTS_POINTS").getData();
        }else{
            if (order.getCouponId()!=0){
                CouponMemberDTO couponMemberDTO1=new CouponMemberDTO();
                couponMemberDTO1.setId(order.getCouponId());
                couponMemberDTO1.setCouponStatus(0);
                promotionClient.updCouponMember(couponMemberDTO1, SecurityConstants.INNER);
            }
            order.setCouponId(0L);
            order.setDiscountMoney(new BigDecimal(0));
            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);
@@ -632,6 +638,9 @@
            if (StringUtils.isNotNull(orderReturnRequest)&&orderReturnRequest!=null) {
                MemberOrderList.setStatus(orderReturnRequest.getStatus());
                MemberOrderList.setRequestId(orderReturnRequest.getId());
                MemberOrderList.setIsRequest(2);
            }else{
                MemberOrderList.setIsRequest(1);
            }
            LambdaQueryWrapper<OrderAuctionBond> wrapper3= Wrappers.lambdaQuery();
            wrapper3.eq(OrderAuctionBond::getOrderId,MemberOrderList.getId());
@@ -669,6 +678,9 @@
            if (StringUtils.isNotNull(orderReturnRequest)&&orderReturnRequest!=null) {
                orderVO.setStatus(orderReturnRequest.getStatus());
                orderVO.setRequestId(orderReturnRequest.getId());
                orderVO.setIsRequest(2);
            }else{
                orderVO.setIsRequest(1);
            }
            LambdaQueryWrapper<OrderAuctionBond> wrapper3= Wrappers.lambdaQuery();
@@ -1064,9 +1076,7 @@
            boolean result = handleRefund(paymentMethod, paylog, orderNo);
            if (result) {
                paylog.setState(3);// 已退款
                order.setOrderStatus(OrderStatusEnum.REFUNDED);
                iPaylogService.updateById(paylog);
                this.updateById(order);
            }
            OrderReturnRequest orderReturnRequest = new OrderReturnRequest();
            orderReturnRequest.setOrderId(id);
@@ -1109,12 +1119,17 @@
    @Override
    public void refundReturn(Long id) {
        Order order = getOrder(id);
        if (order.getOrderStatus() == OrderStatusEnum.TO_BE_SHIPPED
                || order.getOrderStatus() == OrderStatusEnum.GOODS_TO_BE_RECEIVED
                || order.getOrderStatus() == OrderStatusEnum.FINISHED) {
        if (order.getOrderStatus() == OrderStatusEnum.FINISHED) {
            OrderReturnRequest orderReturnRequest = new OrderReturnRequest();
            order.setOrderStatus(OrderStatusEnum.AFTER_SALE);
            this.updateById(order);
            MgtAfterSaleSettingDTO data = sysUserClient.getAfterSaleSetting().getData();
            if (StringUtils.isNull(data)) {
                throw new ServiceException("获取售后退货信息失败");
            }
            orderReturnRequest.setRecipientName(data.getReceiverName());
            orderReturnRequest.setRecipientPhone(data.getReceiverPhone());
            orderReturnRequest.setDetailedAddress(data.getReceiverAddress());
            orderReturnRequest.setOrderId(id);
            orderReturnRequest.setRequestTime(LocalDateTime.now());
            orderReturnRequest.setRequestType(RequestTypeEnum.REFUNDS_AND_RETURNS);