Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
E
exam_master
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
ai-tech
exam_master
Commits
c4be4d3f
Commit
c4be4d3f
authored
Jul 03, 2024
by
陈立彬
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
考试结果h5
parent
262d6fbd
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
135 additions
and
3 deletions
+135
-3
ExamController.java
src/main/java/cn/aibreeze/exam/api/ExamController.java
+6
-2
H5Controller.java
src/main/java/cn/aibreeze/exam/api/H5Controller.java
+128
-0
SessionExamResult.java
src/main/java/cn/aibreeze/exam/dto/SessionExamResult.java
+1
-1
No files found.
src/main/java/cn/aibreeze/exam/api/ExamController.java
View file @
c4be4d3f
...
@@ -18,6 +18,7 @@ import org.springframework.data.redis.core.StringRedisTemplate;
...
@@ -18,6 +18,7 @@ import org.springframework.data.redis.core.StringRedisTemplate;
import
org.springframework.util.CollectionUtils
;
import
org.springframework.util.CollectionUtils
;
import
org.springframework.web.bind.annotation.*
;
import
org.springframework.web.bind.annotation.*
;
import
java.text.DecimalFormat
;
import
java.util.Date
;
import
java.util.Date
;
import
java.util.List
;
import
java.util.List
;
import
java.util.Objects
;
import
java.util.Objects
;
...
@@ -143,7 +144,7 @@ public class ExamController {
...
@@ -143,7 +144,7 @@ public class ExamController {
@RequestParam
(
"session_id"
)
String
sessionId
,
@RequestParam
(
"session_id"
)
String
sessionId
,
@RequestParam
(
"user_id"
)
String
userId
)
{
@RequestParam
(
"user_id"
)
String
userId
)
{
Double
avgScore
=
0
D
;
String
avgScore
=
""
;
Double
totalScore
=
0
D
;
Double
totalScore
=
0
D
;
int
examNum
=
0
;
int
examNum
=
0
;
List
<
SingleQaResult
>
qaResultList
=
Lists
.
newArrayList
();
List
<
SingleQaResult
>
qaResultList
=
Lists
.
newArrayList
();
...
@@ -156,7 +157,10 @@ public class ExamController {
...
@@ -156,7 +157,10 @@ public class ExamController {
if
(!
CollectionUtils
.
isEmpty
(
qaRecordDos
))
{
if
(!
CollectionUtils
.
isEmpty
(
qaRecordDos
))
{
totalScore
=
qaRecordDos
.
stream
().
mapToDouble
(
ElehSessionQaRecordDo:
:
getScore
).
sum
();
totalScore
=
qaRecordDos
.
stream
().
mapToDouble
(
ElehSessionQaRecordDo:
:
getScore
).
sum
();
examNum
=
qaRecordDos
.
size
();
examNum
=
qaRecordDos
.
size
();
avgScore
=
totalScore
/
examNum
;
DecimalFormat
df
=
new
DecimalFormat
(
"#.##"
);
avgScore
=
df
.
format
(
totalScore
/
examNum
);
// 数据转换
// 数据转换
qaResultList
=
qaRecordDos
.
stream
().
map
(
v
->
{
qaResultList
=
qaRecordDos
.
stream
().
map
(
v
->
{
...
...
src/main/java/cn/aibreeze/exam/api/H5Controller.java
0 → 100644
View file @
c4be4d3f
package
cn
.
aibreeze
.
exam
.
api
;
import
cn.aibreeze.exam.dto.SessionExamResult
;
import
cn.aibreeze.exam.dto.SingleQaResult
;
import
cn.aibreeze.exam.entity.ElehKnowledgeDo
;
import
cn.aibreeze.exam.entity.ElehSessionQaRecordDo
;
import
cn.aibreeze.exam.mapper.ElehKnowledgeMapper
;
import
cn.aibreeze.exam.mapper.ElehKnowledgeTagMapper
;
import
cn.aibreeze.exam.mapper.ElehSessionQaRecordMapper
;
import
com.alibaba.fastjson.JSONObject
;
import
com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper
;
import
jakarta.servlet.http.HttpServletResponse
;
import
lombok.RequiredArgsConstructor
;
import
lombok.SneakyThrows
;
import
lombok.extern.slf4j.Slf4j
;
import
org.apache.commons.compress.utils.Lists
;
import
org.springframework.stereotype.Controller
;
import
org.springframework.util.CollectionUtils
;
import
org.springframework.web.bind.annotation.*
;
import
java.io.PrintWriter
;
import
java.nio.charset.Charset
;
import
java.text.DecimalFormat
;
import
java.util.List
;
import
java.util.stream.Collectors
;
@Controller
@Slf4j
@RequestMapping
(
value
=
"/exam/h5/"
)
@RequiredArgsConstructor
public
class
H5Controller
{
private
final
ElehKnowledgeMapper
knowledgeMapper
;
private
final
ElehKnowledgeTagMapper
tagMapper
;
private
final
ElehSessionQaRecordMapper
qaRecordMapper
;
@SneakyThrows
@GetMapping
(
value
=
"exam_result/{tenant}/{session_id}/{user_id}.html"
)
public
void
list
(
@PathVariable
(
"tenant"
)
Integer
tenant
,
@PathVariable
(
"session_id"
)
String
sessionId
,
@PathVariable
(
"user_id"
)
String
userId
,
HttpServletResponse
response
)
{
response
.
setContentType
(
"text/html"
);
response
.
setCharacterEncoding
(
"UTF-8"
);
PrintWriter
out
=
response
.
getWriter
();
out
.
println
(
"<!DOCTYPE html>\n"
+
"<html lang=\"zh\">\n"
+
"<head>\n"
+
" <meta charset=\"UTF-8\">\n"
+
" <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\n"
+
" <title>考试结果</title>\n"
+
" <style>\n"
+
" body {\n"
+
" font-family: Arial, sans-serif;\n"
+
" margin: 0;\n"
+
" padding: 0;\n"
+
" }\n"
+
"\n"
+
" header {\n"
+
" background-color: #f1f1f1;\n"
+
" text-align: center;\n"
+
" padding: 20px;\n"
+
" }\n"
+
"\n"
+
" main {\n"
+
" padding: 20px;\n"
+
" }\n"
+
" </style>\n"
+
"</head>"
);
out
.
println
(
"<body>"
);
// 查询考试结果
LambdaQueryWrapper
<
ElehSessionQaRecordDo
>
queryWrapper
=
new
LambdaQueryWrapper
<>();
queryWrapper
.
eq
(
ElehSessionQaRecordDo:
:
getTenant
,
tenant
);
queryWrapper
.
eq
(
ElehSessionQaRecordDo:
:
getSessionId
,
sessionId
);
queryWrapper
.
eq
(
ElehSessionQaRecordDo:
:
getUserId
,
userId
);
List
<
ElehSessionQaRecordDo
>
qaRecordDos
=
qaRecordMapper
.
selectList
(
queryWrapper
);
if
(!
CollectionUtils
.
isEmpty
(
qaRecordDos
))
{
Double
totalScore
=
qaRecordDos
.
stream
().
mapToDouble
(
ElehSessionQaRecordDo:
:
getScore
).
sum
();
int
examNum
=
qaRecordDos
.
size
();
DecimalFormat
df
=
new
DecimalFormat
(
"#.##"
);
String
avgScore
=
df
.
format
(
totalScore
/
examNum
);
out
.
println
(
"<main>"
);
out
.
println
(
"<p><strong>恭喜你,考试结束了。</strong></p>"
);
out
.
println
(
"<p><strong>你一共考了</strong> "
+
examNum
+
" <strong>道题目</strong></p>"
);
out
.
println
(
"<p><strong>最终得分:</strong>"
+
avgScore
+
"</p>"
);
out
.
println
(
"<br/>"
);
// 数据转换
qaRecordDos
.
stream
().
forEach
(
v
->
{
ElehKnowledgeDo
knowledgeDo
=
knowledgeMapper
.
selectById
(
v
.
getTenant
(),
v
.
getQuestionId
());
SingleQaResult
qa
=
new
SingleQaResult
();
qa
.
setQuestion
(
knowledgeDo
.
getQuestion
());
qa
.
setAnswer
(
knowledgeDo
.
getAnswer
());
qa
.
setUserAnswer
(
v
.
getAnswer
());
qa
.
setScore
(
v
.
getScore
());
qa
.
setScoreCriteria
(
v
.
getScoreCriteria
());
out
.
println
(
"<p><strong>考试题目:</strong>"
+
knowledgeDo
.
getQuestion
()+
"</p>"
);
out
.
println
(
"<p><strong>你的得分:</strong>"
+
v
.
getScore
()+
"</p>"
);
out
.
println
(
"<p><strong>参考答案:</strong>"
+
knowledgeDo
.
getAnswer
()+
"</p>"
);
out
.
println
(
"<p><strong>你的答案:</strong>"
+
v
.
getAnswer
()+
"</p>"
);
out
.
println
(
"<p><strong>得分点评:</strong>"
+
v
.
getScoreCriteria
()+
"</p>"
);
out
.
println
(
"<br/>"
);
});
out
.
println
(
"</main>"
);
}
else
{
out
.
println
(
"<header>\n"
+
" <h1>你还没有任何考试信息哦</h1>\n"
+
" </header>"
);
}
out
.
println
(
"</body>"
);
out
.
println
(
"</html>"
);
}
}
src/main/java/cn/aibreeze/exam/dto/SessionExamResult.java
View file @
c4be4d3f
...
@@ -13,7 +13,7 @@ public class SessionExamResult implements Serializable {
...
@@ -13,7 +13,7 @@ public class SessionExamResult implements Serializable {
private
double
totalScore
;
private
double
totalScore
;
@JsonProperty
(
"avg_score"
)
@JsonProperty
(
"avg_score"
)
private
double
avgScore
;
private
String
avgScore
;
@JsonProperty
(
"exam_num"
)
@JsonProperty
(
"exam_num"
)
private
int
examNum
;
private
int
examNum
;
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment