基于SpringBoot+vue的校园招聘系统

简介: 基于SpringBoot+vue的校园招聘系统

一、前言

校园招聘系统是一种具有交互性的人才信息系统,相当于一个线上招聘会,具有时间、空间的便携性。许多学校为了更好的统筹企业与毕业生,都因地适宜地开发了属于自己的校园招聘系统,这也是一个比较流行的网络应用系统。

介绍了一个校园招聘系统的设计和实现过程。该系统将面向对象的设计思想运用到数据库中,采用前端框架vue、后端框架SpringBoot2.7.1 + SpringMVC + Mybatis-Plus3.5.0和MySQL数据库相结合,设计成开发动态网页形式的在线招聘系统。企业和学生的招聘信息均在线上录入,招聘过程中所需的数据也在数据库中进行储存与调用,因此数据的更新是无纸质化的。提督第一次自主研发一个项目,欢迎各位大佬指正,有兴趣的小伙伴也可以交流一下。

关键词:vue、Springboot2.7.1 + SpringMVC + Mybatis-plus 3.5.0、MySQL8.0

二、系统的介绍

2018122814580746.png前台工作主要是完成学生端对工作岗位的浏览,投递和收藏,其中浏览又细分为校内岗位和校外岗位等等。

1、前台

2018122814580746.png

2018122814580746.png

2018122814580746.png

2018122814580746.png

2018122814580746.png2018122814580746.png2018122814580746.png2018122814580746.png2018122814580746.png2018122814580746.png

2、后台

后台主要功能是对招聘信息的发布和管理,以及对职位申请的审批,查看用户的个人主页等

2018122814580746.png2018122814580746.png2018122814580746.png2018122814580746.png2018122814580746.png

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

有感兴趣的小伙伴可以联系哦

相关文章
|
15天前
|
JavaScript 关系型数据库 MySQL
基于VUE的校园二手交易平台系统设计与实现毕业设计论文模板
基于Vue的校园二手交易平台是一款专为校园用户设计的在线交易系统,提供简洁高效、安全可靠的二手商品买卖环境。平台利用Vue框架的响应式数据绑定和组件化特性,实现用户友好的界面,方便商品浏览、发布与管理。该系统采用Node.js、MySQL及B/S架构,确保稳定性和多功能模块设计,涵盖管理员和用户功能模块,促进物品循环使用,降低开销,提升环保意识,助力绿色校园文化建设。
|
2月前
|
JavaScript 安全 Java
如何使用 Spring Boot 和 Ant Design Pro Vue 构建一个具有动态路由和菜单功能的前后端分离应用。
本文介绍了如何使用 Spring Boot 和 Ant Design Pro Vue 构建一个具有动态路由和菜单功能的前后端分离应用。首先,创建并配置 Spring Boot 项目,实现后端 API;然后,使用 Ant Design Pro Vue 创建前端项目,配置动态路由和菜单。通过具体案例,展示了如何快速搭建高效、易维护的项目框架。
131 62
|
20天前
|
存储 JavaScript 前端开发
基于 SpringBoot 和 Vue 开发校园点餐订餐外卖跑腿Java源码
一个非常实用的校园外卖系统,基于 SpringBoot 和 Vue 的开发。这一系统源于黑马的外卖案例项目 经过站长的进一步改进和优化,提供了更丰富的功能和更高的可用性。 这个项目的架构设计非常有趣。虽然它采用了SpringBoot和Vue的组合,但并不是一个完全分离的项目。 前端视图通过JS的方式引入了Vue和Element UI,既能利用Vue的快速开发优势,
102 13
|
28天前
|
JavaScript 安全 Java
java版药品不良反应智能监测系统源码,采用SpringBoot、Vue、MySQL技术开发
基于B/S架构,采用Java、SpringBoot、Vue、MySQL等技术自主研发的ADR智能监测系统,适用于三甲医院,支持二次开发。该系统能自动监测全院患者药物不良反应,通过移动端和PC端实时反馈,提升用药安全。系统涵盖规则管理、监测报告、系统管理三大模块,确保精准、高效地处理ADR事件。
|
2月前
|
XML Java 数据库连接
SpringBoot集成Flowable:打造强大的工作流管理系统
在企业级应用开发中,工作流管理是一个核心组件,它能够帮助我们定义、执行和管理业务流程。Flowable是一个开源的工作流和业务流程管理(BPM)平台,它提供了强大的工作流引擎和建模工具。结合SpringBoot,我们可以快速构建一个高效、灵活的工作流管理系统。本文将探讨如何将Flowable集成到SpringBoot应用中,并展示其强大的功能。
336 1
|
2月前
|
JavaScript 安全 Java
如何使用 Spring Boot 和 Ant Design Pro Vue 构建一个前后端分离的应用框架,实现动态路由和菜单功能
本文介绍了如何使用 Spring Boot 和 Ant Design Pro Vue 构建一个前后端分离的应用框架,实现动态路由和菜单功能。首先,确保开发环境已安装必要的工具,然后创建并配置 Spring Boot 项目,包括添加依赖和配置 Spring Security。接着,创建后端 API 和前端项目,配置动态路由和菜单。最后,运行项目并分享实践心得,帮助开发者提高开发效率和应用的可维护性。
121 2
|
2月前
|
JavaScript Java 项目管理
Java毕设学习 基于SpringBoot + Vue 的医院管理系统 持续给大家寻找Java毕设学习项目(附源码)
基于SpringBoot + Vue的医院管理系统,涵盖医院、患者、挂号、药物、检查、病床、排班管理和数据分析等功能。开发工具为IDEA和HBuilder X,环境需配置jdk8、Node.js14、MySQL8。文末提供源码下载链接。
|
2月前
|
JavaScript NoSQL Java
CC-ADMIN后台简介一个基于 Spring Boot 2.1.3 、SpringBootMybatis plus、JWT、Shiro、Redis、Vue quasar 的前后端分离的后台管理系统
CC-ADMIN后台简介一个基于 Spring Boot 2.1.3 、SpringBootMybatis plus、JWT、Shiro、Redis、Vue quasar 的前后端分离的后台管理系统
53 0
|
4月前
|
前端开发 JavaScript Java
基于Java+Springboot+Vue开发的服装商城管理系统
基于Java+Springboot+Vue开发的服装商城管理系统(前后端分离),这是一项为大学生课程设计作业而开发的项目。该系统旨在帮助大学生学习并掌握Java编程技能,同时锻炼他们的项目设计与开发能力。通过学习基于Java的服装商城管理系统项目,大学生可以在实践中学习和提升自己的能力,为以后的职业发展打下坚实基础。
200 2
基于Java+Springboot+Vue开发的服装商城管理系统
|
3月前
|
JavaScript 安全 Java
如何使用 Spring Boot 和 Ant Design Pro Vue 实现动态路由和菜单功能,快速搭建前后端分离的应用框架
本文介绍了如何使用 Spring Boot 和 Ant Design Pro Vue 实现动态路由和菜单功能,快速搭建前后端分离的应用框架。首先,确保开发环境已安装必要的工具,然后创建并配置 Spring Boot 项目,包括添加依赖和配置 Spring Security。接着,创建后端 API 和前端项目,配置动态路由和菜单。最后,运行项目并分享实践心得,包括版本兼容性、安全性、性能调优等方面。
199 1