100字范文,内容丰富有趣,生活中的好帮手!
100字范文 > 基于javaweb的车队货车管理系统(java+ssm+jsp+bootstrap+mysql)

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

时间:2022-06-19 15:11:07

相关推荐

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

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

运行环境

Java≥8、MySQL≥5.7、Tomcat≥8

开发工具

eclipse/idea/myeclipse/sts等均可配置运行

适用

课程设计,大作业,毕业设计,项目练习,学习演示等

功能说明

基于javaweb+mysql的在线车队货车管理系统(java+SSM+JSP+bootstrap+Mysql)

项目介绍

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

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

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

环境需要

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项目:否;

技术栈

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

使用说明

使用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 userList = userService.listUsers(page); //列出用户列表

pd.put(“ROLE_ID”, “1”);

List 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 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”, “”); //IP

pd.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”)

@ResponseBody

public 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”)

@ResponseBody

public 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”)

@ResponseBody

public 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 roleList = roleService.listAllRolesByPId(pd); //列出所有系统用户角色

mv.addObject(“fx”, “user”);

pd = userService.findById(pd); //根据ID读取

List froleList = new ArrayList(); //存放副职角色

String ROLE_IDS = pd.getString(“ROLE_IDS”); //副职角色ID

if(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 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 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 roleList = roleService.listAllRolesByPId(pd); //列出所有系统用户角色

pd = userService.findByUsername(pd); //根据ID读取

List froleList = new ArrayList(); //存放副职角色

String ROLE_IDS = pd.getString(“ROLE_IDS”); //副职角色ID

if(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{ //如果当前登录用户修改用户资料提交的用户名是本人,则不能修改本人的角色ID

pd.put(“ROLE_ID”, userService.findByUsername(pd).getString(“ROLE_ID”)); //对角色ID还原本人角色ID

pd.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”)

@ResponseBody

public 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 pdList = new ArrayList();

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 titles = new ArrayList();

titles.add(“用户名”); //1

titles.add(“编号”); //2

titles.add(“姓名”); //3

titles.add(“职位”); //4

titles.add(“手机”); //5

titles.add(“邮箱”); //6

titles.add(“最近登录”); //7

titles.add(“上次登录IP”); //8

dataMap.put(“titles”, titles);

List userList = userService.listAllUser(pd);

List varList = new ArrayList();

for(int i=0;i<userList.size();i++){

PageData vpd = new PageData();

vpd.put(“var1”, userList.get(i).getString(“USERNAME”)); //1

vpd.put(“var2”, userList.get(i).getString(“NUMBER”)); //2

vpd.put(“var3”, userList.get(i).getString(“NAME”)); //3

vpd.put(“var4”, userList.get(i).getString(“ROLE_NAME”)); //4

vpd.put(“var5”, userList.get(i).getString(“PHONE”)); //5

vpd.put(“var6”, userList.get(i).getString(“EMAIL”)); //6

vpd.put(“var7”, userList.get(i).getString(“LAST_LOGIN”)); //7

vpd.put(“var8”, userList.get(i).getString(“IP”)); //8

varList.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 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”, “”); //IP

pd.put(“STATUS”, “0”); //状态

pd.put(“SKIN”, “no-skin”); //默认皮肤

pd.put(“ROLE_ID”, “1”);

pd.put(“RIGHTS”, “”);

List 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()); //ID

pd.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”); //默认密码123456

if(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 userList = userService.listUsersBystaff(page); //列出用户列表(弹窗选择用)

pd.put(“ROLE_ID”, “1”);

List 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;

@InitBinder

public 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

*/

@RequestMapping

public 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 roleList = roleService.listAllRolesByPId(fpd); //列出组(页面横向排列的一级组)

List 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”); //父类角色id

pd.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”)

@ResponseBody

public 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 roleList_z = roleService.listAllRolesByPId(pd); //列出此部门的所有下级

if(roleList_z.size() > 0){

errInfo = “false”; //下级有数据时,删除失败

}else{

List userlist = userService.listAllUserByRoldId(pd); //此角色下的用户

List 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

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

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

readMenu(ListmenuList,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”)

@ResponseBody

public 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); //将角色权限存入session

session.setAttribute(Const.SESSION_USERNAME, USERNAME); //放入用户名到session

session.setAttribute(Const.SESSION_U_NAME, user.getNAME()); //放入用户姓名到session

this.setAttributeToAllDEPARTMENT_ID(session, USERNAME); //把用户的组织机构权限放到session里面

List

allmenuList = new ArrayList();

allmenuList = this.getAttributeMenu(session, USERNAME, roleRights, getArrayRoleRights(ROLE_IDS)); //菜单缓存

List

menuList = new ArrayList();

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); //更新登录IP

mv.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 getArrayRoleRights(String ROLE_IDS) throws Exception{

if(Tools.notEmpty(ROLE_IDS)){

List list = new ArrayList();

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

getAttributeMenu(Session session, String USERNAME, String roleRights, List arrayRoleRights) throws Exception{

List

allmenuList = new ArrayList();

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

)session.getAttribute(USERNAME + Const.SESSION_allmenuList);

return allmenuList;

/**根据角色权限获取本权限的菜单列表(递归处理)

@param menuList:传入的总菜单

@param roleRights:加密的权限字符串

@return

*/

public List

readMenu(ListmenuList,String roleRights, List 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

changeMenuF(ListallmenuList, Session session, String USERNAME, String changeMenu){

List

menuList = new ArrayList();

/** 菜单缓存为空 或者 传入的菜单类型和当前不一样的时候,条件成立,重新拆分菜单,把选择的菜单类型放入缓存 */

if(null == session.getAttribute(USERNAME + Const.SESSION_menuList) || (!changeMenu.equals(session.getAttribute(“changeMenu”)))){

List

menuList1 = new ArrayList();

List

menuList2 = new ArrayList();

List

menuList3 = new ArrayList();

List

menuList4 = new ArrayList();

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

)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 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); //获取角色ID

pd = 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 buttonQXnamelist = new ArrayList();

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> getUQX2(String USERNAME){

PageData pd = new PageData();

Map<String, List> maps = new HashMap<String, List>();

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 addsList = new ArrayList();

List delsList = new ArrayList();

List editsList = new ArrayList();

List chasList = new ArrayList();

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);

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。