12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485 |
- package com.kmall.admin.aop;
- import com.alibaba.fastjson.JSON;
- import com.kmall.common.annotation.SysLog;
- import com.kmall.manager.entity.SysLogEntity;
- import com.kmall.admin.fromcomm.entity.SysUserEntity;
- import com.kmall.manager.service.SysLogService;
- import com.kmall.common.utils.HttpContextUtils;
- import com.kmall.common.utils.IPUtils;
- import com.kmall.admin.utils.ShiroUtils;
- import org.aspectj.lang.JoinPoint;
- import org.aspectj.lang.annotation.Aspect;
- import org.aspectj.lang.annotation.Before;
- import org.aspectj.lang.annotation.Pointcut;
- import org.aspectj.lang.reflect.MethodSignature;
- import org.springframework.beans.factory.annotation.Autowired;
- import org.springframework.stereotype.Component;
- import javax.servlet.http.HttpServletRequest;
- import java.lang.reflect.Method;
- import java.util.Date;
- /**
- * 系统日志,切面处理类
- *
- * @author Scott
- * @email
- * @date 2017年3月8日 上午11:07:35
- */
- @Aspect
- @Component
- public class SysLogAspect {
- @Autowired
- private SysLogService sysLogService;
- @Pointcut("@annotation(com.kmall.common.annotation.SysLog)")
- public void logPointCut() {
- }
- @Before("logPointCut()")
- public void saveSysLog(JoinPoint joinPoint) {
- MethodSignature signature = (MethodSignature) joinPoint.getSignature();
- Method method = signature.getMethod();
- SysLogEntity sysLog = new SysLogEntity();
- SysLog syslog = method.getAnnotation(SysLog.class);
- if (syslog != null) {
- //注解上的描述
- sysLog.setOperation(syslog.value());
- }
- //请求的方法名
- String className = joinPoint.getTarget().getClass().getName();
- String methodName = signature.getName();
- sysLog.setMethod(className + "." + methodName + "()");
- //请求的参数
- Object[] args = joinPoint.getArgs();
- String params = JSON.toJSONString(args[0]);
- sysLog.setParams(params);
- //获取request
- HttpServletRequest request = HttpContextUtils.getHttpServletRequest();
- //设置IP地址
- sysLog.setIp(IPUtils.getIpAddr(request));
- //用户名
- SysUserEntity sysUserEntity = ShiroUtils.getUserEntity();
- String username = "";
- if ("login".equals(methodName)) {
- username = params;
- }
- if (null != sysUserEntity) {
- username = ShiroUtils.getUserEntity().getUsername();
- }
- sysLog.setUsername(username);
- sysLog.setCreateDate(new Date());
- //保存系统日志
- sysLogService.save(sysLog);
- }
- }
|