一、前言
校园招聘系统是一种具有交互性的人才信息系统,相当于一个线上招聘会,具有时间、空间的便携性。许多学校为了更好的统筹企业与毕业生,都因地适宜地开发了属于自己的校园招聘系统,这也是一个比较流行的网络应用系统。
介绍了一个校园招聘系统的设计和实现过程。该系统将面向对象的设计思想运用到数据库中,采用前端框架vue、后端框架SpringBoot2.7.1 + SpringMVC + Mybatis-Plus3.5.0和MySQL数据库相结合,设计成开发动态网页形式的在线招聘系统。企业和学生的招聘信息均在线上录入,招聘过程中所需的数据也在数据库中进行储存与调用,因此数据的更新是无纸质化的。提督第一次自主研发一个项目,欢迎各位大佬指正,有兴趣的小伙伴也可以交流一下。
关键词:vue、Springboot2.7.1 + SpringMVC + Mybatis-plus 3.5.0、MySQL8.0
二、系统的介绍
前台工作主要是完成学生端对工作岗位的浏览,投递和收藏,其中浏览又细分为校内岗位和校外岗位等等。
1、前台
2、后台
后台主要功能是对招聘信息的发布和管理,以及对职位申请的审批,查看用户的个人主页等
3、部分代码展示
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.jc.campusemploydemo.bean.Result; import com.jc.campusemploydemo.domain.Positions; import com.jc.campusemploydemo.mapper.PositionsMapper; import com.jc.campusemploydemo.service.PositionsService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @Service public class PositionsServiceImpl implements PositionsService { @Autowired private PositionsMapper record; /** * 分页查询校外的职位 * @param page * @param size * @return */ @Override public Page<Positions> showAllOnSocial(Integer page, Integer size) { QueryWrapper<Positions> wrapper = new QueryWrapper<>(); wrapper.eq("p_flag",1); wrapper.orderByAsc("id"); Page selectPage = record.selectPage(new Page(page, size), wrapper); return selectPage; } /** * 分页查询校内的职位 * @param page * @param size * @return */ @Override public Page<Positions> showAllOnCampus(Integer page, Integer size) { QueryWrapper<Positions> wrapper = new QueryWrapper<>(); wrapper.eq("p_flag",1); wrapper.orderByAsc("id"); Page selectPage = record.selectPage(new Page(page, size), wrapper); return selectPage; } @Override public Result addPos(Positions positions) { int flag = record.insert(positions); if (flag <0){ return new Result(false,"添加失败"); } return new Result(true,"添加成功"); } @Override public boolean delete(Integer id) { return record.deleteById(id)>0; } @Override public Result updatePos(Positions positions) { int i = record.updateById(positions); if (i>0){ return new Result(true,"更新成功"); } return new Result(false,"更新失败"); } /** * 查询全部职业信息 * @param page * @param size * @return */ @Override public Page<Positions> showAll(Integer page, Integer size) { QueryWrapper<Positions> wrapper = new QueryWrapper<>(); wrapper.orderByAsc("id"); Page selectPage = record.selectPage(new Page(page,size), wrapper); return selectPage; } /** * 根据条件查询 * @param pClassify * @param page * @param size * @return */ @Override public Page<Positions> selectLikeByKeyWord( String pClassify,String p_name,Integer page,Integer size) { QueryWrapper<Positions> queryWrapper = new QueryWrapper<>(); if (p_name!= null){ queryWrapper.like("p_name",p_name); } if (pClassify!= null){ queryWrapper.like("p_classify",pClassify); } queryWrapper.orderByDesc("id"); Page page1 = record.selectPage(new Page(page,size),queryWrapper); return page1; } /** * 根据id查找职位 * @param id * @return */ @Override public Result selectById(Integer id) { Positions positions = record.selectById(id); if(positions != null){ return new Result(true,"查找成功",positions); } return new Result(false,"查找失败"); } }
4、上传文件相关代码(后续会搭建linux的文件平台)
上传文件功能原理:其实原理很简单,就是使用springboot的MultipartFile类作为参数,判断文件是否为空,为空则返回失败提示;否则,先获取当前文件的文件名字,再获取存储路径,如果路径不存在,则创建这个路径,然后创建实际存储文件的路径,根据实际路径存储文件,将相对路径存储到数据库里面。
@PostMapping("/uploadResume") @ApiOperation(value="上传附件",notes = "code= 0 : 失败 code= 1: 成功,前端根据接口code值来判断跳转页面") public Object uploadResumeFile(@RequestParam("file") MultipartFile upFile) { JSONObject jsonObject = new JSONObject(); // 上传失败 if (upFile.isEmpty()) { jsonObject.put(Const.CODE, 0); jsonObject.put(Const.MSG, "文件上传失败"); return jsonObject; } // 文件名 = 当前时间到毫秒+原来的文件文件名 String fileName = System.currentTimeMillis() + upFile.getOriginalFilename(); // 文件路径 String filePath = "D:\\DataStorage\\IdeaData\\campusemploydemo\\campusemploydemo\\src\\main\\resources\\static\\resume\\"; // 如果文件路径不存在,新增该路径 File file1 = new File(filePath); if (!file1.exists()) { file1.mkdir(); } // 实际的文件地址(前端上传之后的地址) File dest = new File(filePath + System.getProperty("file.separator") + fileName); // 存储到数据库里的相对文件地址 String storePath = "/img/userPic" + fileName; try { upFile.transferTo(dest); // 用来把 MultipartFile 转换换成 File User user = (User) session.getAttribute("name"); Information information = informationService.selectById(user.getUid()); information.setFiles(storePath); Result flag = informationService.updateInfo(information, user.getUid()); if (flag.isFlag()) { jsonObject.put(Const.CODE, 1); jsonObject.put(Const.MSG, "上传成功"); jsonObject.put("pic", storePath); return jsonObject; } } catch (IOException e) { jsonObject.put(Const.CODE, 0); jsonObject.put(Const.MSG, "上传失败" + ": " + e.getMessage()); return jsonObject; } finally { return jsonObject; } }
相关源码下载链接:https://download.csdn.net/download/m0_58847451/86930153
有感兴趣的小伙伴可以联系哦