ssm新生报到系统源码和论文PPT

news/2024/7/7 19:33:01

ssm新生报到系统源码和论文PPT004

开发环境

开发工具:idea 

 数据库mysql5.7+(mysql5.7最佳)

 数据库链接工具:navcat,小海豚等

开发技术:java  ssm tomcat8.5

选题依据及意义

  每学年九月份随着新生的入校,学校工作中的重点都会集中到学生信息的采集环节中。近年来,高校招生规模不断扩大,新生人数逐年递增,传统的纸张式的新生报到模式,如人工办理新生入学手续、人工统计报到情况等等方式已不能满足需要。随着计算机网络技术的迅猛发展及电子档案信息管理系统的广泛应用, 以往的单机管理系统被彻底改变,基于网络的新生报到系统开始出现,开始实施新生入学电子注册制度, 软件技术进步和硬件的全面升级, 有力地推动了高校新生入学管理模式的全面创新。但是, 随着时代的发展和国家教育部宏观调控的需要, 既有的新生入学管理模块已经不能完全适应新形势下高校入学管理的要求, 入学管理工作与相关软件相脱节等问题开始浮现出来。学校管理信息化的飞速发展,新生数据的采集要求越来越精细。如何快速、准确、有效的完成学生信息的采集工作,已经成为每个高校都需要面对的一项重要工作。因此, 需要对入学信息管理方式进行改革,对现有的新生入学管理平台作更进一步的完善和提高。为新生提供方便、高效、一体化的入学报到环境,加强各个部门之间的信息流通和工作配合,使新生信息能够及时、准确更新,从而提高学校各部门的工作效率。

 

package com.controller;

import java.lang.reflect.Array;
import java.text.SimpleDateFormat;
import java.util.*;
import javax.servlet.http.HttpServletRequest;

import com.annotation.IgnoreAuth;
import com.entity.DormitoryXueshengEntity;
import com.entity.PayEntity;
import com.entity.UserEntity;
import com.entity.view.XueshengView;
import com.service.*;
import org.apache.commons.lang3.StringUtils;
import org.apache.jasper.tagplugins.jstl.core.ForEach;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.stereotype.Service;
import org.springframework.web.bind.annotation.*;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.baomidou.mybatisplus.mapper.Wrapper;

import com.entity.XueshengEntity;

import com.utils.PageUtils;
import com.utils.R;

/**
 * 学生
 * 后端接口
 * @author
 * @email
 * @date 2023-01-30
*/
@RestController
@Controller
@RequestMapping("/xuesheng")
public class XueshengController {
    private static final Logger logger = LoggerFactory.getLogger(XueshengController.class);

    @Autowired
    private XueshengService xueshengService;

    @Autowired
    private PayService payService; // 缴费信息

    @Autowired
    private TokenService tokenService;

    @Autowired
    private DormitoryXueshengService dormitoryXueshengService;// 宿舍与学生关系

    /**
    * 后端列表
    */
    @RequestMapping("/page")
    public R page(@RequestParam Map<String, Object> params){
        logger.debug("Controller:"+this.getClass().getName()+",page方法");
        PageUtils page = xueshengService.queryPage(params);
        return R.ok().put("data", page);
    }
    /**
    * 后端详情
    */
    @RequestMapping("/info/{id}")
    public R info(@PathVariable("id") Long id){
        logger.debug("Controller:"+this.getClass().getName()+",info方法");
        XueshengEntity xuesheng = xueshengService.selectById(id);
        if(xuesheng!=null){
            return R.ok().put("data", xuesheng);
        }else {
            return R.error(511,"查不到数据");
        }

    }

    /**
    * 后端保存
    */
    @RequestMapping("/save")
    public R save(@RequestBody XueshengEntity xuesheng, HttpServletRequest request){
        logger.debug("Controller:"+this.getClass().getName()+",save");
        Wrapper<XueshengEntity> queryWrapper = new EntityWrapper<XueshengEntity>()
            .eq("account", xuesheng.getAccount())
            .eq("notification_code", xuesheng.getNotificationCode())
            .eq("phone", xuesheng.getPhone())
            ;
        logger.info("sql语句:"+queryWrapper.getSqlSegment());
        XueshengEntity xueshengEntity = xueshengService.selectOne(queryWrapper);
        xuesheng.setMima("");
        if("".equals(xuesheng.getPortraitPhoto()) || "null".equals(xuesheng.getPortraitPhoto())){
            xuesheng.setPortraitPhoto(null);
        }
        if(xueshengEntity==null){
            xueshengService.insert(xuesheng);

            PayEntity<Object> pay = new PayEntity<>();
            pay.setPayFlag(2);//未交费
            pay.setMoneyTime(new Date());
            pay.setCreateTime(new Date());
            pay.setXueshengId(xuesheng.getId());//学生id
            pay.setMoney(33.3);
            payService.insert(pay);
            return R.ok();
        }else {
            return R.error(511,"账户,通知书编码,手机号已被使用");
        }
    }

    /**
    * 修改
    */
    @RequestMapping("/update")
    public R update(@RequestBody XueshengEntity xuesheng, HttpServletRequest request){
        logger.debug("Controller:"+this.getClass().getName()+",update");
        //根据字段查询是否有相同数据
        Wrapper<XueshengEntity> queryWrapper = new EntityWrapper<XueshengEntity>()
            .notIn("id",xuesheng.getId())
            .eq("account", xuesheng.getAccount())
            .eq("notification_code", xuesheng.getNotificationCode())
            .eq("phone", xuesheng.getPhone())
            ;
        logger.info("sql语句:"+queryWrapper.getSqlSegment());
        XueshengEntity xueshengEntity = xueshengService.selectOne(queryWrapper);
        if("".equals(xuesheng.getPortraitPhoto()) || "null".equals(xuesheng.getPortraitPhoto())){
                xuesheng.setPortraitPhoto(null);
        }
        if(xueshengEntity==null){
            xueshengService.updateById(xuesheng);//根据id更新
            return R.ok();
        }else {
            return R.error(511,"账户,通知书编码,手机号已被使用");
        }
    }

    /**
     * 注册
     */
    @RequestMapping("/register")
    public R register(@RequestBody XueshengEntity xuesheng, HttpServletRequest request){
        logger.debug("Controller:"+this.getClass().getName()+",register");
        //编号姓名一致 并且账户为空的才是注册
        Wrapper<XueshengEntity> queryWrapper1 = new EntityWrapper<XueshengEntity>()
                .in("notification_code",xuesheng.getNotificationCode())
                .in("xingming",xuesheng.getXingming())
                .addFilterIfNeed(true,"account = ''")
                ;
        //查询账户没有被使用
        Wrapper<XueshengEntity> queryWrapper2 = new EntityWrapper<XueshengEntity>()
                .in("account",xuesheng.getAccount());
        logger.info("sql语句1:"+queryWrapper1.getSqlSegment());
        logger.info("sql语句2:"+queryWrapper1.getSqlSegment());
        XueshengEntity xueshengEntity1 = xueshengService.selectOne(queryWrapper1);
        XueshengEntity xueshengEntity2 = xueshengService.selectOne(queryWrapper2);
        if(xueshengEntity1!=null && xueshengEntity2==null){//编号未被其他账户使用  并且账户不存在为注册用户
            xuesheng.setId(xueshengEntity1.getId());
            xueshengService.updateById(xuesheng);//根据id更新
            return R.ok();
        }else {
            return R.error(511,"通知书编号已经被使用 或 账户已存在");
        }
    }



    /**
    * 删除
    */
    @RequestMapping("/delete")
    public R delete(@RequestBody Long[] ids){
        logger.debug("Controller:"+this.getClass().getName()+",delete");
        for(Long id :ids){
            PayEntity pay = payService.selectOne(new EntityWrapper<PayEntity>().in("xuesheng_id", String.valueOf(id)));
            Integer count = dormitoryXueshengService.selectCount(new EntityWrapper<DormitoryXueshengEntity>().in("xuesheng_id", String.valueOf(id)));//查询学生id是否绑定用宿舍
            if(pay!=null){
                XueshengEntity xueshengEntity = xueshengService.selectById(id);
                return R.error(512,"姓名为:"+xueshengEntity.getXingming()+"的账户下有缴费记录");
            }else if(count>0){
                XueshengEntity xueshengEntity = xueshengService.selectById(id);
                return R.error(512,"姓名为:"+xueshengEntity.getXingming()+"的账户下有住宿信息未清除");
            }
        }
        xueshengService.deleteBatchIds(Arrays.asList(ids));
        return R.ok();
    }

    /**
     * 登录
     */
    @IgnoreAuth
    @PostMapping(value = "/login")
    public R login(String username, String password, String captcha, HttpServletRequest request) {
        XueshengEntity xuesheng = xueshengService.selectOne(new EntityWrapper<XueshengEntity>().eq("account", username));
        if(xuesheng==null || !xuesheng.getMima().equals(password)) {
            return R.error("账号或密码不正确");
        }
        String token = tokenService.generateToken(xuesheng.getId(),username, "users", "学生");
        R r = R.ok();
        r.put("token", token);
        r.put("role","学生");
        r.put("userId",xuesheng.getId());
        return r;
    }


    /**
     * 获取用户的session用户信息
     */
    @RequestMapping("/session")
    public R getCurrUser(HttpServletRequest request){
        Integer id = (Integer)request.getSession().getAttribute("userId");
        XueshengEntity xueshengEntity = xueshengService.selectById(id);
        return R.ok().put("data", xueshengEntity);
    }



}

package com.controller;

import java.text.SimpleDateFormat;
import java.util.*;
import javax.servlet.http.HttpServletRequest;

import org.apache.commons.lang3.StringUtils;
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.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.entity.DormitoryXueshengEntity;

import com.service.DormitoryXueshengService;
import com.utils.PageUtils;
import com.utils.R;

/**
 * 宿舍与学生一对多关系表
 * 后端接口
 * @author
 * @email
 * @date 2021-01-30
*/
@RestController
@Controller
@RequestMapping("/dormitoryXuesheng")
public class DormitoryXueshengController {
    private static final Logger logger = LoggerFactory.getLogger(DormitoryXueshengController.class);

    @Autowired
    private DormitoryXueshengService dormitoryXueshengService;

    /**
    * 后端列表
    */
    @RequestMapping("/page")
    public R page(@RequestParam Map<String, Object> params){
        logger.debug("Controller:"+this.getClass().getName()+",page方法");
        PageUtils page = dormitoryXueshengService.queryPage(params);
        return R.ok().put("data", page);
    }
    /**
    * 后端详情
    */
    @RequestMapping("/info/{id}")
    public R info(@PathVariable("id") Long id){
        logger.debug("Controller:"+this.getClass().getName()+",info方法");
        DormitoryXueshengEntity dormitoryXuesheng = dormitoryXueshengService.selectById(id);
        if(dormitoryXuesheng!=null){
            return R.ok().put("data", dormitoryXuesheng);
        }else {
            return R.error(511,"查不到数据");
        }

    }

    /**
    * 后端保存
    */
    @RequestMapping("/save")
    public R save(@RequestBody DormitoryXueshengEntity dormitoryXuesheng, HttpServletRequest request){
        logger.debug("Controller:"+this.getClass().getName()+",save");
        Wrapper<DormitoryXueshengEntity> queryWrapper = new EntityWrapper<DormitoryXueshengEntity>()
            .eq("xuesheng_id", dormitoryXuesheng.getXueshengId())
            ;
        logger.info("sql语句:"+queryWrapper.getSqlSegment());
        DormitoryXueshengEntity dormitoryXueshengEntity = dormitoryXueshengService.selectOne(queryWrapper);
        if(dormitoryXueshengEntity==null){
            dormitoryXueshengService.insert(dormitoryXuesheng);
            return R.ok();
        }else {
            return R.error(511,"该学生已经绑定过宿舍");
        }
    }

    /**
    * 修改
    */
    @RequestMapping("/update")
    public R update(@RequestBody DormitoryXueshengEntity dormitoryXuesheng, HttpServletRequest request){
        logger.debug("Controller:"+this.getClass().getName()+",update");
        //根据字段查询是否有相同数据
        Wrapper<DormitoryXueshengEntity> queryWrapper = new EntityWrapper<DormitoryXueshengEntity>()
            .notIn("id",dormitoryXuesheng.getId())
            .eq("xuesheng_id", dormitoryXuesheng.getXueshengId())
            ;
        logger.info("sql语句:"+queryWrapper.getSqlSegment());
        DormitoryXueshengEntity dormitoryXueshengEntity = dormitoryXueshengService.selectOne(queryWrapper);
        if(dormitoryXueshengEntity==null){
            dormitoryXueshengService.updateById(dormitoryXuesheng);//根据id更新
            return R.ok();
        }else {
            return R.error(511,"该学生已经绑定过宿舍");
        }
    }


    /**
    * 删除
    */
    @RequestMapping("/delete")
    public R delete(@RequestBody Long[] ids){
        logger.debug("Controller:"+this.getClass().getName()+",delete");
        dormitoryXueshengService.deleteBatchIds(Arrays.asList(ids));
        return R.ok();
    }
}

 

新生报到系统分为学院管理员,宿舍管理员,财务管理员,辅导员,学生五种登录身份

学院管理员界面登入后台后有个人信息的展示,可对余下的四种身份信息进行增删改查,可进行对高考信息的导入导出,对报到情况的统计,发放通知等功能

宿舍管理员登入后台后有个人信息的展示,可进行宿舍的管理(宿舍信息管理),对学生宿舍进行分配,对学生进行报到的一个情况统计,以及消息的通知功能

财务管理员登入后台后有个人信息的展示,可进行一个缴费信息的导入导出,发放缴费信息的通知,缴费情况的统计

辅导员登入后台有个人信息的展示,班级信息的一个显示,对学生报到的一个统计,发放通知是相关功能

学生端分为未注册和已注册,未注册的学生要进行自主注册,登录,通过录取通知单的编码进行识别。注册过的学生登录后展示自己的个人信息,(班级学院宿舍等),能接受到学院,宿管,财务,辅导员的通知,能够在线报道,能够在线缴费等。


http://lihuaxi.xjx100.cn/news/1430811.html

相关文章

手动创建一个DOCKER镜像

1. 我们先使用C语言写一个hello-world程序 vim hello.c # include <stdio.h>int main() {print("hello docker\n"); } 2. 将hello.c文件编译成二进制文件, 需要安装工具 yum install gcc yum install glibc-static 开始编译 gcc -static hello.c -o hello 编译…

如何通过Pytest的插件,轻松切换自动化测试的环境地址?

前言 前面小编介绍了如何通过Pytest的插件来实现自动化测试的环境的切换&#xff0c;当时使用的方法是通过钩子函数进行获取命令行参数值&#xff0c;然后通过提前配置好的参数进行切换测试环境地址。加我VX&#xff1a;atstudy-js 回复“测试”&#xff0c;进入 自动化测试学…

Structure needs cleaning fsimage文件系统损坏修复

最近清除数据的时候发现有些文件无法rm [rootnode101 application_1691504014432_0002]# rm -rf ls:* [rootnode101 application_1691504014432_0002]# ls ls: 无法访问flink-dist-cache-8f72398e-9254-42d4-a14d-a0def99b493d: Structure needs cleaning以下操作可能会删除文件…

iview+treeSelect组件,我是如何一步步手动实现全选功能的

如果我掏出下图&#xff0c;阁下除了私信我加入学习群&#xff0c;还能如何应对&#xff1f; 正文开始 前言一、历史问题二、通过监听select事件实现全选不靠谱&#xff01;&#xff01;&#xff01;三、 通过外部事件控制树选择组件四、render函数创建组件4.1 不得不说的h函数…

taro h5列表拖拽排序 --- sortablejs 和 react-sortable-hoc

描述&#xff1a;列表&#xff0c;拖拽排序&#xff0c;只测试了h5 一、sortablejs 文档&#xff1a;http://www.sortablejs.com/ 1.安装sortablejs 2、引入 import Sortable from sortablejs3、页面 const [list, setList] useState([{id: item-1,content: 选项1 }, {id…

消息队列常见问题(1)-如何保障不丢消息

目录 1. 为什么消息队列会丢消息&#xff1f; 2. 怎么保障消息可靠传递&#xff1f; 2.1 生产者不丢消息 2.2 服务端不丢消息 2.3 消费者不丢消息 3. 消息丢失如何快速止损&#xff1f; 3.1 完善监控 3.2 完善止损工具 1. 为什么消息队列会丢消息&#xff1f; 现在主流…

springboot项目get请求下划线转驼峰@JsonProperty注解失效问题

问题&#xff1a;解决sprigboot项目get请求中有下划线的入参参数&#xff0c;如&#xff1a;first_name&#xff0c;希望在项目中将下划线格式转成firstName&#xff0c;用JsonProperty注解发现失效问题 1.核查&#xff1a;JsonProperty注解对应包是否正确 正确包&#xff1a…

k8s--使用cornJob定时执行sql文件

CronJob apiVersion: batch/v1beta1 kind: CronJob metadata:name: hello spec:schedule: "0 * * * *"jobTemplate:spec:template:spec:containers:- name: postgres-alpineimage: xxxximagePullPolicy: IfNotPresentcommand:- psql- -h- 数据库服务地址- -d- 数据库…