Java项目:星月宿舍学生管理系统(java+SSM+JSP+MYSQL+Easyui)
2021/12/26 19:08:53
本文主要是介绍Java项目:星月宿舍学生管理系统(java+SSM+JSP+MYSQL+Easyui),对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
系统分为前台和后台,前台功能有:综合信息查询、宿舍查询、住宿查询。
后台管理员功能有:班级管理、学生管理、信息管理、住宿管理、宿舍管理等。
运行环境:jdk1.8、mysql5.x、tomcat7.0\8.5、eclipse
后台用户管理控制器:
/** * 后台用户管理控制器 * @author yy * */ @RequestMapping("/user") @Controller public class UserController { @Autowired private UserService userService; @Autowired private RoleService roleService; @Autowired private OperaterLogService operaterLogService; /** * 用户列表页面 * @param model * @param user * @param pageBean * @return */ @RequestMapping(value="/list") public String list(Model model,User user,PageBean<User> pageBean){ model.addAttribute("title", "用户列表"); model.addAttribute("username", user.getUsername()); model.addAttribute("pageBean", userService.findList(user, pageBean)); return "admin/user/list"; } /** * 新增用户页面 * @param model * @return */ @RequestMapping(value="/add",method=RequestMethod.GET) public String add(Model model){ model.addAttribute("roles", roleService.findAll()); return "admin/user/add"; } /** * 用户添加表单提交处理 * @param user * @return */ @RequestMapping(value="/add",method=RequestMethod.POST) @ResponseBody public Result<Boolean> add(User user){ //用统一验证实体方法验证是否合法 CodeMsg validate = ValidateEntityUtil.validate(user); if(validate.getCode() != CodeMsg.SUCCESS.getCode()){ return Result.error(validate); } if(user.getRole() == null || user.getRole().getId() == null){ return Result.error(CodeMsg.ADMIN_USER_ROLE_EMPTY); } //判断用户名是否存在 if(userService.isExistUsername(user.getUsername(), 0l)){ return Result.error(CodeMsg.ADMIN_USERNAME_EXIST); } //到这说明一切符合条件,进行数据库新增 if(userService.save(user) == null){ return Result.error(CodeMsg.ADMIN_USE_ADD_ERROR); } operaterLogService.add("添加用户,用户名:" + user.getUsername()); return Result.success(true); } /** * 用户编辑页面 * @param model * @return */ @RequestMapping(value="/edit",method=RequestMethod.GET) public String edit(Model model,@RequestParam(name="id",required=true)Long id){ model.addAttribute("roles", roleService.findAll()); model.addAttribute("user", userService.find(id)); return "admin/user/edit"; } /** * 编辑用户信息表单提交处理 * @param user * @return */ @RequestMapping(value="/edit",method=RequestMethod.POST) @ResponseBody public Result<Boolean> edit(User user){ //用统一验证实体方法验证是否合法 CodeMsg validate = ValidateEntityUtil.validate(user); if(validate.getCode() != CodeMsg.SUCCESS.getCode()){ return Result.error(validate); } if(user.getRole() == null || user.getRole().getId() == null){ return Result.error(CodeMsg.ADMIN_USER_ROLE_EMPTY); } if(user.getId() == null || user.getId().longValue() <= 0){ return Result.error(CodeMsg.ADMIN_USE_NO_EXIST); } if(userService.isExistUsername(user.getUsername(), user.getId())){ return Result.error(CodeMsg.ADMIN_USERNAME_EXIST); } //到这说明一切符合条件,进行数据库保存 User findById = userService.find(user.getId()); //讲提交的用户信息指定字段复制到已存在的user对象中,该方法会覆盖新字段内容 BeanUtils.copyProperties(user, findById, "id","createTime","updateTime"); if(userService.save(findById) == null){ return Result.error(CodeMsg.ADMIN_USE_EDIT_ERROR); } operaterLogService.add("编辑用户,用户名:" + user.getUsername()); return Result.success(true); } /** * 删除用户 * @param id * @return */ @RequestMapping(value="/delete",method=RequestMethod.POST) @ResponseBody public Result<Boolean> delete(@RequestParam(name="id",required=true)Long id){ try { userService.delete(id); } catch (Exception e) { return Result.error(CodeMsg.ADMIN_USE_DELETE_ERROR); } operaterLogService.add("添加用户,用户ID:" + id); return Result.success(true); } }
后台角色管理控制器:
/** * 后台角色管理控制器 * @author yy * */ @RequestMapping("/role") @Controller public class RoleController { private Logger log = LoggerFactory.getLogger(RoleController.class); @Autowired private MenuService menuService; @Autowired private OperaterLogService operaterLogService; @Autowired private RoleService roleService; /** * 分页搜索角色列表 * @param model * @param role * @param pageBean * @return */ @RequestMapping(value="/list") public String list(Model model,Role role,PageBean<Role> pageBean){ model.addAttribute("title", "角色列表"); model.addAttribute("name", role.getName()); model.addAttribute("pageBean", roleService.findByName(role, pageBean)); return "admin/role/list"; } /** * 角色添加页面 * @param model * @return */ @RequestMapping(value="/add",method=RequestMethod.GET) public String add(Model model){ List<Menu> findAll = menuService.findAll(); model.addAttribute("roleTypes", RoleType.values()); model.addAttribute("topMenus",MenuUtil.getTopMenus(findAll)); model.addAttribute("secondMenus",MenuUtil.getSecondMenus(findAll)); model.addAttribute("thirdMenus",MenuUtil.getThirdMenus(findAll)); return "admin/role/add"; } /** * 角色添加表单提交处理 * @param role * @return */ @RequestMapping(value="/add",method=RequestMethod.POST) @ResponseBody public Result<Boolean> add(Role role){ //用统一验证实体方法验证是否合法 CodeMsg validate = ValidateEntityUtil.validate(role); if(validate.getCode() != CodeMsg.SUCCESS.getCode()){ return Result.error(validate); } if(roleService.save(role) == null){ return Result.error(CodeMsg.ADMIN_ROLE_ADD_ERROR); } log.info("添加角色【"+role+"】"); operaterLogService.add("添加角色【"+role.getName()+"】"); return Result.success(true); } /** * 角色编辑页面 * @param id * @param model * @return */ @RequestMapping(value="/edit",method=RequestMethod.GET) public String edit(@RequestParam(name="id",required=true)Long id,Model model){ List<Menu> findAll = menuService.findAll(); model.addAttribute("topMenus",MenuUtil.getTopMenus(findAll)); model.addAttribute("secondMenus",MenuUtil.getSecondMenus(findAll)); model.addAttribute("thirdMenus",MenuUtil.getThirdMenus(findAll)); Role role = roleService.find(id); model.addAttribute("role", role); model.addAttribute("authorities",JSONArray.toJSON(role.getAuthorities()).toString()); return "admin/role/edit"; } /** * 角色修改表单提交处理 * @param request * @param role * @return */ @RequestMapping(value="/edit",method=RequestMethod.POST) @ResponseBody public Result<Boolean> edit(Role role){ //用统一验证实体方法验证是否合法 CodeMsg validate = ValidateEntityUtil.validate(role); if(validate.getCode() != CodeMsg.SUCCESS.getCode()){ return Result.error(validate); } Role existRole = roleService.find(role.getId()); if(existRole == null){ return Result.error(CodeMsg.ADMIN_ROLE_NO_EXIST); } existRole.setName(role.getName()); existRole.setRemark(role.getRemark()); existRole.setStatus(role.getStatus()); existRole.setAuthorities(role.getAuthorities()); if(roleService.save(existRole) == null){ return Result.error(CodeMsg.ADMIN_ROLE_EDIT_ERROR); } log.info("编辑角色【"+role+"】"); operaterLogService.add("编辑角色【"+role.getName()+"】"); return Result.success(true); } /** * 删除角色 * @param request * @param id * @return */ @RequestMapping(value="delete",method=RequestMethod.POST) @ResponseBody public Result<Boolean> delete(@RequestParam(name="id",required=true)Long id){ try { roleService.delete(id); } catch (Exception e) { // TODO: handle exception return Result.error(CodeMsg.ADMIN_ROLE_DELETE_ERROR); } log.info("编辑角色ID【"+id+"】"); operaterLogService.add("删除角色ID【"+id+"】"); return Result.success(true); } }
系统控制器:
/** * 系统控制器 * * @author yy */ @RequestMapping("/system") @Controller public class SystemController { @Autowired private OrderAuthService orderAuthService; @Autowired private OperaterLogService operaterLogService; @Autowired private StudentService studentService; @Autowired private UserService userService; @Autowired private EmpService empService; @Autowired private DatabaseBakService databaseBakService; @Value("${show.tips.text}") private String showTipsText; @Value("${show.tips.url.text}") private String showTipsUrlText; @Value("${show.tips.btn.text}") private String showTipsBtnText; @Value("${show.tips.url}") private String showTipsUtl; private Logger log = LoggerFactory.getLogger(SystemController.class); /** * 登录页面 * * @param * @param model * @return */ @RequestMapping(value = "/login", method = RequestMethod.GET) public String login(Model model) { return "admin/system/login"; } /** * 用户登录提交表单处理方法 * * @param request * @param user * @param cpacha * @return */ @RequestMapping(value = "/login", method = RequestMethod.POST) @ResponseBody public Result<Boolean> login(HttpServletRequest request, User user, String cpacha, String type) { if (user == null) { return Result.error(CodeMsg.DATA_ERROR); } //用统一验证实体方法验证是否合法 CodeMsg validate = ValidateEntityUtil.validate(user); if (validate.getCode() != CodeMsg.SUCCESS.getCode()) { return Result.error(validate); } //表示实体信息合法,开始验证验证码是否为空 if (StringUtils.isEmpty(cpacha)) { return Result.error(CodeMsg.CPACHA_EMPTY); } //说明验证码不为空,从session里获取验证码 Object attribute = request.getSession().getAttribute("admin_login"); if (attribute == null) { return Result.error(CodeMsg.SESSION_EXPIRED); } //表示session未失效,进一步判断用户填写的验证码是否正确 if (!cpacha.equalsIgnoreCase(attribute.toString())) { return Result.error(CodeMsg.CPACHA_ERROR); } if ("2".equals(type)) { //表示验证码正确,开始查询数据库,检验密码是否正确 User findByUsername = userService.findByUsername(user.getUsername()); //判断是否为空 if (findByUsername == null) { return Result.error(CodeMsg.ADMIN_USERNAME_NO_EXIST); } //表示用户存在,进一步对比密码是否正确 if (!findByUsername.getPassword().equals(user.getPassword())) { return Result.error(CodeMsg.ADMIN_PASSWORD_ERROR); } //表示密码正确,接下来判断用户状态是否可用 if (findByUsername.getStatus() == User.ADMIN_USER_STATUS_UNABLE) { return Result.error(CodeMsg.ADMIN_USER_UNABLE); } //检查用户所属角色状态是否可用 if (findByUsername.getRole() == null || findByUsername.getRole().getStatus() == Role.ADMIN_ROLE_STATUS_UNABLE) { return Result.error(CodeMsg.ADMIN_USER_ROLE_UNABLE); } //检查用户所属角色的权限是否存在 if (findByUsername.getRole().getAuthorities() == null || findByUsername.getRole().getAuthorities().size() == 0) { return Result.error(CodeMsg.ADMIN_USER_ROLE_AUTHORITES_EMPTY); } //检查一切符合,可以登录,将用户信息存放至session request.getSession().setAttribute(SessionConstant.SESSION_USER_LOGIN_KEY, findByUsername); //销毁session中的验证码 request.getSession().setAttribute("admin_login", null); //将登陆记录写入日志库 operaterLogService.add("用户【" + user.getUsername() + "】于【" + StringUtil.getFormatterDate(new Date(), "yyyy-MM-dd HH:mm:ss") + "】登录系统!"); log.info("用户成功登录,user = " + findByUsername); } else if ("0".equals(type)) { //表示验证码正确,开始查询数据库,检验密码是否正确 Student findByStudentNo = studentService.findByStudentNo(user.getUsername()); //判断是否为空 if (findByStudentNo == null) { return Result.error(CodeMsg.ADMIN_USERNAME_NO_EXIST); } //表示用户存在,进一步对比密码是否正确 if (!findByStudentNo.getPassword().equals(user.getPassword())) { return Result.error(CodeMsg.ADMIN_PASSWORD_ERROR); } user.setEmail(findByStudentNo.getEmail()); user.setUsername(findByStudentNo.getStudentName()); user.setRole(findByStudentNo.getRole()); user.setMobile(findByStudentNo.getMobile()); user.setSex(findByStudentNo.getStudentSex()); user.setId(findByStudentNo.getId()); user.setHeadPic(findByStudentNo.getHeadPic()); //检查一切符合,可以登录,将用户信息存放至session request.getSession().setAttribute(SessionConstant.SESSION_USER_LOGIN_KEY, user); request.getSession().setAttribute("admin_login", null); request.getSession().setAttribute("admin_stu", findByStudentNo); //将登陆记录写入日志库 operaterLogService.add("用户【" + user.getUsername() + "】于【" + StringUtil.getFormatterDate(new Date(), "yyyy-MM-dd HH:mm:ss") + "】登录系统!"); log.info("用户成功登录,user = " + user); } else if ("1".equals(type)) { //表示验证码正确,开始查询数据库,检验密码是否正确 Emp byNumber = empService.findByNumber(user.getUsername()); //判断是否为空 if (byNumber == null) { return Result.error(CodeMsg.ADMIN_USERNAME_NO_EXIST); } //表示用户存在,进一步对比密码是否正确 if (!byNumber.getPassword().equals(user.getPassword())) { return Result.error(CodeMsg.ADMIN_PASSWORD_ERROR); } user.setEmail(byNumber.getEmail()); user.setUsername(byNumber.getName()); user.setPassword(byNumber.getPassword()); user.setRole(byNumber.getRole()); user.setMobile(byNumber.getMobile()); user.setSex(byNumber.getSex()); user.setHeadPic(byNumber.getHeadPic()); user.setRole(byNumber.getRole()); user.setId(byNumber.getId()); //检查一切符合,可以登录,将用户信息存放至session request.getSession().setAttribute(SessionConstant.SESSION_USER_LOGIN_KEY, user); request.getSession().setAttribute("admin_login", null); //将登陆记录写入日志库 operaterLogService.add("用户【" + user.getUsername() + "】于【" + StringUtil.getFormatterDate(new Date(), "yyyy-MM-dd HH:mm:ss") + "】登录系统!"); log.info("用户成功登录,user = " + user); } return Result.success(true); } /** * 登录成功后的系统主页 * * @param model * @return */ @RequestMapping(value = "/index") public String index(Model model) { model.addAttribute("operatorLogs", operaterLogService.findLastestLog(10)); model.addAttribute("userTotal", userService.total()); model.addAttribute("operatorLogTotal", operaterLogService.total()); model.addAttribute("databaseBackupTotal", databaseBakService.total()); model.addAttribute("onlineUserTotal", SessionListener.onlineUserCount); model.addAttribute("showTipsText", showTipsText); model.addAttribute("showTipsUrlText", showTipsUrlText); model.addAttribute("showTipsUtl", showTipsUtl); model.addAttribute("showTipsBtnText", showTipsBtnText); return "admin/system/index"; } /** * 注销登录 * * @return */ @RequestMapping(value = "/logout") public String logout() { User loginedUser = SessionUtil.getLoginedUser(); if (loginedUser != null) { SessionUtil.set(SessionConstant.SESSION_USER_LOGIN_KEY, null); } return "redirect:login"; } /** * 无权限提示页面 * * @return */ @RequestMapping(value = "/no_right") public String noRight() { return "admin/system/no_right"; } /** * 修改用户个人信息 * * @return */ @RequestMapping(value = "/update_userinfo", method = RequestMethod.GET) public String updateUserInfo() { return "admin/system/update_userinfo"; } /** * 修改个人信息保存 * * @param user * @return */ @RequestMapping(value = "/update_userinfo", method = RequestMethod.POST) public String updateUserInfo(User user) { User loginedUser = SessionUtil.getLoginedUser(); Role role = loginedUser.getRole(); if (role.getRoleType() == RoleType.ELECTRICIAN) { Emp emp = empService.find(loginedUser.getId()); emp.setEmail(user.getEmail()); emp.setMobile(user.getMobile()); emp.setHeadPic(user.getHeadPic()); empService.save(emp); loginedUser.setEmail(user.getEmail()); loginedUser.setMobile(user.getMobile()); loginedUser.setHeadPic(user.getHeadPic()); } else if (role.getRoleType() == RoleType.STUDENT) { Student student = studentService.findByID(loginedUser.getId()); student.setEmail(user.getEmail()); student.setMobile(user.getMobile()); student.setHeadPic(user.getHeadPic()); studentService.save(student); loginedUser.setEmail(user.getEmail()); loginedUser.setMobile(user.getMobile()); loginedUser.setHeadPic(user.getHeadPic()); } else { loginedUser.setEmail(user.getEmail()); loginedUser.setMobile(user.getMobile()); loginedUser.setHeadPic(user.getHeadPic()); userService.save(loginedUser); } //更新session里的值 SessionUtil.set(SessionConstant.SESSION_USER_LOGIN_KEY, loginedUser); return "redirect:update_userinfo"; } /** * 修改密码页面 * * @return */ @RequestMapping(value = "/update_pwd", method = RequestMethod.GET) public String updatePwd() { return "admin/system/update_pwd"; } /** * 修改密码表单提交 * * @param oldPwd * @param newPwd * @return */ @RequestMapping(value = "/update_pwd", method = RequestMethod.POST) @ResponseBody public Result<Boolean> updatePwd(@RequestParam(name = "oldPwd", required = true) String oldPwd, @RequestParam(name = "newPwd", required = true) String newPwd ) { if (newPwd.length() < 4 || newPwd == null) { return Result.error(CodeMsg.ADMIN_UPDATE_PWD_ERROR); } User loginedUser = SessionUtil.getLoginedUser(); Role role = loginedUser.getRole(); if (!loginedUser.getPassword().equals(oldPwd)) { return Result.error(CodeMsg.ADMIN_USER_UPDATE_PWD_ERROR); } if (StringUtils.isEmpty(newPwd)) { return Result.error(CodeMsg.ADMIN_USER_UPDATE_PWD_EMPTY); } loginedUser.setPassword(newPwd); if (role.getRoleType() == RoleType.ELECTRICIAN) { Emp emp = empService.find(loginedUser.getId()); emp.setPassword(newPwd); empService.save(emp); } else if (role.getRoleType() == RoleType.STUDENT) { Student student = studentService.findByID(loginedUser.getId()); student.setPassword(newPwd); studentService.save(student); } else { userService.save(loginedUser); } //保存数据库 //更新session SessionUtil.set(SessionConstant.SESSION_USER_LOGIN_KEY, loginedUser); return Result.success(true); } /** * 日志管理列表 * * @param model * @param operaterLog * @param pageBean * @return */ @RequestMapping(value = "/operator_log_list") public String operatorLogList(Model model, OperaterLog operaterLog, PageBean<OperaterLog> pageBean) { model.addAttribute("pageBean", operaterLogService.findList(operaterLog, pageBean)); model.addAttribute("operator", operaterLog.getOperator()); model.addAttribute("title", "日志列表"); return "admin/system/operator_log_list"; } /** * 删除操作日志,可删除多个 * * @param ids * @return */ @RequestMapping(value = "/delete_operator_log", method = RequestMethod.POST) @ResponseBody public Result<Boolean> delete(String ids) { if (!StringUtils.isEmpty(ids)) { String[] splitIds = ids.split(","); for (String id : splitIds) { operaterLogService.delete(Long.valueOf(id)); } } return Result.success(true); } /** * 清空整个日志 * * @return */ @RequestMapping(value = "/delete_all_operator_log", method = RequestMethod.POST) @ResponseBody public Result<Boolean> deleteAll() { operaterLogService.deleteAll(); return Result.success(true); } }
这篇关于Java项目:星月宿舍学生管理系统(java+SSM+JSP+MYSQL+Easyui)的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-05-20测试人员都是画画大神,让我看看谁还不会用代码图?
- 2024-05-20年薪百万的程序员都在用的摸鱼方式……
- 2024-05-19永别了,微服务架构!
- 2024-05-15鸿蒙生态设备数量超8亿台
- 2024-05-13TiDB + ES:转转业财系统亿级数据存储优化实践
- 2024-05-09“2024鸿蒙零基础快速实战-仿抖音App开发(ArkTS版)”实战课程已上线
- 2024-05-09聊聊如何通过arthas-tunnel-server来远程管理所有需要arthas监控的应用
- 2024-05-09log4j2这么配就对了
- 2024-05-09nginx修改Content-Type
- 2024-05-09Redis多数据源,看这篇就够了