Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
S
school-paper-admin
Overview
Overview
Details
Activity
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
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
school-paper
school-paper-admin
Commits
604ae45e
Commit
604ae45e
authored
Jul 21, 2023
by
Wangmin
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
PC端 新增题库、小程序端 发卷
parent
ac480bc7
Hide whitespace changes
Inline
Side-by-side
Showing
38 changed files
with
577 additions
and
233 deletions
+577
-233
school-paper/src/main/java/com/ruoyi/school/paper/controller/DbQuestionBankController.java
+29
-18
school-paper/src/main/java/com/ruoyi/school/paper/controller/DbQuestionTypeController.java
+39
-41
school-paper/src/main/java/com/ruoyi/school/paper/controller/TestPaperController.java
+47
-0
school-paper/src/main/java/com/ruoyi/school/paper/domain/DbCollectList.java
+5
-7
school-paper/src/main/java/com/ruoyi/school/paper/domain/DbErrorList.java
+5
-7
school-paper/src/main/java/com/ruoyi/school/paper/domain/DbProfile.java
+5
-7
school-paper/src/main/java/com/ruoyi/school/paper/domain/DbQuestionBank.java
+6
-8
school-paper/src/main/java/com/ruoyi/school/paper/domain/DbQuestionBankAnswer.java
+5
-7
school-paper/src/main/java/com/ruoyi/school/paper/domain/DbQuestionBankAnswerTestPaper.java
+5
-7
school-paper/src/main/java/com/ruoyi/school/paper/domain/DbQuestionBankTestPaper.java
+5
-7
school-paper/src/main/java/com/ruoyi/school/paper/domain/DbQuestionType.java
+4
-11
school-paper/src/main/java/com/ruoyi/school/paper/domain/DbTestPaper.java
+5
-7
school-paper/src/main/java/com/ruoyi/school/paper/domain/DbTestPaperRecord.java
+12
-9
school-paper/src/main/java/com/ruoyi/school/paper/domain/DbTestPaperRecordDetail.java
+5
-7
school-paper/src/main/java/com/ruoyi/school/paper/domain/bo/DbQuestionTypeBo.java
+5
-13
school-paper/src/main/java/com/ruoyi/school/paper/domain/bo/QuestionBankAndAnswerBo.java
+27
-0
school-paper/src/main/java/com/ruoyi/school/paper/domain/vo/DbQuestionTypeVo.java
+1
-10
school-paper/src/main/java/com/ruoyi/school/paper/domain/vo/OptionsVo.java
+23
-0
school-paper/src/main/java/com/ruoyi/school/paper/domain/vo/TestPaperVo.java
+32
-0
school-paper/src/main/java/com/ruoyi/school/paper/domain/vo/TestQuestionItemVo.java
+32
-0
school-paper/src/main/java/com/ruoyi/school/paper/domain/vo/TestQuestionsVo.java
+27
-0
school-paper/src/main/java/com/ruoyi/school/paper/mapper/DbErrorListMapper.java
+3
-0
school-paper/src/main/java/com/ruoyi/school/paper/mapper/DbQuestionBankAnswerMapper.java
+2
-0
school-paper/src/main/java/com/ruoyi/school/paper/mapper/DbQuestionBankMapper.java
+2
-0
school-paper/src/main/java/com/ruoyi/school/paper/mapper/DbQuestionBankTestPaperMapper.java
+15
-1
school-paper/src/main/java/com/ruoyi/school/paper/mapper/DbQuestionTypeMapper.java
+5
-3
school-paper/src/main/java/com/ruoyi/school/paper/mapper/DbTestPaperMapper.java
+2
-0
school-paper/src/main/java/com/ruoyi/school/paper/service/IDbQuestionBankService.java
+7
-0
school-paper/src/main/java/com/ruoyi/school/paper/service/IDbQuestionBankTestPaperService.java
+12
-4
school-paper/src/main/java/com/ruoyi/school/paper/service/IDbQuestionTypeService.java
+8
-9
school-paper/src/main/java/com/ruoyi/school/paper/service/ITestPaperService.java
+24
-0
school-paper/src/main/java/com/ruoyi/school/paper/service/impl/DbQuestionBankServiceImpl.java
+43
-11
school-paper/src/main/java/com/ruoyi/school/paper/service/impl/DbQuestionBankTestPaperServiceImpl.java
+9
-3
school-paper/src/main/java/com/ruoyi/school/paper/service/impl/DbQuestionTypeServiceImpl.java
+30
-31
school-paper/src/main/java/com/ruoyi/school/paper/service/impl/TestPaperServiceImpl.java
+58
-0
school-paper/src/main/resources/mapper/school-paper/DbQuestionBankTestPaperMapper.xml
+30
-2
school-paper/src/main/resources/mapper/school-paper/DbQuestionTypeMapper.xml
+2
-3
school-paper/src/main/resources/mapper/school-paper/DbTestPaperMapper.xml
+1
-0
No files found.
school-paper/src/main/java/com/ruoyi/school/paper/controller/DbQuestionBankController.java
View file @
604ae45e
package
com
.
ruoyi
.
school
.
paper
.
controller
;
import
java.util.List
;
import
java.util.Arrays
;
import
java.util.concurrent.TimeUnit
;
import
cn.dev33.satoken.annotation.SaIgnore
;
import
lombok.RequiredArgsConstructor
;
import
javax.servlet.http.HttpServletResponse
;
import
javax.validation.constraints.*
;
import
cn.dev33.satoken.annotation.SaCheckPermission
;
import
org.springframework.web.bind.annotation.*
;
import
org.springframework.validation.annotation.Validated
;
import
com.ruoyi.common.annotation.RepeatSubmit
;
import
com.ruoyi.common.annotation.Log
;
import
com.ruoyi.common.annotation.RepeatSubmit
;
import
com.ruoyi.common.core.controller.BaseController
;
import
com.ruoyi.common.core.domain.PageQuery
;
import
com.ruoyi.common.core.domain.R
;
import
com.ruoyi.common.core.page.TableDataInfo
;
import
com.ruoyi.common.core.validate.AddGroup
;
import
com.ruoyi.common.core.validate.EditGroup
;
import
com.ruoyi.common.core.validate.QueryGroup
;
import
com.ruoyi.common.enums.BusinessType
;
import
com.ruoyi.common.utils.poi.ExcelUtil
;
import
com.ruoyi.school.paper.domain.vo.DbQuestionBankVo
;
import
com.ruoyi.school.paper.domain.bo.DbQuestionBankBo
;
import
com.ruoyi.school.paper.domain.bo.QuestionBankAndAnswerBo
;
import
com.ruoyi.school.paper.domain.vo.DbQuestionBankVo
;
import
com.ruoyi.school.paper.service.IDbQuestionBankService
;
import
com.ruoyi.common.core.page.TableDataInfo
;
import
lombok.RequiredArgsConstructor
;
import
org.springframework.validation.annotation.Validated
;
import
org.springframework.web.bind.annotation.*
;
import
javax.servlet.http.HttpServletResponse
;
import
javax.validation.constraints.NotEmpty
;
import
javax.validation.constraints.NotNull
;
import
java.util.Arrays
;
import
java.util.List
;
/**
* 题库主
...
...
@@ -35,6 +34,7 @@ import com.ruoyi.common.core.page.TableDataInfo;
@Validated
@RequiredArgsConstructor
@RestController
@SaIgnore
@RequestMapping
(
"/school-paper/questionBank"
)
public
class
DbQuestionBankController
extends
BaseController
{
...
...
@@ -65,8 +65,7 @@ public class DbQuestionBankController extends BaseController {
* @param id 主键
*/
@GetMapping
(
"/{id}"
)
public
R
<
DbQuestionBankVo
>
getInfo
(
@NotNull
(
message
=
"主键不能为空"
)
@PathVariable
Long
id
)
{
public
R
<
DbQuestionBankVo
>
getInfo
(
@NotNull
(
message
=
"主键不能为空"
)
@PathVariable
Long
id
)
{
return
R
.
ok
(
iDbQuestionBankService
.
queryById
(
id
));
}
...
...
@@ -81,6 +80,19 @@ public class DbQuestionBankController extends BaseController {
}
/**
* [PC端] 新增题库记录
*
* @param bo 新增题目信息及选择项信息列表
* @return 操作结果
*/
@Log
(
title
=
"题库"
,
businessType
=
BusinessType
.
INSERT
)
@RepeatSubmit
()
@PostMapping
(
"/question"
)
public
R
<
Void
>
addQuestionAndAnswerRecords
(
@Validated
(
AddGroup
.
class
)
@RequestBody
QuestionBankAndAnswerBo
bo
)
{
return
toAjax
(
iDbQuestionBankService
.
insertByBo
(
bo
));
}
/**
* 修改题库主
*/
@Log
(
title
=
"题库主"
,
businessType
=
BusinessType
.
UPDATE
)
...
...
@@ -97,8 +109,7 @@ public class DbQuestionBankController extends BaseController {
*/
@Log
(
title
=
"题库主"
,
businessType
=
BusinessType
.
DELETE
)
@DeleteMapping
(
"/{ids}"
)
public
R
<
Void
>
remove
(
@NotEmpty
(
message
=
"主键不能为空"
)
@PathVariable
Long
[]
ids
)
{
public
R
<
Void
>
remove
(
@NotEmpty
(
message
=
"主键不能为空"
)
@PathVariable
Long
[]
ids
)
{
return
toAjax
(
iDbQuestionBankService
.
deleteWithValidByIds
(
Arrays
.
asList
(
ids
),
true
));
}
}
school-paper/src/main/java/com/ruoyi/school/paper/controller/Db
Dict
Controller.java
→
school-paper/src/main/java/com/ruoyi/school/paper/controller/Db
QuestionType
Controller.java
View file @
604ae45e
package
com
.
ruoyi
.
school
.
paper
.
controller
;
import
java.util.List
;
import
java.util.Arrays
;
import
java.util.concurrent.TimeUnit
;
import
cn.dev33.satoken.annotation.SaIgnore
;
import
lombok.RequiredArgsConstructor
;
import
javax.servlet.http.HttpServletResponse
;
import
javax.validation.constraints.*
;
import
cn.dev33.satoken.annotation.SaCheckPermission
;
import
org.springframework.web.bind.annotation.*
;
import
org.springframework.validation.annotation.Validated
;
import
com.ruoyi.common.annotation.RepeatSubmit
;
import
com.ruoyi.common.annotation.Log
;
import
com.ruoyi.common.annotation.RepeatSubmit
;
import
com.ruoyi.common.core.controller.BaseController
;
import
com.ruoyi.common.core.domain.PageQuery
;
import
com.ruoyi.common.core.domain.R
;
import
com.ruoyi.common.core.page.TableDataInfo
;
import
com.ruoyi.common.core.validate.AddGroup
;
import
com.ruoyi.common.core.validate.EditGroup
;
import
com.ruoyi.common.core.validate.QueryGroup
;
import
com.ruoyi.common.enums.BusinessType
;
import
com.ruoyi.common.utils.poi.ExcelUtil
;
import
com.ruoyi.school.paper.domain.vo.DbDictVo
;
import
com.ruoyi.school.paper.domain.bo.DbDictBo
;
import
com.ruoyi.school.paper.service.IDbDictService
;
import
com.ruoyi.common.core.page.TableDataInfo
;
import
com.ruoyi.school.paper.domain.bo.DbQuestionTypeBo
;
import
com.ruoyi.school.paper.domain.vo.DbQuestionTypeVo
;
import
com.ruoyi.school.paper.service.IDbQuestionTypeService
;
import
lombok.RequiredArgsConstructor
;
import
org.springframework.validation.annotation.Validated
;
import
org.springframework.web.bind.annotation.*
;
import
javax.servlet.http.HttpServletResponse
;
import
javax.validation.constraints.NotEmpty
;
import
javax.validation.constraints.NotNull
;
import
java.util.Arrays
;
import
java.util.List
;
/**
*
字典
*
题型
*
* @author zyf
* @date 2023-07-20
...
...
@@ -35,70 +33,70 @@ import com.ruoyi.common.core.page.TableDataInfo;
@Validated
@RequiredArgsConstructor
@RestController
@RequestMapping
(
"/school-paper/
dict
"
)
@RequestMapping
(
"/school-paper/
question-type
"
)
@SaIgnore
public
class
Db
Dict
Controller
extends
BaseController
{
public
class
Db
QuestionType
Controller
extends
BaseController
{
private
final
IDb
DictService
iDbDict
Service
;
private
final
IDb
QuestionTypeService
iDbQuestionType
Service
;
/**
* 查询
字典
列表
* 查询
题型
列表
*/
@GetMapping
(
"/list"
)
public
TableDataInfo
<
Db
DictVo
>
list
(
DbDict
Bo
bo
,
PageQuery
pageQuery
)
{
return
iDb
Dict
Service
.
queryPageList
(
bo
,
pageQuery
);
public
TableDataInfo
<
Db
QuestionTypeVo
>
list
(
DbQuestionType
Bo
bo
,
PageQuery
pageQuery
)
{
return
iDb
QuestionType
Service
.
queryPageList
(
bo
,
pageQuery
);
}
/**
* 导出
字典
列表
* 导出
题型
列表
*/
@Log
(
title
=
"
字典
"
,
businessType
=
BusinessType
.
EXPORT
)
@Log
(
title
=
"
题型
"
,
businessType
=
BusinessType
.
EXPORT
)
@PostMapping
(
"/export"
)
public
void
export
(
Db
Dict
Bo
bo
,
HttpServletResponse
response
)
{
List
<
Db
DictVo
>
list
=
iDbDict
Service
.
queryList
(
bo
);
ExcelUtil
.
exportExcel
(
list
,
"
字典"
,
DbDict
Vo
.
class
,
response
);
public
void
export
(
Db
QuestionType
Bo
bo
,
HttpServletResponse
response
)
{
List
<
Db
QuestionTypeVo
>
list
=
iDbQuestionType
Service
.
queryList
(
bo
);
ExcelUtil
.
exportExcel
(
list
,
"
题型"
,
DbQuestionType
Vo
.
class
,
response
);
}
/**
* 获取
字典
详细信息
* 获取
题型
详细信息
*
* @param id 主键
*/
@GetMapping
(
"/{id}"
)
public
R
<
Db
Dict
Vo
>
getInfo
(
@NotNull
(
message
=
"主键不能为空"
)
public
R
<
Db
QuestionType
Vo
>
getInfo
(
@NotNull
(
message
=
"主键不能为空"
)
@PathVariable
Long
id
)
{
return
R
.
ok
(
iDb
Dict
Service
.
queryById
(
id
));
return
R
.
ok
(
iDb
QuestionType
Service
.
queryById
(
id
));
}
/**
*
新增
字典
*
题型
字典
*/
@Log
(
title
=
"
字典
"
,
businessType
=
BusinessType
.
INSERT
)
@Log
(
title
=
"
题型
"
,
businessType
=
BusinessType
.
INSERT
)
@RepeatSubmit
()
@PostMapping
()
public
R
<
Void
>
add
(
@Validated
(
AddGroup
.
class
)
@RequestBody
Db
Dict
Bo
bo
)
{
return
toAjax
(
iDb
Dict
Service
.
insertByBo
(
bo
));
public
R
<
Void
>
add
(
@Validated
(
AddGroup
.
class
)
@RequestBody
Db
QuestionType
Bo
bo
)
{
return
toAjax
(
iDb
QuestionType
Service
.
insertByBo
(
bo
));
}
/**
* 修改字典
*/
@Log
(
title
=
"
字典
"
,
businessType
=
BusinessType
.
UPDATE
)
@Log
(
title
=
"
题型
"
,
businessType
=
BusinessType
.
UPDATE
)
@RepeatSubmit
()
@PutMapping
()
public
R
<
Void
>
edit
(
@Validated
(
EditGroup
.
class
)
@RequestBody
Db
Dict
Bo
bo
)
{
return
toAjax
(
iDb
Dict
Service
.
updateByBo
(
bo
));
public
R
<
Void
>
edit
(
@Validated
(
EditGroup
.
class
)
@RequestBody
Db
QuestionType
Bo
bo
)
{
return
toAjax
(
iDb
QuestionType
Service
.
updateByBo
(
bo
));
}
/**
* 删除
字典
* 删除
题型
*
* @param ids 主键串
*/
@Log
(
title
=
"
字典
"
,
businessType
=
BusinessType
.
DELETE
)
@Log
(
title
=
"
题型
"
,
businessType
=
BusinessType
.
DELETE
)
@DeleteMapping
(
"/{ids}"
)
public
R
<
Void
>
remove
(
@NotEmpty
(
message
=
"主键不能为空"
)
@PathVariable
Long
[]
ids
)
{
return
toAjax
(
iDb
Dict
Service
.
deleteWithValidByIds
(
Arrays
.
asList
(
ids
),
true
));
return
toAjax
(
iDb
QuestionType
Service
.
deleteWithValidByIds
(
Arrays
.
asList
(
ids
),
true
));
}
}
school-paper/src/main/java/com/ruoyi/school/paper/controller/TestPaperController.java
0 → 100644
View file @
604ae45e
package
com
.
ruoyi
.
school
.
paper
.
controller
;
import
com.ruoyi.common.annotation.Log
;
import
com.ruoyi.common.core.controller.BaseController
;
import
com.ruoyi.common.core.domain.R
;
import
com.ruoyi.common.enums.BusinessType
;
import
com.ruoyi.school.paper.domain.vo.TestPaperVo
;
import
com.ruoyi.school.paper.service.ITestPaperService
;
import
lombok.RequiredArgsConstructor
;
import
org.springframework.validation.annotation.Validated
;
import
org.springframework.web.bind.annotation.GetMapping
;
import
org.springframework.web.bind.annotation.PathVariable
;
import
org.springframework.web.bind.annotation.RequestMapping
;
import
org.springframework.web.bind.annotation.RestController
;
import
java.util.Objects
;
/**
* 考试
* <p>created in 2023/7/21 16:20
*
* @author WangMin
* @version 1.0
*/
@Validated
@RequiredArgsConstructor
@RestController
@RequestMapping
(
"/school-paper/test"
)
public
class
TestPaperController
extends
BaseController
{
private
final
ITestPaperService
testPaperService
;
/**
* 开始考试
*
* @return 试卷
*/
@Log
(
title
=
"开始开始"
,
businessType
=
BusinessType
.
OTHER
)
@GetMapping
(
"/startTest/{paperId}"
)
public
R
<
TestPaperVo
>
startTest
(
@PathVariable
(
"paperId"
)
Long
paperId
)
{
Long
userId
=
getUserId
();
Objects
.
requireNonNull
(
userId
,
"未检查到合法账户信息"
);
return
R
.
ok
(
testPaperService
.
generateTestPaper
(
userId
,
paperId
));
}
}
school-paper/src/main/java/com/ruoyi/school/paper/domain/DbCollectList.java
View file @
604ae45e
package
com
.
ruoyi
.
school
.
paper
.
domain
;
import
com.baomidou.mybatisplus.annotation.*
;
import
com.baomidou.mybatisplus.annotation.IdType
;
import
com.baomidou.mybatisplus.annotation.TableId
;
import
com.baomidou.mybatisplus.annotation.TableName
;
import
com.ruoyi.common.core.domain.BaseEntity
;
import
lombok.Data
;
import
lombok.EqualsAndHashCode
;
import
java.io.Serializable
;
import
java.util.Date
;
import
java.math.BigDecimal
;
import
com.ruoyi.common.core.domain.BaseEntity
;
/**
* 收藏对象 db_collect_list
...
...
@@ -25,7 +23,7 @@ public class DbCollectList extends BaseEntity {
/**
* 主键id
*/
@TableId
(
value
=
"id"
)
@TableId
(
value
=
"id"
,
type
=
IdType
.
AUTO
)
private
Long
id
;
/**
* 用户id
...
...
school-paper/src/main/java/com/ruoyi/school/paper/domain/DbErrorList.java
View file @
604ae45e
package
com
.
ruoyi
.
school
.
paper
.
domain
;
import
com.baomidou.mybatisplus.annotation.*
;
import
com.baomidou.mybatisplus.annotation.IdType
;
import
com.baomidou.mybatisplus.annotation.TableId
;
import
com.baomidou.mybatisplus.annotation.TableName
;
import
com.ruoyi.common.core.domain.BaseEntity
;
import
lombok.Data
;
import
lombok.EqualsAndHashCode
;
import
java.io.Serializable
;
import
java.util.Date
;
import
java.math.BigDecimal
;
import
com.ruoyi.common.core.domain.BaseEntity
;
/**
* 错题集对象 db_error_list
...
...
@@ -25,7 +23,7 @@ public class DbErrorList extends BaseEntity {
/**
* 主键id
*/
@TableId
(
value
=
"id"
)
@TableId
(
value
=
"id"
,
type
=
IdType
.
AUTO
)
private
Long
id
;
/**
* 用户id
...
...
school-paper/src/main/java/com/ruoyi/school/paper/domain/DbProfile.java
View file @
604ae45e
package
com
.
ruoyi
.
school
.
paper
.
domain
;
import
com.baomidou.mybatisplus.annotation.*
;
import
com.baomidou.mybatisplus.annotation.IdType
;
import
com.baomidou.mybatisplus.annotation.TableId
;
import
com.baomidou.mybatisplus.annotation.TableName
;
import
com.ruoyi.common.core.domain.BaseEntity
;
import
lombok.Data
;
import
lombok.EqualsAndHashCode
;
import
java.io.Serializable
;
import
java.util.Date
;
import
java.math.BigDecimal
;
import
com.ruoyi.common.core.domain.BaseEntity
;
/**
* 资料对象 db_profile
...
...
@@ -25,7 +23,7 @@ public class DbProfile extends BaseEntity {
/**
* 主键id
*/
@TableId
(
value
=
"id"
)
@TableId
(
value
=
"id"
,
type
=
IdType
.
AUTO
)
private
Long
id
;
/**
* 资料名称
...
...
school-paper/src/main/java/com/ruoyi/school/paper/domain/DbQuestionBank.java
View file @
604ae45e
package
com
.
ruoyi
.
school
.
paper
.
domain
;
import
com.baomidou.mybatisplus.annotation.*
;
import
com.baomidou.mybatisplus.annotation.IdType
;
import
com.baomidou.mybatisplus.annotation.TableId
;
import
com.baomidou.mybatisplus.annotation.TableName
;
import
com.ruoyi.common.core.domain.BaseEntity
;
import
lombok.Data
;
import
lombok.EqualsAndHashCode
;
import
java.io.Serializable
;
import
java.util.Date
;
import
java.math.BigDecimal
;
import
com.ruoyi.common.core.domain.BaseEntity
;
/**
* 题库主对象 db_question_bank
...
...
@@ -20,12 +18,12 @@ import com.ruoyi.common.core.domain.BaseEntity;
@TableName
(
"db_question_bank"
)
public
class
DbQuestionBank
extends
BaseEntity
{
private
static
final
long
serialVersionUID
=
1L
;
private
static
final
long
serialVersionUID
=
1L
;
/**
* 主键id
*/
@TableId
(
value
=
"id"
)
@TableId
(
value
=
"id"
,
type
=
IdType
.
AUTO
)
private
Long
id
;
/**
* 类别id
...
...
school-paper/src/main/java/com/ruoyi/school/paper/domain/DbQuestionBankAnswer.java
View file @
604ae45e
package
com
.
ruoyi
.
school
.
paper
.
domain
;
import
com.baomidou.mybatisplus.annotation.*
;
import
com.baomidou.mybatisplus.annotation.IdType
;
import
com.baomidou.mybatisplus.annotation.TableId
;
import
com.baomidou.mybatisplus.annotation.TableName
;
import
com.ruoyi.common.core.domain.BaseEntity
;
import
lombok.Data
;
import
lombok.EqualsAndHashCode
;
import
java.io.Serializable
;
import
java.util.Date
;
import
java.math.BigDecimal
;
import
com.ruoyi.common.core.domain.BaseEntity
;
/**
* 题目答案对象 db_question_bank_answer
...
...
@@ -25,7 +23,7 @@ public class DbQuestionBankAnswer extends BaseEntity {
/**
* 主键id
*/
@TableId
(
value
=
"id"
)
@TableId
(
value
=
"id"
,
type
=
IdType
.
AUTO
)
private
Long
id
;
/**
* 题目id
...
...
school-paper/src/main/java/com/ruoyi/school/paper/domain/DbQuestionBankAnswerTestPaper.java
View file @
604ae45e
package
com
.
ruoyi
.
school
.
paper
.
domain
;
import
com.baomidou.mybatisplus.annotation.*
;
import
com.baomidou.mybatisplus.annotation.IdType
;
import
com.baomidou.mybatisplus.annotation.TableId
;
import
com.baomidou.mybatisplus.annotation.TableName
;
import
com.ruoyi.common.core.domain.BaseEntity
;
import
lombok.Data
;
import
lombok.EqualsAndHashCode
;
import
java.io.Serializable
;
import
java.util.Date
;
import
java.math.BigDecimal
;
import
com.ruoyi.common.core.domain.BaseEntity
;
/**
* 试卷题目答案对象 db_question_bank_answer_test_paper
...
...
@@ -25,7 +23,7 @@ public class DbQuestionBankAnswerTestPaper extends BaseEntity {
/**
* 主键id
*/
@TableId
(
value
=
"id"
)
@TableId
(
value
=
"id"
,
type
=
IdType
.
AUTO
)
private
Long
id
;
/**
* 题目id
...
...
school-paper/src/main/java/com/ruoyi/school/paper/domain/DbQuestionBankTestPaper.java
View file @
604ae45e
package
com
.
ruoyi
.
school
.
paper
.
domain
;
import
com.baomidou.mybatisplus.annotation.*
;
import
com.baomidou.mybatisplus.annotation.IdType
;
import
com.baomidou.mybatisplus.annotation.TableId
;
import
com.baomidou.mybatisplus.annotation.TableName
;
import
com.ruoyi.common.core.domain.BaseEntity
;
import
lombok.Data
;
import
lombok.EqualsAndHashCode
;
import
java.io.Serializable
;
import
java.util.Date
;
import
java.math.BigDecimal
;
import
com.ruoyi.common.core.domain.BaseEntity
;
/**
* 试卷题库主对象 db_question_bank_test_paper
...
...
@@ -25,7 +23,7 @@ public class DbQuestionBankTestPaper extends BaseEntity {
/**
* 主键id
*/
@TableId
(
value
=
"id"
)
@TableId
(
value
=
"id"
,
type
=
IdType
.
AUTO
)
private
Long
id
;
/**
* 试卷id
...
...
school-paper/src/main/java/com/ruoyi/school/paper/domain/Db
Dict
.java
→
school-paper/src/main/java/com/ruoyi/school/paper/domain/Db
QuestionType
.java
View file @
604ae45e
...
...
@@ -3,39 +3,32 @@ package com.ruoyi.school.paper.domain;
import
com.baomidou.mybatisplus.annotation.*
;
import
lombok.Data
;
import
lombok.EqualsAndHashCode
;
import
java.io.Serializable
;
import
java.util.Date
;
import
java.math.BigDecimal
;
import
com.ruoyi.common.core.domain.BaseEntity
;
/**
*
字典对象 db_dict
*
题目类型对象 db_question_type
*
* @author zyf
* @date 2023-07-20
*/
@Data
@EqualsAndHashCode
(
callSuper
=
true
)
@TableName
(
"db_
dict
"
)
public
class
Db
Dict
extends
BaseEntity
{
@TableName
(
"db_
question_type
"
)
public
class
Db
QuestionType
extends
BaseEntity
{
private
static
final
long
serialVersionUID
=
1L
;
/**
* 主键id
*/
@TableId
(
value
=
"id"
)
@TableId
(
value
=
"id"
,
type
=
IdType
.
AUTO
)
private
Long
id
;
/**
* 父级id
*/
private
Long
parentId
;
/**
* 类型:1 类别,2 阶段,3 班级
*/
private
String
type
;
/**
* 名称
*/
private
String
typeValue
;
...
...
school-paper/src/main/java/com/ruoyi/school/paper/domain/DbTestPaper.java
View file @
604ae45e
package
com
.
ruoyi
.
school
.
paper
.
domain
;
import
com.baomidou.mybatisplus.annotation.*
;
import
com.baomidou.mybatisplus.annotation.IdType
;
import
com.baomidou.mybatisplus.annotation.TableId
;
import
com.baomidou.mybatisplus.annotation.TableName
;
import
com.ruoyi.common.core.domain.BaseEntity
;
import
lombok.Data
;
import
lombok.EqualsAndHashCode
;
import
java.io.Serializable
;
import
java.util.Date
;
import
java.math.BigDecimal
;
import
com.ruoyi.common.core.domain.BaseEntity
;
/**
* 试卷对象 db_test_paper
...
...
@@ -25,7 +23,7 @@ public class DbTestPaper extends BaseEntity {
/**
* 主键id
*/
@TableId
(
value
=
"id"
)
@TableId
(
value
=
"id"
,
type
=
IdType
.
AUTO
)
private
Long
id
;
/**
* 试卷名称
...
...
school-paper/src/main/java/com/ruoyi/school/paper/domain/DbTestPaperRecord.java
View file @
604ae45e
package
com
.
ruoyi
.
school
.
paper
.
domain
;
import
com.baomidou.mybatisplus.annotation.*
;
import
com.baomidou.mybatisplus.annotation.IdType
;
import
com.baomidou.mybatisplus.annotation.TableId
;
import
com.baomidou.mybatisplus.annotation.TableName
;
import
com.ruoyi.common.core.domain.BaseEntity
;
import
lombok.Data
;
import
lombok.EqualsAndHashCode
;
import
java.io.Serializable
;
import
java.util.Date
;
import
java.math.BigDecimal
;
import
com.ruoyi.common.core.domain.BaseEntity
;
/**
* 答题记录对象 db_test_paper_record
...
...
@@ -20,12 +18,12 @@ import com.ruoyi.common.core.domain.BaseEntity;
@TableName
(
"db_test_paper_record"
)
public
class
DbTestPaperRecord
extends
BaseEntity
{
private
static
final
long
serialVersionUID
=
1L
;
private
static
final
long
serialVersionUID
=
1L
;
/**
* 主键id
*/
@TableId
(
value
=
"id"
)
@TableId
(
value
=
"id"
,
type
=
IdType
.
AUTO
)
private
Long
id
;
/**
* 用户id
...
...
@@ -36,7 +34,12 @@ public class DbTestPaperRecord extends BaseEntity {
*/
private
Long
testPaperId
;
/**
* 状态:0 批卷中,1 批卷完成
* 状态
* <ul>
* <ol>0:正在答题</ol>
* <ol>1:待批阅</ol>
* <ol>2:已批阅</ol>
* </ul>
*/
private
Integer
status
;
/**
...
...
school-paper/src/main/java/com/ruoyi/school/paper/domain/DbTestPaperRecordDetail.java
View file @
604ae45e
package
com
.
ruoyi
.
school
.
paper
.
domain
;
import
com.baomidou.mybatisplus.annotation.*
;
import
com.baomidou.mybatisplus.annotation.IdType
;
import
com.baomidou.mybatisplus.annotation.TableId
;
import
com.baomidou.mybatisplus.annotation.TableName
;
import
com.ruoyi.common.core.domain.BaseEntity
;
import
lombok.Data
;
import
lombok.EqualsAndHashCode
;
import
java.io.Serializable
;
import
java.util.Date
;
import
java.math.BigDecimal
;
import
java.math.BigDecimal
;
import
java.util.Date
;
import
com.fasterxml.jackson.annotation.JsonFormat
;
import
com.ruoyi.common.core.domain.BaseEntity
;
/**
* 答题记录详情对象 db_test_paper_record_detail
...
...
@@ -28,7 +26,7 @@ public class DbTestPaperRecordDetail extends BaseEntity {
/**
* 主键id
*/
@TableId
(
value
=
"id"
)
@TableId
(
value
=
"id"
,
type
=
IdType
.
AUTO
)
private
Long
id
;
/**
* 记录id
...
...
school-paper/src/main/java/com/ruoyi/school/paper/domain/bo/Db
Dict
Bo.java
→
school-paper/src/main/java/com/ruoyi/school/paper/domain/bo/Db
QuestionType
Bo.java
View file @
604ae45e
package
com
.
ruoyi
.
school
.
paper
.
domain
.
bo
;
import
com.ruoyi.common.core.domain.BaseEntity
;
import
com.ruoyi.common.core.validate.AddGroup
;
import
com.ruoyi.common.core.validate.EditGroup
;
import
lombok.Data
;
import
lombok.EqualsAndHashCode
;
import
javax.validation.constraints.*
;
import
java.util.Date
;
import
com.ruoyi.common.core.domain.BaseEntity
;
import
javax.validation.constraints.NotBlank
;
import
javax.validation.constraints.NotNull
;
/**
*
字典业务对象 db_dict
*
题型业务对象 db_question_type
*
* @author zyf
* @date 2023-07-20
...
...
@@ -19,7 +18,7 @@ import com.ruoyi.common.core.domain.BaseEntity;
@Data
@EqualsAndHashCode
(
callSuper
=
true
)
public
class
Db
Dict
Bo
extends
BaseEntity
{
public
class
Db
QuestionType
Bo
extends
BaseEntity
{
/**
* 主键id
...
...
@@ -34,12 +33,6 @@ public class DbDictBo extends BaseEntity {
private
Long
parentId
;
/**
* 类型:1 类别,2 阶段,3 班级
*/
@NotBlank
(
message
=
"类型:1 类别,2 阶段,3 班级不能为空"
,
groups
=
{
AddGroup
.
class
,
EditGroup
.
class
})
private
String
type
;
/**
* 名称
*/
@NotBlank
(
message
=
"名称不能为空"
,
groups
=
{
AddGroup
.
class
,
EditGroup
.
class
})
...
...
@@ -54,7 +47,6 @@ public class DbDictBo extends BaseEntity {
/**
* 状态:0正常,1删除
*/
@NotNull
(
message
=
"状态:0正常,1删除不能为空"
,
groups
=
{
AddGroup
.
class
,
EditGroup
.
class
})
private
Integer
typeStatus
;
...
...
school-paper/src/main/java/com/ruoyi/school/paper/domain/bo/QuestionBankAndAnswerBo.java
0 → 100644
View file @
604ae45e
package
com
.
ruoyi
.
school
.
paper
.
domain
.
bo
;
import
com.ruoyi.school.paper.domain.DbQuestionBank
;
import
com.ruoyi.school.paper.domain.DbQuestionBankAnswer
;
import
lombok.Data
;
import
lombok.EqualsAndHashCode
;
import
java.util.List
;
/**
* 题库及答案选项业务对象
* <p>created in 2023/7/21 13:21
*
* @author WangMin
* @version 1.0
*/
@Data
@EqualsAndHashCode
(
callSuper
=
true
)
public
class
QuestionBankAndAnswerBo
extends
DbQuestionBank
{
/**
* 选择题对应选项
*/
private
List
<
DbQuestionBankAnswer
>
options
;
}
school-paper/src/main/java/com/ruoyi/school/paper/domain/vo/Db
Dict
Vo.java
→
school-paper/src/main/java/com/ruoyi/school/paper/domain/vo/Db
QuestionType
Vo.java
View file @
604ae45e
...
...
@@ -2,11 +2,7 @@ package com.ruoyi.school.paper.domain.vo;
import
com.alibaba.excel.annotation.ExcelIgnoreUnannotated
;
import
com.alibaba.excel.annotation.ExcelProperty
;
import
com.ruoyi.common.annotation.ExcelDictFormat
;
import
com.ruoyi.common.convert.ExcelDictConvert
;
import
lombok.Data
;
import
java.util.Date
;
/**
...
...
@@ -17,7 +13,7 @@ import java.util.Date;
*/
@Data
@ExcelIgnoreUnannotated
public
class
Db
Dict
Vo
{
public
class
Db
QuestionType
Vo
{
private
static
final
long
serialVersionUID
=
1L
;
...
...
@@ -33,11 +29,6 @@ public class DbDictVo {
@ExcelProperty
(
value
=
"父级id"
)
private
Long
parentId
;
/**
* 类型:1 类别,2 阶段,3 班级
*/
@ExcelProperty
(
value
=
"类型:1 类别,2 阶段,3 班级"
)
private
String
type
;
/**
* 名称
...
...
school-paper/src/main/java/com/ruoyi/school/paper/domain/vo/OptionsVo.java
0 → 100644
View file @
604ae45e
package
com
.
ruoyi
.
school
.
paper
.
domain
.
vo
;
import
lombok.Data
;
/**
* <p>created in 2023/7/21 18:22
*
* @author WangMin
* @version 1.0
*/
@Data
public
class
OptionsVo
{
/**
* 标签名
*/
private
String
tag
;
/**
* 内容
*/
private
String
content
;
}
school-paper/src/main/java/com/ruoyi/school/paper/domain/vo/TestPaperVo.java
0 → 100644
View file @
604ae45e
package
com
.
ruoyi
.
school
.
paper
.
domain
.
vo
;
import
lombok.Data
;
import
java.util.List
;
/**
* 学生考试 试题实体
* <p>created in 2023/7/21 16:29
*
* @author WangMin
* @version 1.0
*/
@Data
public
class
TestPaperVo
{
/**
* 试卷名称
*/
private
String
testName
;
/**
* 考试纪录ID
*/
private
Long
recordId
;
/**
* 试题
*/
private
List
<
TestQuestionsVo
>
questions
;
}
school-paper/src/main/java/com/ruoyi/school/paper/domain/vo/TestQuestionItemVo.java
0 → 100644
View file @
604ae45e
package
com
.
ruoyi
.
school
.
paper
.
domain
.
vo
;
import
com.fasterxml.jackson.annotation.JsonInclude
;
import
lombok.Data
;
import
java.util.List
;
/**
* <p>created in 2023/7/21 16:41
*
* @author WangMin
* @version 1.0
*/
@Data
public
class
TestQuestionItemVo
{
/**
* 题目ID
*/
private
Long
id
;
/**
* 题目
*/
private
String
topic
;
/**
* 选择题选项
*/
@JsonInclude
(
JsonInclude
.
Include
.
NON_EMPTY
)
private
List
<
OptionsVo
>
options
;
}
school-paper/src/main/java/com/ruoyi/school/paper/domain/vo/TestQuestionsVo.java
0 → 100644
View file @
604ae45e
package
com
.
ruoyi
.
school
.
paper
.
domain
.
vo
;
import
lombok.Data
;
import
java.util.List
;
/**
* 试卷题目分类实体类
* <p>created in 2023/7/21 16:35
*
* @author WangMin
* @version 1.0
*/
@Data
public
class
TestQuestionsVo
{
/**
* 题目类别
*/
private
String
questionsCategory
;
/**
* 题目列表
*/
private
List
<
TestQuestionItemVo
>
item
;
}
school-paper/src/main/java/com/ruoyi/school/paper/mapper/DbErrorListMapper.java
View file @
604ae45e
...
...
@@ -3,6 +3,7 @@ package com.ruoyi.school.paper.mapper;
import
com.baomidou.mybatisplus.core.metadata.IPage
;
import
com.baomidou.mybatisplus.extension.plugins.pagination.Page
;
import
com.ruoyi.common.core.domain.PageQuery
;
import
com.ruoyi.common.core.mapper.BaseMapperPlus
;
import
com.ruoyi.school.paper.domain.DbErrorList
;
import
com.ruoyi.school.paper.domain.request.ErrorTopicRequest
;
import
com.ruoyi.school.paper.domain.vo.DbErrorListVo
;
...
...
@@ -14,6 +15,7 @@ import org.apache.ibatis.annotations.Param;
import
org.springframework.web.bind.annotation.RequestParam
;
import
java.util.List
;
import
org.apache.ibatis.annotations.Mapper
;
/**
* 错题集Mapper接口
...
...
@@ -21,6 +23,7 @@ import java.util.List;
* @author zyf
* @date 2023-07-20
*/
@Mapper
public
interface
DbErrorListMapper
extends
BaseMapperPlus
<
DbErrorListMapper
,
DbErrorList
,
DbErrorListVo
>
{
Page
<
ErrorTopicListVo
>
findErrorTopicPage
(
IPage
<
ErrorTopicListVo
>
iPage
,
@Param
(
"request"
)
ErrorTopicRequest
request
);
...
...
school-paper/src/main/java/com/ruoyi/school/paper/mapper/DbQuestionBankAnswerMapper.java
View file @
604ae45e
...
...
@@ -3,6 +3,7 @@ package com.ruoyi.school.paper.mapper;
import
com.ruoyi.school.paper.domain.DbQuestionBankAnswer
;
import
com.ruoyi.school.paper.domain.vo.DbQuestionBankAnswerVo
;
import
com.ruoyi.common.core.mapper.BaseMapperPlus
;
import
org.apache.ibatis.annotations.Mapper
;
/**
* 题目答案Mapper接口
...
...
@@ -10,6 +11,7 @@ import com.ruoyi.common.core.mapper.BaseMapperPlus;
* @author zyf
* @date 2023-07-20
*/
@Mapper
public
interface
DbQuestionBankAnswerMapper
extends
BaseMapperPlus
<
DbQuestionBankAnswerMapper
,
DbQuestionBankAnswer
,
DbQuestionBankAnswerVo
>
{
}
school-paper/src/main/java/com/ruoyi/school/paper/mapper/DbQuestionBankMapper.java
View file @
604ae45e
...
...
@@ -3,6 +3,7 @@ package com.ruoyi.school.paper.mapper;
import
com.ruoyi.school.paper.domain.DbQuestionBank
;
import
com.ruoyi.school.paper.domain.vo.DbQuestionBankVo
;
import
com.ruoyi.common.core.mapper.BaseMapperPlus
;
import
org.apache.ibatis.annotations.Mapper
;
/**
* 题库主Mapper接口
...
...
@@ -10,6 +11,7 @@ import com.ruoyi.common.core.mapper.BaseMapperPlus;
* @author zyf
* @date 2023-07-20
*/
@Mapper
public
interface
DbQuestionBankMapper
extends
BaseMapperPlus
<
DbQuestionBankMapper
,
DbQuestionBank
,
DbQuestionBankVo
>
{
}
school-paper/src/main/java/com/ruoyi/school/paper/mapper/DbQuestionBankTestPaperMapper.java
View file @
604ae45e
package
com
.
ruoyi
.
school
.
paper
.
mapper
;
import
com.ruoyi.common.core.mapper.BaseMapperPlus
;
import
com.ruoyi.school.paper.domain.DbQuestionBankTestPaper
;
import
com.ruoyi.school.paper.domain.vo.DbQuestionBankTestPaperVo
;
import
com.ruoyi.common.core.mapper.BaseMapperPlus
;
import
com.ruoyi.school.paper.domain.vo.TestQuestionsVo
;
import
org.apache.ibatis.annotations.Mapper
;
import
org.apache.ibatis.annotations.Param
;
import
java.util.List
;
/**
* 试卷题库主Mapper接口
...
...
@@ -10,6 +15,15 @@ import com.ruoyi.common.core.mapper.BaseMapperPlus;
* @author zyf
* @date 2023-07-20
*/
@Mapper
public
interface
DbQuestionBankTestPaperMapper
extends
BaseMapperPlus
<
DbQuestionBankTestPaperMapper
,
DbQuestionBankTestPaper
,
DbQuestionBankTestPaperVo
>
{
/**
* 查询试卷所有考题
*
* @return 试卷
*/
List
<
TestQuestionsVo
>
selectTestPaperQuestion
(
@Param
(
"paperId"
)
Long
paperId
);
}
school-paper/src/main/java/com/ruoyi/school/paper/mapper/Db
Dict
Mapper.java
→
school-paper/src/main/java/com/ruoyi/school/paper/mapper/Db
QuestionType
Mapper.java
View file @
604ae45e
package
com
.
ruoyi
.
school
.
paper
.
mapper
;
import
com.ruoyi.school.paper.domain.Db
Dict
;
import
com.ruoyi.school.paper.domain.vo.Db
Dict
Vo
;
import
com.ruoyi.school.paper.domain.Db
QuestionType
;
import
com.ruoyi.school.paper.domain.vo.Db
QuestionType
Vo
;
import
com.ruoyi.common.core.mapper.BaseMapperPlus
;
import
org.apache.ibatis.annotations.Mapper
;
/**
* 字典Mapper接口
...
...
@@ -10,6 +11,7 @@ import com.ruoyi.common.core.mapper.BaseMapperPlus;
* @author zyf
* @date 2023-07-20
*/
public
interface
DbDictMapper
extends
BaseMapperPlus
<
DbDictMapper
,
DbDict
,
DbDictVo
>
{
@Mapper
public
interface
DbQuestionTypeMapper
extends
BaseMapperPlus
<
DbQuestionTypeMapper
,
DbQuestionType
,
DbQuestionTypeVo
>
{
}
school-paper/src/main/java/com/ruoyi/school/paper/mapper/DbTestPaperMapper.java
View file @
604ae45e
...
...
@@ -3,6 +3,7 @@ package com.ruoyi.school.paper.mapper;
import
com.ruoyi.school.paper.domain.DbTestPaper
;
import
com.ruoyi.school.paper.domain.vo.DbTestPaperVo
;
import
com.ruoyi.common.core.mapper.BaseMapperPlus
;
import
org.apache.ibatis.annotations.Mapper
;
/**
* 试卷Mapper接口
...
...
@@ -10,6 +11,7 @@ import com.ruoyi.common.core.mapper.BaseMapperPlus;
* @author zyf
* @date 2023-07-20
*/
@Mapper
public
interface
DbTestPaperMapper
extends
BaseMapperPlus
<
DbTestPaperMapper
,
DbTestPaper
,
DbTestPaperVo
>
{
}
school-paper/src/main/java/com/ruoyi/school/paper/service/IDbQuestionBankService.java
View file @
604ae45e
package
com
.
ruoyi
.
school
.
paper
.
service
;
import
com.ruoyi.school.paper.domain.DbQuestionBank
;
import
com.ruoyi.school.paper.domain.bo.QuestionBankAndAnswerBo
;
import
com.ruoyi.school.paper.domain.vo.DbQuestionBankVo
;
import
com.ruoyi.school.paper.domain.bo.DbQuestionBankBo
;
import
com.ruoyi.common.core.page.TableDataInfo
;
...
...
@@ -37,6 +38,12 @@ public interface IDbQuestionBankService {
*/
Boolean
insertByBo
(
DbQuestionBankBo
bo
);
/** 新增题库
* @param bo 题目参数及答案列表
* @return 操作结果
*/
boolean
insertByBo
(
QuestionBankAndAnswerBo
bo
);
/**
* 修改题库主
*/
...
...
school-paper/src/main/java/com/ruoyi/school/paper/service/IDbQuestionBankTestPaperService.java
View file @
604ae45e
package
com
.
ruoyi
.
school
.
paper
.
service
;
import
com.ruoyi.school.paper.domain.DbQuestionBankTestPaper
;
import
com.ruoyi.school.paper.domain.vo.DbQuestionBankTestPaperVo
;
import
com.ruoyi.school.paper.domain.bo.DbQuestionBankTestPaperBo
;
import
com.ruoyi.common.core.page.TableDataInfo
;
import
com.ruoyi.common.core.domain.PageQuery
;
import
com.ruoyi.common.core.page.TableDataInfo
;
import
com.ruoyi.school.paper.domain.bo.DbQuestionBankTestPaperBo
;
import
com.ruoyi.school.paper.domain.vo.DbQuestionBankTestPaperVo
;
import
com.ruoyi.school.paper.domain.vo.TestQuestionsVo
;
import
java.util.Collection
;
import
java.util.List
;
...
...
@@ -46,4 +46,12 @@ public interface IDbQuestionBankTestPaperService {
* 校验并批量删除试卷题库主信息
*/
Boolean
deleteWithValidByIds
(
Collection
<
Long
>
ids
,
Boolean
isValid
);
/**
* 查询试卷所有考题
*
* @return 试卷
*/
List
<
TestQuestionsVo
>
getTestPaperQuestion
(
Long
paperId
);
}
school-paper/src/main/java/com/ruoyi/school/paper/service/IDb
Dict
Service.java
→
school-paper/src/main/java/com/ruoyi/school/paper/service/IDb
QuestionType
Service.java
View file @
604ae45e
package
com
.
ruoyi
.
school
.
paper
.
service
;
import
com.ruoyi.school.paper.domain.DbDict
;
import
com.ruoyi.school.paper.domain.vo.DbDictVo
;
import
com.ruoyi.school.paper.domain.bo.DbDictBo
;
import
com.ruoyi.school.paper.domain.vo.DbQuestionTypeVo
;
import
com.ruoyi.school.paper.domain.bo.DbQuestionTypeBo
;
import
com.ruoyi.common.core.page.TableDataInfo
;
import
com.ruoyi.common.core.domain.PageQuery
;
...
...
@@ -15,32 +14,32 @@ import java.util.List;
* @author zyf
* @date 2023-07-20
*/
public
interface
IDb
Dict
Service
{
public
interface
IDb
QuestionType
Service
{
/**
* 查询字典
*/
Db
Dict
Vo
queryById
(
Long
id
);
Db
QuestionType
Vo
queryById
(
Long
id
);
/**
* 查询字典列表
*/
TableDataInfo
<
Db
DictVo
>
queryPageList
(
DbDict
Bo
bo
,
PageQuery
pageQuery
);
TableDataInfo
<
Db
QuestionTypeVo
>
queryPageList
(
DbQuestionType
Bo
bo
,
PageQuery
pageQuery
);
/**
* 查询字典列表
*/
List
<
Db
DictVo
>
queryList
(
DbDict
Bo
bo
);
List
<
Db
QuestionTypeVo
>
queryList
(
DbQuestionType
Bo
bo
);
/**
* 新增字典
*/
Boolean
insertByBo
(
Db
Dict
Bo
bo
);
Boolean
insertByBo
(
Db
QuestionType
Bo
bo
);
/**
* 修改字典
*/
Boolean
updateByBo
(
Db
Dict
Bo
bo
);
Boolean
updateByBo
(
Db
QuestionType
Bo
bo
);
/**
* 校验并批量删除字典信息
...
...
school-paper/src/main/java/com/ruoyi/school/paper/service/ITestPaperService.java
0 → 100644
View file @
604ae45e
package
com
.
ruoyi
.
school
.
paper
.
service
;
import
com.ruoyi.school.paper.domain.vo.TestPaperVo
;
/**
* 考试接口
* <p>created in 2023/7/21 16:57
*
* @author WangMin
* @version 1.0
*/
public
interface
ITestPaperService
{
/**
* 生成试卷
*
* @param userId 用户ID
* @param paperId 试卷ID
* @return 试题
*/
TestPaperVo
generateTestPaper
(
Long
userId
,
Long
paperId
);
}
school-paper/src/main/java/com/ruoyi/school/paper/service/impl/DbQuestionBankServiceImpl.java
View file @
604ae45e
package
com
.
ruoyi
.
school
.
paper
.
service
.
impl
;
import
cn.hutool.core.bean.BeanUtil
;
import
com.ruoyi.common.utils.StringUtils
;
import
com.ruoyi.common.core.page.TableDataInfo
;
import
com.ruoyi.common.core.domain.PageQuery
;
import
com.baomidou.mybatisplus.extension.plugins.pagination.Page
;
import
cn.hutool.core.collection.CollUtil
;
import
com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper
;
import
com.baomidou.mybatisplus.core.toolkit.Wrappers
;
import
lombok.RequiredArgsConstructor
;
import
org.springframework.stereotype.Service
;
import
com.baomidou.mybatisplus.extension.plugins.pagination.Page
;
import
com.ruoyi.common.core.domain.PageQuery
;
import
com.ruoyi.common.core.page.TableDataInfo
;
import
com.ruoyi.common.utils.StringUtils
;
import
com.ruoyi.school.paper.domain.DbQuestionBank
;
import
com.ruoyi.school.paper.domain.DbQuestionBankAnswer
;
import
com.ruoyi.school.paper.domain.bo.DbQuestionBankBo
;
import
com.ruoyi.school.paper.domain.bo.QuestionBankAndAnswerBo
;
import
com.ruoyi.school.paper.domain.vo.DbQuestionBankVo
;
import
com.ruoyi.school.paper.
domain.DbQuestionBank
;
import
com.ruoyi.school.paper.
mapper.DbQuestionBankAnswerMapper
;
import
com.ruoyi.school.paper.mapper.DbQuestionBankMapper
;
import
com.ruoyi.school.paper.service.IDbQuestionBankService
;
import
lombok.RequiredArgsConstructor
;
import
org.springframework.stereotype.Service
;
import
org.springframework.transaction.annotation.Transactional
;
import
java.util.Collection
;
import
java.util.List
;
import
java.util.Map
;
import
java.util.Collection
;
/**
* 题库主Service业务层处理
...
...
@@ -31,11 +36,13 @@ public class DbQuestionBankServiceImpl implements IDbQuestionBankService {
private
final
DbQuestionBankMapper
baseMapper
;
private
final
DbQuestionBankAnswerMapper
questionBankAnswerMapper
;
/**
* 查询题库主
*/
@Override
public
DbQuestionBankVo
queryById
(
Long
id
){
public
DbQuestionBankVo
queryById
(
Long
id
)
{
return
baseMapper
.
selectVoById
(
id
);
}
...
...
@@ -90,6 +97,31 @@ public class DbQuestionBankServiceImpl implements IDbQuestionBankService {
}
/**
* 新增题库
* <p>若为选择题则将相关选项加入 db_question_bank_answer表中
*
* @param bo 题目参数及答案列表
* @return 操作结果
*/
@Override
@Transactional
(
rollbackFor
=
Exception
.
class
)
public
boolean
insertByBo
(
QuestionBankAndAnswerBo
bo
)
{
DbQuestionBank
insertRecord
=
BeanUtil
.
toBean
(
bo
,
DbQuestionBank
.
class
);
validEntityBeforeSave
(
insertRecord
);
boolean
questionInsertFlag
=
baseMapper
.
insert
(
insertRecord
)
>
0
;
// 若为选择题则同步插入至选项答案中
boolean
answerInsertFlag
=
false
;
if
(
questionInsertFlag
&&
insertRecord
.
getSpecies
()
==
2
&&
CollUtil
.
isNotEmpty
(
bo
.
getOptions
()))
{
List
<
DbQuestionBankAnswer
>
options
=
bo
.
getOptions
();
for
(
DbQuestionBankAnswer
option
:
options
)
{
option
.
setQuestionBankId
(
insertRecord
.
getId
());
}
answerInsertFlag
=
questionBankAnswerMapper
.
insertBatch
(
options
);
}
return
questionInsertFlag
&&
answerInsertFlag
;
}
/**
* 修改题库主
*/
@Override
...
...
@@ -102,7 +134,7 @@ public class DbQuestionBankServiceImpl implements IDbQuestionBankService {
/**
* 保存前的数据校验
*/
private
void
validEntityBeforeSave
(
DbQuestionBank
entity
){
private
void
validEntityBeforeSave
(
DbQuestionBank
entity
)
{
//TODO 做一些数据校验,如唯一约束
}
...
...
@@ -111,7 +143,7 @@ public class DbQuestionBankServiceImpl implements IDbQuestionBankService {
*/
@Override
public
Boolean
deleteWithValidByIds
(
Collection
<
Long
>
ids
,
Boolean
isValid
)
{
if
(
isValid
)
{
if
(
isValid
)
{
//TODO 做一些业务上的校验,判断是否需要校验
}
return
baseMapper
.
deleteBatchIds
(
ids
)
>
0
;
...
...
school-paper/src/main/java/com/ruoyi/school/paper/service/impl/DbQuestionBankTestPaperServiceImpl.java
View file @
604ae45e
...
...
@@ -7,6 +7,7 @@ import com.ruoyi.common.core.domain.PageQuery;
import
com.baomidou.mybatisplus.extension.plugins.pagination.Page
;
import
com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper
;
import
com.baomidou.mybatisplus.core.toolkit.Wrappers
;
import
com.ruoyi.school.paper.domain.vo.TestQuestionsVo
;
import
lombok.RequiredArgsConstructor
;
import
org.springframework.stereotype.Service
;
import
com.ruoyi.school.paper.domain.bo.DbQuestionBankTestPaperBo
;
...
...
@@ -35,7 +36,7 @@ public class DbQuestionBankTestPaperServiceImpl implements IDbQuestionBankTestPa
* 查询试卷题库主
*/
@Override
public
DbQuestionBankTestPaperVo
queryById
(
Long
id
){
public
DbQuestionBankTestPaperVo
queryById
(
Long
id
)
{
return
baseMapper
.
selectVoById
(
id
);
}
...
...
@@ -103,7 +104,7 @@ public class DbQuestionBankTestPaperServiceImpl implements IDbQuestionBankTestPa
/**
* 保存前的数据校验
*/
private
void
validEntityBeforeSave
(
DbQuestionBankTestPaper
entity
){
private
void
validEntityBeforeSave
(
DbQuestionBankTestPaper
entity
)
{
//TODO 做一些数据校验,如唯一约束
}
...
...
@@ -112,9 +113,14 @@ public class DbQuestionBankTestPaperServiceImpl implements IDbQuestionBankTestPa
*/
@Override
public
Boolean
deleteWithValidByIds
(
Collection
<
Long
>
ids
,
Boolean
isValid
)
{
if
(
isValid
)
{
if
(
isValid
)
{
//TODO 做一些业务上的校验,判断是否需要校验
}
return
baseMapper
.
deleteBatchIds
(
ids
)
>
0
;
}
@Override
public
List
<
TestQuestionsVo
>
getTestPaperQuestion
(
Long
paperId
)
{
return
baseMapper
.
selectTestPaperQuestion
(
paperId
);
}
}
school-paper/src/main/java/com/ruoyi/school/paper/service/impl/Db
Dict
ServiceImpl.java
→
school-paper/src/main/java/com/ruoyi/school/paper/service/impl/Db
QuestionType
ServiceImpl.java
View file @
604ae45e
...
...
@@ -9,71 +9,70 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import
com.baomidou.mybatisplus.core.toolkit.Wrappers
;
import
lombok.RequiredArgsConstructor
;
import
org.springframework.stereotype.Service
;
import
com.ruoyi.school.paper.domain.bo.Db
Dict
Bo
;
import
com.ruoyi.school.paper.domain.vo.Db
Dict
Vo
;
import
com.ruoyi.school.paper.domain.Db
Dict
;
import
com.ruoyi.school.paper.mapper.Db
Dict
Mapper
;
import
com.ruoyi.school.paper.service.IDb
Dict
Service
;
import
com.ruoyi.school.paper.domain.bo.Db
QuestionType
Bo
;
import
com.ruoyi.school.paper.domain.vo.Db
QuestionType
Vo
;
import
com.ruoyi.school.paper.domain.Db
QuestionType
;
import
com.ruoyi.school.paper.mapper.Db
QuestionType
Mapper
;
import
com.ruoyi.school.paper.service.IDb
QuestionType
Service
;
import
java.util.List
;
import
java.util.Map
;
import
java.util.Collection
;
/**
*
字典
Service业务层处理
*
题型
Service业务层处理
*
* @author zyf
* @date 2023-07-20
*/
@RequiredArgsConstructor
@Service
public
class
Db
DictServiceImpl
implements
IDbDict
Service
{
public
class
Db
QuestionTypeServiceImpl
implements
IDbQuestionType
Service
{
private
final
Db
Dict
Mapper
baseMapper
;
private
final
Db
QuestionType
Mapper
baseMapper
;
/**
* 查询
字典
* 查询
题型
*/
@Override
public
Db
Dict
Vo
queryById
(
Long
id
){
public
Db
QuestionType
Vo
queryById
(
Long
id
){
return
baseMapper
.
selectVoById
(
id
);
}
/**
* 查询
字典
列表
* 查询
题型
列表
*/
@Override
public
TableDataInfo
<
Db
DictVo
>
queryPageList
(
DbDict
Bo
bo
,
PageQuery
pageQuery
)
{
LambdaQueryWrapper
<
Db
Dict
>
lqw
=
buildQueryWrapper
(
bo
);
Page
<
Db
Dict
Vo
>
result
=
baseMapper
.
selectVoPage
(
pageQuery
.
build
(),
lqw
);
public
TableDataInfo
<
Db
QuestionTypeVo
>
queryPageList
(
DbQuestionType
Bo
bo
,
PageQuery
pageQuery
)
{
LambdaQueryWrapper
<
Db
QuestionType
>
lqw
=
buildQueryWrapper
(
bo
);
Page
<
Db
QuestionType
Vo
>
result
=
baseMapper
.
selectVoPage
(
pageQuery
.
build
(),
lqw
);
return
TableDataInfo
.
build
(
result
);
}
/**
* 查询
字典
列表
* 查询
题型
列表
*/
@Override
public
List
<
Db
DictVo
>
queryList
(
DbDict
Bo
bo
)
{
LambdaQueryWrapper
<
Db
Dict
>
lqw
=
buildQueryWrapper
(
bo
);
public
List
<
Db
QuestionTypeVo
>
queryList
(
DbQuestionType
Bo
bo
)
{
LambdaQueryWrapper
<
Db
QuestionType
>
lqw
=
buildQueryWrapper
(
bo
);
return
baseMapper
.
selectVoList
(
lqw
);
}
private
LambdaQueryWrapper
<
Db
Dict
>
buildQueryWrapper
(
DbDict
Bo
bo
)
{
private
LambdaQueryWrapper
<
Db
QuestionType
>
buildQueryWrapper
(
DbQuestionType
Bo
bo
)
{
Map
<
String
,
Object
>
params
=
bo
.
getParams
();
LambdaQueryWrapper
<
DbDict
>
lqw
=
Wrappers
.
lambdaQuery
();
lqw
.
eq
(
bo
.
getParentId
()
!=
null
,
DbDict:
:
getParentId
,
bo
.
getParentId
());
lqw
.
eq
(
StringUtils
.
isNotBlank
(
bo
.
getType
()),
DbDict:
:
getType
,
bo
.
getType
());
lqw
.
eq
(
StringUtils
.
isNotBlank
(
bo
.
getTypeValue
()),
DbDict:
:
getTypeValue
,
bo
.
getTypeValue
());
lqw
.
eq
(
bo
.
getTypeStatus
()
!=
null
,
DbDict:
:
getTypeStatus
,
bo
.
getTypeStatus
());
LambdaQueryWrapper
<
DbQuestionType
>
lqw
=
Wrappers
.
lambdaQuery
();
lqw
.
eq
(
bo
.
getParentId
()
!=
null
,
DbQuestionType:
:
getParentId
,
bo
.
getParentId
());
lqw
.
eq
(
StringUtils
.
isNotBlank
(
bo
.
getTypeValue
()),
DbQuestionType:
:
getTypeValue
,
bo
.
getTypeValue
());
lqw
.
eq
(
bo
.
getTypeStatus
()
!=
null
,
DbQuestionType:
:
getTypeStatus
,
bo
.
getTypeStatus
());
return
lqw
;
}
/**
* 新增
字典
* 新增
题型
*/
@Override
public
Boolean
insertByBo
(
Db
Dict
Bo
bo
)
{
Db
Dict
add
=
BeanUtil
.
toBean
(
bo
,
DbDict
.
class
);
public
Boolean
insertByBo
(
Db
QuestionType
Bo
bo
)
{
Db
QuestionType
add
=
BeanUtil
.
toBean
(
bo
,
DbQuestionType
.
class
);
validEntityBeforeSave
(
add
);
boolean
flag
=
baseMapper
.
insert
(
add
)
>
0
;
if
(
flag
)
{
...
...
@@ -83,11 +82,11 @@ public class DbDictServiceImpl implements IDbDictService {
}
/**
* 修改
字典
* 修改
题型
*/
@Override
public
Boolean
updateByBo
(
Db
Dict
Bo
bo
)
{
Db
Dict
update
=
BeanUtil
.
toBean
(
bo
,
DbDict
.
class
);
public
Boolean
updateByBo
(
Db
QuestionType
Bo
bo
)
{
Db
QuestionType
update
=
BeanUtil
.
toBean
(
bo
,
DbQuestionType
.
class
);
validEntityBeforeSave
(
update
);
return
baseMapper
.
updateById
(
update
)
>
0
;
}
...
...
@@ -95,12 +94,12 @@ public class DbDictServiceImpl implements IDbDictService {
/**
* 保存前的数据校验
*/
private
void
validEntityBeforeSave
(
Db
Dict
entity
){
private
void
validEntityBeforeSave
(
Db
QuestionType
entity
){
//TODO 做一些数据校验,如唯一约束
}
/**
* 批量删除
字典
* 批量删除
题型
*/
@Override
public
Boolean
deleteWithValidByIds
(
Collection
<
Long
>
ids
,
Boolean
isValid
)
{
...
...
school-paper/src/main/java/com/ruoyi/school/paper/service/impl/TestPaperServiceImpl.java
0 → 100644
View file @
604ae45e
package
com
.
ruoyi
.
school
.
paper
.
service
.
impl
;
import
com.ruoyi.common.exception.ServiceException
;
import
com.ruoyi.school.paper.domain.bo.DbTestPaperRecordBo
;
import
com.ruoyi.school.paper.domain.vo.DbTestPaperVo
;
import
com.ruoyi.school.paper.domain.vo.TestPaperVo
;
import
com.ruoyi.school.paper.domain.vo.TestQuestionsVo
;
import
com.ruoyi.school.paper.service.IDbQuestionBankTestPaperService
;
import
com.ruoyi.school.paper.service.IDbTestPaperRecordService
;
import
com.ruoyi.school.paper.service.IDbTestPaperService
;
import
com.ruoyi.school.paper.service.ITestPaperService
;
import
lombok.RequiredArgsConstructor
;
import
org.springframework.stereotype.Service
;
import
org.springframework.transaction.annotation.Transactional
;
import
java.util.List
;
import
java.util.Objects
;
/**
* <p>created in 2023/7/21 17:03
*
* @author WangMin
* @version 1.0
*/
@Service
@RequiredArgsConstructor
public
class
TestPaperServiceImpl
implements
ITestPaperService
{
private
final
IDbTestPaperService
testPaperService
;
private
final
IDbTestPaperRecordService
paperRecordService
;
private
final
IDbQuestionBankTestPaperService
bankTestPaperService
;
@Override
@Transactional
(
rollbackFor
=
Exception
.
class
)
public
TestPaperVo
generateTestPaper
(
Long
userId
,
Long
paperId
)
{
TestPaperVo
result
=
new
TestPaperVo
();
// 获取到对应试卷信息
DbTestPaperVo
dbTestPaperVo
=
testPaperService
.
queryById
(
paperId
);
Objects
.
requireNonNull
(
dbTestPaperVo
,
"未检查到目标试卷"
);
result
.
setTestName
(
dbTestPaperVo
.
getTestName
());
// 插入学生-试卷考试记录信息
DbTestPaperRecordBo
dbTestPaperRecord
=
new
DbTestPaperRecordBo
();
dbTestPaperRecord
.
setTestPaperId
(
paperId
);
dbTestPaperRecord
.
setUserId
(
userId
);
dbTestPaperRecord
.
setStatus
(
0
);
boolean
recordInsertFlag
=
paperRecordService
.
insertByBo
(
dbTestPaperRecord
);
if
(!
recordInsertFlag
)
{
throw
new
ServiceException
(
"考试记录生成失败"
);
}
result
.
setRecordId
(
dbTestPaperRecord
.
getId
());
// 查询试卷试题
List
<
TestQuestionsVo
>
testPaperQuestion
=
bankTestPaperService
.
getTestPaperQuestion
(
paperId
);
result
.
setQuestions
(
testPaperQuestion
);
return
result
;
}
}
school-paper/src/main/resources/mapper/school-paper/DbQuestionBankTestPaperMapper.xml
View file @
604ae45e
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper
namespace=
"com.ruoyi.school.paper.mapper.DbQuestionBankTestPaperMapper"
>
<resultMap
type=
"com.ruoyi.school.paper.domain.DbQuestionBankTestPaper"
id=
"DbQuestionBankTestPaperResult"
>
...
...
@@ -25,5 +25,33 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<result
property=
"updateBy"
column=
"update_by"
/>
</resultMap>
<resultMap
id=
"TestPaper"
type=
"com.ruoyi.school.paper.domain.vo.TestQuestionsVo"
>
<result
property=
"questionsCategory"
column=
"category"
/>
<collection
property=
"item"
ofType=
"com.ruoyi.school.paper.domain.vo.TestQuestionItemVo"
>
<id
property=
"id"
column=
"id"
/>
<result
property=
"topic"
column=
"topic"
/>
<collection
property=
"options"
ofType=
"com.ruoyi.school.paper.domain.vo.OptionsVo"
>
<result
property=
"tag"
column=
"option_tag"
/>
<result
property=
"content"
column=
"option_content"
/>
</collection>
</collection>
</resultMap>
<select
id=
"selectTestPaperQuestion"
resultMap=
"TestPaper"
>
select test_repository.id,
case test_repository.species
when 1 then '填空题'
when 2 then '选择题'
when 3 then '解答题'
else '未知'
end as category,
test_repository.topic,
optons.option_tag,
optons.option_content
from db_question_bank_test_paper as test_repository
left join db_question_bank_answer_test_paper as optons on optons.question_bank_id = test_repository.id
where test_repository.test_paper_id = #{paperId}
</select>
</mapper>
school-paper/src/main/resources/mapper/school-paper/Db
Dict
Mapper.xml
→
school-paper/src/main/resources/mapper/school-paper/Db
QuestionType
Mapper.xml
View file @
604ae45e
...
...
@@ -2,12 +2,11 @@
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper
namespace=
"com.ruoyi.school.paper.mapper.Db
Dict
Mapper"
>
<mapper
namespace=
"com.ruoyi.school.paper.mapper.Db
QuestionType
Mapper"
>
<resultMap
type=
"com.ruoyi.school.paper.domain.Db
Dict"
id=
"DbDict
Result"
>
<resultMap
type=
"com.ruoyi.school.paper.domain.Db
QuestionType"
id=
"DbQuestionType
Result"
>
<result
property=
"id"
column=
"id"
/>
<result
property=
"parentId"
column=
"parent_id"
/>
<result
property=
"type"
column=
"type"
/>
<result
property=
"typeValue"
column=
"type_value"
/>
<result
property=
"remark"
column=
"remark"
/>
<result
property=
"typeStatus"
column=
"type_status"
/>
...
...
school-paper/src/main/resources/mapper/school-paper/DbTestPaperMapper.xml
View file @
604ae45e
...
...
@@ -20,4 +20,5 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
</resultMap>
</mapper>
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