mirror of https://github.com/elunez/eladmin
log模块代码优化
parent
6c5e7061fe
commit
4e10329c42
|
@ -16,8 +16,8 @@
|
||||||
package me.zhengjie.aspect;
|
package me.zhengjie.aspect;
|
||||||
|
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import me.zhengjie.domain.Log;
|
import me.zhengjie.domain.SysLog;
|
||||||
import me.zhengjie.service.LogService;
|
import me.zhengjie.service.SysLogService;
|
||||||
import me.zhengjie.utils.RequestHolder;
|
import me.zhengjie.utils.RequestHolder;
|
||||||
import me.zhengjie.utils.SecurityUtils;
|
import me.zhengjie.utils.SecurityUtils;
|
||||||
import me.zhengjie.utils.StringUtils;
|
import me.zhengjie.utils.StringUtils;
|
||||||
|
@ -40,12 +40,12 @@ import javax.servlet.http.HttpServletRequest;
|
||||||
@Slf4j
|
@Slf4j
|
||||||
public class LogAspect {
|
public class LogAspect {
|
||||||
|
|
||||||
private final LogService logService;
|
private final SysLogService sysLogService;
|
||||||
|
|
||||||
ThreadLocal<Long> currentTime = new ThreadLocal<>();
|
ThreadLocal<Long> currentTime = new ThreadLocal<>();
|
||||||
|
|
||||||
public LogAspect(LogService logService) {
|
public LogAspect(SysLogService sysLogService) {
|
||||||
this.logService = logService;
|
this.sysLogService = sysLogService;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -66,10 +66,10 @@ public class LogAspect {
|
||||||
Object result;
|
Object result;
|
||||||
currentTime.set(System.currentTimeMillis());
|
currentTime.set(System.currentTimeMillis());
|
||||||
result = joinPoint.proceed();
|
result = joinPoint.proceed();
|
||||||
Log log = new Log("INFO",System.currentTimeMillis() - currentTime.get());
|
SysLog sysLog = new SysLog("INFO",System.currentTimeMillis() - currentTime.get());
|
||||||
currentTime.remove();
|
currentTime.remove();
|
||||||
HttpServletRequest request = RequestHolder.getHttpServletRequest();
|
HttpServletRequest request = RequestHolder.getHttpServletRequest();
|
||||||
logService.save(getUsername(), StringUtils.getBrowser(request), StringUtils.getIp(request),joinPoint, log);
|
sysLogService.save(getUsername(), StringUtils.getBrowser(request), StringUtils.getIp(request),joinPoint, sysLog);
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -81,11 +81,11 @@ public class LogAspect {
|
||||||
*/
|
*/
|
||||||
@AfterThrowing(pointcut = "logPointcut()", throwing = "e")
|
@AfterThrowing(pointcut = "logPointcut()", throwing = "e")
|
||||||
public void logAfterThrowing(JoinPoint joinPoint, Throwable e) {
|
public void logAfterThrowing(JoinPoint joinPoint, Throwable e) {
|
||||||
Log log = new Log("ERROR",System.currentTimeMillis() - currentTime.get());
|
SysLog sysLog = new SysLog("ERROR",System.currentTimeMillis() - currentTime.get());
|
||||||
currentTime.remove();
|
currentTime.remove();
|
||||||
log.setExceptionDetail(ThrowableUtil.getStackTrace(e).getBytes());
|
sysLog.setExceptionDetail(ThrowableUtil.getStackTrace(e).getBytes());
|
||||||
HttpServletRequest request = RequestHolder.getHttpServletRequest();
|
HttpServletRequest request = RequestHolder.getHttpServletRequest();
|
||||||
logService.save(getUsername(), StringUtils.getBrowser(request), StringUtils.getIp(request), (ProceedingJoinPoint)joinPoint, log);
|
sysLogService.save(getUsername(), StringUtils.getBrowser(request), StringUtils.getIp(request), (ProceedingJoinPoint)joinPoint, sysLog);
|
||||||
}
|
}
|
||||||
|
|
||||||
public String getUsername() {
|
public String getUsername() {
|
||||||
|
|
|
@ -32,7 +32,7 @@ import java.sql.Timestamp;
|
||||||
@Setter
|
@Setter
|
||||||
@Table(name = "sys_log")
|
@Table(name = "sys_log")
|
||||||
@NoArgsConstructor
|
@NoArgsConstructor
|
||||||
public class Log implements Serializable {
|
public class SysLog implements Serializable {
|
||||||
|
|
||||||
@Id
|
@Id
|
||||||
@Column(name = "log_id")
|
@Column(name = "log_id")
|
||||||
|
@ -73,7 +73,7 @@ public class Log implements Serializable {
|
||||||
@CreationTimestamp
|
@CreationTimestamp
|
||||||
private Timestamp createTime;
|
private Timestamp createTime;
|
||||||
|
|
||||||
public Log(String logType, Long time) {
|
public SysLog(String logType, Long time) {
|
||||||
this.logType = logType;
|
this.logType = logType;
|
||||||
this.time = time;
|
this.time = time;
|
||||||
}
|
}
|
|
@ -15,7 +15,7 @@
|
||||||
*/
|
*/
|
||||||
package me.zhengjie.repository;
|
package me.zhengjie.repository;
|
||||||
|
|
||||||
import me.zhengjie.domain.Log;
|
import me.zhengjie.domain.SysLog;
|
||||||
import org.springframework.data.jpa.repository.JpaRepository;
|
import org.springframework.data.jpa.repository.JpaRepository;
|
||||||
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
|
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
|
||||||
import org.springframework.data.jpa.repository.Modifying;
|
import org.springframework.data.jpa.repository.Modifying;
|
||||||
|
@ -27,7 +27,7 @@ import org.springframework.stereotype.Repository;
|
||||||
* @date 2018-11-24
|
* @date 2018-11-24
|
||||||
*/
|
*/
|
||||||
@Repository
|
@Repository
|
||||||
public interface LogRepository extends JpaRepository<Log,Long>, JpaSpecificationExecutor<Log> {
|
public interface LogRepository extends JpaRepository<SysLog,Long>, JpaSpecificationExecutor<SysLog> {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 根据日志类型删除信息
|
* 根据日志类型删除信息
|
||||||
|
|
|
@ -19,8 +19,8 @@ import io.swagger.annotations.Api;
|
||||||
import io.swagger.annotations.ApiOperation;
|
import io.swagger.annotations.ApiOperation;
|
||||||
import lombok.RequiredArgsConstructor;
|
import lombok.RequiredArgsConstructor;
|
||||||
import me.zhengjie.annotation.Log;
|
import me.zhengjie.annotation.Log;
|
||||||
import me.zhengjie.service.LogService;
|
import me.zhengjie.service.SysLogService;
|
||||||
import me.zhengjie.service.dto.LogQueryCriteria;
|
import me.zhengjie.service.dto.SysLogQueryCriteria;
|
||||||
import me.zhengjie.utils.SecurityUtils;
|
import me.zhengjie.utils.SecurityUtils;
|
||||||
import org.springframework.data.domain.Pageable;
|
import org.springframework.data.domain.Pageable;
|
||||||
import org.springframework.http.HttpStatus;
|
import org.springframework.http.HttpStatus;
|
||||||
|
@ -38,63 +38,63 @@ import java.io.IOException;
|
||||||
@RequiredArgsConstructor
|
@RequiredArgsConstructor
|
||||||
@RequestMapping("/api/logs")
|
@RequestMapping("/api/logs")
|
||||||
@Api(tags = "系统:日志管理")
|
@Api(tags = "系统:日志管理")
|
||||||
public class LogController {
|
public class SysLogController {
|
||||||
|
|
||||||
private final LogService logService;
|
private final SysLogService sysLogService;
|
||||||
|
|
||||||
@Log("导出数据")
|
@Log("导出数据")
|
||||||
@ApiOperation("导出数据")
|
@ApiOperation("导出数据")
|
||||||
@GetMapping(value = "/download")
|
@GetMapping(value = "/download")
|
||||||
@PreAuthorize("@el.check()")
|
@PreAuthorize("@el.check()")
|
||||||
public void exportLog(HttpServletResponse response, LogQueryCriteria criteria) throws IOException {
|
public void exportLog(HttpServletResponse response, SysLogQueryCriteria criteria) throws IOException {
|
||||||
criteria.setLogType("INFO");
|
criteria.setLogType("INFO");
|
||||||
logService.download(logService.queryAll(criteria), response);
|
sysLogService.download(sysLogService.queryAll(criteria), response);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Log("导出错误数据")
|
@Log("导出错误数据")
|
||||||
@ApiOperation("导出错误数据")
|
@ApiOperation("导出错误数据")
|
||||||
@GetMapping(value = "/error/download")
|
@GetMapping(value = "/error/download")
|
||||||
@PreAuthorize("@el.check()")
|
@PreAuthorize("@el.check()")
|
||||||
public void exportErrorLog(HttpServletResponse response, LogQueryCriteria criteria) throws IOException {
|
public void exportErrorLog(HttpServletResponse response, SysLogQueryCriteria criteria) throws IOException {
|
||||||
criteria.setLogType("ERROR");
|
criteria.setLogType("ERROR");
|
||||||
logService.download(logService.queryAll(criteria), response);
|
sysLogService.download(sysLogService.queryAll(criteria), response);
|
||||||
}
|
}
|
||||||
@GetMapping
|
@GetMapping
|
||||||
@ApiOperation("日志查询")
|
@ApiOperation("日志查询")
|
||||||
@PreAuthorize("@el.check()")
|
@PreAuthorize("@el.check()")
|
||||||
public ResponseEntity<Object> queryLog(LogQueryCriteria criteria, Pageable pageable){
|
public ResponseEntity<Object> queryLog(SysLogQueryCriteria criteria, Pageable pageable){
|
||||||
criteria.setLogType("INFO");
|
criteria.setLogType("INFO");
|
||||||
return new ResponseEntity<>(logService.queryAll(criteria,pageable), HttpStatus.OK);
|
return new ResponseEntity<>(sysLogService.queryAll(criteria,pageable), HttpStatus.OK);
|
||||||
}
|
}
|
||||||
|
|
||||||
@GetMapping(value = "/user")
|
@GetMapping(value = "/user")
|
||||||
@ApiOperation("用户日志查询")
|
@ApiOperation("用户日志查询")
|
||||||
public ResponseEntity<Object> queryUserLog(LogQueryCriteria criteria, Pageable pageable){
|
public ResponseEntity<Object> queryUserLog(SysLogQueryCriteria criteria, Pageable pageable){
|
||||||
criteria.setLogType("INFO");
|
criteria.setLogType("INFO");
|
||||||
criteria.setUsername(SecurityUtils.getCurrentUsername());
|
criteria.setUsername(SecurityUtils.getCurrentUsername());
|
||||||
return new ResponseEntity<>(logService.queryAllByUser(criteria,pageable), HttpStatus.OK);
|
return new ResponseEntity<>(sysLogService.queryAllByUser(criteria,pageable), HttpStatus.OK);
|
||||||
}
|
}
|
||||||
|
|
||||||
@GetMapping(value = "/error")
|
@GetMapping(value = "/error")
|
||||||
@ApiOperation("错误日志查询")
|
@ApiOperation("错误日志查询")
|
||||||
@PreAuthorize("@el.check()")
|
@PreAuthorize("@el.check()")
|
||||||
public ResponseEntity<Object> queryErrorLog(LogQueryCriteria criteria, Pageable pageable){
|
public ResponseEntity<Object> queryErrorLog(SysLogQueryCriteria criteria, Pageable pageable){
|
||||||
criteria.setLogType("ERROR");
|
criteria.setLogType("ERROR");
|
||||||
return new ResponseEntity<>(logService.queryAll(criteria,pageable), HttpStatus.OK);
|
return new ResponseEntity<>(sysLogService.queryAll(criteria,pageable), HttpStatus.OK);
|
||||||
}
|
}
|
||||||
|
|
||||||
@GetMapping(value = "/error/{id}")
|
@GetMapping(value = "/error/{id}")
|
||||||
@ApiOperation("日志异常详情查询")
|
@ApiOperation("日志异常详情查询")
|
||||||
@PreAuthorize("@el.check()")
|
@PreAuthorize("@el.check()")
|
||||||
public ResponseEntity<Object> queryErrorLogDetail(@PathVariable Long id){
|
public ResponseEntity<Object> queryErrorLogDetail(@PathVariable Long id){
|
||||||
return new ResponseEntity<>(logService.findByErrDetail(id), HttpStatus.OK);
|
return new ResponseEntity<>(sysLogService.findByErrDetail(id), HttpStatus.OK);
|
||||||
}
|
}
|
||||||
@DeleteMapping(value = "/del/error")
|
@DeleteMapping(value = "/del/error")
|
||||||
@Log("删除所有ERROR日志")
|
@Log("删除所有ERROR日志")
|
||||||
@ApiOperation("删除所有ERROR日志")
|
@ApiOperation("删除所有ERROR日志")
|
||||||
@PreAuthorize("@el.check()")
|
@PreAuthorize("@el.check()")
|
||||||
public ResponseEntity<Object> delAllErrorLog(){
|
public ResponseEntity<Object> delAllErrorLog(){
|
||||||
logService.delAllByError();
|
sysLogService.delAllByError();
|
||||||
return new ResponseEntity<>(HttpStatus.OK);
|
return new ResponseEntity<>(HttpStatus.OK);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -103,7 +103,7 @@ public class LogController {
|
||||||
@ApiOperation("删除所有INFO日志")
|
@ApiOperation("删除所有INFO日志")
|
||||||
@PreAuthorize("@el.check()")
|
@PreAuthorize("@el.check()")
|
||||||
public ResponseEntity<Object> delAllInfoLog(){
|
public ResponseEntity<Object> delAllInfoLog(){
|
||||||
logService.delAllByInfo();
|
sysLogService.delAllByInfo();
|
||||||
return new ResponseEntity<>(HttpStatus.OK);
|
return new ResponseEntity<>(HttpStatus.OK);
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -15,8 +15,8 @@
|
||||||
*/
|
*/
|
||||||
package me.zhengjie.service;
|
package me.zhengjie.service;
|
||||||
|
|
||||||
import me.zhengjie.domain.Log;
|
import me.zhengjie.domain.SysLog;
|
||||||
import me.zhengjie.service.dto.LogQueryCriteria;
|
import me.zhengjie.service.dto.SysLogQueryCriteria;
|
||||||
import org.aspectj.lang.ProceedingJoinPoint;
|
import org.aspectj.lang.ProceedingJoinPoint;
|
||||||
import org.springframework.data.domain.Pageable;
|
import org.springframework.data.domain.Pageable;
|
||||||
import org.springframework.scheduling.annotation.Async;
|
import org.springframework.scheduling.annotation.Async;
|
||||||
|
@ -29,7 +29,7 @@ import java.util.List;
|
||||||
* @author Zheng Jie
|
* @author Zheng Jie
|
||||||
* @date 2018-11-24
|
* @date 2018-11-24
|
||||||
*/
|
*/
|
||||||
public interface LogService {
|
public interface SysLogService {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 分页查询
|
* 分页查询
|
||||||
|
@ -37,14 +37,14 @@ public interface LogService {
|
||||||
* @param pageable 分页参数
|
* @param pageable 分页参数
|
||||||
* @return /
|
* @return /
|
||||||
*/
|
*/
|
||||||
Object queryAll(LogQueryCriteria criteria, Pageable pageable);
|
Object queryAll(SysLogQueryCriteria criteria, Pageable pageable);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 查询全部数据
|
* 查询全部数据
|
||||||
* @param criteria 查询条件
|
* @param criteria 查询条件
|
||||||
* @return /
|
* @return /
|
||||||
*/
|
*/
|
||||||
List<Log> queryAll(LogQueryCriteria criteria);
|
List<SysLog> queryAll(SysLogQueryCriteria criteria);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 查询用户日志
|
* 查询用户日志
|
||||||
|
@ -52,7 +52,7 @@ public interface LogService {
|
||||||
* @param pageable 分页参数
|
* @param pageable 分页参数
|
||||||
* @return -
|
* @return -
|
||||||
*/
|
*/
|
||||||
Object queryAllByUser(LogQueryCriteria criteria, Pageable pageable);
|
Object queryAllByUser(SysLogQueryCriteria criteria, Pageable pageable);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 保存日志数据
|
* 保存日志数据
|
||||||
|
@ -60,10 +60,10 @@ public interface LogService {
|
||||||
* @param browser 浏览器
|
* @param browser 浏览器
|
||||||
* @param ip 请求IP
|
* @param ip 请求IP
|
||||||
* @param joinPoint /
|
* @param joinPoint /
|
||||||
* @param log 日志实体
|
* @param sysLog 日志实体
|
||||||
*/
|
*/
|
||||||
@Async
|
@Async
|
||||||
void save(String username, String browser, String ip, ProceedingJoinPoint joinPoint, Log log);
|
void save(String username, String browser, String ip, ProceedingJoinPoint joinPoint, SysLog sysLog);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 查询异常详情
|
* 查询异常详情
|
||||||
|
@ -74,11 +74,11 @@ public interface LogService {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 导出日志
|
* 导出日志
|
||||||
* @param logs 待导出的数据
|
* @param sysLogs 待导出的数据
|
||||||
* @param response /
|
* @param response /
|
||||||
* @throws IOException /
|
* @throws IOException /
|
||||||
*/
|
*/
|
||||||
void download(List<Log> logs, HttpServletResponse response) throws IOException;
|
void download(List<SysLog> sysLogs, HttpServletResponse response) throws IOException;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 删除所有错误日志
|
* 删除所有错误日志
|
|
@ -24,7 +24,7 @@ import java.sql.Timestamp;
|
||||||
* @date 2019-5-22
|
* @date 2019-5-22
|
||||||
*/
|
*/
|
||||||
@Data
|
@Data
|
||||||
public class LogErrorDTO implements Serializable {
|
public class SysLogErrorDto implements Serializable {
|
||||||
|
|
||||||
private Long id;
|
private Long id;
|
||||||
|
|
|
@ -26,7 +26,7 @@ import java.util.List;
|
||||||
* @date 2019-6-4 09:23:07
|
* @date 2019-6-4 09:23:07
|
||||||
*/
|
*/
|
||||||
@Data
|
@Data
|
||||||
public class LogQueryCriteria {
|
public class SysLogQueryCriteria {
|
||||||
|
|
||||||
@Query(blurry = "username,description,address,requestIp,method,params")
|
@Query(blurry = "username,description,address,requestIp,method,params")
|
||||||
private String blurry;
|
private String blurry;
|
|
@ -24,7 +24,7 @@ import java.sql.Timestamp;
|
||||||
* @date 2019-5-22
|
* @date 2019-5-22
|
||||||
*/
|
*/
|
||||||
@Data
|
@Data
|
||||||
public class LogSmallDTO implements Serializable {
|
public class SysLogSmallDto implements Serializable {
|
||||||
|
|
||||||
private String description;
|
private String description;
|
||||||
|
|
|
@ -20,10 +20,10 @@ import cn.hutool.core.util.ObjectUtil;
|
||||||
import cn.hutool.json.JSONObject;
|
import cn.hutool.json.JSONObject;
|
||||||
import cn.hutool.json.JSONUtil;
|
import cn.hutool.json.JSONUtil;
|
||||||
import lombok.RequiredArgsConstructor;
|
import lombok.RequiredArgsConstructor;
|
||||||
import me.zhengjie.domain.Log;
|
import me.zhengjie.domain.SysLog;
|
||||||
import me.zhengjie.repository.LogRepository;
|
import me.zhengjie.repository.LogRepository;
|
||||||
import me.zhengjie.service.LogService;
|
import me.zhengjie.service.SysLogService;
|
||||||
import me.zhengjie.service.dto.LogQueryCriteria;
|
import me.zhengjie.service.dto.SysLogQueryCriteria;
|
||||||
import me.zhengjie.service.mapstruct.LogErrorMapper;
|
import me.zhengjie.service.mapstruct.LogErrorMapper;
|
||||||
import me.zhengjie.service.mapstruct.LogSmallMapper;
|
import me.zhengjie.service.mapstruct.LogSmallMapper;
|
||||||
import me.zhengjie.utils.*;
|
import me.zhengjie.utils.*;
|
||||||
|
@ -48,14 +48,14 @@ import java.util.*;
|
||||||
*/
|
*/
|
||||||
@Service
|
@Service
|
||||||
@RequiredArgsConstructor
|
@RequiredArgsConstructor
|
||||||
public class LogServiceImpl implements LogService {
|
public class SysLogServiceImpl implements SysLogService {
|
||||||
private final LogRepository logRepository;
|
private final LogRepository logRepository;
|
||||||
private final LogErrorMapper logErrorMapper;
|
private final LogErrorMapper logErrorMapper;
|
||||||
private final LogSmallMapper logSmallMapper;
|
private final LogSmallMapper logSmallMapper;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Object queryAll(LogQueryCriteria criteria, Pageable pageable) {
|
public Object queryAll(SysLogQueryCriteria criteria, Pageable pageable) {
|
||||||
Page<Log> page = logRepository.findAll(((root, criteriaQuery, cb) -> QueryHelp.getPredicate(root, criteria, cb)), pageable);
|
Page<SysLog> page = logRepository.findAll(((root, criteriaQuery, cb) -> QueryHelp.getPredicate(root, criteria, cb)), pageable);
|
||||||
String status = "ERROR";
|
String status = "ERROR";
|
||||||
if (status.equals(criteria.getLogType())) {
|
if (status.equals(criteria.getLogType())) {
|
||||||
return PageUtil.toPage(page.map(logErrorMapper::toDto));
|
return PageUtil.toPage(page.map(logErrorMapper::toDto));
|
||||||
|
@ -64,20 +64,20 @@ public class LogServiceImpl implements LogService {
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public List<Log> queryAll(LogQueryCriteria criteria) {
|
public List<SysLog> queryAll(SysLogQueryCriteria criteria) {
|
||||||
return logRepository.findAll(((root, criteriaQuery, cb) -> QueryHelp.getPredicate(root, criteria, cb)));
|
return logRepository.findAll(((root, criteriaQuery, cb) -> QueryHelp.getPredicate(root, criteria, cb)));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Object queryAllByUser(LogQueryCriteria criteria, Pageable pageable) {
|
public Object queryAllByUser(SysLogQueryCriteria criteria, Pageable pageable) {
|
||||||
Page<Log> page = logRepository.findAll(((root, criteriaQuery, cb) -> QueryHelp.getPredicate(root, criteria, cb)), pageable);
|
Page<SysLog> page = logRepository.findAll(((root, criteriaQuery, cb) -> QueryHelp.getPredicate(root, criteria, cb)), pageable);
|
||||||
return PageUtil.toPage(page.map(logSmallMapper::toDto));
|
return PageUtil.toPage(page.map(logSmallMapper::toDto));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@Transactional(rollbackFor = Exception.class)
|
@Transactional(rollbackFor = Exception.class)
|
||||||
public void save(String username, String browser, String ip, ProceedingJoinPoint joinPoint, Log log) {
|
public void save(String username, String browser, String ip, ProceedingJoinPoint joinPoint, SysLog sysLog) {
|
||||||
if (log == null) {
|
if (sysLog == null) {
|
||||||
throw new IllegalArgumentException("Log 不能为 null!");
|
throw new IllegalArgumentException("Log 不能为 null!");
|
||||||
}
|
}
|
||||||
MethodSignature signature = (MethodSignature) joinPoint.getSignature();
|
MethodSignature signature = (MethodSignature) joinPoint.getSignature();
|
||||||
|
@ -88,21 +88,21 @@ public class LogServiceImpl implements LogService {
|
||||||
String methodName = joinPoint.getTarget().getClass().getName() + "." + signature.getName() + "()";
|
String methodName = joinPoint.getTarget().getClass().getName() + "." + signature.getName() + "()";
|
||||||
|
|
||||||
// 描述
|
// 描述
|
||||||
log.setDescription(aopLog.value());
|
sysLog.setDescription(aopLog.value());
|
||||||
|
|
||||||
log.setRequestIp(ip);
|
sysLog.setRequestIp(ip);
|
||||||
log.setAddress(StringUtils.getCityInfo(log.getRequestIp()));
|
sysLog.setAddress(StringUtils.getCityInfo(sysLog.getRequestIp()));
|
||||||
log.setMethod(methodName);
|
sysLog.setMethod(methodName);
|
||||||
log.setUsername(username);
|
sysLog.setUsername(username);
|
||||||
log.setParams(getParameter(method, joinPoint.getArgs()));
|
sysLog.setParams(getParameter(method, joinPoint.getArgs()));
|
||||||
// 记录登录用户,隐藏密码信息
|
// 记录登录用户,隐藏密码信息
|
||||||
if(signature.getName().equals("login") && StringUtils.isNotEmpty(log.getParams())){
|
if(signature.getName().equals("login") && StringUtils.isNotEmpty(sysLog.getParams())){
|
||||||
JSONObject obj = JSONUtil.parseObj(log.getParams());
|
JSONObject obj = JSONUtil.parseObj(sysLog.getParams());
|
||||||
log.setUsername(obj.getStr("username", ""));
|
sysLog.setUsername(obj.getStr("username", ""));
|
||||||
log.setParams(JSONUtil.toJsonStr(Dict.create().set("username", log.getUsername())));
|
sysLog.setParams(JSONUtil.toJsonStr(Dict.create().set("username", sysLog.getUsername())));
|
||||||
}
|
}
|
||||||
log.setBrowser(browser);
|
sysLog.setBrowser(browser);
|
||||||
logRepository.save(log);
|
logRepository.save(sysLog);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -137,25 +137,25 @@ public class LogServiceImpl implements LogService {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Object findByErrDetail(Long id) {
|
public Object findByErrDetail(Long id) {
|
||||||
Log log = logRepository.findById(id).orElseGet(Log::new);
|
SysLog sysLog = logRepository.findById(id).orElseGet(SysLog::new);
|
||||||
ValidationUtil.isNull(log.getId(), "Log", "id", id);
|
ValidationUtil.isNull(sysLog.getId(), "Log", "id", id);
|
||||||
byte[] details = log.getExceptionDetail();
|
byte[] details = sysLog.getExceptionDetail();
|
||||||
return Dict.create().set("exception", new String(ObjectUtil.isNotNull(details) ? details : "".getBytes()));
|
return Dict.create().set("exception", new String(ObjectUtil.isNotNull(details) ? details : "".getBytes()));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void download(List<Log> logs, HttpServletResponse response) throws IOException {
|
public void download(List<SysLog> sysLogs, HttpServletResponse response) throws IOException {
|
||||||
List<Map<String, Object>> list = new ArrayList<>();
|
List<Map<String, Object>> list = new ArrayList<>();
|
||||||
for (Log log : logs) {
|
for (SysLog sysLog : sysLogs) {
|
||||||
Map<String, Object> map = new LinkedHashMap<>();
|
Map<String, Object> map = new LinkedHashMap<>();
|
||||||
map.put("用户名", log.getUsername());
|
map.put("用户名", sysLog.getUsername());
|
||||||
map.put("IP", log.getRequestIp());
|
map.put("IP", sysLog.getRequestIp());
|
||||||
map.put("IP来源", log.getAddress());
|
map.put("IP来源", sysLog.getAddress());
|
||||||
map.put("描述", log.getDescription());
|
map.put("描述", sysLog.getDescription());
|
||||||
map.put("浏览器", log.getBrowser());
|
map.put("浏览器", sysLog.getBrowser());
|
||||||
map.put("请求耗时/毫秒", log.getTime());
|
map.put("请求耗时/毫秒", sysLog.getTime());
|
||||||
map.put("异常详情", new String(ObjectUtil.isNotNull(log.getExceptionDetail()) ? log.getExceptionDetail() : "".getBytes()));
|
map.put("异常详情", new String(ObjectUtil.isNotNull(sysLog.getExceptionDetail()) ? sysLog.getExceptionDetail() : "".getBytes()));
|
||||||
map.put("创建日期", log.getCreateTime());
|
map.put("创建日期", sysLog.getCreateTime());
|
||||||
list.add(map);
|
list.add(map);
|
||||||
}
|
}
|
||||||
FileUtil.downloadExcel(list, response);
|
FileUtil.downloadExcel(list, response);
|
|
@ -16,8 +16,8 @@
|
||||||
package me.zhengjie.service.mapstruct;
|
package me.zhengjie.service.mapstruct;
|
||||||
|
|
||||||
import me.zhengjie.base.BaseMapper;
|
import me.zhengjie.base.BaseMapper;
|
||||||
import me.zhengjie.domain.Log;
|
import me.zhengjie.domain.SysLog;
|
||||||
import me.zhengjie.service.dto.LogErrorDTO;
|
import me.zhengjie.service.dto.SysLogErrorDto;
|
||||||
import org.mapstruct.Mapper;
|
import org.mapstruct.Mapper;
|
||||||
import org.mapstruct.ReportingPolicy;
|
import org.mapstruct.ReportingPolicy;
|
||||||
|
|
||||||
|
@ -26,6 +26,6 @@ import org.mapstruct.ReportingPolicy;
|
||||||
* @date 2019-5-22
|
* @date 2019-5-22
|
||||||
*/
|
*/
|
||||||
@Mapper(componentModel = "spring",unmappedTargetPolicy = ReportingPolicy.IGNORE)
|
@Mapper(componentModel = "spring",unmappedTargetPolicy = ReportingPolicy.IGNORE)
|
||||||
public interface LogErrorMapper extends BaseMapper<LogErrorDTO, Log> {
|
public interface LogErrorMapper extends BaseMapper<SysLogErrorDto, SysLog> {
|
||||||
|
|
||||||
}
|
}
|
|
@ -16,8 +16,8 @@
|
||||||
package me.zhengjie.service.mapstruct;
|
package me.zhengjie.service.mapstruct;
|
||||||
|
|
||||||
import me.zhengjie.base.BaseMapper;
|
import me.zhengjie.base.BaseMapper;
|
||||||
import me.zhengjie.domain.Log;
|
import me.zhengjie.domain.SysLog;
|
||||||
import me.zhengjie.service.dto.LogSmallDTO;
|
import me.zhengjie.service.dto.SysLogSmallDto;
|
||||||
import org.mapstruct.Mapper;
|
import org.mapstruct.Mapper;
|
||||||
import org.mapstruct.ReportingPolicy;
|
import org.mapstruct.ReportingPolicy;
|
||||||
|
|
||||||
|
@ -26,6 +26,6 @@ import org.mapstruct.ReportingPolicy;
|
||||||
* @date 2019-5-22
|
* @date 2019-5-22
|
||||||
*/
|
*/
|
||||||
@Mapper(componentModel = "spring",unmappedTargetPolicy = ReportingPolicy.IGNORE)
|
@Mapper(componentModel = "spring",unmappedTargetPolicy = ReportingPolicy.IGNORE)
|
||||||
public interface LogSmallMapper extends BaseMapper<LogSmallDTO, Log> {
|
public interface LogSmallMapper extends BaseMapper<SysLogSmallDto, SysLog> {
|
||||||
|
|
||||||
}
|
}
|
Loading…
Reference in New Issue