rentaiming
2024-06-11 2f2eb2bb2c6a5a16b7081dbbe3b683acf18d04bc
ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/OrderServiceImpl.java
@@ -12,33 +12,42 @@
import com.ruoyi.common.core.exception.ServiceException;
import com.ruoyi.common.core.utils.StringUtils;
import com.ruoyi.common.core.utils.page.PageDTO;
import com.ruoyi.order.domain.MemberInvoiceRise;
import com.ruoyi.order.domain.Paylog;
import com.ruoyi.order.mapper.OrderAuctionBondMapper;
import com.ruoyi.order.mapper.OrderMapper;
import com.ruoyi.order.service.IOrderAuctionBondService;
import com.ruoyi.order.service.IOrderService;
import com.ruoyi.order.service.IPaylogService;
import com.ruoyi.order.util.OrderUtil;
import com.ruoyi.system.api.domain.*;
import com.ruoyi.system.api.domain.dto.*;
import java.lang.reflect.InvocationTargetException;
import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.util.List;
import java.util.Set;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import java.util.stream.Collectors;
import javax.annotation.Resource;
import com.ruoyi.order.util.SinataUtil;
import com.ruoyi.system.api.domain.CouponMember;
import com.ruoyi.system.api.domain.CustomConfig;
import com.ruoyi.system.api.domain.GoodsGroupPurchase;
import com.ruoyi.system.api.domain.GoodsSeckill;
import com.ruoyi.system.api.domain.GoodsSku;
import com.ruoyi.system.api.domain.MemberAddress;
import com.ruoyi.system.api.domain.Order;
import com.ruoyi.system.api.domain.OrderAuctionBond;
import com.ruoyi.system.api.domain.dto.CouponMemberDTO;
import com.ruoyi.system.api.domain.dto.GoodsStockUpdDTO;
import com.ruoyi.system.api.domain.dto.HomeGoodsSkuDTO;
import com.ruoyi.system.api.domain.dto.MemberOrderDTO;
import com.ruoyi.system.api.domain.dto.MemberOrderListDTO;
import com.ruoyi.system.api.domain.dto.OrderDTO;
import com.ruoyi.system.api.domain.dto.updMembeOneDTO;
import com.ruoyi.system.api.domain.vo.MemberOrderListVO;
import com.ruoyi.system.api.domain.vo.MemberTiOrderVO;
import com.ruoyi.system.api.domain.vo.OrderVO;
import com.ruoyi.system.api.feignClient.GoodsSkuClient;
import com.ruoyi.system.api.feignClient.MemberClient;
import com.ruoyi.system.api.feignClient.PromotionClient;
import com.ruoyi.system.api.feignClient.SysUserClient;
import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.util.Collection;
import java.util.List;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import javax.annotation.Resource;
import org.apache.commons.beanutils.BeanUtils;
import org.springframework.stereotype.Service;
@@ -71,6 +80,9 @@
    @Resource
    private PaylogServiceImpl paylogService;
    @Resource
    private SysUserClient sysUserClient;
    @Override
    public void saveOrderOne(OrderDTO OrderDTO) {
@@ -97,6 +109,7 @@
        order.setMemberId(OrderDTO.getMemberId());
        order.setTotalAmount(OrderDTO.getTotalAmount());
        order.setOrderStatus(OrderStatusEnum.TO_PLAY);
        order.setPoints(OrderDTO.getPoints());
        order.setGoodsQuantity(OrderDTO.getGoodsQuantity());
        order.setReceiverName(OrderDTO.getReceiverName());
        order.setReceiverphone(OrderDTO.getReceiverphone());
@@ -273,6 +286,13 @@
        order.setOrderTime(LocalDateTime.now());
        order.setGoodsQuantity(memberOrderDTO.getGoodsQuantity());
        order.setTotalAmount(pice.multiply(new BigDecimal(memberOrderDTO.getGoodsQuantity())));
        CustomConfig memberPointsMoney = sysUserClient.getconfig("MEMBER_POINTS_MONEY").getData();
        CustomConfig memberPointsPoints = sysUserClient.getconfig("MEMBER_POINTS_POINTS").getData();
       BigDecimal pic=pice.multiply(new BigDecimal(memberOrderDTO.getGoodsQuantity()));
       Double aDouble= Double.valueOf(memberPointsMoney.getConfigValue()) * Double.valueOf(memberPointsPoints.getConfigValue());
       BigDecimal pi=pic.multiply(new BigDecimal(aDouble));
        order.setPoints(pi.intValue());
        order.setOrderStatus(OrderStatusEnum.TO_PLAY);
        if (memberOrderDTO.getOrderFrom()==3){
@@ -434,6 +454,15 @@
            promotionClient.updCouponMember(couponMemberDTO2, SecurityConstants.INNER);
            order.setTotalAmount(pice);
            CustomConfig memberPointsMoney = sysUserClient.getconfig("MEMBER_POINTS_MONEY").getData();
            CustomConfig memberPointsPoints = sysUserClient.getconfig("MEMBER_POINTS_POINTS").getData();
            BigDecimal pic=pice.multiply(new BigDecimal(memberOrderDTO.getGoodsQuantity()));
            Double aDouble= Double.valueOf(memberPointsMoney.getConfigValue()) * Double.valueOf(memberPointsPoints.getConfigValue());
            BigDecimal pi=pic.multiply(new BigDecimal(aDouble));
            order.setPoints(pi.intValue());
        }
        baseMapper.updateById(order);
@@ -498,6 +527,15 @@
            order.setOrderStatus(OrderStatusEnum.CANCELED);
            order.setCancelTime(LocalDateTime.now());
            baseMapper.updateById(order);
            updMembeOneDTO MembeOneDTO=new updMembeOneDTO();
            MembeOneDTO.setType(2);
            MembeOneDTO.setMemberId(order.getMemberId());
            MembeOneDTO.setMoney(order.getTotalAmount());
            MembeOneDTO.setTotalPoints(order.getPoints());
            memberClient.updMembeOne(MembeOneDTO);
            if (order.getPaymentMethod() != null && order.getPaymentMethod().getCode() == 1) {//支付宝
                //获取支付信息
                LambdaQueryWrapper<Paylog> paylogEntityWrapper = Wrappers.lambdaQuery();
@@ -535,6 +573,7 @@
        Order order = baseMapper.selectById(memberOrderListDTO.getId());
        if (order.getOrderFrom().getCode()==4){
            order.setOrderStatus(OrderStatusEnum.FINISHED);
            order.setReceiveTime(LocalDateTime.now());
            baseMapper.updateById(order);
            LambdaQueryWrapper<OrderAuctionBond> wrapper= Wrappers.lambdaQuery();
@@ -573,7 +612,20 @@
            }
        }else{
            order.setOrderStatus(OrderStatusEnum.FINISHED);
            order.setReceiveTime(LocalDateTime.now());
            baseMapper.updateById(order);
        }
    }
    /**
     * 根据优惠券id集合查询订单列表
     *
     * @param couponIds 优惠券id集合
     * @return List<Order>
     */
    @Override
    public List<Order> getOrderByCouponIds(Collection<Long> couponIds) {
        return this.lambdaQuery().in(Order::getCouponId, couponIds)
                .eq(Order::getOrderStatus, OrderStatusEnum.FINISHED).list();
    }
}