基于java+springboot+mybatis+vue+elementui的人职匹配推荐系统

news2025/2/24 6:34:39

项目介绍

随着科学技术的飞速发展,各行各业都在努力与现代先进技术接轨,通过科技手段提高自身的优势,对于人职匹配推荐系统当然也不能排除在外,随着网络技术的不断成熟,带动了人职匹配推荐系统,它彻底改变了过去传统的管理方式,不仅使服务管理难度变低了,还提升了管理的灵活性。这种个性化的平台特别注重交互协调与管理的相互配合,激发了管理人员的创造性与主动性,对人职匹配推荐系统而言非常有利。本系统采用的数据库是mysql,后端使用springboot框架开发,前端采用vue技术,idea是本系统的开发平台。在设计过程中,充分保证了系统代码的良好可读性、实用性、易扩展性、通用性、便于后期维护、操作方便以及页面简洁等特点。

开发环境

开发语言:Java
数据库 :MySQL
系统架构:B/S
后端框架:SpringBoot
前端框架:Vue
开发工具:IDEA或者Eclipse,JDK1.8,Maven

系统截图

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

部分代码

package com.controller;

import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Calendar;
import java.util.Map;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Date;
import java.util.List;
import javax.servlet.http.HttpServletRequest;

import com.utils.ValidatorUtils;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.format.annotation.DateTimeFormat;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.baomidou.mybatisplus.mapper.Wrapper;
import com.annotation.IgnoreAuth;

import com.entity.StoreupEntity;
import com.entity.view.StoreupView;

import com.service.StoreupService;
import com.service.TokenService;
import com.utils.PageUtils;
import com.utils.R;
import com.utils.MD5Util;
import com.utils.MPUtil;
import com.utils.CommonUtil;

/**

  • 收藏

  • 后端接口
    */
    @RestController
    @RequestMapping(“/storeup”)
    public class StoreupController {
    @Autowired
    private StoreupService storeupService;

    /**

    • 后端列表
      */
      @RequestMapping(“/page”)
      public R page(@RequestParam Map<String, Object> params,StoreupEntity storeup,
      HttpServletRequest request){
      if(!request.getSession().getAttribute(“role”).toString().equals(“管理员”)) {
      storeup.setUserid((Long)request.getSession().getAttribute(“userId”));
      }
      EntityWrapper ew = new EntityWrapper();
      PageUtils page = storeupService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, storeup), params), params));

      return R.ok().put(“data”, page);
      }

    /**

    • 前端列表
      */
      @RequestMapping(“/list”)
      public R list(@RequestParam Map<String, Object> params,StoreupEntity storeup, HttpServletRequest request){
      if(!request.getSession().getAttribute(“role”).toString().equals(“管理员”)) {
      storeup.setUserid((Long)request.getSession().getAttribute(“userId”));
      }
      EntityWrapper ew = new EntityWrapper();
      PageUtils page = storeupService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, storeup), params), params));
      return R.ok().put(“data”, page);
      }

    /**

    • 列表
      */
      @RequestMapping(“/lists”)
      public R list( StoreupEntity storeup){
      EntityWrapper ew = new EntityWrapper();
      ew.allEq(MPUtil.allEQMapPre( storeup, “storeup”));
      return R.ok().put(“data”, storeupService.selectListView(ew));
      }

    /**

    • 查询
      */
      @RequestMapping(“/query”)
      public R query(StoreupEntity storeup){
      EntityWrapper< StoreupEntity> ew = new EntityWrapper< StoreupEntity>();
      ew.allEq(MPUtil.allEQMapPre( storeup, “storeup”));
      StoreupView storeupView = storeupService.selectView(ew);
      return R.ok(“查询收藏表成功”).put(“data”, storeupView);
      }

    /**

    • 后端详情
      */
      @RequestMapping(“/info/{id}”)
      public R info(@PathVariable(“id”) Long id){
      StoreupEntity storeup = storeupService.selectById(id);
      return R.ok().put(“data”, storeup);
      }

    /**

    • 前端详情
      */
      @RequestMapping(“/detail/{id}”)
      public R detail(@PathVariable(“id”) Long id){
      StoreupEntity storeup = storeupService.selectById(id);
      return R.ok().put(“data”, storeup);
      }

    /**

    • 后端保存
      */
      @RequestMapping(“/save”)
      public R save(@RequestBody StoreupEntity storeup, HttpServletRequest request){
      storeup.setId(new Date().getTime()+new Double(Math.floor(Math.random()*1000)).longValue());
      //ValidatorUtils.validateEntity(storeup);
      storeup.setUserid((Long)request.getSession().getAttribute(“userId”));
      storeupService.insert(storeup);
      return R.ok();
      }

    /**

    • 前端保存
      */
      @RequestMapping(“/add”)
      public R add(@RequestBody StoreupEntity storeup, HttpServletRequest request){
      storeup.setId(new Date().getTime()+new Double(Math.floor(Math.random()*1000)).longValue());
      //ValidatorUtils.validateEntity(storeup);
      storeup.setUserid((Long)request.getSession().getAttribute(“userId”));
      storeupService.insert(storeup);
      return R.ok();
      }

    /**

    • 修改
      */
      @RequestMapping(“/update”)
      public R update(@RequestBody StoreupEntity storeup, HttpServletRequest request){
      //ValidatorUtils.validateEntity(storeup);
      storeupService.updateById(storeup);//全部更新
      return R.ok();
      }

    /**

    • 删除
      */
      @RequestMapping(“/delete”)
      public R delete(@RequestBody Long[] ids){
      storeupService.deleteBatchIds(Arrays.asList(ids));
      return R.ok();
      }

    /**

    • 提醒接口
      */
      @RequestMapping(“/remind/{columnName}/{type}”)
      public R remindCount(@PathVariable(“columnName”) String columnName, HttpServletRequest request,
      @PathVariable(“type”) String type,@RequestParam Map<String, Object> map) {
      map.put(“column”, columnName);
      map.put(“type”, type);

      if(type.equals(“2”)) {
      SimpleDateFormat sdf = new SimpleDateFormat(“yyyy-MM-dd”);
      Calendar c = Calendar.getInstance();
      Date remindStartDate = null;
      Date remindEndDate = null;
      if(map.get(“remindstart”)!=null) {
      Integer remindStart = Integer.parseInt(map.get(“remindstart”).toString());
      c.setTime(new Date());
      c.add(Calendar.DAY_OF_MONTH,remindStart);
      remindStartDate = c.getTime();
      map.put(“remindstart”, sdf.format(remindStartDate));
      }
      if(map.get(“remindend”)!=null) {
      Integer remindEnd = Integer.parseInt(map.get(“remindend”).toString());
      c.setTime(new Date());
      c.add(Calendar.DAY_OF_MONTH,remindEnd);
      remindEndDate = c.getTime();
      map.put(“remindend”, sdf.format(remindEndDate));
      }
      }

      Wrapper wrapper = new EntityWrapper();
      if(map.get(“remindstart”)!=null) {
      wrapper.ge(columnName, map.get(“remindstart”));
      }
      if(map.get(“remindend”)!=null) {
      wrapper.le(columnName, map.get(“remindend”));
      }
      if(!request.getSession().getAttribute(“role”).toString().equals(“管理员”)) {
      wrapper.eq(“userid”, (Long)request.getSession().getAttribute(“userId”));
      }

      int count = storeupService.selectCount(wrapper);
      return R.ok().put(“count”, count);
      }

}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/28731.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

分享一下前几个月我做的超炫的登录页面

先给大家看看登录页面的效果演示 这个登录页面分为三个部分&#xff08;页面切换&#xff1a;连续按五次V&#xff0c;大小写都可以&#xff09; 第一个&#xff08;最初的鱼儿游动页面&#xff09; 登录、切换页面、和鱼儿游动这个页面的代码就不放在这里了&#xff0c;这个虽…

RabbitMQ 入门案例项目

写在前面 本文不作消息队列的实现原理、异步处理优劣、rabbitmq安装说明、消息工作模式等内容分析&#xff0c;只讲述rabbitmq实际开发中的步骤说明&#xff0c;帮助同学快速上手体验消息队列的使用。 本文使用SpringAMQP&#xff0c;并非rabbitmq官方文档上的原生http请求连…

Jupyter notebook在超算平台上使用的详细教程

Jupyter Notebook 的本质是一个 Web 应用程序&#xff0c;便于创建和共享文学化程序文档&#xff0c;支持实时代码&#xff0c;数学方程&#xff0c;可视化和 markdown。 用途包括&#xff1a;数据清理和转换&#xff0c;数值模拟&#xff0c;统计建模&#xff0c;机器学习等等…

LeetCode 数据结构与算法:最大子数组和

打开我的题库&#xff0c;调为简单难度。 计算最大子数&#xff0c;直接给我难住。 报错铺满屏幕&#xff0c;凝望没有思路。 缝缝补补做出&#xff0c;击败零个用户。 翻阅评论找补&#xff0c;令我勃然大怒。 打开思维第一步&#xff0c;编写代码求数组&#xff0c; …

报错解决:Process finished with exit code -1073741819 (0xC0000005)

简单记录一下程序异常终止&#xff0c;抛出 Process finished with exit code -1073741819 (0xC0000005) 的解决方法。 一、程序中文件位置错误/缺少文件 位置错误1&#xff1a;如果使用相对路径的话&#xff0c;推荐换成绝对路径进行排查。位置错误2&#xff1a;如果使用了o…

CAN总线协议测试拓扑图

记录测试CAN总线协议&#xff0c; CAN总线目前主要应用在汽车。 记录在PC使用USB-CAN连接测试

Talk预告 | Salesforce AI研究院研究科学家徐嘉诚:文本生成中的结构化解码

本期为TechBeat人工智能社区第457期线上Talk&#xff01; 北京时间11月23日(周三)20:00&#xff0c;Salesforce AI研究院研究科学家——徐嘉诚的Talk将准时在TechBeat人工智能社区开播&#xff01; 他与大家分享的主题是: “文本生成中的结构化解码”&#xff0c;届时将详细讲解…

学会用数据分析汇报工作,升职加薪指日可待

你是否每天的八小时工作时长&#xff0c;分成八瓣用&#xff0c;却仍被领导安排众多工作&#xff1f;明明做了很多事&#xff0c;领导依旧认为工作量不饱和&#xff1f;这样的现象在职场中早已司空见惯&#xff0c;不足为奇了&#xff0c;但是究其原因是什么呢&#xff1f;工作…

Android App网络通信中通过runOnUiThread快速操纵界面以及利用线程池Executor调度异步任务实战(附源码 简单易懂)

运行有问题或需要源码请点赞关注收藏后评论区留言私信~~~ 一、通过runOnUiThread快速操纵界面 因为Android规定分线程不能够直接操纵界面&#xff0c;所以它设计了处理程序工具&#xff0c;由处理程序负责在主线程和分线程之间传递数据&#xff0c;如果分线程想刷新界面&#…

精心整理16条MySQL使用规范,减少80%问题

1. 禁止使用select * 阿里开发规范中&#xff0c;有这么一句话&#xff1a; **select *** 会查询表中所有字段&#xff0c;如果表中的字段有更改&#xff0c;必须修改SQL语句&#xff0c;不然就会执行错误。 查询出非必要的字段&#xff0c;徒增磁盘IO和网络延迟。 2. 用小表…

小学生python游戏编程arcade----敌人精灵上方显示方框及子弹显示问题

小学生python游戏编程arcade----敌人精灵上方显示方框及子弹显示问题前言1、敌人精灵上方显示方框1.1 修改enemy_tank类1.2 引用1.3 效果图2、调整方法2.1 类方法2.2 类的引用2.3 效果图2.4 大小位置调整后3、子弹过线自动消失3.1 子弹的更新中3.2 原因查到&#xff0c;把以下代…

day11 多级缓存

day11 多级缓存 1、什么是多级缓存 传统的缓存策略一般是请求到达Tomcat后&#xff0c;先查询Redis&#xff0c;如果未命中则查询数据库&#xff0c;如图&#xff1a; 存在下面的问题&#xff1a; 请求要经过 Tomcat 进行处理&#xff0c;Tomcat 的性能成为整个系统的瓶颈Red…

数字孪生助力轨道交通安保可视化应用

截至2020年12月31日&#xff0c;全国&#xff08;不含港澳台&#xff09;共有44个城市开通运营城市轨道交通线路233条&#xff0c;运营里程7545.5公里&#xff0c;车站4660座&#xff0c;完成客运量175.9亿人次&#xff0c;进站量109.1亿人次。针对轨道交通地铁站内日常监测、事…

牛客网语法篇练习分支控制(一)

1.据说智商140以上者称为天才&#xff0c;KiKi想知道他自己是不是天才&#xff0c;请帮他编程判断。输入一个整数表示一个人的智商&#xff0c;如果大于等于140&#xff0c;则表明他是一个天才&#xff0c;输出“Genius”。 while True:try:a int(input())if a >140:print…

云原生加速器企业维格表创始人陈霈霖:提供人人可用的数字化转型全新方案,真正驱动组织创新

看上去是像Excel一样的在线协同表格&#xff0c;却能把文件、表格、图片、视频、填表单等变换出各种视图&#xff0c;它能帮助你高效方便的管理各种零碎的信息和数据&#xff1b;也能根据你的想法DIY各种功能&#xff0c;5分钟即可搭建一个适合自己的文档管理系统&#xff0c;实…

C#上位机系列(1)—项目的建立

本文是讲解C#.net平台的Winform框架下的第一个内容&#xff0c;手把手介绍项目的创建方式以及一些写软件时常用的功能。之前写过一篇关于示波器的比较抽象&#xff0c;本文讲解从零开始的每一个步骤。 VS2022以及C#.net平台的Winform框架自行百度下载。 1.创建一个新的项目 …

智慧经营| 物业数字化管理系统

无论小区、公寓还是豪华区&#xff0c;总是少不了物业的身影&#xff0c;通过物业可以为住户解决许多事情&#xff0c;比如物业报事、物业维修、便民服务、送水上门、房屋租赁、投诉等&#xff0c;但小区内公告栏没人看、挨家挨户的去通知效率低、且无法全面完善管理区域内的所…

Linux操作系统~尝试自己制作并使用动静态库

目录 1.动态库和静态库到底是什么 &#xff08;1&#xff09;.静态库 vs 动态库 &#xff08;2&#xff09;.动态链接和静态链接的优劣 &#xff08;3&#xff09;.ldd指令 2.自己制作静态库 &#xff08;1&#xff09;.打包静态库 &#xff08;2&#xff09;.ar指令 3…

Java基础之《netty(4)—NIO之Channel》

一、基本介绍 1、NIO的通道类似于流&#xff0c;但有些区别 &#xff08;1&#xff09;通道可以同时进行读写&#xff0c;而流只能读或者只能写 &#xff08;2&#xff09;通道可以实现异步读写数据 &#xff08;3&#xff09;通道可以从缓冲读数据&#xff0c;也可以写数据到…

C++模板基础和STL之string

泛型编程之模板 使用实际调用的函数不是同一个&#xff0c;因为不同类型参数&#xff0c;函数栈帧中开辟的空间不一样。参数不一样&#xff0c;所以调用的函数也不一样。使用模板速度必重载速度更快&#xff0c;因为是编译器直接生成。而STL就叫标准模板库。 template<cla…