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
b821e30e
Commit
b821e30e
authored
Jun 21, 2024
by
陈立彬
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
出题、更新评分、获取平均分接口
parent
aceadaac
Changes
8
Show whitespace changes
Inline
Side-by-side
Showing
8 changed files
with
235 additions
and
3 deletions
+235
-3
ExamController.java
src/main/java/cn/aibreeze/exam/api/ExamController.java
+67
-3
ApiResponse.java
src/main/java/cn/aibreeze/exam/dto/ApiResponse.java
+41
-0
UpdateQuestionRequestDto.java
...n/java/cn/aibreeze/exam/dto/UpdateQuestionRequestDto.java
+32
-0
ElehKnowledgeTagDo.java
...main/java/cn/aibreeze/exam/entity/ElehKnowledgeTagDo.java
+30
-0
ElehSessionQaRecordDo.java
...n/java/cn/aibreeze/exam/entity/ElehSessionQaRecordDo.java
+34
-0
ElehKnowledgeMapper.java
...ain/java/cn/aibreeze/exam/mapper/ElehKnowledgeMapper.java
+6
-0
ElehKnowledgeTagMapper.java
.../java/cn/aibreeze/exam/mapper/ElehKnowledgeTagMapper.java
+9
-0
ElehSessionQaRecordMapper.java
...va/cn/aibreeze/exam/mapper/ElehSessionQaRecordMapper.java
+16
-0
No files found.
src/main/java/cn/aibreeze/exam/api/ExamController.java
View file @
b821e30e
package
cn
.
aibreeze
.
exam
.
api
;
package
cn
.
aibreeze
.
exam
.
api
;
import
cn.aibreeze.exam.dto.ApiResponse
;
import
cn.aibreeze.exam.dto.UpdateQuestionRequestDto
;
import
cn.aibreeze.exam.entity.ElehKnowledgeDo
;
import
cn.aibreeze.exam.entity.ElehKnowledgeDo
;
import
cn.aibreeze.exam.entity.ElehSessionQaRecordDo
;
import
cn.aibreeze.exam.mapper.ElehKnowledgeMapper
;
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.alibaba.fastjson.JSONObject
;
import
com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper
;
import
com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper
;
import
lombok.RequiredArgsConstructor
;
import
lombok.RequiredArgsConstructor
;
import
org.springframework.web.bind.annotation.GetMapping
;
import
org.springframework.util.CollectionUtils
;
import
org.springframework.web.bind.annotation.RequestMapping
;
import
org.springframework.web.bind.annotation.*
;
import
org.springframework.web.bind.annotation.RestController
;
import
java.util.Date
;
import
java.util.List
;
import
java.util.List
;
import
java.util.Objects
;
@RestController
@RestController
...
@@ -20,6 +26,10 @@ public class ExamController {
...
@@ -20,6 +26,10 @@ public class ExamController {
private
final
ElehKnowledgeMapper
knowledgeMapper
;
private
final
ElehKnowledgeMapper
knowledgeMapper
;
private
final
ElehKnowledgeTagMapper
tagMapper
;
private
final
ElehSessionQaRecordMapper
qaRecordMapper
;
@GetMapping
(
value
=
"/list"
)
@GetMapping
(
value
=
"/list"
)
public
String
list
()
{
public
String
list
()
{
LambdaQueryWrapper
<
ElehKnowledgeDo
>
queryWrapper
=
new
LambdaQueryWrapper
<>();
LambdaQueryWrapper
<
ElehKnowledgeDo
>
queryWrapper
=
new
LambdaQueryWrapper
<>();
...
@@ -28,4 +38,58 @@ public class ExamController {
...
@@ -28,4 +38,58 @@ public class ExamController {
return
JSONObject
.
toJSONString
(
elehKnowledgeDos
);
return
JSONObject
.
toJSONString
(
elehKnowledgeDos
);
}
}
@GetMapping
(
value
=
"/get_question"
)
public
ApiResponse
<
ElehKnowledgeDo
>
getQuestion
(
@RequestParam
(
"tenant"
)
Integer
tenant
,
@RequestParam
(
"session_id"
)
String
sessionId
,
@RequestParam
(
"user_id"
)
String
userId
)
{
Long
maxQuestionId
=
qaRecordMapper
.
selectSessionMaxQuestionId
(
tenant
,
sessionId
,
userId
);
maxQuestionId
=
Objects
.
nonNull
(
maxQuestionId
)
?
maxQuestionId
:
0
;
ElehKnowledgeDo
knowledgeDo
=
knowledgeMapper
.
selectQuestion
(
tenant
,
maxQuestionId
);
return
ApiResponse
.
ok
(
knowledgeDo
);
}
@PostMapping
(
value
=
"update_question"
)
public
ApiResponse
<
String
>
updateQuestion
(
@RequestBody
UpdateQuestionRequestDto
requestDto
)
{
String
answer
=
requestDto
.
getAnswer
();
Integer
tenant
=
requestDto
.
getTenant
();
String
sessionId
=
requestDto
.
getSessionId
();
String
userId
=
requestDto
.
getUserId
();
Long
questionId
=
requestDto
.
getQuestionId
();
ElehSessionQaRecordDo
recordDo
=
new
ElehSessionQaRecordDo
();
recordDo
.
setQuestionId
(
questionId
);
recordDo
.
setAnswer
(
answer
);
recordDo
.
setTenant
(
tenant
);
recordDo
.
setSessionId
(
sessionId
);
recordDo
.
setUserId
(
userId
);
recordDo
.
setScoreCriteria
(
requestDto
.
getScoreCriteria
());
recordDo
.
setScore
(
recordDo
.
getScore
());
recordDo
.
setCreatedAt
(
new
Date
());
qaRecordMapper
.
insert
(
recordDo
);
return
ApiResponse
.
ok
(
"SUCCESS"
);
}
@GetMapping
(
value
=
"/get_final_result"
)
public
ApiResponse
<
Double
>
getFinalResult
(
@RequestParam
(
"tenant"
)
Integer
tenant
,
@RequestParam
(
"session_id"
)
String
sessionId
,
@RequestParam
(
"user_id"
)
String
userId
)
{
Double
avgScore
=
0
D
;
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
sum
=
qaRecordDos
.
stream
().
mapToDouble
(
ElehSessionQaRecordDo:
:
getScore
).
sum
();
avgScore
=
sum
/
qaRecordDos
.
size
();
}
return
ApiResponse
.
ok
(
avgScore
);
}
}
}
src/main/java/cn/aibreeze/exam/dto/ApiResponse.java
0 → 100644
View file @
b821e30e
package
cn
.
aibreeze
.
exam
.
dto
;
import
lombok.Data
;
import
java.io.Serializable
;
@Data
public
class
ApiResponse
<
T
>
implements
Serializable
{
/**
* 成功编码
*/
public
static
final
String
OK
=
"Success"
;
/**
* 失败编码
*/
public
static
final
String
FAIL
=
"Fail"
;
private
String
message
;
private
String
status
;
private
T
data
;
public
static
final
<
T
>
ApiResponse
<
T
>
ok
(
final
T
result
)
{
ApiResponse
<
T
>
response
=
new
ApiResponse
<>();
response
.
setStatus
(
OK
);
response
.
setData
(
result
);
response
.
setMessage
(
"ok"
);
return
response
;
}
public
static
final
<
T
>
ApiResponse
<
T
>
fail
(
final
String
message
)
{
ApiResponse
<
T
>
response
=
new
ApiResponse
<>();
response
.
setStatus
(
FAIL
);
response
.
setMessage
(
message
);
return
response
;
}
}
src/main/java/cn/aibreeze/exam/dto/UpdateQuestionRequestDto.java
0 → 100644
View file @
b821e30e
package
cn
.
aibreeze
.
exam
.
dto
;
import
com.fasterxml.jackson.annotation.JsonProperty
;
import
lombok.Data
;
import
java.io.Serializable
;
@Data
public
class
UpdateQuestionRequestDto
implements
Serializable
{
private
Integer
tenant
;
private
String
answer
;
@JsonProperty
(
"session_id"
)
private
String
sessionId
;
@JsonProperty
(
"user_id"
)
private
String
userId
;
@JsonProperty
(
"question_id"
)
private
Long
questionId
;
@JsonProperty
(
"text"
)
private
String
text
;
@JsonProperty
(
"text"
)
private
Double
score
;
@JsonProperty
(
"score_criteria"
)
private
String
scoreCriteria
;
}
src/main/java/cn/aibreeze/exam/entity/ElehKnowledgeTagDo.java
0 → 100644
View file @
b821e30e
package
cn
.
aibreeze
.
exam
.
entity
;
import
com.baomidou.mybatisplus.annotation.IdType
;
import
com.baomidou.mybatisplus.annotation.TableId
;
import
com.baomidou.mybatisplus.annotation.TableName
;
import
lombok.Data
;
import
java.io.Serializable
;
import
java.util.Date
;
@Data
@TableName
(
value
=
"eleh_knowledge_tag"
)
public
class
ElehKnowledgeTagDo
implements
Serializable
{
@TableId
(
type
=
IdType
.
AUTO
)
private
Long
id
;
private
Integer
tenant
;
private
String
code
;
private
String
name
;
private
String
reference
;
private
Integer
status
;
private
Date
createdAt
;
}
src/main/java/cn/aibreeze/exam/entity/ElehSessionQaRecordDo.java
0 → 100644
View file @
b821e30e
package
cn
.
aibreeze
.
exam
.
entity
;
import
com.baomidou.mybatisplus.annotation.IdType
;
import
com.baomidou.mybatisplus.annotation.TableId
;
import
com.baomidou.mybatisplus.annotation.TableName
;
import
lombok.Data
;
import
java.io.Serializable
;
import
java.util.Date
;
@Data
@TableName
(
value
=
"eleh_session_qa_record"
)
public
class
ElehSessionQaRecordDo
implements
Serializable
{
@TableId
(
type
=
IdType
.
AUTO
)
private
Long
id
;
private
Integer
tenant
;
private
String
sessionId
;
private
String
userId
;
private
Long
questionId
;
private
String
answer
;
private
String
scoreCriteria
;
private
Double
score
;
private
Date
createdAt
;
}
src/main/java/cn/aibreeze/exam/mapper/ElehKnowledgeMapper.java
View file @
b821e30e
...
@@ -3,7 +3,13 @@ package cn.aibreeze.exam.mapper;
...
@@ -3,7 +3,13 @@ package cn.aibreeze.exam.mapper;
import
cn.aibreeze.exam.entity.ElehKnowledgeDo
;
import
cn.aibreeze.exam.entity.ElehKnowledgeDo
;
import
com.baomidou.mybatisplus.core.mapper.BaseMapper
;
import
com.baomidou.mybatisplus.core.mapper.BaseMapper
;
import
org.apache.ibatis.annotations.Mapper
;
import
org.apache.ibatis.annotations.Mapper
;
import
org.apache.ibatis.annotations.Param
;
import
org.apache.ibatis.annotations.Select
;
@Mapper
@Mapper
public
interface
ElehKnowledgeMapper
extends
BaseMapper
<
ElehKnowledgeDo
>
{
public
interface
ElehKnowledgeMapper
extends
BaseMapper
<
ElehKnowledgeDo
>
{
@Select
(
value
=
"select * from eleh_knowledge where tenant = #{tenant} and id > #{questionId} order by id ASC limit 1"
)
ElehKnowledgeDo
selectQuestion
(
@Param
(
"tenant"
)
Integer
tenant
,
@Param
(
"questionId"
)
Long
questionId
);
}
}
src/main/java/cn/aibreeze/exam/mapper/ElehKnowledgeTagMapper.java
0 → 100644
View file @
b821e30e
package
cn
.
aibreeze
.
exam
.
mapper
;
import
cn.aibreeze.exam.entity.ElehKnowledgeTagDo
;
import
com.baomidou.mybatisplus.core.mapper.BaseMapper
;
import
org.apache.ibatis.annotations.Mapper
;
@Mapper
public
interface
ElehKnowledgeTagMapper
extends
BaseMapper
<
ElehKnowledgeTagDo
>
{
}
src/main/java/cn/aibreeze/exam/mapper/ElehSessionQaRecordMapper.java
0 → 100644
View file @
b821e30e
package
cn
.
aibreeze
.
exam
.
mapper
;
import
cn.aibreeze.exam.entity.ElehSessionQaRecordDo
;
import
com.baomidou.mybatisplus.core.mapper.BaseMapper
;
import
org.apache.ibatis.annotations.Mapper
;
import
org.apache.ibatis.annotations.Param
;
import
org.apache.ibatis.annotations.Select
;
@Mapper
public
interface
ElehSessionQaRecordMapper
extends
BaseMapper
<
ElehSessionQaRecordDo
>
{
@Select
(
value
=
"select max(question_id) from eleh_session_qa_record where tenant = #{tenant} and session_id = #{sessionId} and user_id = #{userId}"
)
Long
selectSessionMaxQuestionId
(
@Param
(
"tenant"
)
Integer
tenant
,
@Param
(
"sessionId"
)
String
sessionId
,
@Param
(
"userId"
)
String
userId
);
}
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