Browse Source

增加回调调试

longhu 4 tuần trước cách đây
mục cha
commit
3632e96656

+ 5 - 7
src/main/java/com/hr/controller/IpInterfaceCallbackController.java

@@ -10,10 +10,7 @@ import io.swagger.v3.oas.annotations.Operation;
 import io.swagger.v3.oas.annotations.tags.Tag;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.data.domain.Page;
-import org.springframework.web.bind.annotation.GetMapping;
-import org.springframework.web.bind.annotation.RequestBody;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RestController;
+import org.springframework.web.bind.annotation.*;
 
 @RestController
 @RequestMapping("/ipInterfaceCallback")
@@ -31,8 +28,9 @@ public class IpInterfaceCallbackController {
      * @return 查询结果
      */
     @Operation(summary = "分页查询接口调用记录")
-    @GetMapping
-    public BasePageResult<IpInterfaceCallVO> pageQuery(@RequestBody InterfaceCalledQueryParam ipInterfaceCalledQueryParam){
-        return ipOrderService.pageQuery(ipInterfaceCalledQueryParam);
+    @PostMapping("/list")
+    public BasePageResult<IpInterfaceCallVO> queryList(@RequestBody InterfaceCalledQueryParam ipInterfaceCalledQueryParam){
+        System.out.println();
+        return ipOrderService.queryList(ipInterfaceCalledQueryParam);
     }
 }

+ 7 - 1
src/main/java/com/hr/externelSystem/AiwenIpService.java

@@ -10,6 +10,7 @@ import com.hr.repository.domain.IpInterfacePO;
 import com.hr.repository.domain.IpOrderPO;
 import com.hr.repository.domain.IpTokenInterfacePO;
 import com.hr.service.FeishuMsgSendService;
+import com.hr.util.HttpUtils;
 import com.hr.vo.AiwenParseIpInfoVO;
 import com.hr.vo.ServiceTypeVO;
 import com.yy.basedevelop.common.http.config.RedisService;
@@ -229,7 +230,12 @@ public class AiwenIpService implements BizHandler<AiwenParam,AiwenParseIpInfoVO>
 
     @Override
     public Boolean doCallBack(IpOrderPO ipOrderPO, JSONObject callbackParam) {
-        return null;
+        log.info("开始处理回调");
+        String callbackUrl = ipOrderPO.getCallbackUrl();
+        Map<String,String> javaObject = JSONObject.toJavaObject(callbackParam, Map.class);
+        String post = HttpClientUtils.post(callbackUrl, javaObject);
+        System.out.println(post);
+        return true;
     }
 
 

+ 35 - 7
src/main/java/com/hr/externelSystem/BizHandlerFactory.java

@@ -16,6 +16,7 @@ import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.lang3.StringUtils;
 import org.apache.http.HttpStatus;
 import org.apache.poi.ss.formula.functions.T;
+import org.checkerframework.checker.units.qual.K;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Component;
 
@@ -76,7 +77,7 @@ public class BizHandlerFactory {
                 ipLogPO.setStatus("fail");
             }
             ipOrderPO.setUpdateTime(LocalDateTime.now());
-            ipOrderPO.setBusinessNo(ipOrderPO.getOrderNo());
+            ipOrderPO.setBusinessNo(logDto.getBusinessNo());
             ipLogPO.setUrl(logDto.getUrl());
             ipLogPO.setRequestParam(logDto.getRequestParam());
             ipLogPO.setUpdateTime(LocalDateTime.now());
@@ -113,9 +114,36 @@ public class BizHandlerFactory {
         ipLogPO.setStatus("handle");
     }
 
+    private void wrapCallBackOrder(IpOrderPO ipOrder, Boolean callbackStatus) {
+        IpLogPO ipLog = new IpLogPO();
+        IpOrderPO ipOrderPO = new IpOrderPO();
+
+        ipOrderPO.setId(SnowflakeIdWorker.nextId());
+        ipOrderPO.setInterfaceName(ipOrder.getInterfaceName());
+        ipOrderPO.setAccNo(ipOrder.getAccNo());
+
+        ipOrderPO.setCallbackUrl(ipOrder.getCallbackUrl());
+        ipOrderPO.setAddTime(LocalDateTime.now());
+        ipOrderPO.setUpdateTime(LocalDateTime.now());
+        ipOrderPO.setManufacturer(ipOrder.getManufacturer());
+        ipOrderPO.setStatus(callbackStatus ? "success" : "fail");
+        ipOrderPO.setCallbackStatus(callbackStatus ? "success" : "fail");
+
+        ipLog.setId(SnowflakeIdWorker.nextId());
+        ipLog.setOid(ipOrderPO.getId());
+        ipLog.setAddTime(LocalDateTime.now());
+        ipLog.setExecuteType("callback");
+        ipLog.setStatus(callbackStatus ? "success" : "fail");
+        ipLog.setAddTime(LocalDateTime.now());
+        ipLog.setUpdateTime(LocalDateTime.now());
+        ipOrderRepository.save(ipOrderPO);
+        ipLogRepository.save(ipLog);
+    }
+
     public Boolean doCallBack(String interfaceNo, String businessNo, JSONObject json) {
-        IpOrderPO ipOrderPO = ipOrderRepository.queryByBusinessNo(businessNo);
-        if(ipOrderPO != null){
+
+        IpOrderPO ipOrderPO = ipOrderRepository.findByBusinessNo(businessNo);
+        if(ipOrderPO == null){
             log.error("找不到对应的业务编码");
             return false;
         }
@@ -132,15 +160,15 @@ public class BizHandlerFactory {
         BizHandler handler = getHandler(interfaceNo);
         Boolean callbackResult = false;
         ipOrderPO.setCallbackStatus("handle");
-        for (Integer i = 0; i < ipOrderPO.getCallbackNum(); i++) {
+        for (int i = 0; i < ipOrderPO.getCallbackNum(); i++) {
             Boolean result = handler.doCallBack(ipOrderPO, json);
+            // 记录调用记录
+            wrapCallBackOrder(ipOrderPO,result);
             if(result){
                 callbackResult = true;
                 break;
             }
         }
-        ipOrderPO.setCallbackStatus(callbackResult ? "success" : "fail");
-        ipOrderRepository.save(ipOrderPO);
         return callbackResult;
     }
-}
+}

+ 3 - 1
src/main/java/com/hr/repository/jpa/IpOrderRepository.java

@@ -3,6 +3,7 @@ package com.hr.repository.jpa;
 import com.hr.param.InterfaceCalledQueryParam;
 import com.hr.repository.domain.IpOrderPO;
 import com.hr.vo.IpInterfaceVO;
+import org.apache.ibatis.annotations.Param;
 import org.springframework.data.jpa.repository.JpaRepository;
 
 import java.util.List;
@@ -16,5 +17,6 @@ public interface IpOrderRepository extends JpaRepository<IpOrderPO,Long> {
 
     IpOrderPO queryById(Long oid);
 
-    IpOrderPO queryByBusinessNo(String businessNo);
+
+    IpOrderPO findByBusinessNo(@Param("businessNo") String businessNo);
 }

+ 1 - 1
src/main/java/com/hr/repository/service/IpOrderService.java

@@ -54,5 +54,5 @@ public interface IpOrderService{
      */
     boolean deleteById(Long oid);
 
-    BasePageResult<IpInterfaceCallVO> pageQuery(InterfaceCalledQueryParam ipInterfaceCalledQueryParam);
+    BasePageResult<IpInterfaceCallVO> queryList(InterfaceCalledQueryParam ipInterfaceCalledQueryParam);
 }

+ 1 - 1
src/main/java/com/hr/repository/service/impl/IpOrderServiceImpl.java

@@ -78,7 +78,7 @@ public class IpOrderServiceImpl implements IpOrderService {
     }
 
     @Override
-    public BasePageResult<IpInterfaceCallVO> pageQuery(InterfaceCalledQueryParam ipInterfaceCalledQueryParam) {
+    public BasePageResult<IpInterfaceCallVO> queryList(InterfaceCalledQueryParam ipInterfaceCalledQueryParam) {
         PageHelper.startPage(ipInterfaceCalledQueryParam.getPageNum(), ipInterfaceCalledQueryParam.getPageSize());
         BasePageResult<IpInterfaceCallVO> result = ipLogRepository.queryInterfaceCallHistory(ipInterfaceCalledQueryParam);
         return result;

+ 11 - 0
src/main/resources/mapper/IpOrderMapper.xml

@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper
+		PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+		"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.hr.repository.jpa.IpOrderRepository">
+
+
+<!--    <select id="queryByBusinessNo" resultType="com.hr.repository.domain.IpOrderPO">-->
+<!--        select * from ip_order where 1=1 and  business_no = :businessNo-->
+<!--    </select>-->
+</mapper>