ssm毕业生就业状况管理系统源码和论文

ssm毕业生就业状况管理系统源码和论文093

 开发工具:idea 
 数据库mysql5.7+
 数据库链接工具:navcat,小海豚等
  技术:ssm

摘  要

现代经济快节奏发展以及不断完善升级的信息化技术,让传统数据信息的管理升级为软件存储,归纳,集中处理数据信息的管理方式。本毕业生就业状况管理系统就是在这样的大环境下诞生,其可以帮助管理者在短时间内处理完毕庞大的数据信息,使用这种软件工具可以帮助管理人员提高事务处理效率,达到事半功倍的效果。此毕业生就业状况管理系统利用当下成熟完善的SSM框架,使用跨平台的可开发大型商业网站的Java语言,以及最受欢迎的RDBMS应用软件之一的Mysql数据库进行程序开发。实现了用户基础数据的管理,机构基础数据管理,就业信息管理等功能。毕业生就业状况管理系统的开发根据操作人员需要设计的界面简洁美观,在功能模块布局上跟同类型网站保持一致,程序在实现基本要求功能时,也为数据信息面临的安全问题提供了一些实用的解决方案。可以说该程序在帮助管理者高效率地处理工作事务的同时,也实现了数据信息的整体化,规范化与自动化。

关键词:毕业生就业状况管理系统;SSM框架;Mysql;自动化

 

package com.controller;import java.text.DateFormat;
import java.text.ParseException;
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.StringUtil;
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.JigouEntity;import com.service.JigouService;
import com.entity.view.JigouView;
import com.utils.PageUtils;
import com.utils.R;/*** 机构人员* 后端接口* @author* @email* @date 2021-03-17
*/
@RestController
@Controller
@RequestMapping("/jigou")
public class JigouController {private static final Logger logger = LoggerFactory.getLogger(JigouController.class);@Autowiredprivate JigouService jigouService;@Autowiredprivate TokenService tokenService;@Autowiredprivate DictionaryService dictionaryService;//级联表service/*** 后端列表*/@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(StringUtil.isNotEmpty(role) && "用户".equals(role)){params.put("yonghuId",request.getSession().getAttribute("userId"));}PageUtils page = jigouService.queryPage(params);//字典表数据转换List<JigouView> list =(List<JigouView>)page.getList();for(JigouView c:list){//修改对应字典表字段dictionaryService.dictionaryConvert(c);}return R.ok().put("data", page);}/*** 后端详情*/@RequestMapping("/info/{id}")public R info(@PathVariable("id") Long id){logger.debug("info方法:,,Controller:{},,id:{}",this.getClass().getName(),id);JigouEntity jigou = jigouService.selectById(id);if(jigou !=null){//entity转viewJigouView view = new JigouView();BeanUtils.copyProperties( jigou , view );//把实体数据重构到view中//修改对应字典表字段dictionaryService.dictionaryConvert(view);return R.ok().put("data", view);}else {return R.error(511,"查不到数据");}}/*** 后端保存*/@RequestMapping("/save")public R save(@RequestBody JigouEntity jigou, HttpServletRequest request) throws ParseException {logger.debug("save方法:,,Controller:{},,jigou:{}",this.getClass().getName(),jigou.toString());Wrapper<JigouEntity> queryWrapper = new EntityWrapper<JigouEntity>().eq("username", jigou.getUsername()).or().eq("jigou_id_number", jigou.getJigouIdNumber()).or().eq("jigou_phone", jigou.getJigouPhone());logger.info("sql语句:"+queryWrapper.getSqlSegment());JigouEntity jigouEntity = jigouService.selectOne(queryWrapper);if(jigouEntity==null){jigou.setCreateTime(new Date());jigou.setPassword("123456");DateFormat format = new SimpleDateFormat("yyyyMMdd");Date parse = format.parse(jigou.getJigouIdNumber().substring(6, 14));if(parse.getTime() < format.parse("19500101").getTime() || parse.getTime() > new Date().getTime()){return R.error(511,"身份证号中的年月日不正确");}else{StringBuilder chushengriqi = new StringBuilder();Calendar cal = Calendar.getInstance();cal.setTime(parse);chushengriqi.append(cal.get(Calendar.YEAR)).append("-").append(cal.get(Calendar.MONTH)+1).append("-").append(cal.get(Calendar.DAY_OF_MONTH));jigou.setJigouChushengriqi(chushengriqi.toString());}jigouService.insert(jigou);return R.ok();}else {return R.error(511,"表中有相同数据");}}/*** 修改*/@RequestMapping("/update")public R update(@RequestBody JigouEntity jigou, HttpServletRequest request) throws ParseException {logger.debug("update方法:,,Controller:{},,jigou:{}",this.getClass().getName(),jigou.toString());//根据字段查询是否有相同数据Wrapper<JigouEntity> queryWrapper = new EntityWrapper<JigouEntity>().notIn("id",jigou.getId()).andNew().eq("username", jigou.getUsername()).or().eq("jigou_id_number", jigou.getJigouIdNumber()).or().eq("jigou_phone", jigou.getJigouPhone());logger.info("sql语句:"+queryWrapper.getSqlSegment());JigouEntity jigouEntity = jigouService.selectOne(queryWrapper);if("".equals(jigou.getJigouPhoto()) || "null".equals(jigou.getJigouPhoto())){jigou.setJigouPhoto(null);}if(jigouEntity==null){DateFormat format = new SimpleDateFormat("yyyyMMdd");if(StringUtil.isNotEmpty(jigou.getJigouIdNumber())){Date parse = format.parse(jigou.getJigouIdNumber().substring(6, 14));if(parse.getTime() < format.parse("19500101").getTime() || parse.getTime() > new Date().getTime()){return R.error(511,"身份证号中的年月日不正确");}else{StringBuilder chushengriqi = new StringBuilder();Calendar cal = Calendar.getInstance();cal.setTime(parse);chushengriqi.append(cal.get(Calendar.YEAR)).append("-").append(cal.get(Calendar.MONTH)+1).append("-").append(cal.get(Calendar.DAY_OF_MONTH));jigou.setJigouChushengriqi(chushengriqi.toString());}}jigouService.updateById(jigou);//根据id更新return R.ok();}else {return R.error(511,"表中有相同数据");}}/*** 删除*/@RequestMapping("/delete")public R delete(@RequestBody Integer[] ids){logger.debug("delete:,,Controller:{},,ids:{}",this.getClass().getName(),ids.toString());jigouService.deleteBatchIds(Arrays.asList(ids));return R.ok();}/*** 登录*/@IgnoreAuth@PostMapping(value = "/login")public R login(String username, String password, String captcha, HttpServletRequest request) {JigouEntity jigou = jigouService.selectOne(new EntityWrapper<JigouEntity>().eq("username", username));if(jigou==null || !jigou.getPassword().equals(password)) {return R.error("账号或密码不正确");}String token = tokenService.generateToken(jigou.getId(),username, "jigou", "机构");R r = R.ok();r.put("token", token);r.put("role","机构");r.put("username",jigou.getJigouName());r.put("tableName","jigou");r.put("userId",jigou.getId());return r;}/*** 重置密码*/@GetMapping(value = "/resetPassword")public R resetPassword(Integer  yonghuId){JigouEntity yonghu = new JigouEntity();yonghu.setPassword("123456");yonghu.setId(yonghuId);jigouService.updateById(yonghu);return R.ok();}/*** 获取用户的session用户信息*/@RequestMapping("/session")public R getCurrYonghu(HttpServletRequest request){Integer id = (Integer)request.getSession().getAttribute("userId");JigouEntity jigou = jigouService.selectById(id);return R.ok().put("data", jigou);}/*** 退出*/@GetMapping(value = "logout")public R logout(HttpServletRequest request) {request.getSession().invalidate();return R.ok("退出成功");}/*** 找回密码*/@IgnoreAuth@RequestMapping("/zhaohui")public R zhaohui(@RequestBody Map<String,String> map, HttpServletRequest request){logger.debug("zhaohui方法:,,Controller:{},,map:{}",this.getClass().getName(),JSONObject.toJSONString(map));JigouEntity jigouEntity = jigouService.selectOne(new EntityWrapper<JigouEntity>().eq("username", String.valueOf(map.get("username"))).eq("jigou_name", String.valueOf(map.get("name"))).eq("jigou_phone", String.valueOf(map.get("phone"))).eq("jigou_id_number", String.valueOf(map.get("idNumber"))));if(jigouEntity != null){jigouEntity.setPassword("123456");jigouService.updateById(jigouEntity);return R.ok();}else{return R.error("查找不到此账户");}}}

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

无涯教程-Android - Grid View函数

Android GridView在二维滚动网格(行和列)中显示项目&#xff0c;并且网格项目不一定是预定的&#xff0c;但它们会使用ListAdapter自动插入到布局中 Grid View - Grid view ListView 和 GridView 是 AdapterView 的子类&#xff0c;可以通过将它们绑定到 Adapter 来填充&#x…

MongoDB实验——在MongoDB集合中查找文档

在MongoDB集合中查找文档 一、实验目的二、实验原理三、实验步骤1.启动MongoDB数据库、启动MongoDB Shell客户端2.数据准备-->person.json3.指定返回的键4 .包含或不包含 i n 或 in 或 in或nin、$elemMatch&#xff08;匹配数组&#xff09;5.OR 查询 $or6.Null、$exists7.…

简易虚拟培训系统-UI控件的应用1

目录 前言 UI结构总体介绍 建立初步的系统UI结构 Image控件 前言 前面的文章介绍了关于Oculus设备与UI控件的关联&#xff0c;从本文开始采用小示例的方式介绍基本的UI控件在系统中的基本作用&#xff08;仅介绍“基本作用”&#xff0c;详细的API教程可参考官方文档&#x…

用wireshark流量分析的四个案例

目录 第一题 1 2 3 4 第二题 1 2 3. 第三题 1 2 第四题 1 2 3 第一题 题目&#xff1a; 1.黑客攻击的第一个受害主机的网卡IP地址 2.黑客对URL的哪一个参数实施了SQL注入 3.第一个受害主机网站数据库的表前缀&#xff08;加上下划线例如abc&#xff09; 4.…

2024毕业设计选题指南【附选题大全】

title: 毕业设计选题指南 - 如何选择合适的毕业设计题目 date: 2023-08-29 categories: 毕业设计 tags: 选题指南, 毕业设计, 毕业论文, 毕业项目 - 如何选择合适的毕业设计题目 当我们站在大学生活的十字路口&#xff0c;毕业设计便成了我们面临的一项重要使命。这不仅是对我们…

文本编辑器Vim常用操作和技巧

文章目录 1. Vim常用操作1.1 Vim简介1.2 Vim工作模式1.3 插入命令1.4 定位命令1.5 删除命令1.6 复制和剪切命令1.7 替换和取消命令1.8 搜索和搜索替换命令1.9 保存和退出命令 2. Vim使用技巧 1. Vim常用操作 1.1 Vim简介 Vim是一个功能强大的全屏幕文本编辑器&#xff0c;是L…

计算机竞赛 基于机器视觉的手势检测和识别算法

0 前言 &#x1f525; 优质竞赛项目系列&#xff0c;今天要分享的是 基于深度学习的手势检测与识别算法 该项目较为新颖&#xff0c;适合作为竞赛课题方向&#xff0c;学长非常推荐&#xff01; &#x1f9ff; 更多资料, 项目分享&#xff1a; https://gitee.com/dancheng…

今天学了二叉树的前序,中序和后序遍历oier

同时了解一些趣图笑死我了 所以想入门先入坟&#xff0c;这是最好的礼物。 废话说多了&#xff0c;谈谈正事&#xff0c;我们了解到二叉树有节点和边权&#xff1b;分为有向和无向图&#xff1b;这里如果我们需要搜索一下每一个节点的情况&#xff0c;所以就需要这个遍历了 1…

前端vue2、vue3去掉url路由“ # ”号——nginx配置

文章目录 ⭐前言⭐vue2中router默认出现#号&#x1f496;在vue2项目中去掉&#x1f496;在vue3项目中去掉 ⭐vue打包 assetsPublicPath base 为绝对路径 /&#x1f496;vue2 配置 assetsPublicPath&#x1f496;vue3 配置 base&#x1f496;验证 ⭐nginx 配置&#x1f496; 使用…

Leetcode Top 100 Liked Questions(序号105~139)

105. Construct Binary Tree from Preorder and Inorder Traversal105. Construct Binary Tree from Preorder and Inorder Traversal 题意&#xff1a;根据前序遍历和中序遍历来构造二叉树 我的思路 要用递归造树&#xff0c;要同时递归左子树和右子树&#xff0c;造树需要…

C语言每日一练-----Day(4)

本专栏为c语言练习专栏&#xff0c;适合刚刚学完c语言的初学者。本专栏每天会不定时更新&#xff0c;通过每天练习&#xff0c;进一步对c语言的重难点知识进行更深入的学习。 今日练习题关键字&#xff1a;记负均正    旋转数组的最小数字    二分查找 &#x1f493;博主…

剑指offer(C++)-JZ29:顺时针打印矩阵(算法-模拟)

作者&#xff1a;翟天保Steven 版权声明&#xff1a;著作权归作者所有&#xff0c;商业转载请联系作者获得授权&#xff0c;非商业转载请注明出处 题目描述&#xff1a; 输入一个矩阵&#xff0c;按照从外向里以顺时针的顺序依次打印出每一个数字&#xff0c;例如&#xff0c;…

element Collapse 折叠面板 绑定事件

1. 点击面板触发事件 change <el-collapse accordion v-model"activeNames" change"handleChange"><el-collapse-item title"一致性 Consistency"><div>与现实生活一致&#xff1a;与现实生活的流程、逻辑保持一致&#xff0c…

使用Python构建网络爬虫:提取网页内容和图片资源

网络爬虫是一种自动获取网页内容的程序&#xff0c;它可以帮助我们高效地收集网络上的有价值信息。本文将介绍如何使用Python构建网络爬虫&#xff0c;提取网页内容和图片资源。   一、环境准备   1.安装Python环境   首先&#xff0c;确保您已经安装了Python环境。访问P…

2021年06月 C/C++(五级)真题解析#中国电子学会#全国青少年软件编程等级考试

第1题&#xff1a;数字变换 给定一个包含5个数字&#xff08;0-9&#xff09;的字符串&#xff0c;例如 “02943”&#xff0c;请将“12345”变换到它。 你可以采取3种操作进行变换 &#xff08;1&#xff09;交换相邻的两个数字 &#xff08;2&#xff09;将一个数字加1。如果…

Qt应用开发(基础篇)——进度条 QProgressBar

一、前言 QProgressBar类继承于QWidget&#xff0c;是一个提供了横向或者纵向进度条的小部件。 QProgressBar进度条一般用来显示用户某操作的进度&#xff0c;比如烧录、导入、导出、下发、上传、加载等这些需要耗时和分包的概念&#xff0c;让用户知道程序还在正常的执行中。 …

Git操作

Git 操作方法 Git 是一个分布式版本控制系统&#xff0c;用于管理项目的源代码。 gitee新建仓库提示如下 具体介绍看下面 1. 创建仓库 初始化本地仓库 使用以下命令在本地目录中初始化一个新的 Git 仓库&#xff1a; git init克隆远程仓库 使用以下命令克隆一个远程仓库…

java自动登录 selenium 自动登录并获取cookie

选择操作网页 我用的edge&#xff0c;谷歌我的版本太高没有对应的驱动… 下载Edge的驱动程序&#xff0c;直接解压就好里面只有一个.exe文件 https://developer.microsoft.com/en-us/microsoft-edge/tools/webdriver/ 复制即用&#xff0c;看注释 import com.alibaba.fastjs…

我们的第一个 Qt 窗口程序

Qt 入门实战教程&#xff08;目录&#xff09; Windows Qt 5.12.10下载与安装 为何使用Qt Creator开发QT 本文介绍用Qt自带的集成开发工具Qt Creator创建Qt默认的窗口程序。 本文不需要你另外安装Visual Studio 2022这样的集成开发环境&#xff0c;也不需要你再在Visual St…

Redis.conf 配置文件详解

1、units 单位 配置大小单位&#xff0c;开头定义了一些基本的度量单位&#xff0c;只支持 bytes&#xff0c;不支持bit&#xff0c;并且对大小写 不敏感。 2、INCLUDES 包含 类似于 Spring 配置文件&#xff0c;可以通过 includes 包含&#xff0c;redis.conf 可以作为总文件…