12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788 |
- package com.diagbot.aop;
- import com.diagbot.annotation.BiLoggerResult;
- import com.diagbot.dto.RespDTO;
- import com.diagbot.enums.BiSourceEnum;
- import com.diagbot.enums.ProductTypeEnum;
- import com.diagbot.rabbit.MySender;
- import com.diagbot.util.BeanUtil;
- import com.diagbot.util.GsonUtil;
- import com.diagbot.util.StringUtil;
- import com.diagbot.vo.BaseBiVO;
- import com.diagbot.vo.BiRecord;
- import org.aspectj.lang.JoinPoint;
- import org.aspectj.lang.annotation.AfterReturning;
- import org.aspectj.lang.annotation.Aspect;
- import org.aspectj.lang.reflect.MethodSignature;
- import org.springframework.beans.factory.annotation.Autowired;
- import org.springframework.stereotype.Component;
- import java.lang.reflect.Method;
- import java.util.Date;
- /**
- * @Description: 日志拦截切面
- * @author: gaodm
- * @time: 2018/8/2 13:36
- */
- @Aspect
- @Component
- public class BiLoggerResultAspect {
- @Autowired
- private MySender mySender;
- @AfterReturning(value = "@annotation(com.diagbot.annotation.BiLoggerResult)", returning = "keys")
- public void saveBiRecord(JoinPoint joinPoint, Object keys) {
- MethodSignature signature = (MethodSignature) joinPoint.getSignature();
- Method method = signature.getMethod();
- BiRecord biRecord = new BiRecord();
- //请求的参数
- Object[] args = joinPoint.getArgs();
- String params = "";
- for (Object o : args) {
- if (o instanceof BaseBiVO) {
- BaseBiVO baseBiVO = (BaseBiVO) o;
- if (StringUtil.isBlank(baseBiVO.getHospitalCode())) {
- return;
- } else {
- BeanUtil.copyProperties(baseBiVO, biRecord);
- }
- }
- params += GsonUtil.toJson(o);
- }
- if (!StringUtil.isEmpty(params)) {
- biRecord.setParams(params);
- }
- //设置功能编码
- BiLoggerResult biLoggerResult = method.getAnnotation(BiLoggerResult.class);
- if (biLoggerResult != null) {
- //注解上的描述
- biRecord.setCode(biLoggerResult.value());
- }
- //出参设置
- String result = "";
- if (keys instanceof RespDTO) {
- RespDTO respDTO = (RespDTO) keys;
- RespDTO rs = new RespDTO();
- rs.code = respDTO.code;
- rs.msg = respDTO.msg;
- rs.data = new Object();
- result = GsonUtil.toJson(rs);
- } else {
- result = GsonUtil.toJson(keys);
- }
- if (!StringUtil.isEmpty(result)) {
- biRecord.setResult(result);
- }
- biRecord.setGmtCreate(new Date());
- biRecord.setProductType(ProductTypeEnum.LTAPI.getKey());
- biRecord.setSource(BiSourceEnum.BI_RESULT.getKey());
- //保存BI日志
- mySender.outputBiLogSend(biRecord);
- }
- }
|