文末获取源码
开发语言:Java
使用框架:spring boot
前端技术:JavaScript、Vue.js 、css3
开发工具:IDEA/MyEclipse/Eclipse、Visual Studio Code
数据库:MySQL 5.7/8.0
数据库管理工具:phpstudy/Navicat
JDK版本:Java jdk8
Maven:apache-maven 3.8.1-bin
目录
一、前言介绍
在线考试报名系统由用户网上报名模块、考试模块和系统管理模块等三大模块组成。其中系统管理模块是进行考试资讯发布、考试报名,是系统运行的基础;查询子模块实现了学生考试信息推荐。考生通过自己的姓名和密码登陆系统,考试报名,进入考试安排界面后按照管理员预先设置好考试题目,自动生成试卷参加考试,考试完成后可以查看自己的考试成绩。本系统采取面对对象的开发模式进行软件的开发和硬体的架设,能很好的满足实际使用的需求,完善了对应的软体架设以及程序编码的工作,采取MySQL作为后台数据的主要存储单元,采用Spring Boot框架、Vue技术、Ajax技术进行业务系统的编码及其开发,实现了本系统的全部功能。本次报告,首先分析了研究的背景、作用、意义,为研究工作的合理性打下了基础。针对在线考试报名系统的各项需求以及技术问题进行分析,证明了系统的必要性和技术可行性,然后对设计系统需要使用的技术软件以及设计思想做了基本的介绍,最后来实现在线考试报名系统的部署运行使用它。
二、功能需求分析
2.1前端用户需求
(1)注册用户的功能如下:
(2)注册账号:用户填写个人信息,并验证手机号码。
(3)登录:根据账号密码进行登录操作。
(4)在线报名数据:用户可以在线进行报名提交。
(5)考试安排:用户可以根据考试时间进行考试安排。
(6)维护个人信息:用户因个人信息的变更可以随时修改自己注册信息。
(7)考试资讯:用户可以在系统浏览考试资讯信息。
(8)考试成绩:用户可以查看自己在线考试成绩数据。
2.2管理员功能如下
(1)修改密码:管理员可以随时修改自己进入系统的登录密码,以保证系统的安全性。
(2)试题信息进行处理:办理试卷考试成绩审核等。
(3)考试报名管理:对学生提交的考试报名进行审核。
(4)考试信息管理:对考试信息进行维护,添加、删除、修改信息。
(5)考试列表管理:对试卷信息进行分类维护,添加、删除、修改信息。
(6)资讯数据信息管理:发布、删除相关的资讯数据信息。
(7)考试成绩管理:对学生在线考试试卷进行审核,考试成绩的发布。
三、前台用户功能
3.1用户首页模块
3.2考试资讯模块
3.3考试列表模块
3.4个人信息模块
四、管理员功能模块
4.1用户管理模块
4.2考试资讯管理模块
4.3考试信息管理模块
4.4考试报名管理模块
4.5考试成绩管理模块
五、部分核心代码
5.1考试信息推荐列表的逻辑代码
-
@PostMapping(
"/add")
-
-
@Transactional
-
-
public
Map<
String,
Object>
add(
HttpServletRequest request) throws
IOException {
-
-
service.
insert(service.
readBody(request.
getReader()));
-
-
return
success(
1);
-
-
}
-
-
@Transactional
-
-
public
Map<
String,
Object>
addMap(
Map<String,Object> map){
-
-
service.
insert(map);
-
-
return
success(
1);
-
-
}
-
-
public
Map<
String,
Object>
readBody(
BufferedReader reader){
-
-
BufferedReader br =
null;
-
-
StringBuilder sb =
new
StringBuilder(
"");
-
-
try{
-
-
br = reader;
-
-
String str;
-
-
while ((str = br.
readLine()) !=
null){
-
-
sb.
append(str);
-
-
}
-
-
br.
close();
-
-
String json = sb.
toString();
-
-
return
JSON
Object.
parseObject(json,
Map.
class);
-
-
}
catch (
IOException e){
-
-
e.
printStackTrace();
-
-
}
finally{
-
-
if (
null != br){
-
-
try{
-
-
br.
close();
-
-
}
catch (
IOException e){
-
-
e.
printStackTrace();
-
-
}
-
-
}
-
-
}
-
-
return
null;
-
-
}
-
-
public
void
insert(
Map<String,Object> body){
-
-
StringBuffer sql =
new
StringBuffer(
"INSERT INTO ");
-
-
sql.
append(
"`").
append(table).
append(
"`").
append(
" (");
-
-
for (
Map.
Entry<
String,
Object>
entry:body.
entrySet()){
-
-
sql.
append(
"`"+
humpToLine(entry.
getKey())+
"`").
append(
",");
-
-
}
-
-
sql.
deleteCharAt(sql.
length()-
1);
-
-
sql.
append(
") VALUES (");
-
-
for (
Map.
Entry<
String,
Object>
entry:body.
entrySet()){
-
-
Object value = entry.
getValue();
-
-
if (value
instanceof
String){
-
-
sql.
append(
"'").
append(entry.
getValue()).
append(
"'").
append(
",");
-
-
}
else {
-
-
sql.
append(entry.
getValue()).
append(
",");
-
-
}
-
-
}
-
-
sql.
deleteCharAt(sql.
length() -
1);
-
-
sql.
append(
")");
-
-
log.
info(
"[{}] - 插入操作:{}",table,sql);
-
-
Query query =
runCountSql(sql.
toString());
-
-
query.
executeUpdate();
-
-
}
5.2考试安排界面逻辑代码
-
@RequestMapping(value = {
"/avg_group",
"/avg"})
-
-
public
Map<
String,
Object>
avg(
HttpServletRequest request) {
-
-
Query count = service.
avg(service.
readQuery(request), service.
readConfig(request));
-
-
return
success(count.
getResultList());
-
-
}
5.3考试报名管理界面关键代码
-
@RestController
-
-
@RequestMapping(
"auth")
-
-
public
class AuthController extends BaseController<Auth, AuthService> {
-
-
/**
-
-
* 服务对象
-
-
*/
-
-
@Autowired
-
-
public
AuthController(
AuthService service) {
-
-
setService(service);
-
-
}
-
-
}
5.4用户登录的逻辑代码
-
/**
-
-
* 登录
-
-
* @param data
-
-
* @param httpServletRequest
-
-
* @return
-
-
*/
-
-
@PostMapping(
"login")
-
-
public
Map<
String,
Object>
login(
@RequestBody Map<String, String> 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<
String,
String> 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<
String,
String> 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);
-
-
// 返回用户信息
-
-
JSON
Object user =
JSON
Object.
parseObject(
JSON
Object.
toJSONString(byUsername));
-
-
user.
put(
"token", accessToken.
getToken());
-
-
JSON
Object ret =
new
JSON
Object();
-
-
ret.
put(
"obj",user);
-
-
return
success(ret);
-
-
}
else {
-
-
return
error(
30000,
"账号或密码不正确");
-
-
}
-
-
}
转载:https://blog.csdn.net/m0_49113107/article/details/127697647