通过切面获取方法的返回值,并用返回值做处理。
@Slf4j
@Component
@Aspect
public class UploadOpCollectMqAspect {
private static String SOURCE_IP = "";
@Resource
private UploadSendCacheMqComponent uploadSendCacheMqComponent;
public UploadOpCollectMqAspect() {
}
static {
try {
SOURCE_IP = InetAddress.getLocalHost().getHostAddress();
} catch (UnknownHostException e) {
log.error("SystemEnvInfo_error", e);
}
}
/**
* @param collectData 获取到数据结构
* @AfterReturning 获取返回的结果并处理,不影响返回值
*/
@AfterReturning(value = "execution(* cn.yto.service.impl.OpQueryServiceImpl.queryData(..))", returning = "collectData")
public void aroundPoint(Object collectData) {
OpQueryDto waybillCollDto = (OpQueryDto) collectData;
if (opQuery != null) {
Map<String, Object> paramsMap = new HashMap<>(6);
paramsMap.put("id", opQuery.getId());
paramsMap.put("tag", "query");
paramsMap.put("param", JSON.toJSONString(opQuery));
paramsMap.put("sourceIp", SOURCE_IP);
paramsMap.put("requestUrl", "/queryData");
uploadSendCacheMqComponent.sendUploadCacheAsyncMq(paramsMap, opQuery.getId());
}
}
}