mitao
2024-06-18 06f59ebb282ab74565585f77dde772d228d6075a
ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/PaylogServiceImpl.java
@@ -9,12 +9,17 @@
import com.alipay.api.response.AlipayTradeRefundResponse;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.ruoyi.common.core.constant.SecurityConstants;
import com.ruoyi.common.core.domain.R;
import com.ruoyi.common.core.enums.OrderStatusEnum;
import com.ruoyi.common.core.enums.PointStatusEnum;
import com.ruoyi.common.core.utils.StringUtils;
import com.ruoyi.order.domain.Paylog;
import com.ruoyi.order.mapper.OrderMapper;
import com.ruoyi.order.mapper.PaylogMapper;
import com.ruoyi.order.service.IOrderService;
import com.ruoyi.order.service.IPaylogService;
import com.ruoyi.order.util.SinataUtil;
import com.ruoyi.order.util.alipay.config.AlipayConfig;
@@ -24,9 +29,13 @@
import com.ruoyi.order.util.tencent.common.XMLParser;
import com.ruoyi.order.util.tencent.protocol.AppPayReqData;
import com.ruoyi.order.util.tencent.protocol.UnifiedorderReqData;
import com.ruoyi.system.api.domain.Order;
import com.ruoyi.system.api.domain.dto.BondDTO;
import com.ruoyi.system.api.domain.dto.MemberPointsDTO;
import com.ruoyi.system.api.domain.dto.RefundDTO;
import com.ruoyi.system.api.domain.dto.updMembeOneDTO;
import com.ruoyi.system.api.feignClient.AuctionClient;
import com.ruoyi.system.api.feignClient.MemberClient;
import com.ruoyi.system.api.feignClient.OrderClient;
import java.io.IOException;
import java.io.PrintWriter;
@@ -46,7 +55,6 @@
import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.springframework.stereotype.Service;
/**
@@ -63,17 +71,23 @@
    @Resource
    private OrderClient orderClient;
    private OrderMapper OrderMapper;
    @Resource
    private AuctionClient auctionClient;
    @Resource
    private MemberClient memberClient;
    @Override
    public R<Map<String, Object>> getPayInfo(Integer uid, Integer type, String subject, String body, String orderNO,String openId, HttpServletRequest request) {
    public R<Map<String, Object>> getPayInfo(Integer uid, Integer type, String orderNO,String openId, HttpServletRequest request) {
        Double price = 0.0;
        String subject;
        String body;
        try {
            if(judgeContainsStr(orderNO)){
                price=  Double.valueOf(1);
                body = body;
                subject = subject;
                body = " 订单支付";
                subject = " 订单支付";
                Map<String, Object> map = new HashMap<String, Object>();
                if (type == 1) {
                    // 支付宝预下单
@@ -133,12 +147,31 @@
                    Paylog one = this.getOne(wrapper);
                    if(SinataUtil.isEmpty(one)) {
                        this.save(paylog1);
                        if (paylog1.getOutTradeNo().contains("BO")) {
                            BondDTO bondVO=new BondDTO();
                            bondVO.setOrderNO(paylog1.getOutTradeNo());
                            orderClient.UpdateBond(bondVO, SecurityConstants.INNER);
                            auctionClient.UpdateBond(bondVO, SecurityConstants.INNER);
                        }
                            LambdaQueryWrapper<Order> wrapper1= Wrappers.lambdaQuery();
                            wrapper1.eq(Order::getOrderNo,paylog1.getOutTradeNo());
                            wrapper1.eq(Order::getDelFlag,0);
                            Order page1 = OrderMapper.selectOne(wrapper1);
                            page1.setOrderStatus(OrderStatusEnum.GOODS_TO_BE_RECEIVED);
                            page1.setPayTime(LocalDateTime.now());
                            OrderMapper.updateById(page1);
                           MemberPointsDTO memberPointsDTO=new MemberPointsDTO();
                           memberPointsDTO.setMemberId(page1.getMemberId());
                           memberPointsDTO.setPointsType(1);
                           memberPointsDTO.setPointsStatus(PointStatusEnum.INCREASE);
                           memberPointsDTO.setPoints(page1.getPoints());
                           memberClient.addMemberPoints(memberPointsDTO);
                          updMembeOneDTO MembeOneDTO=new updMembeOneDTO();
                        MembeOneDTO.setType(1);
                        MembeOneDTO.setMemberId(page1.getMemberId());
                        MembeOneDTO.setMoney(page1.getTotalAmount());
                        MembeOneDTO.setTotalPoints(page1.getPoints());
                        memberClient.updMembeOne(MembeOneDTO);
                    }
@@ -228,13 +261,32 @@
                        System.out.println("支付完成时间" + time_end);
                        paylog.setAddTime(LocalDateTime.now());
                        this.save(paylog);
                        if (paylog.getOutTradeNo().contains("BO")) {
                            BondDTO bondVO=new BondDTO();
                            bondVO.setOrderNO(paylog.getOutTradeNo());
                            orderClient.UpdateBond(bondVO, SecurityConstants.INNER);
                        BondDTO bondVO=new BondDTO();
                        }
                        bondVO.setOrderNO(paylog.getOutTradeNo());
                        auctionClient.UpdateBond(bondVO, SecurityConstants.INNER);
                        LambdaQueryWrapper<Order> wrapper1= Wrappers.lambdaQuery();
                        wrapper1.eq(Order::getOrderNo,paylog.getOutTradeNo());
                        wrapper1.eq(Order::getDelFlag,0);
                        Order page1 = OrderMapper.selectOne(wrapper1);
                        page1.setOrderStatus(OrderStatusEnum.GOODS_TO_BE_RECEIVED);
                        page1.setPayTime(LocalDateTime.now());
                        OrderMapper.updateById(page1);
                        MemberPointsDTO memberPointsDTO=new MemberPointsDTO();
                        memberPointsDTO.setMemberId(page1.getMemberId());
                        memberPointsDTO.setPointsType(1);
                        memberPointsDTO.setPointsStatus(PointStatusEnum.INCREASE);
                        memberPointsDTO.setPoints(page1.getPoints());
                        memberClient.addMemberPoints(memberPointsDTO);
                        updMembeOneDTO MembeOneDTO=new updMembeOneDTO();
                        MembeOneDTO.setType(1);
                        MembeOneDTO.setMemberId(page1.getMemberId());
                        MembeOneDTO.setMoney(page1.getTotalAmount());
                        MembeOneDTO.setTotalPoints(page1.getPoints());
                        memberClient.updMembeOne(MembeOneDTO);
                        log.debug("WxpayController.notify__回调处理成功:SUCCESS");
                        response.getOutputStream().print("success");