|
@@ -7,6 +7,7 @@ import com.steerinfo.dil.mapper.LogResultMapper;
|
|
|
import com.steerinfo.dil.model.LogResult;
|
|
import com.steerinfo.dil.model.LogResult;
|
|
|
import com.steerinfo.dil.util.DataChange;
|
|
import com.steerinfo.dil.util.DataChange;
|
|
|
import com.steerinfo.framework.controller.RESTfulResult;
|
|
import com.steerinfo.framework.controller.RESTfulResult;
|
|
|
|
|
+import lombok.extern.java.Log;
|
|
|
import org.apache.log4j.Logger;
|
|
import org.apache.log4j.Logger;
|
|
|
import org.aspectj.lang.ProceedingJoinPoint;
|
|
import org.aspectj.lang.ProceedingJoinPoint;
|
|
|
import org.aspectj.lang.Signature;
|
|
import org.aspectj.lang.Signature;
|
|
@@ -21,10 +22,7 @@ import org.springframework.stereotype.Component;
|
|
|
import java.lang.reflect.Method;
|
|
import java.lang.reflect.Method;
|
|
|
import java.text.DateFormat;
|
|
import java.text.DateFormat;
|
|
|
import java.text.SimpleDateFormat;
|
|
import java.text.SimpleDateFormat;
|
|
|
-import java.util.ArrayList;
|
|
|
|
|
-import java.util.Date;
|
|
|
|
|
-import java.util.List;
|
|
|
|
|
-import java.util.Map;
|
|
|
|
|
|
|
+import java.util.*;
|
|
|
|
|
|
|
|
/**
|
|
/**
|
|
|
* 日志 Aspect切面,编写切入点的方法
|
|
* 日志 Aspect切面,编写切入点的方法
|
|
@@ -103,30 +101,52 @@ public class LogAspect {
|
|
|
//获取执行时间
|
|
//获取执行时间
|
|
|
long exeCost = System.currentTimeMillis() - beginTime.getTime();
|
|
long exeCost = System.currentTimeMillis() - beginTime.getTime();
|
|
|
if(RESTfulResult.SUCCEED.equals(result.getStatus())){
|
|
if(RESTfulResult.SUCCEED.equals(result.getStatus())){
|
|
|
- //执行成功,记录日志
|
|
|
|
|
- Map<String,Object> data =(Map<String,Object>) result.getData();
|
|
|
|
|
- //记录正常日志
|
|
|
|
|
|
|
+ //执行成功,记录正常日志
|
|
|
log.info("方法返回:" + JSON.toJSONString(result));
|
|
log.info("方法返回:" + JSON.toJSONString(result));
|
|
|
log.info("执行时间(ms):"+exeCost);
|
|
log.info("执行时间(ms):"+exeCost);
|
|
|
log.info("执行===" + methodName + "===成功");
|
|
log.info("执行===" + methodName + "===成功");
|
|
|
- //记录到数据库
|
|
|
|
|
- List<LogResult> logResults=new ArrayList<>();
|
|
|
|
|
- for(int i=0 ; i<foreignKeys.length ; i++){
|
|
|
|
|
- LogResult logResult=new LogResult();
|
|
|
|
|
- logResult.setLogId(logResultMapper.nextId());
|
|
|
|
|
- logResult.setForeignKeyId(DataChange.dataToBigDecimal(data.get(foreignKeys[i])));
|
|
|
|
|
- logResult.setForeignKeyType(foreignKeyTypes[i]);
|
|
|
|
|
- logResult.setLogContent(map.get("userName")+":"+result.getMessage());
|
|
|
|
|
- logResult.setMethodName(""+signature);
|
|
|
|
|
- logResult.setMethodDescription(description);
|
|
|
|
|
- logResult.setInsertTime(beginTime);
|
|
|
|
|
- logResult.setExeCost(DataChange.dataToBigDecimal(exeCost));
|
|
|
|
|
- logResult.setFilePath(logPrefix+format.format(beginTime));
|
|
|
|
|
- logResult.setInsertUsername(""+map.get("userId"));
|
|
|
|
|
- logResult.setRemark("自动记录");
|
|
|
|
|
- logResults.add(logResult);
|
|
|
|
|
|
|
+ try{
|
|
|
|
|
+ //data数组
|
|
|
|
|
+ List<Map<String,Object>> datas = new ArrayList<>();
|
|
|
|
|
+ //记录到数据库
|
|
|
|
|
+ List<LogResult> logResults=new ArrayList<>();
|
|
|
|
|
+ //检查返回data类型
|
|
|
|
|
+ if(result.getData() instanceof Map){
|
|
|
|
|
+ Map<String,Object> data =(Map) result.getData();
|
|
|
|
|
+ datas.add(data);
|
|
|
|
|
+ }else if(result.getData() instanceof List){
|
|
|
|
|
+ datas =(List) result.getData();
|
|
|
|
|
+ }else{
|
|
|
|
|
+ throw new Exception("无法处理的数据类型!");
|
|
|
|
|
+ }
|
|
|
|
|
+ //批量处理
|
|
|
|
|
+ for(Map<String,Object> data : datas){
|
|
|
|
|
+ for(int i=0 ; i<foreignKeys.length ; i++){
|
|
|
|
|
+ if(data.get(foreignKeys[i]) != null){
|
|
|
|
|
+ LogResult logResult=new LogResult();
|
|
|
|
|
+ logResult.setLogId(logResultMapper.nextId());
|
|
|
|
|
+ logResult.setForeignKeyId(DataChange.dataToBigDecimal(data.get(foreignKeys[i])));
|
|
|
|
|
+ logResult.setForeignKeyType(foreignKeyTypes[i]);
|
|
|
|
|
+ logResult.setLogContent(map.get("userName")+":"+result.getMessage());
|
|
|
|
|
+ logResult.setMethodName(""+signature);
|
|
|
|
|
+ logResult.setMethodDescription(description);
|
|
|
|
|
+ logResult.setInsertTime(beginTime);
|
|
|
|
|
+ logResult.setExeCost(DataChange.dataToBigDecimal(exeCost));
|
|
|
|
|
+ logResult.setFilePath(logPrefix+format.format(beginTime));
|
|
|
|
|
+ logResult.setInsertUsername(""+map.get("userId"));
|
|
|
|
|
+ logResult.setRemark("自动记录");
|
|
|
|
|
+ logResults.add(logResult);
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ if(logResults.size() > 0){
|
|
|
|
|
+ logResultMapper.batchInsert(logResults);
|
|
|
|
|
+ }else{
|
|
|
|
|
+ throw new Exception("目标foreignKey不存在!");
|
|
|
|
|
+ }
|
|
|
|
|
+ }catch (Exception e){
|
|
|
|
|
+ log.info("记录日志失败:"+e.getMessage());
|
|
|
}
|
|
}
|
|
|
- logResultMapper.batchInsert(logResults);
|
|
|
|
|
}else{
|
|
}else{
|
|
|
//记录失败日志
|
|
//记录失败日志
|
|
|
log.info("方法返回:" + JSON.toJSONString(result));
|
|
log.info("方法返回:" + JSON.toJSONString(result));
|