基于springboot在线租房和招聘平台源码和论文

news/2024/12/2 14:48:18/

如今社会上各行各业,都喜欢用自己行业的专属软件工作,互联网发展到这个时候,人们已经发现离不开了互联网。新技术的产生,往往能解决一些老技术的弊端问题。因为传统在线租房和招聘平台信息管理难度大,容错率低,管理人员处理数据费工费时,所以专门为解决这个难题开发了一个在线租房和招聘平台管理系统,可以解决许多问题。

在线租房和招聘平台管理系统按照操作主体分为管理员和用户。管理员的功能包括字典管理、房东管理、房屋管理、房屋收藏管理、房屋评价管理、房屋订单管理、论坛管理、平台资讯管理、企业管理、简历管理、简历投递管理、用户管理、职位招聘管理、职位收藏管理、职位留言管理、管理员管理。用户的功能等。该系统采用了Mysql数据库,Java语言,Spring Boot框架等技术进行编程实现。

在线租房和招聘平台管理系统可以提高在线租房和招聘平台信息管理问题的解决效率,优化在线租房和招聘平台信息处理流程,保证在线租房和招聘平台信息数据的安全,它是一个非常可靠,非常安全的应用程序。

关键词:在线租房和招聘平台管理系统;房屋,招聘Mysql数据库;Java语言

基于springboot在线租房和招聘平台源码和论文668

演示视频:

【包调试运行】基于springboot在线租房和招聘平台源码和论文


Abstract

Nowadays, all walks of life in society like to work with their own industry-specific software. At this point in the development of the Internet, people have found that they cannot do without the Internet. The emergence of new technologies can often solve the drawbacks of some old technologies. Because the traditional personnel information management is difficult, the fault tolerance rate is low, and the management personnel is labor-intensive and time-consuming to process data, a personnel management system has been specially developed to solve this problem, which can solve many problems.

The personnel management system is divided into administrators and users according to the operating subjects. The functions of the administrator include managing employees, managing personnel information, including recruitment management, training management, reward and punishment management, salary management, etc., and can manage operators. User functions include managing department and department position information, managing recruitment information, training information, salary information, etc. The system uses Mysql database, Java language, Spring Boot framework and other technologies for programming.

The personnel management system can improve the efficiency of solving personnel information management problems, optimize the personnel information processing process, and ensure the security of personnel information data. It is a very reliable and very safe application.

Key WordsPersonnel management system; Mysql database; Java language

 


package com.controller;import java.io.File;
import java.math.BigDecimal;
import java.net.URL;
import java.text.SimpleDateFormat;
import com.alibaba.fastjson.JSONObject;
import java.util.*;
import org.springframework.beans.BeanUtils;
import javax.servlet.http.HttpServletRequest;
import org.springframework.web.context.ContextLoader;
import javax.servlet.ServletContext;
import com.service.TokenService;
import com.utils.*;
import java.lang.reflect.InvocationTargetException;import com.service.DictionaryService;
import org.apache.commons.lang3.StringUtils;
import com.annotation.IgnoreAuth;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.*;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.baomidou.mybatisplus.mapper.Wrapper;
import com.entity.*;
import com.entity.view.*;
import com.service.*;
import com.utils.PageUtils;
import com.utils.R;
import com.alibaba.fastjson.*;/*** 工作人员* 后端接口* @author* @email
*/
@RestController
@Controller
@RequestMapping("/gongzuorenyuan")
public class GongzuorenyuanController {private static final Logger logger = LoggerFactory.getLogger(GongzuorenyuanController.class);private static final String TABLE_NAME = "gongzuorenyuan";@Autowiredprivate GongzuorenyuanService gongzuorenyuanService;@Autowiredprivate TokenService tokenService;@Autowiredprivate ChengpinjianyanService chengpinjianyanService;//成品检验@Autowiredprivate ChouyangbiaozhunService chouyangbiaozhunService;//抽样标准@Autowiredprivate ChuhuojianyanService chuhuojianyanService;//出货检验@Autowiredprivate DictionaryService dictionaryService;//字典@Autowiredprivate GonggaoService gonggaoService;//公告@Autowiredprivate KongzhituchushihuaService kongzhituchushihuaService;//控制图初始化@Autowiredprivate LailiaojianyanService lailiaojianyanService;//来料检验@Autowiredprivate LifangtuService lifangtuService;//输出立方图@Autowiredprivate ZhichengjianyanService zhichengjianyanService;//制成检验@Autowiredprivate ZhifangtuService zhifangtuService;//输出直方图@Autowiredprivate UsersService usersService;//管理员/*** 后端列表*/@RequestMapping("/page")public R page(@RequestParam Map<String, Object> params, HttpServletRequest request){logger.debug("page方法:,,Controller:{},,params:{}",this.getClass().getName(),JSONObject.toJSONString(params));String role = String.valueOf(request.getSession().getAttribute("role"));if(false)return R.error(511,"永不会进入");else if("工作人员".equals(role))params.put("gongzuorenyuanId",request.getSession().getAttribute("userId"));CommonUtil.checkMap(params);PageUtils page = gongzuorenyuanService.queryPage(params);//字典表数据转换List<GongzuorenyuanView> list =(List<GongzuorenyuanView>)page.getList();for(GongzuorenyuanView c:list){//修改对应字典表字段dictionaryService.dictionaryConvert(c, request);}return R.ok().put("data", page);}/*** 后端详情*/@RequestMapping("/info/{id}")public R info(@PathVariable("id") Long id, HttpServletRequest request){logger.debug("info方法:,,Controller:{},,id:{}",this.getClass().getName(),id);GongzuorenyuanEntity gongzuorenyuan = gongzuorenyuanService.selectById(id);if(gongzuorenyuan !=null){//entity转viewGongzuorenyuanView view = new GongzuorenyuanView();BeanUtils.copyProperties( gongzuorenyuan , view );//把实体数据重构到view中//修改对应字典表字段dictionaryService.dictionaryConvert(view, request);return R.ok().put("data", view);}else {return R.error(511,"查不到数据");}}/*** 后端保存*/@RequestMapping("/save")public R save(@RequestBody GongzuorenyuanEntity gongzuorenyuan, HttpServletRequest request){logger.debug("save方法:,,Controller:{},,gongzuorenyuan:{}",this.getClass().getName(),gongzuorenyuan.toString());String role = String.valueOf(request.getSession().getAttribute("role"));if(false)return R.error(511,"永远不会进入");Wrapper<GongzuorenyuanEntity> queryWrapper = new EntityWrapper<GongzuorenyuanEntity>().eq("username", gongzuorenyuan.getUsername()).or().eq("gongzuorenyuan_phone", gongzuorenyuan.getGongzuorenyuanPhone()).or().eq("gongzuorenyuan_id_number", gongzuorenyuan.getGongzuorenyuanIdNumber());logger.info("sql语句:"+queryWrapper.getSqlSegment());GongzuorenyuanEntity gongzuorenyuanEntity = gongzuorenyuanService.selectOne(queryWrapper);if(gongzuorenyuanEntity==null){gongzuorenyuan.setCreateTime(new Date());gongzuorenyuan.setPassword("123456");gongzuorenyuanService.insert(gongzuorenyuan);return R.ok();}else {return R.error(511,"账户或者工作人员手机号或者工作人员身份证号已经被使用");}}/*** 后端修改*/@RequestMapping("/update")public R update(@RequestBody GongzuorenyuanEntity gongzuorenyuan, HttpServletRequest request) throws NoSuchFieldException, ClassNotFoundException, IllegalAccessException, InstantiationException {logger.debug("update方法:,,Controller:{},,gongzuorenyuan:{}",this.getClass().getName(),gongzuorenyuan.toString());GongzuorenyuanEntity oldGongzuorenyuanEntity = gongzuorenyuanService.selectById(gongzuorenyuan.getId());//查询原先数据String role = String.valueOf(request.getSession().getAttribute("role"));
//        if(false)
//            return R.error(511,"永远不会进入");if("".equals(gongzuorenyuan.getGongzuorenyuanPhoto()) || "null".equals(gongzuorenyuan.getGongzuorenyuanPhoto())){gongzuorenyuan.setGongzuorenyuanPhoto(null);}gongzuorenyuanService.updateById(gongzuorenyuan);//根据id更新return R.ok();}/*** 删除*/@RequestMapping("/delete")public R delete(@RequestBody Integer[] ids, HttpServletRequest request){logger.debug("delete:,,Controller:{},,ids:{}",this.getClass().getName(),ids.toString());List<GongzuorenyuanEntity> oldGongzuorenyuanList =gongzuorenyuanService.selectBatchIds(Arrays.asList(ids));//要删除的数据gongzuorenyuanService.deleteBatchIds(Arrays.asList(ids));return R.ok();}/*** 批量上传*/@RequestMapping("/batchInsert")public R save( String fileName, HttpServletRequest request){logger.debug("batchInsert方法:,,Controller:{},,fileName:{}",this.getClass().getName(),fileName);Integer gongzuorenyuanId = Integer.valueOf(String.valueOf(request.getSession().getAttribute("userId")));SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");//.eq("time", new SimpleDateFormat("yyyy-MM-dd").format(new Date()))try {List<GongzuorenyuanEntity> gongzuorenyuanList = new ArrayList<>();//上传的东西Map<String, List<String>> seachFields= new HashMap<>();//要查询的字段Date date = new Date();int lastIndexOf = fileName.lastIndexOf(".");if(lastIndexOf == -1){return R.error(511,"该文件没有后缀");}else{String suffix = fileName.substring(lastIndexOf);if(!".xls".equals(suffix)){return R.error(511,"只支持后缀为xls的excel文件");}else{URL resource = this.getClass().getClassLoader().getResource("static/upload/" + fileName);//获取文件路径File file = new File(resource.getFile());if(!file.exists()){return R.error(511,"找不到上传文件,请联系管理员");}else{List<List<String>> dataList = PoiUtil.poiImport(file.getPath());//读取xls文件dataList.remove(0);//删除第一行,因为第一行是提示for(List<String> data:dataList){//循环GongzuorenyuanEntity gongzuorenyuanEntity = new GongzuorenyuanEntity();
//                            gongzuorenyuanEntity.setUsername(data.get(0));                    //账户 要改的
//                            gongzuorenyuanEntity.setPassword("123456");//密码
//                            gongzuorenyuanEntity.setGongzuorenyuanUuidNumber(data.get(0));                    //工作人员编号 要改的
//                            gongzuorenyuanEntity.setGongzuorenyuanName(data.get(0));                    //工作人员姓名 要改的
//                            gongzuorenyuanEntity.setGongzuorenyuanPhone(data.get(0));                    //工作人员手机号 要改的
//                            gongzuorenyuanEntity.setGongzuorenyuanIdNumber(data.get(0));                    //工作人员身份证号 要改的
//                            gongzuorenyuanEntity.setGongzuorenyuanPhoto("");//详情和图片
//                            gongzuorenyuanEntity.setSexTypes(Integer.valueOf(data.get(0)));   //性别 要改的
//                            gongzuorenyuanEntity.setJianyangongzhongTypes(Integer.valueOf(data.get(0)));   //检验工种 要改的
//                            gongzuorenyuanEntity.setGongzuorenyuanEmail(data.get(0));                    //工作人员邮箱 要改的
//                            gongzuorenyuanEntity.setJinyongTypes(Integer.valueOf(data.get(0)));   //账户状态 要改的
//                            gongzuorenyuanEntity.setCreateTime(date);//时间gongzuorenyuanList.add(gongzuorenyuanEntity);//把要查询是否重复的字段放入map中//账户if(seachFields.containsKey("username")){List<String> username = seachFields.get("username");username.add(data.get(0));//要改的}else{List<String> username = new ArrayList<>();username.add(data.get(0));//要改的seachFields.put("username",username);}//工作人员编号if(seachFields.containsKey("gongzuorenyuanUuidNumber")){List<String> gongzuorenyuanUuidNumber = seachFields.get("gongzuorenyuanUuidNumber");gongzuorenyuanUuidNumber.add(data.get(0));//要改的}else{List<String> gongzuorenyuanUuidNumber = new ArrayList<>();gongzuorenyuanUuidNumber.add(data.get(0));//要改的seachFields.put("gongzuorenyuanUuidNumber",gongzuorenyuanUuidNumber);}//工作人员手机号if(seachFields.containsKey("gongzuorenyuanPhone")){List<String> gongzuorenyuanPhone = seachFields.get("gongzuorenyuanPhone");gongzuorenyuanPhone.add(data.get(0));//要改的}else{List<String> gongzuorenyuanPhone = new ArrayList<>();gongzuorenyuanPhone.add(data.get(0));//要改的seachFields.put("gongzuorenyuanPhone",gongzuorenyuanPhone);}//工作人员身份证号if(seachFields.containsKey("gongzuorenyuanIdNumber")){List<String> gongzuorenyuanIdNumber = seachFields.get("gongzuorenyuanIdNumber");gongzuorenyuanIdNumber.add(data.get(0));//要改的}else{List<String> gongzuorenyuanIdNumber = new ArrayList<>();gongzuorenyuanIdNumber.add(data.get(0));//要改的seachFields.put("gongzuorenyuanIdNumber",gongzuorenyuanIdNumber);}}//查询是否重复//账户List<GongzuorenyuanEntity> gongzuorenyuanEntities_username = gongzuorenyuanService.selectList(new EntityWrapper<GongzuorenyuanEntity>().in("username", seachFields.get("username")));if(gongzuorenyuanEntities_username.size() >0 ){ArrayList<String> repeatFields = new ArrayList<>();for(GongzuorenyuanEntity s:gongzuorenyuanEntities_username){repeatFields.add(s.getUsername());}return R.error(511,"数据库的该表中的 [账户] 字段已经存在 存在数据为:"+repeatFields.toString());}//工作人员编号List<GongzuorenyuanEntity> gongzuorenyuanEntities_gongzuorenyuanUuidNumber = gongzuorenyuanService.selectList(new EntityWrapper<GongzuorenyuanEntity>().in("gongzuorenyuan_uuid_number", seachFields.get("gongzuorenyuanUuidNumber")));if(gongzuorenyuanEntities_gongzuorenyuanUuidNumber.size() >0 ){ArrayList<String> repeatFields = new ArrayList<>();for(GongzuorenyuanEntity s:gongzuorenyuanEntities_gongzuorenyuanUuidNumber){repeatFields.add(s.getGongzuorenyuanUuidNumber());}return R.error(511,"数据库的该表中的 [工作人员编号] 字段已经存在 存在数据为:"+repeatFields.toString());}//工作人员手机号List<GongzuorenyuanEntity> gongzuorenyuanEntities_gongzuorenyuanPhone = gongzuorenyuanService.selectList(new EntityWrapper<GongzuorenyuanEntity>().in("gongzuorenyuan_phone", seachFields.get("gongzuorenyuanPhone")));if(gongzuorenyuanEntities_gongzuorenyuanPhone.size() >0 ){ArrayList<String> repeatFields = new ArrayList<>();for(GongzuorenyuanEntity s:gongzuorenyuanEntities_gongzuorenyuanPhone){repeatFields.add(s.getGongzuorenyuanPhone());}return R.error(511,"数据库的该表中的 [工作人员手机号] 字段已经存在 存在数据为:"+repeatFields.toString());}//工作人员身份证号List<GongzuorenyuanEntity> gongzuorenyuanEntities_gongzuorenyuanIdNumber = gongzuorenyuanService.selectList(new EntityWrapper<GongzuorenyuanEntity>().in("gongzuorenyuan_id_number", seachFields.get("gongzuorenyuanIdNumber")));if(gongzuorenyuanEntities_gongzuorenyuanIdNumber.size() >0 ){ArrayList<String> repeatFields = new ArrayList<>();for(GongzuorenyuanEntity s:gongzuorenyuanEntities_gongzuorenyuanIdNumber){repeatFields.add(s.getGongzuorenyuanIdNumber());}return R.error(511,"数据库的该表中的 [工作人员身份证号] 字段已经存在 存在数据为:"+repeatFields.toString());}gongzuorenyuanService.insertBatch(gongzuorenyuanList);return R.ok();}}}}catch (Exception e){e.printStackTrace();return R.error(511,"批量插入数据异常,请联系管理员");}}/*** 登录*/@IgnoreAuth@RequestMapping(value = "/login")public R login(String username, String password, String captcha, HttpServletRequest request) {GongzuorenyuanEntity gongzuorenyuan = gongzuorenyuanService.selectOne(new EntityWrapper<GongzuorenyuanEntity>().eq("username", username));if(gongzuorenyuan==null || !gongzuorenyuan.getPassword().equals(password))return R.error("账号或密码不正确");else if(gongzuorenyuan.getJinyongTypes() != 1)return R.error("账户已被禁用");String token = tokenService.generateToken(gongzuorenyuan.getId(),username, "gongzuorenyuan", "工作人员");R r = R.ok();r.put("token", token);r.put("role","工作人员");r.put("username",gongzuorenyuan.getGongzuorenyuanName());r.put("tableName","gongzuorenyuan");r.put("userId",gongzuorenyuan.getId());return r;}/*** 注册*/@IgnoreAuth@PostMapping(value = "/register")public R register(@RequestBody GongzuorenyuanEntity gongzuorenyuan, HttpServletRequest request) {
//    	ValidatorUtils.validateEntity(user);Wrapper<GongzuorenyuanEntity> queryWrapper = new EntityWrapper<GongzuorenyuanEntity>().eq("username", gongzuorenyuan.getUsername()).or().eq("gongzuorenyuan_phone", gongzuorenyuan.getGongzuorenyuanPhone()).or().eq("gongzuorenyuan_id_number", gongzuorenyuan.getGongzuorenyuanIdNumber());GongzuorenyuanEntity gongzuorenyuanEntity = gongzuorenyuanService.selectOne(queryWrapper);if(gongzuorenyuanEntity != null)return R.error("账户或者工作人员手机号或者工作人员身份证号已经被使用");gongzuorenyuan.setGongzuorenyuanUuidNumber(String.valueOf(new Date().getTime()));gongzuorenyuan.setJinyongTypes(1);//启用gongzuorenyuan.setCreateTime(new Date());gongzuorenyuanService.insert(gongzuorenyuan);return R.ok();}/*** 重置密码*/@GetMapping(value = "/resetPassword")public R resetPassword(Integer  id, HttpServletRequest request) {GongzuorenyuanEntity gongzuorenyuan = gongzuorenyuanService.selectById(id);gongzuorenyuan.setPassword("123456");gongzuorenyuanService.updateById(gongzuorenyuan);return R.ok();}/*** 修改密码*/@GetMapping(value = "/updatePassword")public R updatePassword(String  oldPassword, String  newPassword, HttpServletRequest request) {GongzuorenyuanEntity gongzuorenyuan = gongzuorenyuanService.selectById((Integer)request.getSession().getAttribute("userId"));if(newPassword == null){return R.error("新密码不能为空") ;}if(!oldPassword.equals(gongzuorenyuan.getPassword())){return R.error("原密码输入错误");}if(newPassword.equals(gongzuorenyuan.getPassword())){return R.error("新密码不能和原密码一致") ;}gongzuorenyuan.setPassword(newPassword);gongzuorenyuanService.updateById(gongzuorenyuan);return R.ok();}/*** 忘记密码*/@IgnoreAuth@RequestMapping(value = "/resetPass")public R resetPass(String username, HttpServletRequest request) {GongzuorenyuanEntity gongzuorenyuan = gongzuorenyuanService.selectOne(new EntityWrapper<GongzuorenyuanEntity>().eq("username", username));if(gongzuorenyuan!=null){gongzuorenyuan.setPassword("123456");gongzuorenyuanService.updateById(gongzuorenyuan);return R.ok();}else{return R.error("账号不存在");}}/*** 获取用户的session用户信息*/@RequestMapping("/session")public R getCurrGongzuorenyuan(HttpServletRequest request){Integer id = (Integer)request.getSession().getAttribute("userId");GongzuorenyuanEntity gongzuorenyuan = gongzuorenyuanService.selectById(id);if(gongzuorenyuan !=null){//entity转viewGongzuorenyuanView view = new GongzuorenyuanView();BeanUtils.copyProperties( gongzuorenyuan , view );//把实体数据重构到view中//修改对应字典表字段dictionaryService.dictionaryConvert(view, request);return R.ok().put("data", view);}else {return R.error(511,"查不到数据");}}/*** 退出*/@GetMapping(value = "logout")public R logout(HttpServletRequest request) {request.getSession().invalidate();return R.ok("退出成功");}}


http://www.ppmy.cn/news/1551784.html

相关文章

AWS 使用Lambda解压S3桶内压缩文件

创建两个桶 一个源桶 一个目标桶 创建Lambda函数 Lambda默认执行角色没有S3存储桶权限 添加Lambda和S3的所有权限 修改函数代码 https://github.com/pradip503/lambda-extract-zip/blob/master/code_snippet.py 修改源通和存储桶名称 添加触发器 选择S3源文件桶 修改函数执行…

spring boot打包fat jar

所谓fat jar就是包含所有依赖的jar以及其他开发的代码的jar包。可以通过java -jar xxx.jar直接启动运行&#xff0c;不需要部署到tomcat中间件就能运行。 接下来我们使用maven进行打包&#xff1a; &#xff08;1&#xff09;在需要带包的主模块的pom中添加build依赖&#xf…

selenium部署分布式 UI 自动化测试环境-Docker

一、根据selenium/hub官网的配置信息&#xff0c;进行配置。 How to run this image The Hub and Nodes will be created in the same network and they will recognize each other by their container name. A Docker network⁠ needs to be created as a first step.Create …

多种平台上安装部署调试Open5GS(二)

多种平台上安装部署调试Open5GS(二) Open5GS项目安装依赖open5GS源码编译webUI安装运行Open5GS 是一个功能完善的开源5G项目,具备5G、4G核心网功能,最新代码支持R17标准, 本系列文章介绍Open5GS在x86、ARM平台上的安装部署方法,并通过搭建UERANSIN、商用5G基站和终端两种…

VideoBooth: Diffusion-based Video Generation with Image Prompts

VideoBooth: Diffusion-based Video Generation with Image Prompts 概括 文章提出了一个视频生成模型VideoBooth&#xff0c;输入一张图片和一个文本提示词&#xff0c;即可输出保持图片中物体且符合文本提示词要求的视频。 方法 粗-细两阶段设计&#xff1a;1&#xff09;…

【Linux】命令行参数与环境变量

目录 一、命令行参数1.1 命令行参数是什么&#xff1f;1.2 设计命令行参数的意义 二、环境变量2.1 环境变量的基本概念2.2 常见环境变量2.2.1 PATH2.2.1.1 通过命令行配置PATH2.2.1.2 使自己的程序像系统中指令一样运行 2.2.2 HOME2.2.3 PWD 2.3 查看操作系统中所有的环境变量&…

python股票数据分析(Pandas)练习

需求&#xff1a; 使用pandas读取一个CSV文件&#xff0c;文件内容包括股票名称、价格和交易量。完成以下任务&#xff1a; 找出价格最高的股票&#xff1b; 计算总交易量&#xff1b; 绘制价格折线图。 代码实现&#xff1a; import pandas as pd import matplotlib.pyplot …

C++基础:muduo库学习记录

2024/11/26-2024/11/2 &#xff1a;   记录一下在自己学习muduo库时对一些概念的理解和实现。 reference: [1]CMuduo网络库&#xff1a;简介及使用 [2]Linux-C网络编程之epoll函数 [3]Linux平台下muduo网络库源码编译安装 目录 一、基础概念1.1 阻塞 or 非阻塞 同步 or 异步1…