diff --git a/adc-da-slrs/src/main/java/com/adc/da/Log/BusinessType.java b/adc-da-slrs/src/main/java/com/adc/da/Log/BusinessType.java index 1c4b577d..f99852a7 100644 --- a/adc-da-slrs/src/main/java/com/adc/da/Log/BusinessType.java +++ b/adc-da-slrs/src/main/java/com/adc/da/Log/BusinessType.java @@ -21,4 +21,8 @@ public enum BusinessType { * 查询 */ SEARCH, + /** + * 下载 + */ + DOWNLOAD, } diff --git a/adc-da-slrs/src/main/java/com/adc/da/Log/EpcLog.java b/adc-da-slrs/src/main/java/com/adc/da/Log/EpcLog.java index 9ecbda04..128cbbe0 100644 --- a/adc-da-slrs/src/main/java/com/adc/da/Log/EpcLog.java +++ b/adc-da-slrs/src/main/java/com/adc/da/Log/EpcLog.java @@ -10,8 +10,6 @@ import java.lang.annotation.*; @Documented public @interface EpcLog { - String value() default ""; - /** * 模块 */ @@ -25,4 +23,7 @@ public @interface EpcLog { String description(); + String speclaiValue() default ""; + String speclaiFlag() default ""; + } diff --git a/adc-da-slrs/src/main/java/com/adc/da/Log/logs.java b/adc-da-slrs/src/main/java/com/adc/da/Log/logs.java index 7b773894..457caa71 100644 --- a/adc-da-slrs/src/main/java/com/adc/da/Log/logs.java +++ b/adc-da-slrs/src/main/java/com/adc/da/Log/logs.java @@ -1,8 +1,12 @@ package com.adc.da.Log; +import cn.hutool.core.date.DateTime; import com.adc.da.slrs.sysLog.entity.SysLog; import com.adc.da.slrs.sysLog.service.ISysLogService; import com.adc.da.util.LoginUserUtil; +import com.alibaba.fastjson.JSON; +import com.alibaba.fastjson.JSONObject; +import com.google.gson.Gson; import lombok.extern.slf4j.Slf4j; import org.aspectj.lang.JoinPoint; import org.aspectj.lang.annotation.AfterReturning; @@ -13,6 +17,7 @@ import org.springframework.stereotype.Component; import javax.servlet.http.HttpServletRequest; import java.lang.reflect.Method; +import java.util.Date; import java.util.HashMap; import java.util.Map; import java.util.UUID; @@ -47,14 +52,15 @@ public class logs { * 后置通知(在方法执行之后并返回数据) 用于拦截Controller层无异常的操作 * @param joinPoint 切点 */ - @AfterReturning("logPointCut()") - public void after(JoinPoint joinPoint){ + @AfterReturning(value = "logPointCut()",returning="returnValue") + public void after(JoinPoint joinPoint, Object returnValue){ Executor executor = Executors.newCachedThreadPool(); try { String description = getControllerMethodInfo(joinPoint).get("description").toString(); + String speclaiValue = getControllerMethodInfo(joinPoint).get("speclaiValue").toString(); + String speclaiFlag = getControllerMethodInfo(joinPoint).get("speclaiFlag").toString(); Map logParams = request.getParameterMap(); -// String principal = SecurityContextHolder.getContext().getAuthentication().getPrincipal().toString(); - + System.out.println(returnValue); SysLog log = new SysLog(); // ##请求用户 log.setUserId(LoginUserUtil.getUserId()); @@ -62,18 +68,29 @@ public class logs { log.setOperLocation(description); // ##日志类型 log.setOper(String.valueOf(getControllerMethodInfo(joinPoint).get("type"))); -// ##日志请求url -// log.setRequestUrl(request.getRequestURI());… -// ##请求方式 -// log.setRequestType(request.getMethod()); // ##请求参数 - log.setJson(logParams.toString()); + StringBuilder stringBuilder=new StringBuilder(); + for (String s:logParams.keySet()) { + if (!s.equals("_t")) { + stringBuilder.append("," + s + "=" + logParams.get(s)[0]); + } + } + log.setJson(stringBuilder.substring(1,stringBuilder.length())); + + //特殊处理 + if ("1".equals(speclaiFlag)){ + //这个是国内或者海外的查询接 + String gson=new Gson().toJson(returnValue); + JSONObject jsonObject= JSON.parseObject(gson); + JSONObject object= JSON.parseObject(jsonObject.getString("data")); + log.setSpecial(object.getString("standSort")+" "+object.getString("standNumber")+"-"+object.getString("standYear")+" "+object.getString("standName")+" "+speclaiValue); + } // ##请求开始时间 long endTime = System.currentTimeMillis(); // ##请求耗时 Long logElapsedTime = endTime - beginTime; log.setRunTime(logElapsedTime.intValue()); - + log.setOperTime(DateTime.of(new Date())); // ##调用线程保存至log表 executor.execute(new SaveSystemLogThread(log, sysLogService)); } catch (Exception e) { @@ -123,7 +140,9 @@ public class logs { Method[] methods = targetClass.getMethods(); String description = ""; - Integer type = null; + String type = null; + String speclaiValue = ""; + String speclaiFlag = ""; for(Method method : methods) { if(!method.getName().equals(methodName)) { @@ -135,9 +154,13 @@ public class logs { continue; } description = method.getAnnotation(EpcLog.class).description(); - type = method.getAnnotation(EpcLog.class).businessType().ordinal(); + type = method.getAnnotation(EpcLog.class).businessType().name(); + speclaiValue = method.getAnnotation(EpcLog.class).speclaiValue(); + speclaiFlag = method.getAnnotation(EpcLog.class).speclaiFlag(); map.put("description", description); map.put("type", type); + map.put("speclaiValue",speclaiValue); + map.put("speclaiFlag",speclaiFlag); } return map; } diff --git a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarStandardsInfo/controller/SarStandardsInfoController.java b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarStandardsInfo/controller/SarStandardsInfoController.java index fab305d2..9d64cc22 100644 --- a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarStandardsInfo/controller/SarStandardsInfoController.java +++ b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarStandardsInfo/controller/SarStandardsInfoController.java @@ -89,7 +89,6 @@ public class SarStandardsInfoController extends BaseController @ApiOperation(value = "|SarStandardsInfoEO|自定义分页查询") @GetMapping("/getSarStandardsInfoPage") - @EpcLog(description = "国内库或国外库查询",businessType = BusinessType.SEARCH) //@RequiresPermissions("lawss:sarStandardsInfo:getSarStandardsInfoPage") public ResponseMessage> getSarStandardsInfoPage(SarStandardsInfoEOPage page,@RequestParam(defaultValue = "0") String mark) throws Exception { if (null != page.getNowOrderBy()) { @@ -507,7 +506,7 @@ public class SarStandardsInfoController extends BaseController @ApiOperation(value = "|SarStandardsInfoEO|详情") @GetMapping("/getStandInfoById") - //@RequiresPermissions("lawss:sarStandardsInfo:get") + @EpcLog(description = "国内详情查询",businessType = BusinessType.SEARCH,speclaiFlag = "1",speclaiValue = "查询详情") public ResponseMessage find(String id) throws Exception { SarStandardsInfo result = sarStandardsInfoEOService.selectStandardsInfoByKey(id); return Result.success(result); diff --git a/adc-da-slrs/src/main/java/com/adc/da/slrs/sysLog/entity/SysLog.java b/adc-da-slrs/src/main/java/com/adc/da/slrs/sysLog/entity/SysLog.java index 72a844a4..0b7708ce 100644 --- a/adc-da-slrs/src/main/java/com/adc/da/slrs/sysLog/entity/SysLog.java +++ b/adc-da-slrs/src/main/java/com/adc/da/slrs/sysLog/entity/SysLog.java @@ -1,7 +1,6 @@ package com.adc.da.slrs.sysLog.entity; import com.adc.da.base.entity.BaseEntity; -import com.baomidou.mybatisplus.annotation.TableField; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; @@ -30,7 +29,7 @@ public class SysLog extends BaseEntity { private String userId; @ApiModelProperty(value = "操作时间") - private String operTime; + private DateTime operTime; @ApiModelProperty(value = "操作类型") private String oper; @@ -56,6 +55,9 @@ public class SysLog extends BaseEntity { @ApiModelProperty(value = "接口耗时") private int runTime; + @ApiModelProperty(value = "特殊处理的接口展示内容") + private String special; + @TableField(exist = false) private String account;