基于springboot的研究生志愿填报辅助系统调查问卷【源码论文】

  博主介绍:👉全网个人号和企业号粉丝40W+,每年辅导几千名大学生较好的完成毕业设计,专注计算机软件领域的项目研发,不断的进行新技术的项目实战👈
⭐️热门专栏推荐订阅⭐️ 订阅收藏起来,防止下次找不到

🔎千套JAVA实战项目持续更新中~

🔎上百套小程序实战项目持续更新中~

🔎上百套Python实战项目持续更新中
有需求的各位可以先收藏起来,还有大家在毕设选题,开题报告有疑惑的都可以找我,给你参考意见,需要开题模板的可以私信留言告诉我

❤️文末获取源码联系❤️        ⚠️一定要先收藏⚠️

4系统设计

4.1 软件功能模块设计

研究生志愿填报辅助系统分为二个模块,分别是管理员功能模块和用户功能模块。管理员功能模块包括:院校信息、调查问卷、问卷记录、院校招生功能,用户功能模块包括:调查问卷、问卷记录、院校招生,网站总体功能如下图所示[12]。

图4-1研究生志愿填报辅助系统总体功能模块图

4.2 数据库设计

4.2.1 概念模型设计

概念模型是对现实中的问题出现的事物的进行描述,ER图是由实体及其关系构成的图,通过E-R图可以清楚地描述系统涉及到的实体之间的相互关系。

调查问卷包括:问卷名称、问卷题目、注意事项、发布时间、用户名。

4.2.2 数据表

学习程序设计,如果要了解数据库管理系统或者是根据需求而制定的系统接口,就必须创建一种数据库管理系统的模式,用来保存数据资料,这样当在应用编程过程中时候,就不需要再向操作系统页面上加载信息,进而增加了整个系统的工作效率。信息库管理系统中保存着许多数据,应该说是一个管理信息系统建设的中心和基础,而信息库管理系统也为管理信息系统建设提出了新增、删除、更改和搜索的操作功能,使管理信息系统建设能够迅速地查询所需要的数据,而不会直接从程序代码中查找。信息库管理系统通过将信息表的各个组成部分按照特定的方法准确地合并,排序和组成信息库管理系统。

本系统采用的是MySQL数据库存储数据,系统中使用到的主要数据表的具体展示部分如下所示。

表4-1:录取概况

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

  主键

addtime

timestamp

创建时间

CURRENT_TIMESTAMP

yuanxiaomingcheng

varchar

200

院校名称

yuanxiaoleixing

varchar

200

院校类型

gaikuangtupian

longtext

4294967295

概况图片

luqugaikuang

varchar

200

录取概况

xiangqingshuoming

longtext

4294967295

详情说明

faburiqi

date

发布日期

表4-2:经验分享

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

  主键

addtime

timestamp

创建时间

CURRENT_TIMESTAMP

title

varchar

200

帖子标题

content

longtext

4294967295

帖子内容

parentid

bigint

父节点id

userid

bigint

用户id

username

varchar

200

用户名

avatarurl

longtext

4294967295

头像

isdone

varchar

200

状态

表4-3:院校招生

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

  主键

addtime

timestamp

创建时间

CURRENT_TIMESTAMP

yuanxiaomingcheng

varchar

200

院校名称

yuanxiaoleixing

varchar

200

院校类型

zhaoshengrenshu

int

招生人数

baokaorenshu

int

报考人数

luqurenshu

int

录取人数

dengjiriqi

date

登记日期

xinxishuoming

longtext

4294967295

信息说明

表4-4:调查问卷

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

  主键

addtime

timestamp

创建时间

CURRENT_TIMESTAMP

wenjuanmingcheng

varchar

200

问卷名称

wenjuantimu

varchar

200

问卷题目

zhuyishixiang

varchar

200

注意事项

fabushijian

datetime

发布时间

yonghuming

varchar

200

用户名

表4-5:院校信息

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

  主键

addtime

timestamp

创建时间

CURRENT_TIMESTAMP

yuanxiaomingcheng

varchar

200

院校名称

yuanxiaoleixing

varchar

200

院校类型

yuanxiaotupian

longtext

4294967295

院校图片

yuanxiaolishu

varchar

200

院校隶属

zixundianhua

varchar

200

咨询电话

yuanxiaoyouxiang

varchar

200

院校邮箱

yuanxiaowangzhi

varchar

200

院校网址

xueke

varchar

200

开设专业

shengfen

varchar

200

所在省份

yuanxiaojieshao

longtext

4294967295

院校介绍

clicktime

datetime

最近点击时间

表4-6:配置文件

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

  主键

name

varchar

100

配置参数名称

value

varchar

100

配置参数值

表4-7:学科

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

  主键

addtime

timestamp

创建时间

CURRENT_TIMESTAMP

xueke

varchar

200

学科

表4-8:院校类型

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

  主键

addtime

timestamp

创建时间

CURRENT_TIMESTAMP

yuanxiaoleixing

varchar

200

院校类型

表4-9:聊天助手表

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

  主键

addtime

timestamp

创建时间

CURRENT_TIMESTAMP

ask

varchar

200

提问

reply

longtext

4294967295

回复

表4-10:问卷记录

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

  主键

addtime

timestamp

创建时间

CURRENT_TIMESTAMP

wenjuanmingcheng

varchar

200

问卷名称

wenjuantimu

varchar

200

问卷题目

wenjuanhuida

varchar

200

问卷回答

canyushijian

datetime

参与时间

yonghuming

varchar

200

用户名

crossuserid

bigint

跨表用户id

crossrefid

bigint

跨表主键id

shhf

longtext

4294967295

回复内容

表4-11:用户

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

  主键

addtime

timestamp

创建时间

CURRENT_TIMESTAMP

yonghuming

varchar

200

用户名

mima

varchar

200

密码

xingming

varchar

200

姓名

touxiang

longtext

4294967295

头像

xingbie

varchar

200

性别

nianling

int

年龄

shouji

varchar

200

手机

表4-12:在线咨询

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

  主键

addtime

timestamp

创建时间

CURRENT_TIMESTAMP

userid

bigint

用户id

adminid

bigint

管理员id

ask

longtext

4294967295

提问

reply

longtext

4294967295

回复

isreply

int

是否回复

表4-13:用户表

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

  主键

username

varchar

100

用户名

password

varchar

100

密码

role

varchar

100

角色

管理员

addtime

timestamp

新增时间

CURRENT_TIMESTAMP

表4-14:关于我们

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

  主键

addtime

timestamp

创建时间

CURRENT_TIMESTAMP

title

varchar

200

标题

subtitle

varchar

200

副标题

content

longtext

4294967295

内容

picture1

longtext

4294967295

图片1

picture2

longtext

4294967295

图片2

picture3

longtext

4294967295

图片3

表4-15:token表

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

  主键

userid

bigint

用户id

username

varchar

100

用户名

tablename

varchar

100

表名

role

varchar

100

角色

token

varchar

200

密码

addtime

timestamp

新增时间

CURRENT_TIMESTAMP

expiratedtime

timestamp

过期时间

CURRENT_TIMESTAMP

表4-16:收藏表

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

  主键

addtime

timestamp

创建时间

CURRENT_TIMESTAMP

userid

bigint

用户id

refid

bigint

商品id

tablename

varchar

200

表名

name

varchar

200

名称

picture

longtext

4294967295

图片

type

varchar

200

类型(1:收藏,21:赞,22:踩,31:竞拍参与,41:关注)

1

inteltype

varchar

200

推荐类型

remark

varchar

200

备注

表4-17:省份

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

  主键

addtime

timestamp

创建时间

CURRENT_TIMESTAMP

shengfen

varchar

200

省份

表4-18:公告信息

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

  主键

addtime

timestamp

创建时间

CURRENT_TIMESTAMP

title

varchar

200

标题

introduction

longtext

4294967295

简介

picture

longtext

4294967295

图片

content

longtext

4294967295

内容

5 系统功能实现

5.1前台系统功能实现

当游客打开系统的网址后,首先看到的就是首页界面。在这里,游客能够看到研究生志愿填报辅助系统的导航条显示首页、院校信息、公告信息、后台管理、在线咨询、个人中心等,系统首页界面如图5-1所示:

图5-1 系统首页界面

当用户进入系统进行相关操作前必须进行注册、登录,用户注册、登录界面如图5-2所示:

图5-2 用户注册、用户登录界面

用户点击院校信息,在院校信息页面的搜索栏输入院校名称、学科分类、评枯等级、所在省份,进行查询,还可以查看院校名称、院校类型、院校图片、院校性质、院校隶属、咨询电话、院校邮箱、院校网址等信息,然后进行收藏等,如图5-3所示:

图5-3院校信息页面

点击在线咨询,用户可以输入内容进行咨询,管理员可以在后台进行查看并回复,达到用户和管理员交流的效果,如图5-4所示:

图5-4在线咨询页面

用户点击个人中心,在个人中心页面可以更新信息,并且可以对我的收藏进行详细操作,如图5-5所示:

图5-5个人中心页面

5.2管理员模块实现

管理员登录,在登录页面正确输入用户名和密码后,点击登录操作;如图5-6所示。                               

图5-6 管理员登录界面

管理员进入主页面,主要功能包括对系统首页、个人中心、用户管理、院校类型管理、院校信息管理、调查问卷管理、问卷记录管理、院校招生管理、系统管理等进行操作。管理员主页面如图5-7所示:

图5-7 管理员主界面

代码实现

package com.controller;
 
import java.util.Arrays;
import java.util.Calendar;
import java.util.Date;
import java.util.Map;
 
import javax.servlet.http.HttpServletRequest;
 
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.PostMapping;
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.ResponseBody;
import org.springframework.web.bind.annotation.RestController;
 
import com.annotation.IgnoreAuth;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.entity.TokenEntity;
import com.entity.UserEntity;
import com.service.TokenService;
import com.service.UserService;
import com.utils.CommonUtil;
import com.utils.MD5Util;
import com.utils.MPUtil;
import com.utils.PageUtils;
import com.utils.R;
import com.utils.ValidatorUtils;
 
/**
 * 登录相关
 */
@RequestMapping("users")
@RestController
public class UserController{
	
	@Autowired
	private UserService userService;
	
	@Autowired
	private TokenService tokenService;
 
	/**
	 * 登录
	 */
	@IgnoreAuth
	@PostMapping(value = "/login")
	public R login(String username, String password, String captcha, HttpServletRequest request) {
		UserEntity user = userService.selectOne(new EntityWrapper<UserEntity>().eq("username", username));
		if(user==null || !user.getPassword().equals(password)) {
			return R.error("账号或密码不正确");
		}
		String token = tokenService.generateToken(user.getId(),username, "users", user.getRole());
		return R.ok().put("token", token);
	}
	
	/**
	 * 注册
	 */
	@IgnoreAuth
	@PostMapping(value = "/register")
	public R register(@RequestBody UserEntity user){
//    	ValidatorUtils.validateEntity(user);
    	if(userService.selectOne(new EntityWrapper<UserEntity>().eq("username", user.getUsername())) !=null) {
    		return R.error("用户已存在");
    	}
        userService.insert(user);
        return R.ok();
    }
 
	/**
	 * 退出
	 */
	@GetMapping(value = "logout")
	public R logout(HttpServletRequest request) {
		request.getSession().invalidate();
		return R.ok("退出成功");
	}
	
	/**
     * 密码重置
     */
    @IgnoreAuth
	@RequestMapping(value = "/resetPass")
    public R resetPass(String username, HttpServletRequest request){
    	UserEntity user = userService.selectOne(new EntityWrapper<UserEntity>().eq("username", username));
    	if(user==null) {
    		return R.error("账号不存在");
    	}
    	user.setPassword("123456");
        userService.update(user,null);
        return R.ok("密码已重置为:123456");
    }
	
	/**
     * 列表
     */
    @RequestMapping("/page")
    public R page(@RequestParam Map<String, Object> params,UserEntity user){
        EntityWrapper<UserEntity> ew = new EntityWrapper<UserEntity>();
    	PageUtils page = userService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.allLike(ew, user), params), params));
        return R.ok().put("data", page);
    }
 
	/**
     * 列表
     */
    @RequestMapping("/list")
    public R list( UserEntity user){
       	EntityWrapper<UserEntity> ew = new EntityWrapper<UserEntity>();
      	ew.allEq(MPUtil.allEQMapPre( user, "user")); 
        return R.ok().put("data", userService.selectListView(ew));
    }
 
    /**
     * 信息
     */
    @RequestMapping("/info/{id}")
    public R info(@PathVariable("id") String id){
        UserEntity user = userService.selectById(id);
        return R.ok().put("data", user);
    }
    
    /**
     * 获取用户的session用户信息
     */
    @RequestMapping("/session")
    public R getCurrUser(HttpServletRequest request){
    	Long id = (Long)request.getSession().getAttribute("userId");
        UserEntity user = userService.selectById(id);
        return R.ok().put("data", user);
    }
 
    /**
     * 保存
     */
    @PostMapping("/save")
    public R save(@RequestBody UserEntity user){
//    	ValidatorUtils.validateEntity(user);
    	if(userService.selectOne(new EntityWrapper<UserEntity>().eq("username", user.getUsername())) !=null) {
    		return R.error("用户已存在");
    	}
        userService.insert(user);
        return R.ok();
    }
 
    /**
     * 修改
     */
    @RequestMapping("/update")
    public R update(@RequestBody UserEntity user){
//        ValidatorUtils.validateEntity(user);
    	UserEntity u = userService.selectOne(new EntityWrapper<UserEntity>().eq("username", user.getUsername()));
    	if(u!=null && u.getId()!=user.getId() && u.getUsername().equals(user.getUsername())) {
    		return R.error("用户名已存在。");
    	}
        userService.updateById(user);//全部更新
        return R.ok();
    }
 
    /**
     * 删除
     */
    @RequestMapping("/delete")
    public R delete(@RequestBody Long[] ids){
        userService.deleteBatchIds(Arrays.asList(ids));
        return R.ok();
    }
}

源码获取

大家点赞、收藏、关注 ,让更多需要的同学看到

不同开发语言专栏推荐订阅

🔎千套JAVA实战项目持续更新中~

🔎上百套小程序实战项目持续更新中~

🔎上百套Python实战项目持续更新中

👇下方有我的微信名片👇

  • 21
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值