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

news2024/11/15 17:59:47

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);

    @Autowired
    private JigouService jigouService;


    @Autowired
    private TokenService tokenService;
    @Autowired
    private 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转view
            JigouView 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.coloradmin.cn/o/947939.html

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

相关文章

【安装包】JDK 17安装教程

软件下载 软件&#xff1a;JDK版本&#xff1a;17语言&#xff1a;简体中文大小&#xff1a;151.24M安装环境&#xff1a;Win11/Win10/Win8/Win7硬件要求&#xff1a;CPU2.0GHz 内存4G(或更高&#xff09;下载通道①百度网盘丨64位下载链接&#xff1a;https://pan.baidu.com/…

0基础学习VR全景平台篇 第93篇:智慧景区教程

一、上传素材 1.上传全景素材 第一步&#xff1a;进入【素材管理】 第二步&#xff1a;选择【全景图智慧景区】分类 第三步&#xff1a;选择相对景区作品分组&#xff0c;上传全景素材 2.素材标注 第一步&#xff1a;选择上传成功后素材&#xff0c;点击【未标注】 第二步&…

Kubernetes技术--k8s核心技术Service服务

1.service概述 Service 是 Kubernetes 最核心概念,通过创建 Service,可以为一组具有相同功能的容器应用提供一个统一的入口地址,并且将请求负载分发到后端的各个容器应用上。 2.service存在的意义 -1:防止pod失联(服务发现) 我们先说一下什么叫pod失联。 -2:

JAVA反射+动态代理

一.什么是反射&#xff1f; 反射就是对封装的成员信息与变量进行编程式访问 简单来说就是从类里面拿东西 比如属性 或者构造方法 二.获取Class对象: 获取Class的三种方式 代码实现&#xff1a; 首先封装一个javabean Student类 public class Student {private Strin…

Makerbase_VESC 常用VESC TOOL配置(一)

VESC TOOL电机配置&#xff08;一&#xff09; 欢迎加入 创客基地 电机控制企鹅群 讨论电机控制相关问题&#xff1a;732557609 欢迎光临 创客基地 tao宝店 采购产品&#xff1a; https://makerbase.taobao.com/ 提示&#xff1a;可以按快捷键“CtrlF”快速寻找相关问题。 …

微信聊天记录删除恢复导出工具(文字/语音/图片/视频/文件/表情包)

微信的聊天记录加密保存在电脑中&#xff0c;有时我们想将自己微信中的聊天记录导出来&#xff0c;但微信软件并不提供该功能。此软件可将自己电脑版微信中的聊天内容批量导出来&#xff0c;方便备份&#xff0c;后期不登录也可方便快速查阅。它还能够尝试恢复之前删除过的好友…

echarts 饼图 图例在右侧时,文字在图例点右边

echarts图例在右侧时&#xff0c;文字在图例点右边 需求 现在实现的 实现需求 主要使用的参数&#xff1a; legend.align ’left‘代码&#xff1a; 可直接放到echarts示例中使用 option {tooltip: {trigger: item},legend: {orient: "vertical" /*标签文字垂…

【Java从0到1学习】13 Java IO流

1. 流 1.1 流的概念 流(stream)的概念源于UNIX中管道(pipe)的概念。在UNIX中&#xff0c;管道是一条不间断的字节流&#xff0c;用来实现程序或进程间的通信&#xff0c;或读写外围设备、外部文件等。 一个流&#xff0c;必有源端和目的端&#xff0c;它们可以是计算机内存的…

揭开波动性的神秘面纱【02/2】:简要介绍预测市场走势

一、说明 本文是数据专家的体会&#xff0c;他之前写了一系列关于时间序列的文章&#xff0c;在这些文章之后&#xff0c;他想给出一个关于我们如何通过投资组合分析在潜在风险情况下将自己保持在安全区域的想法。文章专业性很强&#xff0c;但机器学习方面的工作还是有参考价值…

【LeetCode】409. 最长回文串

409. 最长回文串&#xff08;简单&#xff09; 方法&#xff1a;哈希表 贪心 思路 不难发现&#xff0c;回文字符串一定是由 若干偶数个字符 至多一个奇数个字符 组成 。我们可以使用一个长度为 128 的 hash表来记录每一个字符的出现次数&#xff0c;当该字符出现了两次&am…

企业想用CRM提高销售业绩该如何操作?

在当今市场环境中&#xff0c;客户的需求更偏向于个性化&#xff0c;企业面对的竞争更加激烈。如何有效地获取和维护客户&#xff0c;提高收入成为了企业的核心问题。作为一种强大的销售管理工具&#xff0c;CRM如何提高销售业绩&#xff1f; 提高客户转化率&#xff1a; 企业…

Day50|动态规划part11:188.买卖股票的最佳时机IV、123. 买卖股票的最佳时机III

188. 买卖股票的最佳时机IV leetcode链接&#xff1a;188 题「买卖股票的最佳时机 IVopen in new window」 视频链接&#xff1a;动态规划来决定最佳时机&#xff0c;至多可以买卖K次&#xff01;| LeetCode&#xff1a;188.买卖股票最佳时机4 给你一个整数数组 prices 和一…

基于ssm车库智能管理平台源码和论文

基于ssm车库智能管理平台源码和论文092 开发工具&#xff1a;idea 数据库mysql5.7 数据库链接工具&#xff1a;navcat,小海豚等 技术&#xff1a;ssm 选题的根据&#xff1a;1&#xff09;说明本选题的理论、实际意义 2&#xff09;综述国内外有关本选题的研究动态和自己…

【LeetCode75】第四十一题 二叉搜索树中的搜索

目录 题目&#xff1a; 示例&#xff1a; 分析&#xff1a; 代码&#xff1a; 题目&#xff1a; 示例&#xff1a; 分析&#xff1a; 题目给我们一个搜索二叉树&#xff0c;让我们找出节点值等于目标的节点并返回出去。 首先我们可以直接遍历整棵二叉树&#xff0c;找到值…

Mybatis2,注解实现CRUD

2&#xff0c;注解实现CRUD 使用注解开发会比配置文件开发更加方便。如下就是使用注解进行开发 Select(value "select * from tb_user where id #{id}") public User select(int id);注意&#xff1a; 注解是用来替换映射配置文件方式配置的&#xff0c;所以使用了…

使用 Privoxy 在 Linux 上配置本地代理服务器详细教程

Privoxy 是一个功能强大的开源网络代理软件&#xff0c;它可以帮助我们在 Linux 系统上搭建本地代理服务器。通过配置和使用 Privoxy&#xff0c;您可以实现更安全、匿名以及自定义过滤规则等高级特性。本文将详细介绍如何在 Linux 环境下利用 Privoxy 配置并运行本地代理服务器…

文字转语音怎么转?几种简单转换方法快速转换

将文本转换为语音&#xff0c;可以帮助那些有视觉障碍的人士更便捷地获取信息&#xff0c;以便于听觉上的理解和处理。对于那些需要进行多任务处理的人士&#xff0c;例如在开车或做家务时需要获取信息的人&#xff0c;文字转语音也可以提供便利。那么怎么将文字转换成语音呢&a…

【100天精通python】Day47:python网络编程_Web编程,前后端以及静态服务器

目录 1 网络编程与web编程 1.1 网络编程 1.2 web编程 1.3 前后端交互的基本原理 2 Web开发基础 2.1 HTTP协议 2.2 Web服务器 2.3 前端基础 2.3.1 HTML&#xff08;超文本标记语言&#xff09; 2. 3.2 CSS&#xff08;层叠样式表&#xff09; 2.3.3 JavaScript 2.…

【pyqt5界面化工具开发-1】运行界面程序框架+按钮+文本+位置的设置

目录 一、运行界面化框架 二、基础控件 目标1&#xff1a;新增按钮 目标2&#xff1a;新增文本&#xff1a; 目标3&#xff1a;设置位置 一、运行界面化框架 import sysfrom PyQt5.QtWidgets import QApplication,QWidgetif __name__ __main__:# 接收参数&#xff08;仅…

数据库的备份与分类以及日志

目录 1、数据库的概念 1.1、数据备份的重要性 1.2、造成数据丢失的原因 1.3、 数据库备份的分类 1.3.1、从物理与逻辑的角度&#xff0c; 1.3.2、原理图 1.3.3.1 完全备份&#xff1a; 1.3.2.2 差异备份 1.2.3.3、 增量备份 1.3.3、 备份方式比较 1.4、常见的备份方…