> 文章列表 > SpringBoot高校毕业生就业信息管理系统 附带详细运行指导视频

SpringBoot高校毕业生就业信息管理系统 附带详细运行指导视频

SpringBoot高校毕业生就业信息管理系统 附带详细运行指导视频

文章目录

  • 一、项目演示
  • 二、项目介绍
  • 三、运行截图
  • 四、主要代码

一、项目演示

项目演示地址: 视频地址

二、项目介绍

项目描述:这是一个基于SpringBoot框架开发的高校毕业生就业信息管理系统项目。首先,这是一个响应式的项目,代码简洁规范,注释说明详细,易于理解和学习。其次,这项目功能丰富,具有一个高校毕业生就业信息管理系统该有的所有功能。

项目功能:该项目分为学生辅导员管理员三个角色。学生角色用户的功能:登录、浏览辅导员信息和管理员信息、浏览学院信息、浏览宣讲会信息和企业招聘信息、管理个人的就业考研考公创业信息、浏览公告信息、修改个人信息等等功能。辅导员角色用户有登录、管理学生信息的功能、管理宣讲会信息和企业招聘信息、管理所有学生就业考研考公创业信息、管理公告信息等等功能。管理员角色用户除了有前面所有功能外,还有管理辅导员信息的功能等等。

应用技术:SpringBoot + MyBatis + Thymeleaf + Bootstrap + MySQL

运行环境:Eclipse/IntelliJ IDEA(项目压缩包中自带) + MySQL5.7(项目压缩包中自带) + Maven3.6.3(项目压缩包中自带) + JDK1.8(项目压缩包中自带)

三、运行截图

SpringBoot高校毕业生就业信息管理系统 附带详细运行指导视频
SpringBoot高校毕业生就业信息管理系统 附带详细运行指导视频
SpringBoot高校毕业生就业信息管理系统 附带详细运行指导视频
SpringBoot高校毕业生就业信息管理系统 附带详细运行指导视频
SpringBoot高校毕业生就业信息管理系统 附带详细运行指导视频
SpringBoot高校毕业生就业信息管理系统 附带详细运行指导视频SpringBoot高校毕业生就业信息管理系统 附带详细运行指导视频
SpringBoot高校毕业生就业信息管理系统 附带详细运行指导视频

SpringBoot高校毕业生就业信息管理系统 附带详细运行指导视频
SpringBoot高校毕业生就业信息管理系统 附带详细运行指导视频
SpringBoot高校毕业生就业信息管理系统 附带详细运行指导视频
SpringBoot高校毕业生就业信息管理系统 附带详细运行指导视频
SpringBoot高校毕业生就业信息管理系统 附带详细运行指导视频
SpringBoot高校毕业生就业信息管理系统 附带详细运行指导视频

四、主要代码

1.登录业务逻辑代码:

   /* 用户登录操作* @param userDTO* @return*/@Overridepublic ResponseDTO<Boolean> login(UserDTO userDTO, HttpServletRequest request) {if(userDTO == null) {return ResponseDTO.errorByMsg(CodeMsg.DATA_ERROR);}if(CommonUtil.isEmpty(userDTO.getNo())) {return ResponseDTO.errorByMsg(CodeMsg.NO_EMPTY);}if(CommonUtil.isEmpty(userDTO.getPassword())) {return ResponseDTO.errorByMsg(CodeMsg.PASSWORD_EMPTY);}UserExample userExample = new UserExample();userExample.createCriteria().andNoEqualTo(userDTO.getNo()).andPasswordEqualTo(userDTO.getPassword()).andRoleIdEqualTo(userDTO.getRoleId());List<User> userList = userMapper.selectByExample(userExample);if(userList.size() == 0) {return ResponseDTO.errorByMsg(CodeMsg.USERNAME_PASSWORD_ERROR);}request.getSession().setAttribute(SessionConstant.SESSION_LOGIN_KEY, userList.get(0));return ResponseDTO.successByMsg(true, "登录成功!");}

2.用户添加修改业务逻辑代码:

 /* 保存用户信息* @param userDTO* @return*/@Overridepublic ResponseDTO<Boolean> save(UserDTO userDTO) {if(userDTO == null) {return ResponseDTO.errorByMsg(CodeMsg.DATA_ERROR);}// 进行统一表单验证CodeMsg validate = ValidateEntityUtil.validate(userDTO);if (!validate.getCode().equals(CodeMsg.SUCCESS.getCode())) {return ResponseDTO.errorByMsg(validate);}College college = new College();if(!RoleEnum.ADMIN.getCode().equals(userDTO.getRoleId())) {// 判断输入的学院是否存在college = collegeMapper.selectByPrimaryKey(userDTO.getCollegeId());if(college == null) {return ResponseDTO.errorByMsg(CodeMsg.COLLEGE_NOT_EXIST);}}User user = CopyUtil.copy(userDTO, User.class);if(CommonUtil.isEmpty(user.getId())){// 添加操作// 判断学号学工号是否存在if(isNoExist(user, "")){return ResponseDTO.errorByMsg(CodeMsg.NO_EXIST);}user.setId(UuidUtil.getShortUuid());if(userMapper.insertSelective(user) == 0){return ResponseDTO.errorByMsg(CodeMsg.USER_ADD_ERROR);}if(RoleEnum.STUDENT.getCode().equals(user.getRoleId())) {// 更新学院班级人数college.setNum(college.getNum() + 1);collegeMapper.updateByPrimaryKeySelective(college);}}else {// 修改操作// 判断学号学工号是否存在if(isNoExist(user, user.getId())){return ResponseDTO.errorByMsg(CodeMsg.NO_EXIST);}User preStudent = userMapper.selectByPrimaryKey(user.getId());College preCollege = collegeMapper.selectByPrimaryKey(preStudent.getCollegeId());if(userMapper.updateByPrimaryKeySelective(user) == 0){return ResponseDTO.errorByMsg(CodeMsg.USER_EDIT_ERROR);}if(RoleEnum.STUDENT.getCode().equals(user.getRoleId()) && preCollege != null) {// 更新学院班级人数preCollege.setNum(preCollege.getNum() - 1);collegeMapper.updateByPrimaryKeySelective(preCollege);college.setNum(college.getNum() + 1);collegeMapper.updateByPrimaryKeySelective(college);}}return ResponseDTO.success(true);}

3.统计近五年就业数和就业率:

 /* 获取近五年就业数和就业率* @return*/@Overridepublic ResponseDTO<Map<String, Object>> statusByFiveYear() {Map<String, Object> responseMap = new HashMap<>();Calendar calendar = Calendar.getInstance();int year = calendar.get(Calendar.YEAR);List<Integer> yearList = new ArrayList<>();List<Integer> employmentList = new ArrayList<>();List<BigDecimal> rateList = new ArrayList<>();for(int i=4; i>=0; i--) {yearList.add(year - i);UserExample userExample = new UserExample();UserExample.Criteria criteria = userExample.createCriteria();criteria.andRoleIdEqualTo(RoleEnum.STUDENT.getCode());criteria.andGraduateYearEqualTo(year-i);Integer userTotal = userMapper.countByExample(userExample);criteria.andDirectionEqualTo(DirectionEnum.EMPLOYMENT.getCode());Integer employmentTotal = userMapper.countByExample(userExample);rateList.add(userTotal != 0 ? BigDecimal.valueOf(((double)employmentTotal/userTotal)*100).setScale(2, RoundingMode.HALF_UP) : new BigDecimal(0));employmentList.add(employmentTotal);}responseMap.put("yearList", yearList);responseMap.put("rateList", rateList);responseMap.put("employmentList", employmentList);return ResponseDTO.success(responseMap);}