文末获取源码
开发语言:Java
使用框架:spring boot
前端技术:JavaScript、Vue 、css3
开发工具:IDEA/MyEclipse/Eclipse、Visual Studio Code
数据库:MySQL 5.7/8.0
数据库管理工具:phpstudy/Navicat
JDK版本:jdk1.8
Maven:apache-maven 3.8.1-bin
目录
一、前言介绍
二、系统功能分析
三、管理员功能模块
3.1后台首页模块
3.2用户管理模块
3.3开题报告模块
3.4中期报告管理模块
四、学生功能模块
4.1课题信息模块
4.2课题任务书管理模块
4.3论文定稿模块
五、老师功能模块
5.1论文定稿模块
六、教研主任功能模块
七、部分核心代码
7.1登录系统主要代码
7.2学生管理关键代码
7.3学生选题关键代码
系统使用springboot框架开发工具,使用比较成熟的Mysql数据库进行对系统前台及后台之间相关的数据交互,根据技术语言对数据库,结合需求进行修改维护,可以使得系统运行更具有稳定性和安全性,从而完成实现系统的开发。 毕业设计管理系统主要是为了用户方便对首页、申报课题、课题信息、学生选题、课题任务书、开题报告、中期检查、论文初稿、论文定稿、学生答辩等进行操作,也是为了更好的让管理员进行更好存储所有数据信息及快速方便的检索功能,对系统的各个模块是通过许多今天的发达系统做出合理的分析来确定考虑用户的可操作性,遵循开发的系统优化的原则,经过全面的调查和研究
使用毕业设计管理系统的分为管理员和用户、老师、教研主任、四个权限模块。
管理员所能使用的功能主要有管理员:首页、用户管理(管理员、学生、老师、教研主任)更多管理(申报课题、课题信息、学生选题、课题任务书、开题报告、中期检查、论文初稿、论文定稿、学生答辩)等。
学生可以实现首页、课题信息、学生选题、课题任务书、开题报告、中期检查、论文初稿、论文定稿、学生答辩。
老师可以实现首页、申报课题、课题信息、学生选题、课题任务书、开题报告、中期检查、论文初稿、论文定稿、学生答辩。
教研主任可以实现首页、用户管理(学生、老师)更多管理(申报课题、课题信息、学生答辩)。
管理员登录成功后进入到系统操作界面,可以对首页、用户管理(管理员、学生、老师、教研主任)更多管理(申报课题、课题信息、学生选题、课题任务书、开题报告、中期检查、论文初稿、论文定稿、学生答辩)等功能模块进行相对应操作。
通过列表可以获取昵称、用户名、学生姓名、学生性别、学生学号、学校名称、专业名称等信息,进行修改或删除操作
通过列表可以获取课题名称、课题学校、课题学院、课题专业、指导老师、老师姓名、选题学生、学生姓名、开题审核等信息,进行删除或修改操作
该页面可以查看课题名称、课题学校、课题学院、课题专业、指导老师、老师姓名、学生姓名、中期报告审核等进行修改操作,以及图片的删除操作
学生进入到系统界面,可以对课题信息、学生选题、课题任务书、开题报告、中期检查、论文初稿、论文定稿、学生答辩等功能模块操作
通过列表可以获取课题名称、课题学校、课题学院、课题专业、指导老师、老师姓名、老师工号、课题附件等进行详情、修改等操作
课题任务书列表页面可查看课题名称、课题学校、课题学院、课题专业、指导老师、老师姓名、选题学生、学生姓名等信息
老师进入到系统界面,可以对首页、申报课题、课题信息、学生选题、课题任务书、开题报告、中期检查、论文初稿、论文定稿、学生答辩等功能模块操作
通过论文定稿可以查看选题学生、学生姓名、论文定稿、定稿审核、老师评分等操作
教研主任进入到系统界面,可以对首页、用户管理(学生、老师)更多管理(申报课题、课题信息、学生答辩)等功能
/**
* 登录
* @param data
* @param httpServletRequest
* @return
*/
@PostMapping("login")
public Map login(@RequestBody Map data, HttpServletRequest httpServletRequest) {
log.info("[执行登录接口]");
String username = data.get("username");
String email = data.get("email");
String phone = data.get("phone");
String password = data.get("password");
List resultList = null;
Map map = new HashMap<>();
if(username != null && "".equals(username) == false){
map.put("username", username);
resultList = service.select(map, new HashMap<>()).getResultList();
}
else if(email != null && "".equals(email) == false){
map.put("email", email);
resultList = service.select(map, new HashMap<>()).getResultList();
}
else if(phone != null && "".equals(phone) == false){
map.put("phone", phone);
resultList = service.select(map, new HashMap<>()).getResultList();
}else{
return error(30000, "账号或密码不能为空");
}
if (resultList == null || password == null) {
return error(30000, "账号或密码不能为空");
}
//判断是否有这个用户
if (resultList.size()<=0){
return error(30000,"用户不存在");
}
User byUsername = (User) resultList.get(0);
Map groupMap = new HashMap<>();
groupMap.put("name",byUsername.getUserGroup());
List groupList = userGroupService.select(groupMap, new HashMap<>()).getResultList();
if (groupList.size()<1){
return error(30000,"用户组不存在");
}
UserGroup userGroup = (UserGroup) groupList.get(0);
//查询用户审核状态
if (!StringUtils.isEmpty(userGroup.getSourceTable())){
String sql = "select examine_state from "+ userGroup.getSourceTable() +" WHERE user_id = " + byUsername.getUserId();
String res = String.valueOf(service.runCountSql(sql).getSingleResult());
if (res==null){
return error(30000,"用户不存在");
}
if (!res.equals("已通过")){
return error(30000,"该用户审核未通过");
}
}
//查询用户状态
if (byUsername.getState()!=1){
return error(30000,"用户非可用状态,不能登录");
}
String md5password = service.encryption(password);
if (byUsername.getPassword().equals(md5password)) {
// 存储Token到数据库
AccessToken accessToken = new AccessToken();
accessToken.setToken(UUID.randomUUID().toString().replaceAll("-", ""));
accessToken.setUser_id(byUsername.getUserId());
tokenService.save(accessToken);
// 返回用户信息
JSONObject user = JSONObject.parseObject(JSONObject.toJSONString(byUsername));
user.put("token", accessToken.getToken());
JSONObject ret = new JSONObject();
ret.put("obj",user);
return success(ret);
} else {
return error(30000, "账号或密码不正确");
}
}
@RequestMapping(value = {"/count_group", "/count"})
public Map count(HttpServletRequest request) {
Query count = service.count(service.readQuery(request), service.readConfig(request));
return success(count.getResultList());
}
public StudentTopicSelectionController(StudentTopicSelectionService service) {
setService(service);
}
@PostMapping("/add")
@Transactional
public Map add(HttpServletRequest request) throws IOException {
Map paramMap = service.readBody(request.getReader());
this.addMap(paramMap);
return success(1);
}
}