腾讯乐享考试模块建表分析

2023-11-21 15:30

本文主要是介绍腾讯乐享考试模块建表分析,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

 

最近公司在原项目中增加一个考试模块,通过对比码云上几个开源的考试项目和小鹅通和企业微信乐享的考试,最终选定腾讯的乐享考试,以他为原型创建我们自己的考试模块.

下面记录几点业务的要点

1.考生范围为购买了课程的用户

2.试卷分为随机试卷和固定试卷两种.

随机试卷:选择任意数量的题库,汇总几种题型的试题,指定试题数量,系统会根据这个规则随机生成试卷;

固定试卷:从任意题库中挑选试题组成试卷

3.提交创建考试的请求, 保存当前时间节点的试卷,以后这张试卷的改变不会影响该考试,除非修改会主动同步(这种操作会影响未提交考试的考生,不会对已考的用户造成影响)

4.主观题系统判卷,客观题需要老师判卷打分

5.考试通过后会发放证书

 

 

业务要点:

1.删除考试会删除7个表的数据:

//1.删除考试表
etExamService.removeByIds(Arrays.asList(ids));
for (int i = 0; i < ids.length; i++) {//2.删除课程考试关联表etCourseExamService.remove(new QueryWrapper<EtCourseExamEntity>().lambda().eq(EtCourseExamEntity::getExamId, ids[i]));//3.删除考试试题关联表etExamQuestionService.remove(new QueryWrapper<EtExamQuestionEntity>().lambda().eq(EtExamQuestionEntity::getExamId, ids[i]));//4.删除考试证书etCertificateService.remove(new QueryWrapper<EtCertificateEntity>().lambda().eq(EtCertificateEntity::getExamId, ids[i]));//查询该考试创建了多少个用户考试记录List<EtUserExamEntity> examList = etUserExamService.list(new QueryWrapper<EtUserExamEntity>().lambda().eq(EtUserExamEntity::getExamId, ids[i]));if (!examList.isEmpty()){List<Integer> recordList = examList.stream().map(EtUserExamEntity::getId).collect(Collectors.toList());if (!recordList.isEmpty()){//5.删除用户获得的考试证书记录etUserCertificateService.remove(new QueryWrapper<EtUserCertificateEntity>().lambda().in(EtUserCertificateEntity::getRecordId, recordList));//6.删除用户答题记录表etUserExamDetailService.remove(new QueryWrapper<EtUserExamDetailEntity>().lambda().eq(EtUserExamDetailEntity::getRecordId, recordList));}//7.删除用户考试记录etUserExamService.remove(new QueryWrapper<EtUserExamEntity>().lambda().eq(EtUserExamEntity::getExamId, ids[i]));}
}

2.当开启了防作弊功能(切屏次数统计)且用户切屏次数达到限制时,无法提交试题答案,前端前强制提交试卷

3.删除试卷不影响已经创建的考试

4.同步试题会同步到考试记录中去,会影响已经开始考试的考生

这篇关于腾讯乐享考试模块建表分析的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/403246

相关文章

一文深入详解Python的secrets模块

《一文深入详解Python的secrets模块》在构建涉及用户身份认证、权限管理、加密通信等系统时,开发者最不能忽视的一个问题就是“安全性”,Python在3.6版本中引入了专门面向安全用途的secr... 目录引言一、背景与动机:为什么需要 secrets 模块?二、secrets 模块的核心功能1. 基

MyBatis Plus 中 update_time 字段自动填充失效的原因分析及解决方案(最新整理)

《MyBatisPlus中update_time字段自动填充失效的原因分析及解决方案(最新整理)》在使用MyBatisPlus时,通常我们会在数据库表中设置create_time和update... 目录前言一、问题现象二、原因分析三、总结:常见原因与解决方法对照表四、推荐写法前言在使用 MyBATis

Python主动抛出异常的各种用法和场景分析

《Python主动抛出异常的各种用法和场景分析》在Python中,我们不仅可以捕获和处理异常,还可以主动抛出异常,也就是以类的方式自定义错误的类型和提示信息,这在编程中非常有用,下面我将详细解释主动抛... 目录一、为什么要主动抛出异常?二、基本语法:raise关键字基本示例三、raise的多种用法1. 抛

基于Python实现一个简单的题库与在线考试系统

《基于Python实现一个简单的题库与在线考试系统》在当今信息化教育时代,在线学习与考试系统已成为教育技术领域的重要组成部分,本文就来介绍一下如何使用Python和PyQt5框架开发一个名为白泽题库系... 目录概述功能特点界面展示系统架构设计类结构图Excel题库填写格式模板题库题目填写格式表核心数据结构

github打不开的问题分析及解决

《github打不开的问题分析及解决》:本文主要介绍github打不开的问题分析及解决,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、找到github.com域名解析的ip地址二、找到github.global.ssl.fastly.net网址解析的ip地址三

Mysql的主从同步/复制的原理分析

《Mysql的主从同步/复制的原理分析》:本文主要介绍Mysql的主从同步/复制的原理分析,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录为什么要主从同步?mysql主从同步架构有哪些?Mysql主从复制的原理/整体流程级联复制架构为什么好?Mysql主从复制注意

java -jar命令运行 jar包时运行外部依赖jar包的场景分析

《java-jar命令运行jar包时运行外部依赖jar包的场景分析》:本文主要介绍java-jar命令运行jar包时运行外部依赖jar包的场景分析,本文给大家介绍的非常详细,对大家的学习或工作... 目录Java -jar命令运行 jar包时如何运行外部依赖jar包场景:解决:方法一、启动参数添加: -Xb

Apache 高级配置实战之从连接保持到日志分析的完整指南

《Apache高级配置实战之从连接保持到日志分析的完整指南》本文带你从连接保持优化开始,一路走到访问控制和日志管理,最后用AWStats来分析网站数据,对Apache配置日志分析相关知识感兴趣的朋友... 目录Apache 高级配置实战:从连接保持到日志分析的完整指南前言 一、Apache 连接保持 - 性

Linux中的more 和 less区别对比分析

《Linux中的more和less区别对比分析》在Linux/Unix系统中,more和less都是用于分页查看文本文件的命令,但less是more的增强版,功能更强大,:本文主要介绍Linu... 目录1. 基础功能对比2. 常用操作对比less 的操作3. 实际使用示例4. 为什么推荐 less?5.

spring-gateway filters添加自定义过滤器实现流程分析(可插拔)

《spring-gatewayfilters添加自定义过滤器实现流程分析(可插拔)》:本文主要介绍spring-gatewayfilters添加自定义过滤器实现流程分析(可插拔),本文通过实例图... 目录需求背景需求拆解设计流程及作用域逻辑处理代码逻辑需求背景公司要求,通过公司网络代理访问的请求需要做请