|
|
@@ -2,17 +2,23 @@ package com.hr.externelSystem;
|
|
|
|
|
|
import com.alibaba.fastjson2.JSON;
|
|
|
import com.hr.dto.AggregateQueryDTO;
|
|
|
+import com.hr.dto.ApiLogDto;
|
|
|
import com.hr.param.AggregateRequest;
|
|
|
-import com.hr.repository.domain.IpInterfacePO;
|
|
|
+import com.hr.repository.domain.*;
|
|
|
+import com.hr.repository.jpa.IpLogRepository;
|
|
|
+import com.hr.repository.jpa.IpOrderRepository;
|
|
|
+import com.hr.util.SnowflakeIdWorker;
|
|
|
import com.timevale.esign.paas.tech.util.AesUtil;
|
|
|
import com.yy.basedevelop.common.data.BaseReturnDto;
|
|
|
import com.yy.basedevelop.common.util.ruoyi.exception.ServiceException;
|
|
|
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.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.stereotype.Component;
|
|
|
|
|
|
+import java.time.LocalDateTime;
|
|
|
import java.util.List;
|
|
|
|
|
|
@Component
|
|
|
@@ -21,6 +27,10 @@ public class BizHandlerFactory {
|
|
|
|
|
|
@Autowired
|
|
|
private List<BizHandler> handlers;
|
|
|
+ @Autowired
|
|
|
+ private IpOrderRepository ipOrderRepository;
|
|
|
+ @Autowired
|
|
|
+ private IpLogRepository ipLogRepository;
|
|
|
|
|
|
public BizHandler getHandler(String interfaceCode){
|
|
|
for (BizHandler handler : handlers) {
|
|
|
@@ -40,12 +50,39 @@ public class BizHandlerFactory {
|
|
|
public BaseReturnDto<T> dispatch(AggregateRequest req, AggregateQueryDTO dto) {
|
|
|
IpInterfacePO ipInterfacePO = dto.getIpInterfacePO();
|
|
|
BizHandler handler = getHandler(ipInterfacePO.getInterfaceNo());
|
|
|
+ IpOrderPO ipOrderPO = new IpOrderPO();
|
|
|
+ IpLogPO ipLogPO = new IpLogPO();
|
|
|
String data = req.getData();
|
|
|
try {
|
|
|
- String decrypt = AesUtil.decrypt(data, dto.getSecret());
|
|
|
+ ApiLogDto logDto = new ApiLogDto();
|
|
|
+ IpTokenPO ipTokenPO = dto.getIpTokenPO();
|
|
|
+ String decrypt = AesUtil.decrypt(data, ipTokenPO.getSecret());
|
|
|
Class requestClass = handler.getRequestClass();
|
|
|
Object o = JSON.parseObject(decrypt, requestClass);
|
|
|
- Object handle = handler.handle(o, ipInterfacePO);
|
|
|
+ wrapOrder(req, dto, ipOrderPO, ipInterfacePO,ipLogPO);
|
|
|
+ ipOrderPO.setOrderStatus("handle");
|
|
|
+ ipOrderRepository.save(ipOrderPO);
|
|
|
+ ipLogRepository.save(ipLogPO);
|
|
|
+ Object handle = handler.handle(o, ipInterfacePO,logDto);
|
|
|
+ ipLogPO.setSystemResponse(JSON.toJSONString(handle));
|
|
|
+ String errorMessage = logDto.getErrorMessage();
|
|
|
+ if(StringUtils.isEmpty(errorMessage)){
|
|
|
+ ipOrderPO.setOrderStatus("success");
|
|
|
+ ipLogPO.setStatus("success");
|
|
|
+
|
|
|
+ }else{
|
|
|
+ ipOrderPO.setOrderStatus("fail");
|
|
|
+ ipLogPO.setStatus("fail");
|
|
|
+ }
|
|
|
+ ipOrderPO.setUpdateTime(LocalDateTime.now());
|
|
|
+ ipLogPO.setUrl(logDto.getUrl());
|
|
|
+ ipLogPO.setRequestParam(logDto.getRequestParam());
|
|
|
+ ipLogPO.setUpdateTime(LocalDateTime.now());
|
|
|
+ ipLogPO.setResponseResult(logDto.getResponseParam());
|
|
|
+ ipLogPO.setHttpStatus(logDto.getHttpStatus());
|
|
|
+ ipLogPO.setMsg(logDto.getErrorMessage());
|
|
|
+ ipOrderRepository.save(ipOrderPO);
|
|
|
+ ipLogRepository.save(ipLogPO);
|
|
|
return BaseReturnDto.success(handle);
|
|
|
} catch (Exception e) {
|
|
|
log.error("数据解密失败",JSON.toJSONString(req),e);
|
|
|
@@ -53,4 +90,24 @@ public class BizHandlerFactory {
|
|
|
return BaseReturnDto.error(HttpStatus.SC_INTERNAL_SERVER_ERROR, "数据处理失败");
|
|
|
}
|
|
|
|
|
|
+ private void wrapOrder(AggregateRequest req, AggregateQueryDTO dto, IpOrderPO ipOrderPO, IpInterfacePO ipInterfacePO, IpLogPO ipLogPO) {
|
|
|
+ IpTokenInterfacePO ipTokenInterfacePO = dto.getIpTokenInterfacePO();
|
|
|
+
|
|
|
+ ipOrderPO.setId(SnowflakeIdWorker.nextId());
|
|
|
+ ipOrderPO.setInterfaceName(ipInterfacePO.getInterfaceName());
|
|
|
+ ipOrderPO.setAccNo(req.getAccountNo());
|
|
|
+ ipOrderPO.setToken(req.getToken());
|
|
|
+ ipOrderPO.setCallbackNum(ipTokenInterfacePO.getCallbackNum());
|
|
|
+ ipOrderPO.setCallbackUrl(ipTokenInterfacePO.getCallbackUrl());
|
|
|
+ ipOrderPO.setCallbackNum(ipTokenInterfacePO.getCallbackNum());
|
|
|
+ ipOrderPO.setAddTime(LocalDateTime.now());
|
|
|
+
|
|
|
+
|
|
|
+ ipLogPO.setId(SnowflakeIdWorker.nextId());
|
|
|
+ ipLogPO.setOid(ipOrderPO.getId());
|
|
|
+ ipLogPO.setAddTime(LocalDateTime.now());
|
|
|
+ ipLogPO.setExecuteType("request");
|
|
|
+ ipLogPO.setStatus("handle");
|
|
|
+ }
|
|
|
+
|
|
|
}
|