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();
}
}
新生报到系统分为学院管理员,宿舍管理员,财务管理员,辅导员,学生五种登录身份
学院管理员界面登入后台后有个人信息的展示,可对余下的四种身份信息进行增删改查,可进行对高考信息的导入导出,对报到情况的统计,发放通知等功能
宿舍管理员登入后台后有个人信息的展示,可进行宿舍的管理(宿舍信息管理),对学生宿舍进行分配,对学生进行报到的一个情况统计,以及消息的通知功能
财务管理员登入后台后有个人信息的展示,可进行一个缴费信息的导入导出,发放缴费信息的通知,缴费情况的统计
辅导员登入后台有个人信息的展示,班级信息的一个显示,对学生报到的一个统计,发放通知是相关功能
学生端分为未注册和已注册,未注册的学生要进行自主注册,登录,通过录取通知单的编码进行识别。注册过的学生登录后展示自己的个人信息,(班级学院宿舍等),能接受到学院,宿管,财务,辅导员的通知,能够在线报道,能够在线缴费等。