开发语言:Java 框架:ssm JDK版本:JDK1.8 服务器:tomcat7 数据库:mysql 5.7(一定要5.7版本) 数据库工具:Navicat11 开发软件:eclipse/myeclipse/idea Maven包:Maven3.3.9 浏览器:谷歌浏览器
数据库脚本:
DROP TABLE IF EXISTS exampaper
;
/*!40101 SET @saved_cs_client = @@character_set_client /;
/!40101 SET character_set_client = utf8 /;
CREATE TABLE exampaper
(
id
bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',
addtime
timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
name
varchar(200) NOT NULL COMMENT '试卷名称',
time
int(11) NOT NULL COMMENT '考试时长(分钟)',
status
int(11) NOT NULL DEFAULT '0' COMMENT '试卷状态',
PRIMARY KEY (id
)
) ENGINE=InnoDB AUTO_INCREMENT=1643101663794 DEFAULT CHARSET=utf8 COMMENT='试卷表';
/!40101 SET character_set_client = @saved_cs_client */;
--
-- Dumping data for table exampaper
--
LOCK TABLES exampaper
WRITE;
/*!40000 ALTER TABLE exampaper
DISABLE KEYS /;
INSERT INTO exampaper
VALUES (1,'2022-01-25 09:00:30','十万个为什么',60,0),(1643101663793,'2022-01-25 09:07:43','高数',180,1);
/!40000 ALTER TABLE exampaper
ENABLE KEYS */;
UNLOCK TABLES;
--
-- Table structure for table examquestion
--
DROP TABLE IF EXISTS examquestion
;
/*!40101 SET @saved_cs_client = @@character_set_client /;
/!40101 SET character_set_client = utf8 /;
CREATE TABLE examquestion
(
id
bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',
addtime
timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
paperid
bigint(20) NOT NULL COMMENT '所属试卷id(外键)',
papername
varchar(200) NOT NULL COMMENT '试卷名称',
questionname
varchar(200) NOT NULL COMMENT '试题名称',
options
longtext COMMENT '选项,json字符串',
score
bigint(20) DEFAULT '0' COMMENT '分值',
answer
varchar(200) DEFAULT NULL COMMENT '正确答案',
analysis
longtext COMMENT '答案解析',
type
bigint(20) DEFAULT '0' COMMENT '试题类型,0:单选题 1:多选题 2:判断题 3:填空题(暂不考虑多项填空)',
sequence
bigint(20) DEFAULT '100' COMMENT '试题排序,值越大排越前面',
PRIMARY KEY (id
)
) ENGINE=InnoDB AUTO_INCREMENT=1643101786000 DEFAULT CHARSET=utf8 COMMENT='试题表';
/!40101 SET character_set_client = @saved_cs_client */;
--
-- Dumping data for table examquestion
--
LOCK TABLES examquestion
WRITE;
/*!40000 ALTER TABLE examquestion
DISABLE KEYS /;
INSERT INTO examquestion
VALUES (1,'2022-01-25 09:00:30',1,'十万个为什么','下面动物不属于昆虫的是()。','[{\"text\":\"A.苍蝇\",\"code\":\"A\"},{\"text\":\"B.蜜蜂\",\"code\":\"B\"},{\"text\":\"C.蜂鸟\",\"code\":\"C\"}]',20,'C','蜂鸟',0,1),(2,'2022-01-25 09:00:30',1,'十万个为什么','油着火后可以用水扑灭。','[{\"text\":\"A.对\",\"code\":\"A\"},{\"text\":\"B.错\",\"code\":\"B\"}]',20,'B','油着火后不可以用水扑灭',2,2),(3,'2022-01-25 09:00:30',1,'十万个为什么','地球是个球体,中间是( )。','[]',30,'赤道','赤道',3,3),(4,'2022-01-25 09:00:30',1,'十万个为什么','下面动物中会流汗的有( )。','[{\"text\":\"A.马\",\"code\":\"A\"},{\"text\":\"B.猫\",\"code\":\"B\"},{\"text\":\"C.狗\",\"code\":\"C\"}]',30,'A,B','狗不会流汗',1,4),(1643101715017,'2022-01-25 09:08:34',1643101663793,'高数','水电费干啥地方噶水电费嘎','[{\"text\":\"A.1\",\"code\":\"A\"},{\"text\":\"B.2\",\"code\":\"B\"},{\"text\":\"C.3\",\"code\":\"C\"},{\"text\":\"D.4\",\"code\":\"D\"}]',20,'A','的风格会更好的风格',0,1),(1643101751868,'2022-01-25 09:09:11',1643101663793,'高数','发给撒地方干啥的','[{\"text\":\"A.山东分公司\",\"code\":\"A\"},{\"text\":\"B.森岛帆高水电费\",\"code\":\"B\"},{\"text\":\"C.颠覆三观的双缝干涉\",\"code\":\"C\"},{\"text\":\"D.森岛帆高水电费\",\"code\":\"D\"}]',20,'A,B,C','森岛帆高水电费个',1,2),(1643101766053,'2022-01-25 09:09:26',1643101663793,'高数','第三方嘎山东分公司','[{\"text\":\"A.对\",\"code\":\"A\"},{\"text\":\"B.错\",\"code\":\"B\"}]',20,'A','风格会更好发',2,3),(1643101785999,'2022-01-25 09:09:46',1643101663793,'高数','的发送到发给改水电费','[]',40,'11','的发给森岛帆高水电费',3,4);
/!40000 ALTER TABLE examquestion
ENABLE KEYS */;
UNLOCK TABLES;
--
-- Table structure for table examrecord
--
DROP TABLE IF EXISTS examrecord
;
/*!40101 SET @saved_cs_client = @@character_set_client /;
/!40101 SET character_set_client = utf8 /;
CREATE TABLE examrecord
(
id
bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',
addtime
timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
userid
bigint(20) NOT NULL COMMENT '用户id',
username
varchar(200) DEFAULT NULL COMMENT '用户名',
paperid
bigint(20) NOT NULL COMMENT '试卷id(外键)',
papername
varchar(200) NOT NULL COMMENT '试卷名称',
questionid
bigint(20) NOT NULL COMMENT '试题id(外键)',
questionname
varchar(200) NOT NULL COMMENT '试题名称',
options
longtext COMMENT '选项,json字符串',
score
bigint(20) DEFAULT '0' COMMENT '分值',
answer
varchar(200) DEFAULT NULL COMMENT '正确答案',
analysis
longtext COMMENT '答案解析',
myscore
bigint(20) NOT NULL DEFAULT '0' COMMENT '试题得分',
myanswer
varchar(200) DEFAULT NULL COMMENT '考生答案',
PRIMARY KEY (id
)
) ENGINE=InnoDB AUTO_INCREMENT=1643101865967 DEFAULT CHARSET=utf8 COMMENT='考试记录表';
/!40101 SET character_set_client = @saved_cs_client */;
业务逻辑代码:
/**
- 考试记录表
- 后端接口
- @author
- @date 2022-01-25 16:59:54 */ @RestController @RequestMapping("/examrecord") public class ExamrecordController { @Autowired private ExamrecordService examrecordService;
- 考试记录接口
*/
@RequestMapping("/groupby")
public R page2(@RequestParam Map<String, Object> params,ExamrecordEntity examrecord, HttpServletRequest request){
if(!request.getSession().getAttribute("role").toString().equals("管理员")) {
examrecord.setUserid((Long)request.getSession().getAttribute("userId"));
}
EntityWrapper(); PageUtils page = examrecordService.queryPageGroupBy(params, MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, examrecord), params), params)); return R.ok().put("data", page); }
/**
- 后端列表
*/
@RequestMapping("/page")
public R page(@RequestParam Map<String, Object> params,ExamrecordEntity examrecord,
HttpServletRequest request){
if(!request.getSession().getAttribute("role").toString().equals("管理员")) {
examrecord.setUserid((Long)request.getSession().getAttribute("userId"));
}
EntityWrapper(); PageUtils page = examrecordService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, examrecord), params), params)); return R.ok().put("data", page); }
/**
- 前端列表
*/
@RequestMapping("/list")
public R list(@RequestParam Map<String, Object> params,ExamrecordEntity examrecord,
HttpServletRequest request){
if(!request.getSession().getAttribute("role").toString().equals("管理员")) {
examrecord.setUserid((Long)request.getSession().getAttribute("userId"));
}
EntityWrapper(); PageUtils page = examrecordService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, examrecord), params), params)); return R.ok().put("data", page); }
/**
- 列表 */ @RequestMapping("/lists") public R list( ExamrecordEntity examrecord){ EntityWrapper(); ew.allEq(MPUtil.allEQMapPre( examrecord, "examrecord")); return R.ok().put("data", examrecordService.selectListView(ew)); }
/**
- 查询 */ @RequestMapping("/query") public R query(ExamrecordEntity examrecord){ EntityWrapper< ExamrecordEntity> ew = new EntityWrapper< ExamrecordEntity>(); ew.allEq(MPUtil.allEQMapPre( examrecord, "examrecord")); ExamrecordView examrecordView = examrecordService.selectView(ew); return R.ok("查询考试记录表成功").put("data", examrecordView); }
/**
- 后端详情 */ @RequestMapping("/info/{id}") public R info(@PathVariable("id") Long id){ ExamrecordEntity examrecord = examrecordService.selectById(id); return R.ok().put("data", examrecord); }