mitao
2024-06-18 83761554ac841d584e7cbce014ac5cb39e1d547f
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;
@@ -250,6 +251,7 @@
        BigDecimal pice=new BigDecimal(0);
        Order order=new Order();
        order.setMemberId(memberOrderDTO.getMemberId());
        if (memberOrderDTO.getOrderFrom()==1){
            order.setOrderFrom(OrderFromEnum.COMMODITY_ORDER);
            order.setOrderNo(OrderUtil.getOrderNoForPrefix("SP"));
@@ -416,7 +418,7 @@
            order.setOrderRemark(memberOrderDTO.getOrderRemark());
        }if (memberOrderDTO.getGoodsQuantity()!=null){
            if (order.getOrderFrom().getCode()==1){
                GoodsSku goodsSku = goodsSkuClient.getGoodsSkuOne(memberOrderDTO.getGoodsSkuId(), SecurityConstants.INNER).getData();
                GoodsSku goodsSku = goodsSkuClient.getGoodsSkuOne(order.getGoodsSkuId(), SecurityConstants.INNER).getData();
                if (goodsSku.getStock()<memberOrderDTO.getGoodsQuantity()){
                    throw new ServiceException("对不起,购买数大于库存");
                }else{
@@ -520,23 +522,24 @@
            CouponMember data = promotionClient.getCouponMember(couponMemberDTO, SecurityConstants.INNER).getData();
            if (order.getCouponId()!=null){
            if (order.getCouponId()!=0){
                CouponMemberDTO couponMemberDTO1=new CouponMemberDTO();
                couponMemberDTO1.setId(memberOrderDTO.getCouponId());
                couponMemberDTO1.setCouponStatus(1);
                couponMemberDTO1.setCouponStatus(0);
                promotionClient.updCouponMember(couponMemberDTO1, SecurityConstants.INNER);
            }
            order.setCouponId(data.getId());
            if (data.getCouponType().getCode()==1){
                if (pice.doubleValue()>=data.getFullReductionAmount().doubleValue()){
                    pice.subtract(data.getReductionAmount());
                    pice=pice.subtract(data.getReductionAmount());
                    order.setDiscountMoney(data.getReductionAmount());
                }
            }
            if (data.getCouponType().getCode()==2){
                pice= order.getTotalAmount();
                pice.subtract(data.getVoucherAmount());
                pice=pice.subtract(data.getVoucherAmount());
                order.setDiscountMoney(data.getVoucherAmount());
            }
            if (data.getCouponType().getCode()==3){
@@ -557,11 +560,20 @@
            order.setCouponId(memberOrderDTO.getCouponId());
            CouponMemberDTO couponMemberDTO2=new CouponMemberDTO();
            couponMemberDTO2.setId(memberOrderDTO.getCouponId());
            couponMemberDTO2.setCouponStatus(2);
            couponMemberDTO2.setCouponStatus(1);
            promotionClient.updCouponMember(couponMemberDTO2, SecurityConstants.INNER);
        }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));
        }
        order.setTotalAmount(pice);
@@ -588,7 +600,7 @@
        memberOrderVO.setReceiverCity(order.getReceiverCity());
        memberOrderVO.setReceiverDetailAddress(order.getReceiverDetailAddress());
        memberOrderVO.setReceiverphone(order.getReceiverPhone());
        memberOrderVO.setYouhiPrice(order.getDiscountMoney());
        memberOrderVO.setDiscountMoney(order.getDiscountMoney());
        return memberOrderVO;
    }
@@ -618,8 +630,9 @@
                    Wrappers.lambdaQuery(OrderReturnRequest.class)
                            .eq(OrderReturnRequest::getOrderId,
                                    MemberOrderList.getId()).last("limit 1"));
            if (StringUtils.isNotNull(orderReturnRequest)) {
            if (StringUtils.isNotNull(orderReturnRequest)&&orderReturnRequest!=null) {
                MemberOrderList.setStatus(orderReturnRequest.getStatus());
                MemberOrderList.setRequestId(orderReturnRequest.getId());
            }
            LambdaQueryWrapper<OrderAuctionBond> wrapper3= Wrappers.lambdaQuery();
            wrapper3.eq(OrderAuctionBond::getOrderId,MemberOrderList.getId());
@@ -654,8 +667,9 @@
                    Wrappers.lambdaQuery(OrderReturnRequest.class)
                            .eq(OrderReturnRequest::getOrderId,
                                    orderVO.getId()).last("limit 1"));
            if (StringUtils.isNotNull(orderReturnRequest)) {
            if (StringUtils.isNotNull(orderReturnRequest)&&orderReturnRequest!=null) {
                orderVO.setStatus(orderReturnRequest.getStatus());
                orderVO.setRequestId(orderReturnRequest.getId());
            }
            LambdaQueryWrapper<OrderAuctionBond> wrapper3= Wrappers.lambdaQuery();
@@ -1096,12 +1110,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);