rentaiming
2024-05-29 d5209a22297137cba55e500fe9457866e3919f9e
写用户端接口
1个文件已添加
4个文件已修改
84 ■■■■ 已修改文件
ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/dto/BondVO.java 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/factory/OrderFallbackFactory.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/feignClient/OrderClient.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/controller/OrderAuctionBondController.java 21 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/PaylogServiceImpl.java 45 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/dto/BondVO.java
New file
@@ -0,0 +1,10 @@
package com.ruoyi.system.api.domain.dto;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@Data
public class BondVO {
    @ApiModelProperty(value = "订单编号")
    private String orderNO;
}
ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/factory/OrderFallbackFactory.java
@@ -60,6 +60,11 @@
            public R<PayInfoVO> SaveOrderAuctionBond(MemberAuctionSalesroomBondDTO memberAuctionSalesroomBondDTO, String source) {
                return R.fail("生成保证金失败" + cause.getMessage());
            }
            @Override
            public R<?> UpdateBond(BondVO BondVO, String source) {
                return R.fail("修改保证金支付状态失败" + cause.getMessage());
            }
        };
    }
ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/feignClient/OrderClient.java
@@ -70,4 +70,7 @@
    @PostMapping("/order-auction-bond/SaveOrderAuctionBond")
    R<PayInfoVO> SaveOrderAuctionBond(@RequestBody MemberAuctionSalesroomBondDTO memberAuctionSalesroomBondDTO,
                                     @RequestHeader(SecurityConstants.FROM_SOURCE) String source);
    @PostMapping("/order-auction-bond/UpdateBond")
    R<?> UpdateBond(@RequestBody BondVO BondVO, @RequestHeader(SecurityConstants.FROM_SOURCE) String source);
}
ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/controller/OrderAuctionBondController.java
@@ -14,6 +14,7 @@
import com.ruoyi.system.api.domain.AuctionSalesroom;
import com.ruoyi.system.api.domain.OrderAuctionBond;
import com.ruoyi.order.service.IOrderAuctionBondService;
import com.ruoyi.system.api.domain.dto.BondVO;
import com.ruoyi.system.api.domain.dto.MemberAuctionSalesroomBondDTO;
import com.ruoyi.system.api.domain.dto.MemberAuctionSalesroomDTO;
import com.ruoyi.system.api.domain.dto.OrderAuctionBondDTO;
@@ -22,11 +23,7 @@
import com.ruoyi.system.api.domain.vo.PayInfoVO;
import com.ruoyi.system.api.feignClient.AuctionClient;
import org.apache.poi.ss.formula.functions.T;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.bind.annotation.*;
import java.util.List;
@@ -80,4 +77,18 @@
    }
    @InnerAuth
    @PostMapping("/UpdateBond")
    @ResponseBody
    public R UpdateBond(@RequestBody BondVO ondVO) {
        LambdaQueryWrapper<OrderAuctionBond> wrapper= Wrappers.lambdaQuery();
        wrapper.eq(OrderAuctionBond::getOrderNo,ondVO.getOrderNO());
        wrapper.eq(OrderAuctionBond::getDelFlag,0);
        OrderAuctionBond one = iOrderAuctionBondService.getOne(wrapper);
        one.setBoundStatus(BondStatusEnum.PAID);
        iOrderAuctionBondService.updateById(one);
        return R.ok();
    }
}
ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/PaylogServiceImpl.java
@@ -7,7 +7,10 @@
import com.alipay.api.DefaultAlipayClient;
import com.alipay.api.request.AlipayTradeRefundRequest;
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.service.impl.ServiceImpl;
import com.ruoyi.common.core.constant.SecurityConstants;
import com.ruoyi.common.core.domain.R;
import com.ruoyi.common.core.utils.StringUtils;
import com.ruoyi.order.domain.pojo.Paylog;
@@ -21,6 +24,8 @@
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.OrderAuctionBond;
import com.ruoyi.system.api.domain.dto.BondVO;
import com.ruoyi.system.api.domain.dto.RefundDTO;
import java.io.IOException;
import java.io.PrintWriter;
@@ -41,6 +46,8 @@
import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import com.ruoyi.system.api.feignClient.OrderClient;
import org.springframework.stereotype.Service;
/**
@@ -59,6 +66,9 @@
    @Resource
    private IPaylogService iPaylogService;
    @Resource
    private OrderClient orderClient;
    @Override
    public R<Map<String, Object>> getPayInfo(Integer uid, Integer type, String subject, String body, String orderNO,String openId, HttpServletRequest request) {
@@ -114,19 +124,31 @@
                params.put(name, valueStr);
            }
            Paylog paylog = getPayLog_alipay(request);
            Paylog paylog1= getPayLog_alipay(request);
            // 验证成功
            if ("TRADE_FINISHED".equals(paylog.getTradeStatus())) {
            if ("TRADE_FINISHED".equals(paylog1.getTradeStatus())) {
                System.out.println("AlipayController.notifyUrl__验证成功:success");
                // 支付失败
            } else if ("TRADE_SUCCESS".equals(paylog.getTradeStatus())) {
            } else if ("TRADE_SUCCESS".equals(paylog1.getTradeStatus())) {
                // 支付成功
                try {
                    if(judgeContainsStr(paylog.getOutTradeNo())){
                    LambdaQueryWrapper<Paylog> wrapper = Wrappers.lambdaQuery();
                    wrapper.eq(Paylog::getOutTradeNo,paylog1.getOutTradeNo());
                    Paylog one = iPaylogService.getOne(wrapper);
                    if(SinataUtil.isEmpty(one)) {
                        iPaylogService.save(paylog1);
                        if (paylog1.getOutTradeNo().contains("BO")) {
                            BondVO bondVO=new BondVO();
                            bondVO.setOrderNO(paylog1.getOutTradeNo());
                            orderClient.UpdateBond(bondVO, SecurityConstants.INNER);
                    }
                    }
                    // ——请根据您的业务逻辑来编写程序(以上代码仅作参考)——
                    log.debug("AlipayController.notifyUrl__回调处理:success");
                    out.println("success"); // 请不要修改或删除
@@ -196,6 +218,11 @@
                    ///////////////////////////// 这里程序处理支付回调逻辑
                    ///////////////////////////// ////////////////////
                    LambdaQueryWrapper<Paylog> wrapper = Wrappers.lambdaQuery();
                    wrapper.eq(Paylog::getOutTradeNo,out_trade_no);
                    Paylog one = iPaylogService.getOne(wrapper);
                    if(SinataUtil.isEmpty(one)) {
                    Paylog paylog = new Paylog();
                    paylog.setOutTradeNo(out_trade_no);
                    paylog.setPayType(2);
@@ -206,7 +233,12 @@
                    System.out.println("支付完成时间" + time_end);
                    paylog.setAddTime(LocalDateTime.now());
                    iPaylogService.save(paylog);
                    if (judgeContainsStr(paylog.getOutTradeNo())) {
                        if (paylog.getOutTradeNo().contains("BO")) {
                            BondVO bondVO=new BondVO();
                            bondVO.setOrderNO(paylog.getOutTradeNo());
                            orderClient.UpdateBond(bondVO, SecurityConstants.INNER);
                        }
                        log.debug("WxpayController.notify__回调处理成功:SUCCESS");
@@ -427,7 +459,6 @@
        paylog.setState(1);
        paylog.setAddTime(LocalDateTime.now());
        paylog.setTradeStatus(trade_status.toString());
        iPaylogService.save(paylog);
        return paylog;
    }