首页>代码>java协同办公OA自动化办公系统>/Java项目本地部署搭建实战java协同办公OA系统源码/codes/src/main/java/cn/gson/oasys/common/Interceptor/recordInterceptor.java
package cn.gson.oasys.common.Interceptor;

import cn.gson.oasys.common.Tool;
import cn.gson.oasys.model.dao.roledao.RolepowerlistDao;
import cn.gson.oasys.model.dao.system.SystemMenuDao;
import cn.gson.oasys.model.dao.user.UserDao;
import cn.gson.oasys.model.dao.user.UserLogDao;
import cn.gson.oasys.model.entity.role.Rolemenu;
import cn.gson.oasys.model.entity.system.SystemMenu;
import cn.gson.oasys.model.entity.user.User;
import cn.gson.oasys.model.entity.user.UserLog;
import org.springframework.stereotype.Component;
import org.springframework.util.StringUtils;
import org.springframework.web.servlet.handler.HandlerInterceptorAdapter;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import java.net.InetAddress;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;

@Component
public class recordInterceptor extends HandlerInterceptorAdapter{

	
	Tool tool;
	



	@Override
	public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler)
			throws Exception {
		
		HttpSession session=request.getSession();
		if(!StringUtils.isEmpty(session.getAttribute("userId"))){
		//导入dao类
		UserDao udao=tool.getBean(UserDao.class, request);
		RolepowerlistDao rpdao=tool.getBean(RolepowerlistDao.class, request);
		Long uid=Long.parseLong(session.getAttribute("userId")+"");
		User user=udao.findOne(uid);
		List<Rolemenu> oneMenuAll=rpdao.findbyparentxianall(0L, user.getRole().getRoleId(), true,false);
		List<Rolemenu> twoMenuAll=rpdao.findbyparentsxian(0L, user.getRole().getRoleId(), true,false);
		List<Rolemenu>  all=new ArrayList<>();
		//获取当前访问的路径
		String url = request.getRequestURL().toString();
		String zhuan="notlimit";
		
		if(oneMenuAll.size()>0){
				all.addAll(oneMenuAll);
			}
			if(twoMenuAll.size()>0){
				all.addAll(twoMenuAll);
			}
			for (Rolemenu rolemenu : all) {
				if(!rolemenu.getMenuUrl().equals(url)){
					
					return true;
				}else{
					request.getRequestDispatcher(zhuan).forward(request, response);
				}
				
			}
			
		}else{
			response.sendRedirect("/logins");
			return false;
		}
		
		return super.preHandle(request, response, handler);
	}


	@Override
	public void afterCompletion(HttpServletRequest request, HttpServletResponse response,  Object handler, Exception ex)
			throws Exception {
		HttpSession session=request.getSession();
		//导入dao类
		UserDao userDao=tool.getBean(UserDao.class, request);
		SystemMenuDao systemMenuDao=tool.getBean(SystemMenuDao.class, request);
		UserLogDao userLogDao=tool.getBean(UserLogDao.class, request);
		
		UserLog uLog= new UserLog();
		//首先就获取ip
		InetAddress ia=null;
		ia=ia.getLocalHost();
		String ip=ia.getHostAddress();
		uLog.setIpAddr(ip);
		//System.out.println(request.getRequestedSessionId());
		uLog.setUrl(request.getServletPath());
		uLog.setLogTime(new Date());
	
		//还没有登陆不能获取session
		
		uLog.setUser(userDao.findOne(Long.valueOf(session.getAttribute("userId")+"")));
//		uLog.setUser(userDao.findOne(1l));
		//从菜单表里面匹配
		List<SystemMenu> sMenus=(List<SystemMenu>) systemMenuDao.findAll();
		for (SystemMenu systemMenu : sMenus) {
			if(systemMenu.getMenuUrl().equals(request.getServletPath())){
				//只有当该记录的路径不等于第一条的时候
				if(!userLogDao.findByUserlaset(1l).getUrl().equals(systemMenu.getMenuUrl())){
				uLog.setTitle(systemMenu.getMenuName());
				//只要匹配到一个保存咯
				userLogDao.save(uLog);
				}
			}
		}
		
		
	}

}
最近下载更多
zolscy  LV24 2024年11月23日
微信网友_7223624756105216  LV2 2024年10月25日
lqzixi  LV4 2024年10月9日
educationAAA  LV11 2024年10月6日
zxhjy5  LV6 2024年9月24日
微信网友_7044194812350464  LV8 2024年9月14日
唐唐丶  LV34 2024年9月12日
2775645521  LV7 2024年8月25日
krispeng  LV15 2024年8月12日
最近浏览更多
ewan007  LV30 前天
好的好的  LV9 前天
潜心小白来到  LV3 6月10日
zt843217  LV2 5月26日
梁小贤  LV1 5月22日
ningrong 4月17日
暂无贡献等级
2310108201  LV10 3月27日
fantesy  LV17 3月24日
liqiangqiang 3月19日
暂无贡献等级
YonderSkey 3月18日
暂无贡献等级
顶部 客服 微信二维码 底部
>扫描二维码关注最代码为好友扫描二维码关注最代码为好友