源码获取:俺的博客首页 "资源" 里下载!

项目介绍

本项目包含管理员、老板、司机三种角色;
老板角色包含以下功能:
老板登录,角色管理,用户管理,货车信息管理,运单信息管理,请假申请管理,费用报销管理,工资管理,查看工资报表,查看货车报表,新增建议等功能。

管理员角色包含以下功能:
管理员角色,角色管理,菜单管理,在线管理,日志管理,用户管理,货车信息管理,运单信息管理,请假申请管理,费用报销管理,工资信息管理,匿名建议管理,查看工资报表,查看货车报表,修改管理员资料等功能。

司机角色包含以下功能:
司机登录,货车信息管理,运单信息管理,请假申请管理,费用报销管理,工资管理,修改司机资料等功能。

环境需要

1.运行环境:最好是java jdk 1.8,我们在这个平台上运行的。其他版本理论上也可以。
2.IDE环境:IDEA,Eclipse,Myeclipse都可以。推荐IDEA;
3.tomcat环境:Tomcat 7.x,8.x,9.x版本均可
4.硬件环境:windows 7/8/10 1G内存以上;或者 Mac OS; 
5.数据库:MySql 5.7版本;
6.是否Maven项目:否;

技术栈

1. 后端:Spring+SpringMVC+Mybatis
2. 前端:JSP+bootstrap+jQuery+css+javascript

使用说明

1. 使用Navicat或者其它工具,在mysql中创建对应名称的数据库,并导入项目的sql文件;
2. 使用IDEA/Eclipse/MyEclipse导入项目,Eclipse/MyEclipse导入时,若为maven项目请选择maven;
若为maven项目,导入成功后请执行maven clean;maven install命令,然后运行;
3. 将项目中dbconfig.properties配置文件中的数据库配置改为自己的配置;
4. 运行项目,输入localhost:8080/


用户管理控制层:

@Controller
@RequestMapping(value="/user")
public class UserController extends BaseController {String menuUrl = "user/listUsers.do"; //菜单地址(权限用)@Resource(name="userService")private UserManager userService;@Resource(name="roleService")private RoleManager roleService;@Resource(name="menuService")private MenuManager menuService;@Resource(name="fhlogService")private FHlogManager FHLOG;/**显示用户列表* @param page* @return* @throws Exception*/@RequestMapping(value="/listUsers")public ModelAndView listUsers(Page page)throws Exception{ModelAndView mv = this.getModelAndView();PageData pd = new PageData();pd = this.getPageData();String keywords = pd.getString("keywords");              //关键词检索条件if(null != keywords && !"".equals(keywords)){pd.put("keywords", keywords.trim());}String lastLoginStart = pd.getString("lastLoginStart");  //开始时间String lastLoginEnd = pd.getString("lastLoginEnd");        //结束时间if(lastLoginStart != null && !"".equals(lastLoginStart)){pd.put("lastLoginStart", lastLoginStart+" 00:00:00");}if(lastLoginEnd != null && !"".equals(lastLoginEnd)){pd.put("lastLoginEnd", lastLoginEnd+" 00:00:00");} page.setPd(pd);List<PageData>    userList = userService.listUsers(page);    //列出用户列表pd.put("ROLE_ID", "1");List<Role> roleList = roleService.listAllRolesByPId(pd);//列出所有系统用户角色mv.setViewName("system/user/user_list");mv.addObject("userList", userList);mv.addObject("roleList", roleList);mv.addObject("pd", pd);mv.addObject("QX",Jurisdiction.getHC());   //按钮权限return mv;}/**删除用户* @param out* @throws Exception */@RequestMapping(value="/deleteU")public void deleteU(PrintWriter out) throws Exception{if(!Jurisdiction.buttonJurisdiction(menuUrl, "del")){return;} //校验权限logBefore(logger, Jurisdiction.getUsername()+"删除user");PageData pd = new PageData();pd = this.getPageData();userService.deleteU(pd);FHLOG.save(Jurisdiction.getUsername(), "删除系统用户:"+pd);out.write("success");out.close();}/**去新增用户页面* @return* @throws Exception*/@RequestMapping(value="/goAddU")public ModelAndView goAddU()throws Exception{if(!Jurisdiction.buttonJurisdiction(menuUrl, "add")){return null;} //校验权限ModelAndView mv = this.getModelAndView();PageData pd = new PageData();pd = this.getPageData();pd.put("ROLE_ID", "1");List<Role> roleList = roleService.listAllRolesByPId(pd);//列出所有系统用户角色mv.setViewName("system/user/user_edit");mv.addObject("msg", "saveU");mv.addObject("pd", pd);mv.addObject("roleList", roleList);return mv;}/**保存用户* @return* @throws Exception*/@RequestMapping(value="/saveU")public ModelAndView saveU() throws Exception{if(!Jurisdiction.buttonJurisdiction(menuUrl, "add")){return null;} //校验权限logBefore(logger, Jurisdiction.getUsername()+"新增user");ModelAndView mv = this.getModelAndView();PageData pd = new PageData();pd = this.getPageData();pd.put("USER_ID", this.get32UUID());   //ID 主键pd.put("LAST_LOGIN", "");                //最后登录时间pd.put("IP", "");                       //IPpd.put("STATUS", "0");                  //状态pd.put("SKIN", "no-skin");              //用户默认皮肤pd.put("RIGHTS", "");       pd.put("PASSWORD", pd.getString("PASSWORD"));   //密码加密if(null == userService.findByUsername(pd)){ //判断用户名是否存在userService.saveU(pd);                   //执行保存FHLOG.save(Jurisdiction.getUsername(), "新增系统用户:"+pd.getString("USERNAME"));mv.addObject("msg","success");}else{mv.addObject("msg","failed");}mv.setViewName("save_result");return mv;}/**判断用户名是否存在* @return*/@RequestMapping(value="/hasU")@ResponseBodypublic Object hasU(){Map<String,String> map = new HashMap<String,String>();String errInfo = "success";PageData pd = new PageData();try{pd = this.getPageData();if(userService.findByUsername(pd) != null){errInfo = "error";}} catch(Exception e){logger.error(e.toString(), e);}map.put("result", errInfo);              //返回结果return AppUtil.returnObject(new PageData(), map);}/**判断邮箱是否存在* @return*/@RequestMapping(value="/hasE")@ResponseBodypublic Object hasE(){Map<String,String> map = new HashMap<String,String>();String errInfo = "success";PageData pd = new PageData();try{pd = this.getPageData();if(userService.findByUE(pd) != null){errInfo = "error";}} catch(Exception e){logger.error(e.toString(), e);}map.put("result", errInfo);               //返回结果return AppUtil.returnObject(new PageData(), map);}/**判断编码是否存在* @return*/@RequestMapping(value="/hasN")@ResponseBodypublic Object hasN(){Map<String,String> map = new HashMap<String,String>();String errInfo = "success";PageData pd = new PageData();try{pd = this.getPageData();if(userService.findByUN(pd) != null){errInfo = "error";}} catch(Exception e){logger.error(e.toString(), e);}map.put("result", errInfo);               //返回结果return AppUtil.returnObject(new PageData(), map);}/**去修改用户页面(系统用户列表修改)* @return* @throws Exception*/@RequestMapping(value="/goEditU")public ModelAndView goEditU() throws Exception{if(!Jurisdiction.buttonJurisdiction(menuUrl, "edit")){return null;} //校验权限ModelAndView mv = this.getModelAndView();PageData pd = new PageData();pd = this.getPageData();if("1".equals(pd.getString("USER_ID"))){return null;}      //不能修改admin用户pd.put("ROLE_ID", "1");List<Role> roleList = roleService.listAllRolesByPId(pd); //列出所有系统用户角色mv.addObject("fx", "user");pd = userService.findById(pd);                              //根据ID读取List<Role> froleList = new  ArrayList<Role>();             //存放副职角色String ROLE_IDS = pd.getString("ROLE_IDS");                  //副职角色IDif(Tools.notEmpty(ROLE_IDS)){String arryROLE_ID[] = ROLE_IDS.split(",fh,");for(int i=0;i<roleList.size();i++){Role role = roleList.get(i);String roleId = role.getROLE_ID();for(int n=0;n<arryROLE_ID.length;n++){if(arryROLE_ID[n].equals(roleId)){role.setRIGHTS("1"); //此时的目的是为了修改用户信息上,能看到副职角色都有哪些break;}}froleList.add(role);}}else{froleList = roleList;}mv.setViewName("system/user/user_edit");mv.addObject("msg", "editU");mv.addObject("pd", pd);mv.addObject("roleList", roleList);mv.addObject("froleList", froleList);return mv;}/**去修改用户页面(个人修改)* @return* @throws Exception*/@RequestMapping(value="/goEditMyU")public ModelAndView goEditMyU() throws Exception{ModelAndView mv = this.getModelAndView();PageData pd = new PageData();pd = this.getPageData();mv.addObject("fx", "head");pd.put("ROLE_ID", "1");List<Role> roleList = roleService.listAllRolesByPId(pd); //列出所有系统用户角色pd.put("USERNAME", Jurisdiction.getUsername());pd = userService.findByUsername(pd);                      //根据用户名读取mv.setViewName("system/user/user_edit");mv.addObject("msg", "editU");mv.addObject("pd", pd);mv.addObject("roleList", roleList);return mv;}/**查看用户* @return* @throws Exception*/@RequestMapping(value="/view")public ModelAndView view() throws Exception{if(!Jurisdiction.buttonJurisdiction(menuUrl, "cha")){return null;} //校验权限ModelAndView mv = this.getModelAndView();PageData pd = new PageData();pd = this.getPageData();if("admin".equals(pd.getString("USERNAME"))){return null;}    //不能查看admin用户pd.put("ROLE_ID", "1");List<Role> roleList = roleService.listAllRolesByPId(pd); //列出所有系统用户角色pd = userService.findByUsername(pd);                       //根据ID读取mv.setViewName("system/user/user_view");mv.addObject("msg", "editU");mv.addObject("pd", pd);mv.addObject("roleList", roleList);return mv;}/**去修改用户页面(在线管理页面打开)* @return* @throws Exception*/@RequestMapping(value="/goEditUfromOnline")public ModelAndView goEditUfromOnline() throws Exception{ModelAndView mv = this.getModelAndView();PageData pd = new PageData();pd = this.getPageData();if("admin".equals(pd.getString("USERNAME"))){return null;} //不能查看admin用户pd.put("ROLE_ID", "1");List<Role> roleList = roleService.listAllRolesByPId(pd); //列出所有系统用户角色pd = userService.findByUsername(pd);                       //根据ID读取List<Role> froleList = new  ArrayList<Role>();             //存放副职角色String ROLE_IDS = pd.getString("ROLE_IDS");                  //副职角色IDif(Tools.notEmpty(ROLE_IDS)){String arryROLE_ID[] = ROLE_IDS.split(",fh,");for(int i=0;i<roleList.size();i++){Role role = roleList.get(i);String roleId = role.getROLE_ID();for(int n=0;n<arryROLE_ID.length;n++){if(arryROLE_ID[n].equals(roleId)){role.setRIGHTS("1"); //此时的目的是为了修改用户信息上,能看到副职角色都有哪些break;}}froleList.add(role);}}else{froleList = roleList;}mv.setViewName("system/user/user_edit");mv.addObject("msg", "editU");mv.addObject("pd", pd);mv.addObject("roleList", roleList);mv.addObject("froleList", froleList);return mv;}/*** 修改用户*/@RequestMapping(value="/editU")public ModelAndView editU() throws Exception{logBefore(logger, Jurisdiction.getUsername()+"修改ser");ModelAndView mv = this.getModelAndView();PageData pd = new PageData();pd = this.getPageData();if(!Jurisdiction.getUsername().equals(pd.getString("USERNAME"))){       //如果当前登录用户修改用户资料提交的用户名非本人if(!Jurisdiction.buttonJurisdiction(menuUrl, "cha")){return null;}  //校验权限 判断当前操作者有无用户管理查看权限if(!Jurisdiction.buttonJurisdiction(menuUrl, "edit")){return null;} //校验权限判断当前操作者有无用户管理修改权限if("admin".equals(pd.getString("USERNAME")) && !"admin".equals(Jurisdiction.getUsername())){return null;} //非admin用户不能修改admin}else{   //如果当前登录用户修改用户资料提交的用户名是本人,则不能修改本人的角色IDpd.put("ROLE_ID", userService.findByUsername(pd).getString("ROLE_ID")); //对角色ID还原本人角色IDpd.put("ROLE_IDS", userService.findByUsername(pd).getString("ROLE_IDS")); //对角色ID还原本人副职角色ID}if(pd.getString("PASSWORD") != null && !"".equals(pd.getString("PASSWORD"))){pd.put("PASSWORD", pd.getString("PASSWORD"));}userService.editU(pd);    //执行修改FHLOG.save(Jurisdiction.getUsername(), "修改系统用户:"+pd.getString("USERNAME"));mv.addObject("msg","success");mv.setViewName("save_result");return mv;}/*** 批量删除* @throws Exception */@RequestMapping(value="/deleteAllU")@ResponseBodypublic Object deleteAllU() throws Exception {if(!Jurisdiction.buttonJurisdiction(menuUrl, "del")){return null;} //校验权限logBefore(logger, Jurisdiction.getUsername()+"批量删除user");FHLOG.save(Jurisdiction.getUsername(), "批量删除user");PageData pd = new PageData();Map<String,Object> map = new HashMap<String,Object>();pd = this.getPageData();List<PageData> pdList = new ArrayList<PageData>();String USER_IDS = pd.getString("USER_IDS");if(null != USER_IDS && !"".equals(USER_IDS)){String ArrayUSER_IDS[] = USER_IDS.split(",");userService.deleteAllU(ArrayUSER_IDS);pd.put("msg", "ok");}else{pd.put("msg", "no");}pdList.add(pd);map.put("list", pdList);return AppUtil.returnObject(pd, map);}/**导出用户信息到EXCEL* @return* @throws Exception */@RequestMapping(value="/excel")public ModelAndView exportExcel() throws Exception{FHLOG.save(Jurisdiction.getUsername(), "导出用户信息到EXCEL");ModelAndView mv = this.getModelAndView();PageData pd = new PageData();pd = this.getPageData();try{if(Jurisdiction.buttonJurisdiction(menuUrl, "cha")){String keywords = pd.getString("keywords");                //关键词检索条件if(null != keywords && !"".equals(keywords)){pd.put("keywords", keywords.trim());}String lastLoginStart = pd.getString("lastLoginStart");  //开始时间String lastLoginEnd = pd.getString("lastLoginEnd");        //结束时间if(lastLoginStart != null && !"".equals(lastLoginStart)){pd.put("lastLoginStart", lastLoginStart+" 00:00:00");}if(lastLoginEnd != null && !"".equals(lastLoginEnd)){pd.put("lastLoginEnd", lastLoginEnd+" 00:00:00");} Map<String,Object> dataMap = new HashMap<String,Object>();List<String> titles = new ArrayList<String>();titles.add("用户名");         //1titles.add("编号");          //2titles.add("姓名");          //3titles.add("职位");          //4titles.add("手机");          //5titles.add("邮箱");          //6titles.add("最近登录");        //7titles.add("上次登录IP");  //8dataMap.put("titles", titles);List<PageData> userList = userService.listAllUser(pd);List<PageData> varList = new ArrayList<PageData>();for(int i=0;i<userList.size();i++){PageData vpd = new PageData();vpd.put("var1", userList.get(i).getString("USERNAME"));     //1vpd.put("var2", userList.get(i).getString("NUMBER"));        //2vpd.put("var3", userList.get(i).getString("NAME"));          //3vpd.put("var4", userList.get(i).getString("ROLE_NAME")); //4vpd.put("var5", userList.get(i).getString("PHONE"));     //5vpd.put("var6", userList.get(i).getString("EMAIL"));     //6vpd.put("var7", userList.get(i).getString("LAST_LOGIN"));    //7vpd.put("var8", userList.get(i).getString("IP"));            //8varList.add(vpd);}dataMap.put("varList", varList);ObjectExcelView erv = new ObjectExcelView();                    //执行excel操作mv = new ModelAndView(erv,dataMap);}} catch(Exception e){logger.error(e.toString(), e);}return mv;}/**打开上传EXCEL页面* @return* @throws Exception*/@RequestMapping(value="/goUploadExcel")public ModelAndView goUploadExcel()throws Exception{ModelAndView mv = this.getModelAndView();mv.setViewName("system/user/uploadexcel");return mv;}/**下载模版* @param response* @throws Exception*/@RequestMapping(value="/downExcel")public void downExcel(HttpServletResponse response)throws Exception{FileDownload.fileDownload(response, PathUtil.getClasspath() + Const.FILEPATHFILE + "Users.xls", "Users.xls");}/**从EXCEL导入到数据库* @param file* @return* @throws Exception*/@RequestMapping(value="/readExcel")public ModelAndView readExcel(@RequestParam(value="excel",required=false) MultipartFile file) throws Exception{FHLOG.save(Jurisdiction.getUsername(), "从EXCEL导入到数据库");ModelAndView mv = this.getModelAndView();PageData pd = new PageData();if(!Jurisdiction.buttonJurisdiction(menuUrl, "add")){return null;}if (null != file && !file.isEmpty()) {String filePath = PathUtil.getClasspath() + Const.FILEPATHFILE;                                //文件上传路径String fileName =  FileUpload.fileUp(file, filePath, "userexcel");                           //执行上传List<PageData> listPd = (List)ObjectExcelRead.readExcel(filePath, fileName, 2, 0, 0);      //执行读EXCEL操作,读出的数据导入List 2:从第3行开始;0:从第A列开始;0:第0个sheet/*存入数据库操作======================================*/pd.put("RIGHTS", "");                 //权限pd.put("LAST_LOGIN", "");               //最后登录时间pd.put("IP", "");                       //IPpd.put("STATUS", "0");                  //状态pd.put("SKIN", "no-skin");              //默认皮肤pd.put("ROLE_ID", "1");pd.put("RIGHTS", "");List<Role> roleList = roleService.listAllRolesByPId(pd);//列出所有系统用户角色pd.put("ROLE_ID", roleList.get(0).getROLE_ID());     //设置角色ID为随便第一个/*** var0 :编号* var1 :姓名* var2 :手机* var3 :邮箱* var4 :备注*/for(int i=0;i<listPd.size();i++){        pd.put("USER_ID", this.get32UUID());                                      //IDpd.put("NAME", listPd.get(i).getString("var1"));                            //姓名String USERNAME = GetPinyin.getPingYin(listPd.get(i).getString("var1")); //根据姓名汉字生成全拼pd.put("USERNAME", USERNAME); if(userService.findByUsername(pd) != null){                                    //判断用户名是否重复USERNAME = GetPinyin.getPingYin(listPd.get(i).getString("var1"))+Tools.getRandomNum();pd.put("USERNAME", USERNAME);}pd.put("BZ", listPd.get(i).getString("var4"));                             //备注if(Tools.checkEmail(listPd.get(i).getString("var3"))){                        //邮箱格式不对就跳过pd.put("EMAIL", listPd.get(i).getString("var3"));                        if(userService.findByUE(pd) != null){                                  //邮箱已存在就跳过continue;}}else{continue;}pd.put("NUMBER", listPd.get(i).getString("var0"));                          //编号已存在就跳过pd.put("PHONE", listPd.get(i).getString("var2"));                         //手机号pd.put("PASSWORD", "123456");  //默认密码123456if(userService.findByUN(pd) != null){continue;}userService.saveU(pd);}/*存入数据库操作======================================*/mv.addObject("msg","success");}mv.setViewName("save_result");return mv;}/**显示用户列表(弹窗选择用)* @param page* @return* @throws Exception*/@RequestMapping(value="/listUsersForWindow")public ModelAndView listUsersForWindow(Page page)throws Exception{ModelAndView mv = this.getModelAndView();PageData pd = new PageData();pd = this.getPageData();String keywords = pd.getString("keywords");             //关键词检索条件if(null != keywords && !"".equals(keywords)){pd.put("keywords", keywords.trim());}String lastLoginStart = pd.getString("lastLoginStart");  //开始时间String lastLoginEnd = pd.getString("lastLoginEnd");        //结束时间if(lastLoginStart != null && !"".equals(lastLoginStart)){pd.put("lastLoginStart", lastLoginStart+" 00:00:00");}if(lastLoginEnd != null && !"".equals(lastLoginEnd)){pd.put("lastLoginEnd", lastLoginEnd+" 00:00:00");} page.setPd(pd);List<PageData>    userList = userService.listUsersBystaff(page); //列出用户列表(弹窗选择用)pd.put("ROLE_ID", "1");List<Role> roleList = roleService.listAllRolesByPId(pd);       //列出所有系统用户角色mv.setViewName("system/user/window_user_list");mv.addObject("userList", userList);mv.addObject("roleList", roleList);mv.addObject("pd", pd);return mv;}@InitBinderpublic void initBinder(WebDataBinder binder){DateFormat format = new SimpleDateFormat("yyyy-MM-dd");binder.registerCustomEditor(Date.class, new CustomDateEditor(format,true));}}

角色管理控制层:

@Controller
@RequestMapping(value="/role")
public class RoleController extends BaseController {String menuUrl = "role.do"; //菜单地址(权限用)@Resource(name="menuService")private MenuManager menuService;@Resource(name="roleService")private RoleManager roleService;@Resource(name="userService")private UserManager userService;@Resource(name="appuserService")private AppuserManager appuserService;@Resource(name="fhlogService")private FHlogManager FHLOG;/** 进入权限首页* @param * @return* @throws Exception*/@RequestMappingpublic ModelAndView list()throws Exception{ModelAndView mv = this.getModelAndView();PageData pd = new PageData();try{pd = this.getPageData();if(pd.getString("ROLE_ID") == null || "".equals(pd.getString("ROLE_ID").trim())){pd.put("ROLE_ID", "1");                                        //默认列出第一组角色(初始设计系统用户和会员组不能删除)}PageData fpd = new PageData();fpd.put("ROLE_ID", "0");List<Role> roleList = roleService.listAllRolesByPId(fpd);       //列出组(页面横向排列的一级组)List<Role> roleList_z = roleService.listAllRolesByPId(pd);      //列出此组下架角色pd = roleService.findObjectById(pd);                         //取得点击的角色组(横排的)mv.addObject("pd", pd);mv.addObject("roleList", roleList);mv.addObject("roleList_z", roleList_z);mv.addObject("QX",Jurisdiction.getHC());    //按钮权限mv.setViewName("system/role/role_list");} catch(Exception e){logger.error(e.toString(), e);}return mv;}/**去新增页面* @param * @return*/@RequestMapping(value="/toAdd")public ModelAndView toAdd(){ModelAndView mv = this.getModelAndView();PageData pd = new PageData();try{pd = this.getPageData();mv.addObject("msg", "add");mv.setViewName("system/role/role_edit");mv.addObject("pd", pd);} catch(Exception e){logger.error(e.toString(), e);}return mv;}/**保存新增角色* @return* @throws Exception*/@RequestMapping(value="/add",method=RequestMethod.POST)public ModelAndView add()throws Exception{if(!Jurisdiction.buttonJurisdiction(menuUrl, "add")){return null;} //校验权限logBefore(logger, Jurisdiction.getUsername()+"新增角色");ModelAndView mv = this.getModelAndView();PageData pd = new PageData();try{pd = this.getPageData();String parent_id = pd.getString("PARENT_ID");       //父类角色idpd.put("ROLE_ID", parent_id);         if("0".equals(parent_id)){pd.put("RIGHTS", "");                           //菜单权限}else{String rights = roleService.findObjectById(pd).getString("RIGHTS");pd.put("RIGHTS", (null == rights)?"":rights);   //组菜单权限}pd.put("ROLE_ID", this.get32UUID());              //主键pd.put("ADD_QX", "0");  //初始新增权限为否pd.put("DEL_QX", "0");    //删除权限pd.put("EDIT_QX", "0");   //修改权限pd.put("CHA_QX", "0");    //查看权限roleService.add(pd);FHLOG.save(Jurisdiction.getUsername(), "新增角色:"+pd.getString("ROLE_NAME"));} catch(Exception e){logger.error(e.toString(), e);mv.addObject("msg","failed");}mv.setViewName("save_result");return mv;}/**请求编辑* @param ROLE_ID* @return* @throws Exception*/@RequestMapping(value="/toEdit")public ModelAndView toEdit( String ROLE_ID )throws Exception{ModelAndView mv = this.getModelAndView();PageData pd = new PageData();try{pd = this.getPageData();pd.put("ROLE_ID", ROLE_ID);pd = roleService.findObjectById(pd);mv.addObject("msg", "edit");mv.addObject("pd", pd);mv.setViewName("system/role/role_edit");} catch(Exception e){logger.error(e.toString(), e);}return mv;}/**保存修改* @return* @throws Exception*/@RequestMapping(value="/edit")public ModelAndView edit()throws Exception{if(!Jurisdiction.buttonJurisdiction(menuUrl, "edit")){return null;} //校验权限logBefore(logger, Jurisdiction.getUsername()+"修改角色");ModelAndView mv = this.getModelAndView();PageData pd = new PageData();try{pd = this.getPageData();roleService.edit(pd);FHLOG.save(Jurisdiction.getUsername(), "修改角色:"+pd.getString("ROLE_NAME"));mv.addObject("msg","success");} catch(Exception e){logger.error(e.toString(), e);mv.addObject("msg","failed");}mv.setViewName("save_result");return mv;}/**删除角色* @param ROLE_ID* @return* @throws Exception*/@RequestMapping(value="/delete")@ResponseBodypublic Object deleteRole(@RequestParam String ROLE_ID)throws Exception{if(!Jurisdiction.buttonJurisdiction(menuUrl, "del")){return null;} //校验权限logBefore(logger, Jurisdiction.getUsername()+"删除角色");Map<String,String> map = new HashMap<String,String>();PageData pd = new PageData();String errInfo = "";try{pd.put("ROLE_ID", ROLE_ID);List<Role> roleList_z = roleService.listAllRolesByPId(pd);       //列出此部门的所有下级if(roleList_z.size() > 0){errInfo = "false";                                          //下级有数据时,删除失败}else{List<PageData> userlist = userService.listAllUserByRoldId(pd);         //此角色下的用户List<PageData> appuserlist = appuserService.listAllAppuserByRorlid(pd); //此角色下的会员if(userlist.size() > 0 || appuserlist.size() > 0){                       //此角色已被使用就不能删除errInfo = "false2";}else{roleService.deleteRoleById(ROLE_ID);  //执行删除FHLOG.save(Jurisdiction.getUsername(), "删除角色ID为:"+ROLE_ID);errInfo = "success";}}} catch(Exception e){logger.error(e.toString(), e);}map.put("result", errInfo);return AppUtil.returnObject(new PageData(), map);}/*** 显示菜单列表ztree(菜单授权菜单)* @param model* @return*/@RequestMapping(value="/menuqx")public ModelAndView listAllMenu(Model model,String ROLE_ID)throws Exception{ModelAndView mv = this.getModelAndView();try{Role role = roleService.getRoleById(ROLE_ID);         //根据角色ID获取角色对象String roleRights = role.getRIGHTS();                    //取出本角色菜单权限List<Menu> menuList = menuService.listAllMenuQx("0");   //获取所有菜单menuList = this.readMenu(menuList, roleRights);            //根据角色权限处理菜单权限状态(递归处理)JSONArray arr = JSONArray.fromObject(menuList);String json = arr.toString();json = json.replaceAll("MENU_ID", "id").replaceAll("PARENT_ID", "pId").replaceAll("MENU_NAME", "name").replaceAll("subMenu", "nodes").replaceAll("hasMenu", "checked");model.addAttribute("zTreeNodes", json);mv.addObject("ROLE_ID",ROLE_ID);mv.setViewName("system/role/menuqx");} catch(Exception e){logger.error(e.toString(), e);}return mv;}/**保存角色菜单权限* @param ROLE_ID 角色ID* @param menuIds 菜单ID集合* @param out* @throws Exception*/@RequestMapping(value="/saveMenuqx")public void saveMenuqx(@RequestParam String ROLE_ID,@RequestParam String menuIds,PrintWriter out)throws Exception{if(!Jurisdiction.buttonJurisdiction(menuUrl, "edit")){} //校验权限logBefore(logger, Jurisdiction.getUsername()+"修改菜单权限");FHLOG.save(Jurisdiction.getUsername(), "修改角色菜单权限,角色ID为:"+ROLE_ID);PageData pd = new PageData();try{if(null != menuIds && !"".equals(menuIds.trim())){BigInteger rights = RightsHelper.sumRights(Tools.str2StrArray(menuIds));//用菜单ID做权处理Role role = roleService.getRoleById(ROLE_ID);    //通过id获取角色对象role.setRIGHTS(rights.toString());roleService.updateRoleRights(role);               //更新当前角色菜单权限pd.put("rights",rights.toString());}else{Role role = new Role();role.setRIGHTS("");role.setROLE_ID(ROLE_ID);roleService.updateRoleRights(role);                //更新当前角色菜单权限(没有任何勾选)pd.put("rights","");}pd.put("ROLE_ID", ROLE_ID);if(!"1".equals(ROLE_ID)){                       //当修改admin权限时,不修改其它角色权限roleService.setAllRights(pd);                //更新此角色所有子角色的菜单权限}out.write("success");out.close();} catch(Exception e){logger.error(e.toString(), e);}}/**请求角色按钮授权页面(增删改查)* @param ROLE_ID: 角色ID* @param msg: 区分增删改查* @param model* @return* @throws Exception*/@RequestMapping(value="/b4Button")public ModelAndView b4Button(@RequestParam String ROLE_ID,@RequestParam String msg,Model model)throws Exception{ModelAndView mv = this.getModelAndView();try{List<Menu> menuList = menuService.listAllMenuQx("0"); //获取所有菜单Role role = roleService.getRoleById(ROLE_ID);         //根据角色ID获取角色对象String roleRights = "";if("add_qx".equals(msg)){roleRights = role.getADD_QX();    //新增权限}else if("del_qx".equals(msg)){roleRights = role.getDEL_QX();  //删除权限}else if("edit_qx".equals(msg)){roleRights = role.getEDIT_QX();    //修改权限}else if("cha_qx".equals(msg)){roleRights = role.getCHA_QX();  //查看权限}menuList = this.readMenu(menuList, roleRights);     //根据角色权限处理菜单权限状态(递归处理)JSONArray arr = JSONArray.fromObject(menuList);String json = arr.toString();json = json.replaceAll("MENU_ID", "id").replaceAll("PARENT_ID", "pId").replaceAll("MENU_NAME", "name").replaceAll("subMenu", "nodes").replaceAll("hasMenu", "checked");model.addAttribute("zTreeNodes", json);mv.addObject("ROLE_ID",ROLE_ID);mv.addObject("msg", msg);} catch(Exception e){logger.error(e.toString(), e);}mv.setViewName("system/role/b4Button");return mv;}/**根据角色权限处理权限状态(递归处理)* @param menuList:传入的总菜单* @param roleRights:加密的权限字符串* @return*/public List<Menu> readMenu(List<Menu> menuList,String roleRights){for(int i=0;i<menuList.size();i++){menuList.get(i).setHasMenu(RightsHelper.testRights(roleRights, menuList.get(i).getMENU_ID()));this.readMenu(menuList.get(i).getSubMenu(), roleRights);                    //是:继续排查其子菜单}return menuList;}/*** 保存角色按钮权限*//*** @param ROLE_ID* @param menuIds* @param msg* @param out* @throws Exception*/@RequestMapping(value="/saveB4Button")public void saveB4Button(@RequestParam String ROLE_ID,@RequestParam String menuIds,@RequestParam String msg,PrintWriter out)throws Exception{if(!Jurisdiction.buttonJurisdiction(menuUrl, "edit")){} //校验权限logBefore(logger, Jurisdiction.getUsername()+"修改"+msg+"权限");FHLOG.save(Jurisdiction.getUsername(), "修改"+msg+"权限,角色ID为:"+ROLE_ID);PageData pd = new PageData();pd = this.getPageData();try{if(null != menuIds && !"".equals(menuIds.trim())){BigInteger rights = RightsHelper.sumRights(Tools.str2StrArray(menuIds));pd.put("value",rights.toString());}else{pd.put("value","");}pd.put("ROLE_ID", ROLE_ID);roleService.saveB4Button(msg,pd);out.write("success");out.close();} catch(Exception e){logger.error(e.toString(), e);}}}

登录管理控制层:

@Controller
public class LoginController extends BaseController {@Resource(name="userService")private UserManager userService;@Resource(name="menuService")private MenuManager menuService;@Resource(name="roleService")private RoleManager roleService;@Resource(name="buttonrightsService")private ButtonrightsManager buttonrightsService;@Resource(name="fhbuttonService")private FhbuttonManager fhbuttonService;@Resource(name="appuserService")private AppuserManager appuserService;@Resource(name="datajurService")private DatajurManager datajurService;@Resource(name="fhlogService")private FHlogManager FHLOG;@Resource(name="loginimgService")private LogInImgManager loginimgService;/**访问登录页* @return* @throws Exception*/@RequestMapping(value="/login_toLogin")public ModelAndView toLogin()throws Exception{ModelAndView mv = this.getModelAndView();PageData pd = new PageData();pd = this.getPageData();pd = this.setLoginPd(pd);    //设置登录页面的配置参数mv.setViewName("system/index/login");mv.addObject("pd",pd);return mv;}/**请求登录,验证用户* @return* @throws Exception*/@RequestMapping(value="/login_login" ,produces="application/json;charset=UTF-8")@ResponseBodypublic Object login()throws Exception{Map<String,String> map = new HashMap<String,String>();PageData pd = new PageData();pd = this.getPageData();String errInfo = "";String KEYDATA[] = pd.getString("KEYDATA").split(",");if(null != KEYDATA && KEYDATA.length == 3){Session session = Jurisdiction.getSession();String sessionCode = (String)session.getAttribute(Const.SESSION_SECURITY_CODE);       //获取session中的验证码String code = KEYDATA[2];if(null == code || "".equals(code)){//判断效验码errInfo = "nullcode";           //效验码为空}else{String USERNAME = KEYDATA[0]; //登录过来的用户名String PASSWORD  = KEYDATA[1];   //登录过来的密码pd.put("USERNAME", USERNAME);if(Tools.notEmpty(sessionCode) && sessionCode.equalsIgnoreCase(code)){      //判断登录验证码pd.put("PASSWORD", PASSWORD);pd = userService.getUserByNameAndPwd(pd);  //根据用户名和密码去读取用户信息if(pd != null){this.removeSession(USERNAME);//请缓存pd.put("LAST_LOGIN",DateUtil.getTime().toString());userService.updateLastLogin(pd);User user = new User();user.setUSER_ID(pd.getString("USER_ID"));user.setUSERNAME(pd.getString("USERNAME"));user.setPASSWORD(pd.getString("PASSWORD"));user.setNAME(pd.getString("NAME"));user.setRIGHTS(pd.getString("RIGHTS"));user.setROLE_ID(pd.getString("ROLE_ID"));user.setLAST_LOGIN(pd.getString("LAST_LOGIN"));user.setIP(pd.getString("IP"));user.setSTATUS(pd.getString("STATUS"));session.setAttribute(Const.SESSION_USER, user);            //把用户信息放session中session.removeAttribute(Const.SESSION_SECURITY_CODE);   //清除登录验证码的session//shiro加入身份验证Subject subject = SecurityUtils.getSubject(); UsernamePasswordToken token = new UsernamePasswordToken(USERNAME, PASSWORD); try { subject.login(token); } catch (AuthenticationException e) { errInfo = "身份验证失败!";}}else{errInfo = "usererror";                 //用户名或密码有误logBefore(logger, USERNAME+"登录系统密码或用户名错误");FHLOG.save(USERNAME, "登录系统密码或用户名错误");}}else{errInfo = "codeerror";                 //验证码输入有误}if(Tools.isEmpty(errInfo)){errInfo = "success";                    //验证成功logBefore(logger, USERNAME+"登录系统");FHLOG.save(USERNAME, "登录系统");}}}else{errInfo = "error";    //缺少参数}map.put("result", errInfo);return AppUtil.returnObject(new PageData(), map);}/**访问系统首页* @param changeMenu:切换菜单参数* @return*/@RequestMapping(value="/main/{changeMenu}")public ModelAndView login_index(@PathVariable("changeMenu") String changeMenu){ModelAndView mv = this.getModelAndView();PageData pd = new PageData();pd = this.getPageData();try{Session session = Jurisdiction.getSession();User user = (User)session.getAttribute(Const.SESSION_USER);                        //读取session中的用户信息(单独用户信息)if (user != null) {User userr = (User)session.getAttribute(Const.SESSION_USERROL);               //读取session中的用户信息(含角色信息)if(null == userr){user = userService.getUserAndRoleById(user.getUSER_ID());              //通过用户ID读取用户信息和角色信息session.setAttribute(Const.SESSION_USERROL, user);                       //存入session }else{user = userr;}String USERNAME = user.getUSERNAME();Role role = user.getRole();                                                 //获取用户角色String roleRights = role!=null ? role.getRIGHTS() : "";                     //角色权限(菜单权限)String ROLE_IDS = user.getROLE_IDS();session.setAttribute(USERNAME + Const.SESSION_ROLE_RIGHTS, roleRights);  //将角色权限存入sessionsession.setAttribute(Const.SESSION_USERNAME, USERNAME);                     //放入用户名到sessionsession.setAttribute(Const.SESSION_U_NAME, user.getNAME());                  //放入用户姓名到sessionthis.setAttributeToAllDEPARTMENT_ID(session, USERNAME);                     //把用户的组织机构权限放到session里面List<Menu> allmenuList = new ArrayList<Menu>();allmenuList = this.getAttributeMenu(session, USERNAME, roleRights, getArrayRoleRights(ROLE_IDS));           //菜单缓存List<Menu> menuList = new ArrayList<Menu>();menuList = this.changeMenuF(allmenuList, session, USERNAME, changeMenu);    //切换菜单if(null == session.getAttribute(USERNAME + Const.SESSION_QX)){session.setAttribute(USERNAME + Const.SESSION_QX, this.getUQX(USERNAME));   //主职角色按钮权限放到session中session.setAttribute(USERNAME + Const.SESSION_QX2, this.getUQX2(USERNAME));    //副职角色按钮权限放到session中}this.getRemortIP(USERNAME);    //更新登录IPmv.setViewName("system/index/main");mv.addObject("user", user);mv.addObject("SKIN", null == session.getAttribute(Const.SKIN)?user.getSKIN():session.getAttribute(Const.SKIN));  //用户皮肤mv.addObject("menuList", menuList);}else {mv.setViewName("system/index/login");   //session失效后跳转登录页面}} catch(Exception e){mv.setViewName("system/index/login");logger.error(e.getMessage(), e);}pd.put("SYSNAME", Tools.readTxtFile(Const.SYSNAME)); //读取系统名称mv.addObject("pd",pd);return mv;}/**获取副职角色权限List* @param ROLE_IDS* @return* @throws Exception*/public List<String> getArrayRoleRights(String ROLE_IDS) throws Exception{if(Tools.notEmpty(ROLE_IDS)){List<String> list = new ArrayList<String>();String arryROLE_ID[] = ROLE_IDS.split(",fh,");for(int i=0;i<arryROLE_ID.length;i++){PageData pd = new PageData();pd.put("ROLE_ID", arryROLE_ID[i]);pd = roleService.findObjectById(pd);if(null != pd){String RIGHTS = pd.getString("RIGHTS");if(Tools.notEmpty(RIGHTS)){list.add(RIGHTS);}}}return list.size() == 0 ? null : list;}else{return null;}}/**菜单缓存* @param session* @param USERNAME* @param roleRights* @return* @throws Exception*/@SuppressWarnings("unchecked")public List<Menu> getAttributeMenu(Session session, String USERNAME, String roleRights, List<String> arrayRoleRights) throws Exception{List<Menu> allmenuList = new ArrayList<Menu>();if(null == session.getAttribute(USERNAME + Const.SESSION_allmenuList)){   allmenuList = menuService.listAllMenuQx("0");                            //获取所有菜单if(Tools.notEmpty(roleRights)){allmenuList = this.readMenu(allmenuList, roleRights, arrayRoleRights);              //根据角色权限获取本权限的菜单列表}session.setAttribute(USERNAME + Const.SESSION_allmenuList, allmenuList);//菜单权限放入session中}else{allmenuList = (List<Menu>)session.getAttribute(USERNAME + Const.SESSION_allmenuList);}return allmenuList;}/**根据角色权限获取本权限的菜单列表(递归处理)* @param menuList:传入的总菜单* @param roleRights:加密的权限字符串* @return*/public List<Menu> readMenu(List<Menu> menuList,String roleRights, List<String> arrayRoleRights){for(int i=0;i<menuList.size();i++){Boolean b1 = RightsHelper.testRights(roleRights, menuList.get(i).getMENU_ID());menuList.get(i).setHasMenu(b1); //赋予主职角色菜单权限if(!b1 && null != arrayRoleRights){for(int n=0;n<arrayRoleRights.size();n++){if(RightsHelper.testRights(arrayRoleRights.get(n), menuList.get(i).getMENU_ID())){menuList.get(i).setHasMenu(true);break;}}}if(menuList.get(i).isHasMenu()){        //判断是否有此菜单权限this.readMenu(menuList.get(i).getSubMenu(), roleRights, arrayRoleRights);//是:继续排查其子菜单}}return menuList;}/**切换菜单处理* @param allmenuList* @param session* @param USERNAME* @param changeMenu* @return*/@SuppressWarnings("unchecked")public List<Menu> changeMenuF(List<Menu> allmenuList, Session session, String USERNAME, String changeMenu){List<Menu> menuList = new ArrayList<Menu>();/** 菜单缓存为空 或者 传入的菜单类型和当前不一样的时候,条件成立,重新拆分菜单,把选择的菜单类型放入缓存 */if(null == session.getAttribute(USERNAME + Const.SESSION_menuList) || (!changeMenu.equals(session.getAttribute("changeMenu")))){List<Menu> menuList1 = new ArrayList<Menu>();List<Menu> menuList2 = new ArrayList<Menu>();List<Menu> menuList3 = new ArrayList<Menu>();List<Menu> menuList4 = new ArrayList<Menu>();for(int i=0;i<allmenuList.size();i++){//拆分菜单Menu menu = allmenuList.get(i);if("1".equals(menu.getMENU_TYPE())){menuList1.add(menu);   //系统菜单}else if("2".equals(menu.getMENU_TYPE())){menuList2.add(menu);  //业务菜单}else if("3".equals(menu.getMENU_TYPE())){menuList3.add(menu);  //菜单类型三}else if("4".equals(menu.getMENU_TYPE())){menuList4.add(menu); //菜单类型四}}session.removeAttribute(USERNAME + Const.SESSION_menuList);if("index".equals(changeMenu)){session.setAttribute(USERNAME + Const.SESSION_menuList, menuList2);session.removeAttribute("changeMenu");session.setAttribute("changeMenu", "index");menuList = menuList2;}else if("2".equals(changeMenu)){session.setAttribute(USERNAME + Const.SESSION_menuList, menuList1);session.removeAttribute("changeMenu");session.setAttribute("changeMenu", "2");menuList = menuList1;}else if("3".equals(changeMenu)){session.setAttribute(USERNAME + Const.SESSION_menuList, menuList3);session.removeAttribute("changeMenu");session.setAttribute("changeMenu", "3");menuList = menuList3;}else if("4".equals(changeMenu)){session.setAttribute(USERNAME + Const.SESSION_menuList, menuList4);session.removeAttribute("changeMenu");session.setAttribute("changeMenu", "4");menuList = menuList4;}}else{menuList = (List<Menu>)session.getAttribute(USERNAME + Const.SESSION_menuList);}return menuList;}/**把用户的组织机构权限放到session里面* @param session* @param USERNAME* @return* @throws Exception */public void setAttributeToAllDEPARTMENT_ID(Session session, String USERNAME) throws Exception{String DEPARTMENT_IDS = "0",DEPARTMENT_ID = "0";if(!"admin".equals(USERNAME)){PageData pd = datajurService.getDEPARTMENT_IDS(USERNAME);DEPARTMENT_IDS = null == pd?"无权":pd.getString("DEPARTMENT_IDS");DEPARTMENT_ID = null == pd?"无权":pd.getString("DEPARTMENT_ID");}session.setAttribute(Const.DEPARTMENT_IDS, DEPARTMENT_IDS);   //把用户的组织机构权限集合放到session里面session.setAttribute(Const.DEPARTMENT_ID, DEPARTMENT_ID);  //把用户的最高组织机构权限放到session里面}/*** 进入tab标签* @return*/@RequestMapping(value="/tab")public String tab(){return "system/index/tab";}/*** 进入首页后的默认页面* @return* @throws Exception */@RequestMapping(value="/login_default")public ModelAndView defaultPage() throws Exception{ModelAndView mv = this.getModelAndView();PageData pd = new PageData();pd.put("userCount", Integer.parseInt(userService.getUserCount("").get("userCount").toString())-1);              //系统用户数pd.put("appUserCount", Integer.parseInt(appuserService.getAppUserCount("").get("appUserCount").toString()));   //会员数mv.addObject("pd",pd);mv.setViewName("system/index/default");return mv;}/*** 用户注销* @param session* @return* @throws Exception */@RequestMapping(value="/logout")public ModelAndView logout() throws Exception{String USERNAME = Jurisdiction.getUsername();    //当前登录的用户名logBefore(logger, USERNAME+"退出系统");FHLOG.save(USERNAME, "退出");ModelAndView mv = this.getModelAndView();PageData pd = new PageData();this.removeSession(USERNAME);//请缓存//shiro销毁登录Subject subject = SecurityUtils.getSubject(); subject.logout();pd = this.getPageData();pd.put("msg", pd.getString("msg"));pd = this.setLoginPd(pd);    //设置登录页面的配置参数mv.setViewName("system/index/login");mv.addObject("pd",pd);return mv;}/*** 清理session*/public void removeSession(String USERNAME){Session session = Jurisdiction.getSession(); //以下清除session缓存session.removeAttribute(Const.SESSION_USER);session.removeAttribute(USERNAME + Const.SESSION_ROLE_RIGHTS);session.removeAttribute(USERNAME + Const.SESSION_allmenuList);session.removeAttribute(USERNAME + Const.SESSION_menuList);session.removeAttribute(USERNAME + Const.SESSION_QX);session.removeAttribute(USERNAME + Const.SESSION_QX2);session.removeAttribute(Const.SESSION_userpds);session.removeAttribute(Const.SESSION_USERNAME);session.removeAttribute(Const.SESSION_U_NAME);session.removeAttribute(Const.SESSION_USERROL);session.removeAttribute("changeMenu");session.removeAttribute("DEPARTMENT_IDS");session.removeAttribute("DEPARTMENT_ID");}/**设置登录页面的配置参数* @param pd* @return*/public PageData setLoginPd(PageData pd){pd.put("SYSNAME", Tools.readTxtFile(Const.SYSNAME));      //读取系统名称String strLOGINEDIT = Tools.readTxtFile(Const.LOGINEDIT);  //读取登录页面配置if(null != strLOGINEDIT && !"".equals(strLOGINEDIT)){String strLo[] = strLOGINEDIT.split(",fh,");if(strLo.length == 2){pd.put("isZhuce", strLo[0]);pd.put("isMusic", strLo[1]);}}try {List<PageData> listImg = loginimgService.listAll(pd);    //登录背景图片pd.put("listImg", listImg);} catch (Exception e) {e.printStackTrace();}return pd;}/**获取用户权限* @param session* @return*/public Map<String, String> getUQX(String USERNAME){PageData pd = new PageData();Map<String, String> map = new HashMap<String, String>();try {pd.put(Const.SESSION_USERNAME, USERNAME);PageData userpd = new PageData();userpd = userService.findByUsername(pd); //通过用户名获取用户信息String ROLE_ID = userpd.get("ROLE_ID").toString();String ROLE_IDS = userpd.getString("ROLE_IDS");pd.put("ROLE_ID", ROLE_ID);                   //获取角色IDpd = roleService.findObjectById(pd);                                   //获取角色信息                                                        map.put("adds", pd.getString("ADD_QX"));    //增map.put("dels", pd.getString("DEL_QX")); //删map.put("edits", pd.getString("EDIT_QX"));   //改map.put("chas", pd.getString("CHA_QX")); //查List<PageData> buttonQXnamelist = new ArrayList<PageData>();if("admin".equals(USERNAME)){buttonQXnamelist = fhbuttonService.listAll(pd);                     //admin用户拥有所有按钮权限}else{if(Tools.notEmpty(ROLE_IDS)){//(主副职角色综合按钮权限)ROLE_IDS = ROLE_IDS + ROLE_ID;String arryROLE_ID[] = ROLE_IDS.split(",fh,");buttonQXnamelist = buttonrightsService.listAllBrAndQxnameByZF(arryROLE_ID);}else{  //(主职角色按钮权限)buttonQXnamelist = buttonrightsService.listAllBrAndQxname(pd); //此角色拥有的按钮权限标识列表}}for(int i=0;i<buttonQXnamelist.size();i++){map.put(buttonQXnamelist.get(i).getString("QX_NAME"),"1");           //按钮权限}} catch (Exception e) {logger.error(e.toString(), e);}   return map;}/**获取用户权限(处理副职角色)* @param session* @return*/public Map<String, List<String>> getUQX2(String USERNAME){PageData pd = new PageData();Map<String, List<String>> maps = new HashMap<String, List<String>>();try {pd.put(Const.SESSION_USERNAME, USERNAME);PageData userpd = new PageData();userpd = userService.findByUsername(pd);   //通过用户名获取用户信息String ROLE_IDS = userpd.getString("ROLE_IDS");if(Tools.notEmpty(ROLE_IDS)){String arryROLE_ID[] = ROLE_IDS.split(",fh,");PageData rolePd = new PageData();List<String> addsList = new ArrayList<String>();List<String> delsList = new ArrayList<String>();List<String> editsList = new ArrayList<String>();List<String> chasList = new ArrayList<String>();for(int i=0;i<arryROLE_ID.length;i++){rolePd.put("ROLE_ID", arryROLE_ID[i]);rolePd = roleService.findObjectById(rolePd);addsList.add(rolePd.getString("ADD_QX"));delsList.add(rolePd.getString("DEL_QX"));editsList.add(rolePd.getString("EDIT_QX"));chasList.add(rolePd.getString("CHA_QX"));}maps.put("addsList", addsList);       //增maps.put("delsList", delsList);        //删maps.put("editsList", editsList);  //改maps.put("chasList", chasList);        //查}} catch (Exception e) {logger.error(e.toString(), e);}  return maps;}/** 更新登录用户的IP* @param USERNAME* @throws Exception*/public void getRemortIP(String USERNAME) throws Exception {  PageData pd = new PageData();HttpServletRequest request = this.getRequest();String ip = "";if (request.getHeader("x-forwarded-for") == null) {  ip = request.getRemoteAddr();  }else{ip = request.getHeader("x-forwarded-for");  }pd.put("USERNAME", USERNAME);pd.put("IP", ip);userService.saveIP(pd);}  }

源码获取:俺的博客首页 "资源" 里下载!

Java项目:在线车队货车管理系统(java+SSM+JSP+bootstrap+Mysql)相关推荐

  1. 基于javaweb的在线车队货车管理系统(java+ssm+jsp+bootstrap+mysql)

    基于javaweb的在线车队货车管理系统(java+ssm+jsp+bootstrap+mysql) 运行环境 Java≥8.MySQL≥5.7.Tomcat≥8 开发工具 eclipse/idea/ ...

  2. Java项目:在线电子商城管理系统(java+SpringBoot+Thymeleaf+bootstrap+jQ+layui+maven+mysql)

    源码获取:博客首页 "资源" 里下载! 项目介绍 本项目分为管理员与普通用户两种角色, 管理员角色包含以下功能: 发货,后台登录后首页,商品管理,商城类别增删改查,用户管理,管理员 ...

  3. 基于javaweb的中药药方管理系统(java+ssm+jsp+bootstrap+mysql)

    基于javaweb的中药药方管理系统(java+ssm+jsp+bootstrap+mysql) 运行环境 Java≥8.MySQL≥5.7.Tomcat≥8 开发工具 eclipse/idea/my ...

  4. 基于javaweb的餐厅点餐收银管理系统(java+ssm+jsp+bootstrap+mysql)

    基于javaweb的餐厅点餐收银管理系统(java+ssm+jsp+bootstrap+mysql) 运行环境 Java≥8.MySQL≥5.7.Tomcat≥8 开发工具 eclipse/idea/ ...

  5. 基于javaweb的医院住院管理系统(java+ssm+jsp+bootstrap+mysql)

    基于javaweb的医院住院管理系统(java+ssm+jsp+bootstrap+mysql) 运行环境 Java≥8.MySQL≥5.7.Tomcat≥8 开发工具 eclipse/idea/my ...

  6. 基于javaweb的智能餐厅管理系统(java+ssm+jsp+bootstrap+mysql)

    基于javaweb的智能餐厅管理系统(java+ssm+jsp+bootstrap+mysql) 运行环境 Java≥8.MySQL≥5.7.Tomcat≥8 开发工具 eclipse/idea/my ...

  7. 基于javaweb的员工考勤管理系统(java+ssm+jsp+bootstrap+mysql)

    基于javaweb的员工考勤管理系统(java+ssm+jsp+bootstrap+mysql) 运行环境 Java≥8.MySQL≥5.7.Tomcat≥8 开发工具 eclipse/idea/my ...

  8. 基于javaweb的图书进销存管理系统(java+ssm+jsp+bootstrap+mysql)

    基于javaweb的图书进销存管理系统(java+ssm+jsp+bootstrap+mysql) 运行环境 Java≥8.MySQL≥5.7.Tomcat≥8 开发工具 eclipse/idea/m ...

  9. 数据库Java项目:在线租房出租房屋系统(java+springboot+maven+mysql)

    数据库Java项目:在线租房出租房屋系统(java+springboot+maven+mysql) 主要实现了客户在线租房及房东发布出租等基本操作流程的全部功能,系统分普通用户.房东.管理员等角色,除 ...

最新文章

  1. 【力扣网练习题】合并两个有序链表
  2. boost::shared_future相关的测试程序
  3. 今年蚊子有点慌!有人用100瓶花露水洗澡!
  4. struts2+json(3)
  5. 为热门项目 若依(ruoyi) 添加请求日志输出
  6. Asp.net Mvc 获取json数据 简单案例
  7. Should I design my classes from the outside (interfaces first) or from the inside (data first)?
  8. 已知尺寸计算像素公式
  9. 使用Google搜索引擎的10个搜索技巧
  10. Oracle使用函数达到drop table if exists
  11. 基于微信小程序的毕业设计题目(31)共享会议室预约小程序(含开题报告、任务书、中期报告、答辩PPT、论文模板)
  12. 关于STC单片机“假死”状态的判别和处理方法
  13. 【数学建模】主成因分析
  14. Mac清理磁盘管理内存的软件推荐
  15. 基于Matlab的车牌识别系统完整版课论文分享 快看
  16. 【基础篇】Linux的目录结构
  17. Python实现车牌摇号小程序
  18. 可观测性-Metrics-存储-InfluxDb连续查询(CQ)Continuous Queries
  19. C语言示例,三个骰子
  20. 双心ping GUI工具1.0

热门文章

  1. dg的奇怪问题终结和分区问题答疑 (r7笔记第77天)
  2. 使用 JavaScript 实现一个消消乐游戏
  3. java sts_Java Web入门学习(一) STS与Tomcat配置
  4. 硬盘数据恢复软件哪个比较恢复的全面
  5. 评估板快速测试-基于TI Sitara Cortex-A9
  6. 【JY】混凝土分析工具箱:CDP模型插件与滞回曲线数据
  7. 2012 比较全的工资待遇搜集
  8. windows xp 超级模仿windows Vista全攻略 一模一样的感觉
  9. SAP 公司间关联交易 外向交货单自动生成内向交货单报错:处理的单位XXXXXXX已经入库.无法进行分配
  10. 【洛谷】P1010 幂次方