|
|
@@ -2,12 +2,15 @@ package cn.com.taiji.ias.manager; |
|
|
|
|
|
|
|
import cn.com.taiji.common.manager.net.http.ServiceHandleException; |
|
|
|
import cn.com.taiji.common.pub.TimeTools; |
|
|
|
import cn.com.taiji.core.entity.dict.InterfaceStatus; |
|
|
|
import cn.com.taiji.core.entity.log.IasInterfaceLog; |
|
|
|
import cn.com.taiji.core.model.comm.protocol.AbstractSignTypeRequest; |
|
|
|
import cn.com.taiji.core.model.comm.protocol.AbstractSignTypeResponse; |
|
|
|
import cn.com.taiji.core.model.comm.protocol.valid.BusinessValidateTools; |
|
|
|
import cn.com.taiji.core.model.comm.protocol.valid.ErrorMsgBuilder; |
|
|
|
import cn.com.taiji.core.model.comm.protocol.valid.FormatValidateTools; |
|
|
|
import cn.com.taiji.core.model.comm.protocol.valid.GlyServiceError; |
|
|
|
import cn.com.taiji.core.repo.jpa.log.IasInterfaceLogRepo; |
|
|
|
import cn.com.taiji.ias.dict.DataType; |
|
|
|
import cn.com.taiji.ias.dict.RequestStatus; |
|
|
|
import cn.com.taiji.ias.model.PersistException; |
|
|
@@ -38,6 +41,8 @@ public abstract class AbstractHandleManager<T extends AbstractSignTypeRequest<?> |
|
|
|
@Autowired |
|
|
|
@Qualifier("myExecutor") |
|
|
|
protected ThreadPoolTaskExecutor executor; |
|
|
|
@Autowired |
|
|
|
protected IasInterfaceLogRepo logRepo; |
|
|
|
|
|
|
|
@SuppressWarnings("unchecked") |
|
|
|
public AbstractHandleManager(DataType dataType) { |
|
|
@@ -52,6 +57,7 @@ public abstract class AbstractHandleManager<T extends AbstractSignTypeRequest<?> |
|
|
|
ServiceLogEvent event = new ServiceLogEvent(dataType, ifCode, reqId, receiveTime); |
|
|
|
String dataId = getDataId(req); |
|
|
|
event.setDataId(dataId); |
|
|
|
event.setReqJson(req.toJson()); |
|
|
|
try { |
|
|
|
Map<String, Object> dataStream = Maps.newHashMap(); |
|
|
|
formatValidate(req, event, dataStream); |
|
|
@@ -59,9 +65,12 @@ public abstract class AbstractHandleManager<T extends AbstractSignTypeRequest<?> |
|
|
|
doBusiness(req, event, dataStream); |
|
|
|
persist(req, event, dataStream); |
|
|
|
onSuccess(req, event, dataStream); |
|
|
|
return generateRes(req, event, dataStream); |
|
|
|
AbstractSignTypeResponse response = generateRes(req, event, dataStream); |
|
|
|
event.setResJson(response.toJson()); |
|
|
|
return response; |
|
|
|
} finally { |
|
|
|
// logManager.addServiceLog(event); |
|
|
|
event.setAllCostTime(ChronoUnit.MILLIS.between(event.getReceiveTime(), LocalDateTime.now())); |
|
|
|
executor.execute(() -> addServiceLog(event)); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
@@ -117,10 +126,10 @@ public abstract class AbstractHandleManager<T extends AbstractSignTypeRequest<?> |
|
|
|
onBusinessValidateErr(req, dataStream); |
|
|
|
throw GlyServiceError.BUSINESS_VALIDATE_ERR.toHandleException("业务校验错误"+e.getMessage()); |
|
|
|
} finally { |
|
|
|
event.setReqStatus(RequestStatus.BUSINESS_VALID); |
|
|
|
LocalDateTime now = LocalDateTime.now(); |
|
|
|
event.setBusinessValidTime(now); |
|
|
|
event.setBusinessCostTime(ChronoUnit.MILLIS.between(event.getFormatValidTime(), now)); |
|
|
|
// event.setReqStatus(RequestStatus.BUSINESS_VALID); |
|
|
|
// LocalDateTime now = LocalDateTime.now(); |
|
|
|
// event.setBusinessValidTime(now); |
|
|
|
// event.setBusinessCostTime(ChronoUnit.MILLIS.between(event.getFormatValidTime(), now)); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
@@ -147,10 +156,10 @@ public abstract class AbstractHandleManager<T extends AbstractSignTypeRequest<?> |
|
|
|
logger.error("------持久化失败:", e); |
|
|
|
throw GlyServiceError.PERSIST_ERR.toHandleException("提交持久化出错"); |
|
|
|
} finally { |
|
|
|
LocalDateTime persistTime = LocalDateTime.now(); |
|
|
|
event.setReqStatus(RequestStatus.PERSIST); |
|
|
|
event.setPersistTime(persistTime); |
|
|
|
event.setPersistCostTime(ChronoUnit.MILLIS.between(event.getBusinessValidTime(), persistTime)); |
|
|
|
// LocalDateTime persistTime = LocalDateTime.now(); |
|
|
|
// event.setReqStatus(RequestStatus.PERSIST); |
|
|
|
// event.setPersistTime(persistTime); |
|
|
|
// event.setPersistCostTime(ChronoUnit.MILLIS.between(event.getBusinessValidTime(), persistTime)); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
@@ -183,6 +192,7 @@ public abstract class AbstractHandleManager<T extends AbstractSignTypeRequest<?> |
|
|
|
return getRes(req, event, dataStream); |
|
|
|
} catch (Exception e) { |
|
|
|
logger.error("------响应失败:", e); |
|
|
|
event.setMsg(e.getMessage()); |
|
|
|
throw GlyServiceError.RESPONSE_ERROR.toHandleException(e.getMessage()); |
|
|
|
} |
|
|
|
} |
|
|
@@ -221,4 +231,16 @@ public abstract class AbstractHandleManager<T extends AbstractSignTypeRequest<?> |
|
|
|
protected String getReceiveTimeStr(ServiceLogEvent event) { |
|
|
|
return event.getReceiveTime().format(TimeTools.ISO_LOCAL_DATE_TIME); |
|
|
|
} |
|
|
|
|
|
|
|
public void addServiceLog(ServiceLogEvent event) { |
|
|
|
IasInterfaceLog log = new IasInterfaceLog(); |
|
|
|
log.setRequestJson(event.getReqJson()); |
|
|
|
log.setResponseJson(event.getResJson()); |
|
|
|
log.setCreateTime(LocalDateTime.now()); |
|
|
|
log.setIfCode(event.getIfCode()); |
|
|
|
log.setStatus(hasText(event.getMsg())? InterfaceStatus.FAILED:InterfaceStatus.SUCCESS); |
|
|
|
log.setCost(event.getAllCostTime()); |
|
|
|
log.setErrorMsg(event.getMsg()); |
|
|
|
logRepo.persist(log); |
|
|
|
} |
|
|
|
} |