Przeglądaj źródła

删除操作日志

lyhzzz 3 lat temu
rodzic
commit
9195648482

+ 0 - 140
4dkankan-center-auth/src/main/java/com/fdkankan/auth/aop/VisitLogInterceptor.java

@@ -1,140 +0,0 @@
-package com.fdkankan.auth.aop;
-
-import cn.hutool.core.util.StrUtil;
-import cn.hutool.extra.servlet.ServletUtil;
-import cn.hutool.http.ContentType;
-import cn.hutool.http.useragent.UserAgent;
-import cn.hutool.http.useragent.UserAgentUtil;
-import com.alibaba.fastjson.JSON;
-import com.alibaba.fastjson.JSONObject;
-import com.fdkankan.auth.entity.OperLog;
-import com.fdkankan.common.constant.ServerCode;
-import lombok.extern.slf4j.Slf4j;
-import org.aspectj.lang.JoinPoint;
-import org.aspectj.lang.ProceedingJoinPoint;
-import org.aspectj.lang.annotation.Around;
-import org.aspectj.lang.annotation.Aspect;
-import org.aspectj.lang.annotation.Pointcut;
-import org.aspectj.lang.reflect.MethodSignature;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.beans.factory.annotation.Value;
-import org.springframework.data.mongodb.core.MongoTemplate;
-import org.springframework.stereotype.Component;
-import org.springframework.web.context.request.RequestContextHolder;
-import org.springframework.web.context.request.ServletRequestAttributes;
-import org.springframework.web.multipart.MultipartFile;
-
-import javax.servlet.http.HttpServletRequest;
-import java.util.Calendar;
-import java.util.HashMap;
-import java.util.Map;
-
-@Component
-@Aspect
-@Slf4j
-public class VisitLogInterceptor {
-
-	@Autowired
-	private MongoTemplate mongoTemplate;
-
-	@Value("${server.servlet.context-path:null}")
-	private String contextPath;
-
-	// 切入点表达式
-	@Pointcut("execution(public * com.fdkankan.auth.controller..*.*(..))")
-	public void privilege() {
-	}
-
-	@Around("privilege()")
-	public Object around(ProceedingJoinPoint pjp) throws Throwable {
-
-		HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest();
-
-		//获取客户端ip
-		String clientIP = ServletUtil.getClientIP(request);
-
-		//获取uri
-		String uri = request.getRequestURI();
-		if(StrUtil.isNotEmpty(contextPath)){
-			uri = uri.replaceFirst(contextPath, "");
-		}
-
-		//获取请求方式
-		String method = request.getMethod();
-
-		//获取浏览器信息
-		String browser = this.getBrowser(request);
-
-		//获取参数
-		String params = this.getParams(pjp, request);
-
-		//获取操作路径
-		String requestPath = "登录";
-
-        //放行
-		Object result = pjp.proceed();
-		String resultStr = JSON.toJSONString(result);
-		JSONObject jsonObject = JSON.parseObject(resultStr);
-		String msg = "操作失败";
-		if(jsonObject.getInteger("code")== null || jsonObject.getInteger("code").equals(ServerCode.SUCCESS.code())){
-			msg = "操作成功";
-		}
-		//获取用户信息 如果已登录,从token中获取用户信息,如果是登录接口,查询数据库获取用户信息
-		JSONObject data = jsonObject.getJSONObject("data");
-		Long userId =data.getLong("id");
-		String userName =data.getString("userName");
-		String nickName =data.getString("nickName");
-		//写入mongodb
-		OperLog operLog = new OperLog();
-		operLog.setUserId(userId);
-		operLog.setUserName(userName);
-		operLog.setNickName(nickName);
-		operLog.setRequestPath(requestPath);
-		operLog.setUri(uri);
-		operLog.setMethod(method);
-		operLog.setParams(params);
-		operLog.setIp(clientIP);
-		operLog.setBrowser(browser);
-		operLog.setCreateTime(Calendar.getInstance().getTime());
-		operLog.setResult(msg);
-		mongoTemplate.insert(operLog);
-		return result;
-	}
-
-
-
-
-	private String getParams(JoinPoint pjp, HttpServletRequest request){
-
-		// 获取参数名称
-		String[] parameterNamesArgs = ((MethodSignature) pjp.getSignature()).getParameterNames();
-		//获取请求参数值
-		Object[] args = pjp.getArgs();
-
-		Map<String, Object> paramMap = new HashMap<>();
-		String contentType = request.getContentType();
-		if(ContentType.JSON.getValue().equals(contentType)){
-			return JSON.toJSONString(args[0]);
-		}else{
-			for (int i = 0; i < args.length; i++) {
-				if(args[i] instanceof MultipartFile){
-					paramMap.put(parameterNamesArgs[i], ((MultipartFile) args[i]).getOriginalFilename());
-					continue;
-				}
-				paramMap.put(parameterNamesArgs[i], args[i]);
-			}
-		}
-		return JSON.toJSONString(paramMap);
-	}
-
-	private String getBrowser(HttpServletRequest request){
-		String userAgentStr = request.getHeader("User-Agent");
-		UserAgent userAgent = UserAgentUtil.parse(userAgentStr);
-		String browserType = userAgent.getBrowser().toString();
-		String browserVersion = userAgent.getVersion();
-		String browserFormat = "%s(版本%s)";
-		return  String.format(browserFormat, browserType, browserVersion);
-	}
-
-}
-

+ 0 - 60
4dkankan-center-auth/src/main/java/com/fdkankan/auth/entity/OperLog.java

@@ -1,60 +0,0 @@
-package com.fdkankan.auth.entity;
-
-import com.fdkankan.mongodb.base.BaseMongoEntity;
-import lombok.Data;
-import org.springframework.data.mongodb.core.mapping.Document;
-import org.springframework.data.mongodb.core.mapping.Field;
-
-/**
- * 操作日志
- */
-@Data
-@Document("OperLog")
-public class OperLog extends BaseMongoEntity{
-
-
-    /**
-     * 用户id
-     */
-    @Field("userId")
-    private Long userId;
-
-    /**
-     * 账号
-     */
-    @Field("userName")
-    private String userName;
-
-    /**
-     * 姓名
-     */
-    @Field("nickName")
-    private String nickName;
-
-    /**请求路径*/
-    @Field("requestPath")
-    private String requestPath;
-
-    /**请求url*/
-    @Field("uri")
-    private String uri;
-
-    /**请求方式*/
-    @Field("method")
-    private String method;
-
-    /**请求方式*/
-    @Field("params")
-    private String params;
-
-    /**请求ip*/
-    @Field("ip")
-    private String ip;
-
-    @Field("browser")
-    private String browser;
-
-    @Field("result")
-    private String result;
-
-}

+ 0 - 12
4dkankan-center-manage/pom.xml

@@ -96,18 +96,6 @@
       <version>3.1.0</version>
     </dependency>
 
-    <!-- Sa-Token 权限认证, 在线文档:http://sa-token.dev33.cn/ -->
-    <dependency>
-      <groupId>cn.dev33</groupId>
-      <artifactId>sa-token-spring-boot-starter</artifactId>
-      <version>1.30.0</version>
-    </dependency>
-    <!-- Sa-Token 整合 jwt -->
-    <dependency>
-      <groupId>cn.dev33</groupId>
-      <artifactId>sa-token-jwt</artifactId>
-      <version>1.30.0</version>
-    </dependency>
 
   </dependencies>
 

+ 2 - 1
4dkankan-center-manage/src/main/java/com/fdkankan/manage/config/MenuInit.java

@@ -3,6 +3,7 @@ package com.fdkankan.manage.config;
 import com.alibaba.fastjson.JSONObject;
 import com.fdkankan.manage.entity.SysMenu;
 import com.fdkankan.manage.service.ISysMenuService;
+import com.fdkankan.redis.constant.RedisKey;
 import com.fdkankan.redis.util.RedisUtil;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -25,7 +26,7 @@ public class MenuInit {
     public void initMenu(){
         List<SysMenu> list = sysMenuService.list();
         String result = JSONObject.toJSONString(list);
-        redisUtil.set("manage_perm_menu",result );
+        redisUtil.set(RedisKey.MANAGE_MENU,result );
         log.info("项目启动加载系统菜单权限至redis:{}",result);
     }
 }

+ 2 - 0
4dkankan-center-manage/src/main/java/com/fdkankan/manage/entity/OperLog.java

@@ -57,4 +57,6 @@ public class OperLog extends BaseMongoEntity{
     @Field("result")
     private String result;
 
+    @Field("operationType")
+    private String operationType;
 }

+ 0 - 185
4dkankan-center-manage/src/main/java/com/fdkankan/manage/interceptor/VisitLogInterceptor.java

@@ -1,185 +0,0 @@
-package com.fdkankan.manage.interceptor;
-
-import cn.dev33.satoken.stp.StpUtil;
-import cn.hutool.core.util.StrUtil;
-import cn.hutool.extra.servlet.ServletUtil;
-import cn.hutool.http.ContentType;
-import cn.hutool.http.useragent.UserAgent;
-import cn.hutool.http.useragent.UserAgentUtil;
-import com.alibaba.fastjson.JSON;
-import com.alibaba.fastjson.JSONObject;
-import com.fdkankan.common.constant.ServerCode;
-import com.fdkankan.manage.bean.MenuBean;
-import com.fdkankan.manage.entity.OperLog;
-import com.fdkankan.manage.entity.SysUser;
-import com.fdkankan.manage.service.ISysUserService;
-import com.fdkankan.redis.constant.RedisKey;
-import com.fdkankan.redis.util.RedisUtil;
-import lombok.extern.slf4j.Slf4j;
-import org.apache.commons.lang3.StringUtils;
-import org.aspectj.lang.JoinPoint;
-import org.aspectj.lang.ProceedingJoinPoint;
-import org.aspectj.lang.annotation.Around;
-import org.aspectj.lang.annotation.Aspect;
-import org.aspectj.lang.annotation.Pointcut;
-import org.aspectj.lang.reflect.MethodSignature;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.beans.factory.annotation.Value;
-import org.springframework.data.mongodb.core.MongoTemplate;
-import org.springframework.stereotype.Component;
-import org.springframework.web.context.request.RequestContextHolder;
-import org.springframework.web.context.request.ServletRequestAttributes;
-import org.springframework.web.multipart.MultipartFile;
-
-import javax.servlet.http.HttpServletRequest;
-import java.util.*;
-
-@Component
-@Aspect
-@Slf4j
-public class VisitLogInterceptor {
-
-	@Autowired
-	private RedisUtil redisUtil;
-
-	@Autowired
-	private MongoTemplate mongoTemplate;
-
-	@Autowired
-	private ISysUserService userService;
-
-	@Value("${server.servlet.context-path:null}")
-	private String contextPath;
-
-	// 切入点表达式
-	@Pointcut("execution(public * com.fdkankan.manage.controller..*.*(..))")
-	public void privilege() {
-	}
-
-	@Around("privilege()")
-	public Object around(ProceedingJoinPoint pjp) throws Throwable {
-
-		HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest();
-
-		//获取客户端ip
-		String clientIP = ServletUtil.getClientIP(request);
-
-		//获取uri
-		String uri = request.getRequestURI();
-		if(StrUtil.isNotEmpty(contextPath)){
-			uri = uri.replaceFirst(contextPath, "");
-		}
-
-		//获取请求方式
-		String method = request.getMethod();
-
-		//获取浏览器信息
-		String browser = this.getBrowser(request);
-
-		//获取参数
-		String params = this.getParams(pjp, request);
-
-		//获取操作路径
-		String requestPath = this.getRequestPath(uri);
-
-        //放行
-		Object result = pjp.proceed();
-		String resultStr = JSON.toJSONString(result);
-		JSONObject jsonObject = JSON.parseObject(resultStr);
-		String msg = "操作失败";
-		if(jsonObject.getInteger("code")== null || jsonObject.getInteger("code").equals(ServerCode.SUCCESS.code())){
-			msg = "操作成功";
-		}
-		//获取用户信息 如果已登录,从token中获取用户信息,如果是登录接口,查询数据库获取用户信息
-		Long userId =null;
-		String userName =null;
-		String nickName =null;
-		try {
-			 userId =   (Long)StpUtil.getExtra("userId");
-			 userName = (String)StpUtil.getExtra("userName");
-			 nickName = (String)StpUtil.getExtra("nickName");
-		}catch (Exception e){
-			e.printStackTrace();
-			JSONObject paramObj = JSONObject.parseObject(params);
-			userName = paramObj.getString("userName");
-			SysUser sysUser = userService.getByUserName(userName);
-			if(sysUser != null){
-				userId = sysUser.getId();
-				nickName = sysUser.getNickName();
-			}
-		}
-		//写入mongodb
-		OperLog operLog = new OperLog();
-		operLog.setUserId(userId);
-		operLog.setUserName(userName);
-		operLog.setNickName(nickName);
-		operLog.setRequestPath(requestPath);
-		operLog.setUri(uri);
-		operLog.setMethod(method);
-		operLog.setParams(params);
-		operLog.setIp(clientIP);
-		operLog.setBrowser(browser);
-		operLog.setCreateTime(Calendar.getInstance().getTime());
-		operLog.setResult(msg);
-		mongoTemplate.insert(operLog);
-
-		return result;
-	}
-
-	private String getRequestPath(String uri){
-		String hget = redisUtil.hget(RedisKey.MANAGE_MENU, uri);
-		assert StringUtils.isNotBlank(hget);
-		MenuBean menuBean = JSON.parseObject(hget, MenuBean.class);
-		if(Objects.isNull(menuBean)){
-		    return null;
-        }
-		LinkedList<String> menuList = new LinkedList<>();
-		this.getRequestPathHandler(menuList, menuBean);
-		StringBuilder sb = new StringBuilder();
-		menuList.forEach(str->sb.append("->").append(str));
-		return sb.substring(2);
-	}
-
-	private void getRequestPathHandler(LinkedList<String> list, MenuBean menuBean){
-		list.addFirst("[" + menuBean.getName() + "]");
-		if(Objects.isNull(menuBean.getParent())){
-			return;
-		}
-		this.getRequestPathHandler(list, menuBean.getParent());
-	}
-
-
-	private String getParams(JoinPoint pjp, HttpServletRequest request){
-
-		// 获取参数名称
-		String[] parameterNamesArgs = ((MethodSignature) pjp.getSignature()).getParameterNames();
-		//获取请求参数值
-		Object[] args = pjp.getArgs();
-
-		Map<String, Object> paramMap = new HashMap<>();
-		String contentType = request.getContentType();
-		if(ContentType.JSON.getValue().equals(contentType)){
-			return JSON.toJSONString(args[0]);
-		}else{
-			for (int i = 0; i < args.length; i++) {
-				if(args[i] instanceof MultipartFile){
-					paramMap.put(parameterNamesArgs[i], ((MultipartFile) args[i]).getOriginalFilename());
-					continue;
-				}
-				paramMap.put(parameterNamesArgs[i], args[i]);
-			}
-		}
-		return JSON.toJSONString(paramMap);
-	}
-
-	private String getBrowser(HttpServletRequest request){
-		String userAgentStr = request.getHeader("User-Agent");
-		UserAgent userAgent = UserAgentUtil.parse(userAgentStr);
-		String browserType = userAgent.getBrowser().toString();
-		String browserVersion = userAgent.getVersion();
-		String browserFormat = "%s(版本%s)";
-		return  String.format(browserFormat, browserType, browserVersion);
-	}
-
-}
-

+ 3 - 2
4dkankan-center-manage/src/main/java/com/fdkankan/manage/service/impl/SysUserServiceImpl.java

@@ -11,6 +11,7 @@ import com.fdkankan.manage.mapper.ISysUserMapper;
 import com.fdkankan.manage.service.ISysMenuService;
 import com.fdkankan.manage.service.ISysRoleService;
 import com.fdkankan.manage.service.ISysUserService;
+import com.fdkankan.redis.constant.RedisKey;
 import com.fdkankan.redis.util.RedisUtil;
 import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -69,11 +70,11 @@ public class SysUserServiceImpl extends ServiceImpl<ISysUserMapper, SysUser> imp
         //设置redis role
         String roleType = role.getRoleType();
         List<String> roleList = Collections.singletonList(roleType);
-        redisUtil.set("manage_role_user:"+sysUser.getId(), JSONObject.toJSONString(roleList));
+        redisUtil.set(String.format(RedisKey.MANAGE_ROLE_USER,sysUser.getId()), JSONObject.toJSONString(roleList));
         //设置redis perm
         List<SysMenu> menus = menuService.getListByUserId(sysUser.getId());
         List<String> menuList = menus.parallelStream().map(SysMenu::getPerms).collect(Collectors.toList());
-        redisUtil.set("manage_perm_user:"+sysUser.getId(), JSONObject.toJSONString(menuList));
+        redisUtil.set(String.format(RedisKey.MANAGE_PERM_USER,sysUser.getId()), JSONObject.toJSONString(menuList));
         return loginVO;
     }
 }

+ 4 - 1
4dkankan-center-manage/src/main/java/com/fdkankan/manage/vo/OperLogPageParamVO.java

@@ -2,9 +2,10 @@ package com.fdkankan.manage.vo;
 
 import com.fasterxml.jackson.annotation.JsonFormat;
 import com.fdkankan.mongodb.base.BaseRequestMongo;
-import java.util.Date;
 import lombok.Data;
 
+import java.util.Date;
+
 /**
  * <p>
  * TODO
@@ -30,4 +31,6 @@ public class OperLogPageParamVO extends BaseRequestMongo {
     )
     private Date endTime;
 
+    private String operationType = "manage";
+
 }