浏览代码

ias order补充日志

master
chenchaod 2 个月前
父节点
当前提交
1b70f41393

+ 32
- 10
zhywpt-service-ias/src/main/java/cn/com/taiji/ias/manager/AbstractHandleManager.java 查看文件



import cn.com.taiji.common.manager.net.http.ServiceHandleException; import cn.com.taiji.common.manager.net.http.ServiceHandleException;
import cn.com.taiji.common.pub.TimeTools; 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.AbstractSignTypeRequest;
import cn.com.taiji.core.model.comm.protocol.AbstractSignTypeResponse; 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.BusinessValidateTools;
import cn.com.taiji.core.model.comm.protocol.valid.ErrorMsgBuilder; 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.FormatValidateTools;
import cn.com.taiji.core.model.comm.protocol.valid.GlyServiceError; 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.DataType;
import cn.com.taiji.ias.dict.RequestStatus; import cn.com.taiji.ias.dict.RequestStatus;
import cn.com.taiji.ias.model.PersistException; import cn.com.taiji.ias.model.PersistException;
@Autowired @Autowired
@Qualifier("myExecutor") @Qualifier("myExecutor")
protected ThreadPoolTaskExecutor executor; protected ThreadPoolTaskExecutor executor;
@Autowired
protected IasInterfaceLogRepo logRepo;


@SuppressWarnings("unchecked") @SuppressWarnings("unchecked")
public AbstractHandleManager(DataType dataType) { public AbstractHandleManager(DataType dataType) {
ServiceLogEvent event = new ServiceLogEvent(dataType, ifCode, reqId, receiveTime); ServiceLogEvent event = new ServiceLogEvent(dataType, ifCode, reqId, receiveTime);
String dataId = getDataId(req); String dataId = getDataId(req);
event.setDataId(dataId); event.setDataId(dataId);
event.setReqJson(req.toJson());
try { try {
Map<String, Object> dataStream = Maps.newHashMap(); Map<String, Object> dataStream = Maps.newHashMap();
formatValidate(req, event, dataStream); formatValidate(req, event, dataStream);
doBusiness(req, event, dataStream); doBusiness(req, event, dataStream);
persist(req, event, dataStream); persist(req, event, dataStream);
onSuccess(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 { } finally {
// logManager.addServiceLog(event);
event.setAllCostTime(ChronoUnit.MILLIS.between(event.getReceiveTime(), LocalDateTime.now()));
executor.execute(() -> addServiceLog(event));
} }
} }


onBusinessValidateErr(req, dataStream); onBusinessValidateErr(req, dataStream);
throw GlyServiceError.BUSINESS_VALIDATE_ERR.toHandleException("业务校验错误"+e.getMessage()); throw GlyServiceError.BUSINESS_VALIDATE_ERR.toHandleException("业务校验错误"+e.getMessage());
} finally { } 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));
} }
} }


logger.error("------持久化失败:", e); logger.error("------持久化失败:", e);
throw GlyServiceError.PERSIST_ERR.toHandleException("提交持久化出错"); throw GlyServiceError.PERSIST_ERR.toHandleException("提交持久化出错");
} finally { } 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));
} }
} }


return getRes(req, event, dataStream); return getRes(req, event, dataStream);
} catch (Exception e) { } catch (Exception e) {
logger.error("------响应失败:", e); logger.error("------响应失败:", e);
event.setMsg(e.getMessage());
throw GlyServiceError.RESPONSE_ERROR.toHandleException(e.getMessage()); throw GlyServiceError.RESPONSE_ERROR.toHandleException(e.getMessage());
} }
} }
protected String getReceiveTimeStr(ServiceLogEvent event) { protected String getReceiveTimeStr(ServiceLogEvent event) {
return event.getReceiveTime().format(TimeTools.ISO_LOCAL_DATE_TIME); 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);
}
} }

+ 7
- 4
zhywpt-service-ias/src/main/java/cn/com/taiji/ias/manager/order/OrderInitManager.java 查看文件

import cn.com.taiji.core.repo.jpa.issue.IssueProductPayRepo; import cn.com.taiji.core.repo.jpa.issue.IssueProductPayRepo;
import cn.com.taiji.core.repo.jpa.issue.IssueProductPromotionRepo; import cn.com.taiji.core.repo.jpa.issue.IssueProductPromotionRepo;
import cn.com.taiji.ias.dict.DataType; import cn.com.taiji.ias.dict.DataType;
import cn.com.taiji.ias.manager.valid.VehiclePlateCheckManager;
import cn.com.taiji.ias.model.MyFinals; import cn.com.taiji.ias.model.MyFinals;
import cn.com.taiji.ias.model.ServiceLogEvent; import cn.com.taiji.ias.model.ServiceLogEvent;
import org.apache.commons.compress.utils.Lists; import org.apache.commons.compress.utils.Lists;
private IssueProductPromotionRepo promotionRepo; private IssueProductPromotionRepo promotionRepo;
@Autowired @Autowired
private IssueProductPayRepo productPayRepo; private IssueProductPayRepo productPayRepo;
@Autowired
private VehiclePlateCheckManager vehiclePlateCheckManager;




@Override @Override
req.setVehiclePlate(vehiclePlate); req.setVehiclePlate(vehiclePlate);
req.setVehiclePlateColor(vehiclePlateColor); req.setVehiclePlateColor(vehiclePlateColor);
// 1-发行方已办理 2-统一平台办理 3-未关联 4-未办理 5办理中 // 1-发行方已办理 2-统一平台办理 3-未关联 4-未办理 5办理中
VehiclePlateCheckResponse res = jsonPostRepeat(req);
// VehiclePlateCheckResponse res = jsonPostRepeat(req);
VehiclePlateCheckResponse res = vehiclePlateCheckManager.serviceHandle(req);
throwBisExceptionOn(res.getResult() != 4, res.getInfo()); throwBisExceptionOn(res.getResult() != 4, res.getInfo());
} }


ext.setRegion(request.getRegion()); ext.setRegion(request.getRegion());
ext.setAddress(request.getAddress()); ext.setAddress(request.getAddress());
ext.setPostCode(request.getPostalCode()); ext.setPostCode(request.getPostalCode());
ext.setLongitude(request.getLongitude().toString());
ext.setLatitude(request.getLatitude().toString());
if (request.getLongitude() != null) ext.setLongitude(request.getLongitude().toString());
if (request.getLatitude() != null) ext.setLatitude(request.getLatitude().toString());
ext.setTrackingNumber(request.getTrackingNumber());// 快递单号 ext.setTrackingNumber(request.getTrackingNumber());// 快递单号
ext.setCourierCompany(request.getCourierCompany());// 快递公司 ext.setCourierCompany(request.getCourierCompany());// 快递公司
orderInfoExtRepo.persist(ext); orderInfoExtRepo.persist(ext);
} }



} }

+ 4
- 1
zhywpt-service-ias/src/main/java/cn/com/taiji/ias/model/ServiceLogEvent.java 查看文件

this.receiveTime = receiveTime; this.receiveTime = receiveTime;
} }


private String reqJson;//请求数据
private String resJson;//响应数据
private DataType dataType;// 接口类型 private DataType dataType;// 接口类型
private String dataId;// 业务id private String dataId;// 业务id
private String ifCode;// 接口文件名 private String ifCode;// 接口文件名
private LocalDateTime persistTime;// 存入关系数据库时间 private LocalDateTime persistTime;// 存入关系数据库时间
private Long businessCostTime = 0L;// 业务校验花费时间 private Long businessCostTime = 0L;// 业务校验花费时间
private Long persistCostTime = 0L;// 持久化花费时间 private Long persistCostTime = 0L;// 持久化花费时间
private String msg;// 说明
private Long allCostTime = 0L;// 总花费时间
private String msg;// 错误信息
} }

正在加载...
取消
保存