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
9e680b94
Commit
9e680b94
authored
Jul 25, 2023
by
Wangmin
Browse files
Options
Browse Files
Download
Plain Diff
Merge remote-tracking branch 'origin/master'
parents
b52d52fc
befb0951
Hide whitespace changes
Inline
Side-by-side
Showing
16 changed files
with
578 additions
and
26 deletions
+578
-26
ruoyi-admin/pom.xml
+1
-1
school-paper/src/main/java/com/ruoyi/school/paper/controller/DbBannerController.java
+107
-0
school-paper/src/main/java/com/ruoyi/school/paper/controller/DbTestPaperController.java
+10
-0
school-paper/src/main/java/com/ruoyi/school/paper/domain/DbBanner.java
+47
-0
school-paper/src/main/java/com/ruoyi/school/paper/domain/bo/DbBannerBo.java
+55
-0
school-paper/src/main/java/com/ruoyi/school/paper/domain/bo/DbTestPaperBo.java
+1
-2
school-paper/src/main/java/com/ruoyi/school/paper/domain/vo/DbBannerVo.java
+55
-0
school-paper/src/main/java/com/ruoyi/school/paper/mapper/DbBannerMapper.java
+15
-0
school-paper/src/main/java/com/ruoyi/school/paper/runner/SchoolPaperApplicationRunner.java
+29
-0
school-paper/src/main/java/com/ruoyi/school/paper/service/IDbBannerService.java
+51
-0
school-paper/src/main/java/com/ruoyi/school/paper/service/IDbQuestionBankService.java
+5
-0
school-paper/src/main/java/com/ruoyi/school/paper/service/IDbTestPaperService.java
+5
-0
school-paper/src/main/java/com/ruoyi/school/paper/service/impl/DbBannerServiceImpl.java
+117
-0
school-paper/src/main/java/com/ruoyi/school/paper/service/impl/DbQuestionBankServiceImpl.java
+52
-23
school-paper/src/main/java/com/ruoyi/school/paper/service/impl/DbTestPaperServiceImpl.java
+8
-0
school-paper/src/main/resources/mapper/school-paper/DbBannerMapper.xml
+20
-0
No files found.
ruoyi-admin/pom.xml
View file @
9e680b94
...
@@ -9,7 +9,7 @@
...
@@ -9,7 +9,7 @@
</parent>
</parent>
<modelVersion>
4.0.0
</modelVersion>
<modelVersion>
4.0.0
</modelVersion>
<packaging>
jar
</packaging>
<packaging>
jar
</packaging>
<artifactId>
ruoyi-admin
</artifactId>
<artifactId>
school
</artifactId>
<description>
<description>
web服务入口
web服务入口
...
...
school-paper/src/main/java/com/ruoyi/school/paper/controller/DbBannerController.java
0 → 100644
View file @
9e680b94
package
com
.
ruoyi
.
school
.
paper
.
controller
;
import
java.util.List
;
import
java.util.Arrays
;
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.core.controller.BaseController
;
import
com.ruoyi.common.core.domain.PageQuery
;
import
com.ruoyi.common.core.domain.R
;
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.DbBannerVo
;
import
com.ruoyi.school.paper.domain.bo.DbBannerBo
;
import
com.ruoyi.school.paper.service.IDbBannerService
;
import
com.ruoyi.common.core.page.TableDataInfo
;
/**
* 轮播图
*
* @author ruoyi
* @date 2023.07.24
*/
@Validated
@RequiredArgsConstructor
@RestController
@RequestMapping
(
"/school-paper/banner"
)
public
class
DbBannerController
extends
BaseController
{
private
final
IDbBannerService
iDbBannerService
;
/**
* 查询轮播图列表
*/
@SaCheckPermission
(
"school.paper:banner:list"
)
@GetMapping
(
"/list"
)
public
TableDataInfo
<
DbBannerVo
>
list
(
DbBannerBo
bo
,
PageQuery
pageQuery
)
{
return
iDbBannerService
.
queryPageList
(
bo
,
pageQuery
);
}
/**
* 导出轮播图列表
*/
@SaCheckPermission
(
"school.paper:banner:export"
)
@Log
(
title
=
"轮播图"
,
businessType
=
BusinessType
.
EXPORT
)
@PostMapping
(
"/export"
)
public
void
export
(
DbBannerBo
bo
,
HttpServletResponse
response
)
{
List
<
DbBannerVo
>
list
=
iDbBannerService
.
queryList
(
bo
);
ExcelUtil
.
exportExcel
(
list
,
"轮播图"
,
DbBannerVo
.
class
,
response
);
}
/**
* 获取轮播图详细信息
*
* @param id 主键
*/
@SaCheckPermission
(
"school.paper:banner:query"
)
@GetMapping
(
"/{id}"
)
public
R
<
DbBannerVo
>
getInfo
(
@NotNull
(
message
=
"主键不能为空"
)
@PathVariable
Long
id
)
{
return
R
.
ok
(
iDbBannerService
.
queryById
(
id
));
}
/**
* 新增轮播图
*/
@SaCheckPermission
(
"school.paper:banner:add"
)
@Log
(
title
=
"轮播图"
,
businessType
=
BusinessType
.
INSERT
)
@RepeatSubmit
()
@PostMapping
()
public
R
<
Void
>
add
(
@Validated
(
AddGroup
.
class
)
@RequestBody
DbBannerBo
bo
)
{
return
toAjax
(
iDbBannerService
.
insertByBo
(
bo
));
}
/**
* 修改轮播图
*/
@SaCheckPermission
(
"school.paper:banner:edit"
)
@Log
(
title
=
"轮播图"
,
businessType
=
BusinessType
.
UPDATE
)
@RepeatSubmit
()
@PutMapping
()
public
R
<
Void
>
edit
(
@Validated
(
EditGroup
.
class
)
@RequestBody
DbBannerBo
bo
)
{
return
toAjax
(
iDbBannerService
.
updateByBo
(
bo
));
}
/**
* 删除轮播图
*
* @param ids 主键串
*/
@SaCheckPermission
(
"school.paper:banner:remove"
)
@Log
(
title
=
"轮播图"
,
businessType
=
BusinessType
.
DELETE
)
@DeleteMapping
(
"/{ids}"
)
public
R
<
Void
>
remove
(
@NotEmpty
(
message
=
"主键不能为空"
)
@PathVariable
Long
[]
ids
)
{
return
toAjax
(
iDbBannerService
.
deleteWithValidByIds
(
Arrays
.
asList
(
ids
),
true
));
}
}
school-paper/src/main/java/com/ruoyi/school/paper/controller/DbTestPaperController.java
View file @
9e680b94
...
@@ -81,6 +81,16 @@ public class DbTestPaperController extends BaseController {
...
@@ -81,6 +81,16 @@ public class DbTestPaperController extends BaseController {
}
}
/**
/**
* 随机生成试卷
*/
@Log
(
title
=
"试卷"
,
businessType
=
BusinessType
.
INSERT
)
@RepeatSubmit
()
@PostMapping
(
"randomGeneration"
)
public
R
<
Void
>
randomGeneration
(
@Validated
(
AddGroup
.
class
)
@RequestBody
DbTestPaperBo
bo
)
{
return
toAjax
(
iDbTestPaperService
.
randomGeneration
(
bo
));
}
/**
* 修改试卷
* 修改试卷
*/
*/
@Log
(
title
=
"试卷"
,
businessType
=
BusinessType
.
UPDATE
)
@Log
(
title
=
"试卷"
,
businessType
=
BusinessType
.
UPDATE
)
...
...
school-paper/src/main/java/com/ruoyi/school/paper/domain/DbBanner.java
0 → 100644
View file @
9e680b94
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_banner
*
* @author ruoyi
* @date 2023-07-24
*/
@Data
@EqualsAndHashCode
(
callSuper
=
true
)
@TableName
(
"db_banner"
)
public
class
DbBanner
extends
BaseEntity
{
private
static
final
long
serialVersionUID
=
1L
;
/**
* 主键id
*/
@TableId
(
value
=
"id"
)
private
Long
id
;
/**
* 标题
*/
private
String
bannerTitle
;
/**
* 图片地址
*/
private
String
url
;
/**
* 备注
*/
private
String
remark
;
/**
* 状态:0正常,1删除
*/
private
Integer
status
;
}
school-paper/src/main/java/com/ruoyi/school/paper/domain/bo/DbBannerBo.java
0 → 100644
View file @
9e680b94
package
com
.
ruoyi
.
school
.
paper
.
domain
.
bo
;
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
;
/**
* 轮播图业务对象 db_banner
*
* @author ruoyi
* @date 2023-07-24
*/
@Data
@EqualsAndHashCode
(
callSuper
=
true
)
public
class
DbBannerBo
extends
BaseEntity
{
/**
* 主键id
*/
@NotNull
(
message
=
"主键id不能为空"
,
groups
=
{
EditGroup
.
class
})
private
Long
id
;
/**
* 标题
*/
@NotBlank
(
message
=
"标题不能为空"
,
groups
=
{
AddGroup
.
class
,
EditGroup
.
class
})
private
String
bannerTitle
;
/**
* 图片地址
*/
@NotBlank
(
message
=
"图片地址不能为空"
,
groups
=
{
AddGroup
.
class
,
EditGroup
.
class
})
private
String
url
;
/**
* 备注
*/
@NotBlank
(
message
=
"备注不能为空"
,
groups
=
{
AddGroup
.
class
,
EditGroup
.
class
})
private
String
remark
;
/**
* 状态:0正常,1删除
*/
@NotNull
(
message
=
"状态:0正常,1删除不能为空"
,
groups
=
{
AddGroup
.
class
,
EditGroup
.
class
})
private
Integer
status
;
}
school-paper/src/main/java/com/ruoyi/school/paper/domain/bo/DbTestPaperBo.java
View file @
9e680b94
...
@@ -60,13 +60,12 @@ public class DbTestPaperBo extends BaseEntity {
...
@@ -60,13 +60,12 @@ public class DbTestPaperBo extends BaseEntity {
/**
/**
* 备注
* 备注
*/
*/
@NotBlank
(
message
=
"备注不能为空"
,
groups
=
{
AddGroup
.
class
,
EditGroup
.
class
})
private
String
remark
;
private
String
remark
;
/**
/**
* 状态:0正常,1删除
* 状态:0正常,1删除
*/
*/
@NotNull
(
message
=
"状态:0正常,1删除不能为空"
,
groups
=
{
AddGroup
.
class
,
EditGroup
.
class
})
@NotNull
(
message
=
"状态:0正常,1删除不能为空"
,
groups
=
{
EditGroup
.
class
})
private
Integer
status
;
private
Integer
status
;
...
...
school-paper/src/main/java/com/ruoyi/school/paper/domain/vo/DbBannerVo.java
0 → 100644
View file @
9e680b94
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
;
/**
* 轮播图视图对象 db_banner
*
* @author ruoyi
* @date 2023-07-24
*/
@Data
@ExcelIgnoreUnannotated
public
class
DbBannerVo
{
private
static
final
long
serialVersionUID
=
1L
;
/**
* 主键id
*/
@ExcelProperty
(
value
=
"主键id"
)
private
Long
id
;
/**
* 标题
*/
@ExcelProperty
(
value
=
"标题"
)
private
String
bannerTitle
;
/**
* 图片地址
*/
@ExcelProperty
(
value
=
"图片地址"
)
private
String
url
;
/**
* 备注
*/
@ExcelProperty
(
value
=
"备注"
)
private
String
remark
;
/**
* 状态:0正常,1删除
*/
@ExcelProperty
(
value
=
"状态:0正常,1删除"
)
private
Integer
status
;
}
school-paper/src/main/java/com/ruoyi/school/paper/mapper/DbBannerMapper.java
0 → 100644
View file @
9e680b94
package
com
.
ruoyi
.
school
.
paper
.
mapper
;
import
com.ruoyi.school.paper.domain.DbBanner
;
import
com.ruoyi.school.paper.domain.vo.DbBannerVo
;
import
com.ruoyi.common.core.mapper.BaseMapperPlus
;
/**
* 轮播图Mapper接口
*
* @author ruoyi
* @date 2023.07.24
*/
public
interface
DbBannerMapper
extends
BaseMapperPlus
<
DbBannerMapper
,
DbBanner
,
DbBannerVo
>
{
}
school-paper/src/main/java/com/ruoyi/school/paper/runner/SchoolPaperApplicationRunner.java
0 → 100644
View file @
9e680b94
package
com
.
ruoyi
.
school
.
paper
.
runner
;
import
com.ruoyi.school.paper.service.IDbQuestionBankService
;
import
lombok.RequiredArgsConstructor
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.boot.ApplicationArguments
;
import
org.springframework.boot.ApplicationRunner
;
import
org.springframework.stereotype.Component
;
/**
* 初始化 system 模块对应业务数据
*
* @author Lion Li
*/
@Slf4j
@RequiredArgsConstructor
@Component
public
class
SchoolPaperApplicationRunner
implements
ApplicationRunner
{
private
final
IDbQuestionBankService
questionBankService
;
@Override
public
void
run
(
ApplicationArguments
args
)
throws
Exception
{
questionBankService
.
init
();
log
.
info
(
"加载题库缓存数据成功"
);
}
}
school-paper/src/main/java/com/ruoyi/school/paper/service/IDbBannerService.java
0 → 100644
View file @
9e680b94
package
com
.
ruoyi
.
school
.
paper
.
service
;
import
com.ruoyi.school.paper.domain.DbBanner
;
import
com.ruoyi.school.paper.domain.vo.DbBannerVo
;
import
com.ruoyi.school.paper.domain.bo.DbBannerBo
;
import
com.ruoyi.common.core.page.TableDataInfo
;
import
com.ruoyi.common.core.domain.PageQuery
;
import
com.ruoyi.school.paper.domain.bo.DbBannerBo
;
import
com.ruoyi.school.paper.domain.vo.DbBannerVo
;
import
java.util.Collection
;
import
java.util.List
;
/**
* 轮播图Service接口
*
* @author ruoyi
* @date 2023.07.24
*/
public
interface
IDbBannerService
{
/**
* 查询轮播图
*/
DbBannerVo
queryById
(
Long
id
);
/**
* 查询轮播图列表
*/
TableDataInfo
<
DbBannerVo
>
queryPageList
(
DbBannerBo
bo
,
PageQuery
pageQuery
);
/**
* 查询轮播图列表
*/
List
<
DbBannerVo
>
queryList
(
DbBannerBo
bo
);
/**
* 新增轮播图
*/
Boolean
insertByBo
(
DbBannerBo
bo
);
/**
* 修改轮播图
*/
Boolean
updateByBo
(
DbBannerBo
bo
);
/**
* 校验并批量删除轮播图信息
*/
Boolean
deleteWithValidByIds
(
Collection
<
Long
>
ids
,
Boolean
isValid
);
}
school-paper/src/main/java/com/ruoyi/school/paper/service/IDbQuestionBankService.java
View file @
9e680b94
...
@@ -66,4 +66,9 @@ public interface IDbQuestionBankService {
...
@@ -66,4 +66,9 @@ public interface IDbQuestionBankService {
* 校验并批量删除题库主信息
* 校验并批量删除题库主信息
*/
*/
Boolean
deleteWithValidByIds
(
Collection
<
Long
>
ids
,
Boolean
isValid
);
Boolean
deleteWithValidByIds
(
Collection
<
Long
>
ids
,
Boolean
isValid
);
/**
* 初始化题库到缓存
*/
void
init
();
}
}
school-paper/src/main/java/com/ruoyi/school/paper/service/IDbTestPaperService.java
View file @
9e680b94
...
@@ -46,4 +46,9 @@ public interface IDbTestPaperService {
...
@@ -46,4 +46,9 @@ public interface IDbTestPaperService {
* 校验并批量删除试卷信息
* 校验并批量删除试卷信息
*/
*/
Boolean
deleteWithValidByIds
(
Collection
<
Long
>
ids
,
Boolean
isValid
);
Boolean
deleteWithValidByIds
(
Collection
<
Long
>
ids
,
Boolean
isValid
);
/**
* 随机生成试卷
*/
Boolean
randomGeneration
(
DbTestPaperBo
bo
);
}
}
school-paper/src/main/java/com/ruoyi/school/paper/service/impl/DbBannerServiceImpl.java
0 → 100644
View file @
9e680b94
package
com
.
ruoyi
.
school
.
paper
.
service
.
impl
.
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
com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper
;
import
com.baomidou.mybatisplus.core.toolkit.Wrappers
;
import
com.ruoyi.school.paper.domain.DbBanner
;
import
com.ruoyi.school.paper.domain.bo.DbBannerBo
;
import
com.ruoyi.school.paper.domain.vo.DbBannerVo
;
import
com.ruoyi.school.paper.mapper.DbBannerMapper
;
import
lombok.RequiredArgsConstructor
;
import
org.springframework.stereotype.Service
;
import
com.ruoyi.school.paper.domain.bo.DbBannerBo
;
import
com.ruoyi.school.paper.domain.vo.DbBannerVo
;
import
com.ruoyi.school.paper.domain.DbBanner
;
import
com.ruoyi.school.paper.mapper.DbBannerMapper
;
import
com.ruoyi.school.paper.service.IDbBannerService
;
import
java.util.List
;
import
java.util.Map
;
import
java.util.Collection
;
/**
* 轮播图Service业务层处理
*
* @author ruoyi
* @date 2023.07.24
*/
@RequiredArgsConstructor
@Service
public
class
DbBannerServiceImpl
implements
IDbBannerService
{
private
final
DbBannerMapper
baseMapper
;
/**
* 查询轮播图
*/
@Override
public
DbBannerVo
queryById
(
Long
id
){
return
baseMapper
.
selectVoById
(
id
);
}
/**
* 查询轮播图列表
*/
@Override
public
TableDataInfo
<
DbBannerVo
>
queryPageList
(
DbBannerBo
bo
,
PageQuery
pageQuery
)
{
LambdaQueryWrapper
<
DbBanner
>
lqw
=
buildQueryWrapper
(
bo
);
Page
<
DbBannerVo
>
result
=
baseMapper
.
selectVoPage
(
pageQuery
.
build
(),
lqw
);
return
TableDataInfo
.
build
(
result
);
}
/**
* 查询轮播图列表
*/
@Override
public
List
<
DbBannerVo
>
queryList
(
DbBannerBo
bo
)
{
LambdaQueryWrapper
<
DbBanner
>
lqw
=
buildQueryWrapper
(
bo
);
return
baseMapper
.
selectVoList
(
lqw
);
}
private
LambdaQueryWrapper
<
DbBanner
>
buildQueryWrapper
(
DbBannerBo
bo
)
{
Map
<
String
,
Object
>
params
=
bo
.
getParams
();
LambdaQueryWrapper
<
DbBanner
>
lqw
=
Wrappers
.
lambdaQuery
();
lqw
.
eq
(
StringUtils
.
isNotBlank
(
bo
.
getBannerTitle
()),
DbBanner:
:
getBannerTitle
,
bo
.
getBannerTitle
());
lqw
.
eq
(
StringUtils
.
isNotBlank
(
bo
.
getUrl
()),
DbBanner:
:
getUrl
,
bo
.
getUrl
());
lqw
.
eq
(
bo
.
getStatus
()
!=
null
,
DbBanner:
:
getStatus
,
bo
.
getStatus
());
return
lqw
;
}
/**
* 新增轮播图
*/
@Override
public
Boolean
insertByBo
(
DbBannerBo
bo
)
{
DbBanner
add
=
BeanUtil
.
toBean
(
bo
,
DbBanner
.
class
);
validEntityBeforeSave
(
add
);
boolean
flag
=
baseMapper
.
insert
(
add
)
>
0
;
if
(
flag
)
{
bo
.
setId
(
add
.
getId
());
}
return
flag
;
}
/**
* 修改轮播图
*/
@Override
public
Boolean
updateByBo
(
DbBannerBo
bo
)
{
DbBanner
update
=
BeanUtil
.
toBean
(
bo
,
DbBanner
.
class
);
validEntityBeforeSave
(
update
);
return
baseMapper
.
updateById
(
update
)
>
0
;
}
/**
* 保存前的数据校验
*/
private
void
validEntityBeforeSave
(
DbBanner
entity
){
//TODO 做一些数据校验,如唯一约束
}
/**
* 批量删除轮播图
*/
@Override
public
Boolean
deleteWithValidByIds
(
Collection
<
Long
>
ids
,
Boolean
isValid
)
{
if
(
isValid
){
//TODO 做一些业务上的校验,判断是否需要校验
}
return
baseMapper
.
deleteBatchIds
(
ids
)
>
0
;
}
}
school-paper/src/main/java/com/ruoyi/school/paper/service/impl/DbQuestionBankServiceImpl.java
View file @
9e680b94
...
@@ -7,7 +7,9 @@ import com.baomidou.mybatisplus.core.toolkit.Wrappers;
...
@@ -7,7 +7,9 @@ import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import
com.baomidou.mybatisplus.extension.plugins.pagination.Page
;
import
com.baomidou.mybatisplus.extension.plugins.pagination.Page
;
import
com.ruoyi.common.core.domain.PageQuery
;
import
com.ruoyi.common.core.domain.PageQuery
;
import
com.ruoyi.common.core.page.TableDataInfo
;
import
com.ruoyi.common.core.page.TableDataInfo
;
import
com.ruoyi.common.utils.JsonUtils
;
import
com.ruoyi.common.utils.StringUtils
;
import
com.ruoyi.common.utils.StringUtils
;
import
com.ruoyi.common.utils.redis.RedisUtils
;
import
com.ruoyi.school.paper.domain.DbQuestionBank
;
import
com.ruoyi.school.paper.domain.DbQuestionBank
;
import
com.ruoyi.school.paper.domain.DbQuestionBankAnswer
;
import
com.ruoyi.school.paper.domain.DbQuestionBankAnswer
;
import
com.ruoyi.school.paper.domain.bo.DbQuestionBankAnswerBo
;
import
com.ruoyi.school.paper.domain.bo.DbQuestionBankAnswerBo
;
...
@@ -38,6 +40,8 @@ public class DbQuestionBankServiceImpl implements IDbQuestionBankService {
...
@@ -38,6 +40,8 @@ public class DbQuestionBankServiceImpl implements IDbQuestionBankService {
private
final
DbQuestionBankAnswerMapper
questionBankAnswerMapper
;
private
final
DbQuestionBankAnswerMapper
questionBankAnswerMapper
;
private
String
DEFAULT_QUESTIOBN_BANK_KEY
=
"question_bank:default_question_bank"
;
/**
/**
* 查询题库主
* 查询题库主
*/
*/
...
@@ -115,15 +119,23 @@ public class DbQuestionBankServiceImpl implements IDbQuestionBankService {
...
@@ -115,15 +119,23 @@ public class DbQuestionBankServiceImpl implements IDbQuestionBankService {
validEntityBeforeSave
(
insertRecord
);
validEntityBeforeSave
(
insertRecord
);
boolean
questionInsertFlag
=
baseMapper
.
insert
(
insertRecord
)
>
0
;
boolean
questionInsertFlag
=
baseMapper
.
insert
(
insertRecord
)
>
0
;
// 若为选择题则同步插入至选项答案中
// 若为选择题则同步插入至选项答案中
boolean
answerInsertFlag
=
false
;
boolean
answerInsertFlag
=
true
;
if
(
questionInsertFlag
&&
insertRecord
.
getSpecies
()
==
2
&&
CollUtil
.
isNotEmpty
(
bo
.
getOptions
()))
{
if
(
questionInsertFlag
)
{
List
<
DbQuestionBankAnswer
>
options
=
new
ArrayList
<>(
bo
.
getOptions
().
size
());
// 将新增的题目添加到redis题库缓存中
for
(
DbQuestionBankAnswerBo
option
:
bo
.
getOptions
())
{
List
<
DbQuestionBank
>
questionBanks
=
JsonUtils
.
parseArray
(
RedisUtils
.
getCacheObject
(
DEFAULT_QUESTIOBN_BANK_KEY
),
DbQuestionBank
.
class
);
DbQuestionBankAnswer
bankAnswer
=
BeanUtil
.
toBean
(
option
,
DbQuestionBankAnswer
.
class
);
questionBanks
.
add
(
insertRecord
);
bankAnswer
.
setQuestionBankId
(
insertRecord
.
getId
());
RedisUtils
.
setCacheObject
(
DEFAULT_QUESTIOBN_BANK_KEY
,
JsonUtils
.
toJsonString
(
questionBanks
));
options
.
add
(
bankAnswer
);
// 判断是否选择题,是就添加选择题选项
if
(
insertRecord
.
getSpecies
()
==
2
&&
CollUtil
.
isNotEmpty
(
bo
.
getOptions
()))
{
List
<
DbQuestionBankAnswer
>
options
=
new
ArrayList
<>(
bo
.
getOptions
().
size
());
for
(
DbQuestionBankAnswerBo
option
:
bo
.
getOptions
())
{
DbQuestionBankAnswer
bankAnswer
=
BeanUtil
.
toBean
(
option
,
DbQuestionBankAnswer
.
class
);
bankAnswer
.
setQuestionBankId
(
insertRecord
.
getId
());
options
.
add
(
bankAnswer
);
}
answerInsertFlag
=
questionBankAnswerMapper
.
insertBatch
(
options
);
}
}
answerInsertFlag
=
questionBankAnswerMapper
.
insertBatch
(
options
);
}
}
return
questionInsertFlag
&&
answerInsertFlag
;
return
questionInsertFlag
&&
answerInsertFlag
;
}
}
...
@@ -149,20 +161,28 @@ public class DbQuestionBankServiceImpl implements IDbQuestionBankService {
...
@@ -149,20 +161,28 @@ public class DbQuestionBankServiceImpl implements IDbQuestionBankService {
boolean
questionUpdateFlag
=
baseMapper
.
updateById
(
updateRecord
)
>
0
;
boolean
questionUpdateFlag
=
baseMapper
.
updateById
(
updateRecord
)
>
0
;
// 若为选择题则同步插入至选项答案中
// 若为选择题则同步插入至选项答案中
boolean
answerUpdateFlag
=
false
;
boolean
answerUpdateFlag
=
false
;
if
(
questionUpdateFlag
&&
updateRecord
.
getSpecies
()
==
2
&&
CollUtil
.
isNotEmpty
(
bo
.
getOptions
()))
{
if
(
questionUpdateFlag
)
{
// 删除选择题旧有数据
// 将新增的题目添加到redis题库缓存中
LambdaQueryWrapper
<
DbQuestionBankAnswer
>
wrapper
=
new
LambdaQueryWrapper
<>();
List
<
DbQuestionBank
>
questionBanks
=
JsonUtils
.
parseArray
(
RedisUtils
.
getCacheObject
(
DEFAULT_QUESTIOBN_BANK_KEY
),
DbQuestionBank
.
class
);
Objects
.
requireNonNull
(
bo
.
getId
(),
"题目ID不能为空"
);
questionBanks
.
removeIf
(
dbQuestionBank
->
dbQuestionBank
.
getId
().
equals
(
updateRecord
.
getId
()));
wrapper
.
eq
(
DbQuestionBankAnswer:
:
getQuestionBankId
,
bo
.
getId
());
questionBanks
.
add
(
updateRecord
);
questionBankAnswerMapper
.
delete
(
wrapper
);
RedisUtils
.
setCacheObject
(
DEFAULT_QUESTIOBN_BANK_KEY
,
JsonUtils
.
toJsonString
(
questionBanks
));
// 插入新值
List
<
DbQuestionBankAnswer
>
options
=
new
ArrayList
<>(
bo
.
getOptions
().
size
());
if
(
updateRecord
.
getSpecies
()
==
2
&&
CollUtil
.
isNotEmpty
(
bo
.
getOptions
()))
{
for
(
DbQuestionBankAnswerBo
option
:
bo
.
getOptions
())
{
// 删除选择题旧有数据
DbQuestionBankAnswer
bankAnswer
=
BeanUtil
.
toBean
(
option
,
DbQuestionBankAnswer
.
class
);
LambdaQueryWrapper
<
DbQuestionBankAnswer
>
wrapper
=
new
LambdaQueryWrapper
<>();
bankAnswer
.
setQuestionBankId
(
updateRecord
.
getId
());
Objects
.
requireNonNull
(
bo
.
getId
(),
"题目ID不能为空"
);
options
.
add
(
bankAnswer
);
wrapper
.
eq
(
DbQuestionBankAnswer:
:
getQuestionBankId
,
bo
.
getId
());
questionBankAnswerMapper
.
delete
(
wrapper
);
// 插入新值
List
<
DbQuestionBankAnswer
>
options
=
new
ArrayList
<>(
bo
.
getOptions
().
size
());
for
(
DbQuestionBankAnswerBo
option
:
bo
.
getOptions
())
{
DbQuestionBankAnswer
bankAnswer
=
BeanUtil
.
toBean
(
option
,
DbQuestionBankAnswer
.
class
);
bankAnswer
.
setQuestionBankId
(
updateRecord
.
getId
());
options
.
add
(
bankAnswer
);
}
answerUpdateFlag
=
questionBankAnswerMapper
.
insertBatch
(
options
);
}
}
answerUpdateFlag
=
questionBankAnswerMapper
.
insertBatch
(
options
);
}
}
return
questionUpdateFlag
&&
answerUpdateFlag
;
return
questionUpdateFlag
&&
answerUpdateFlag
;
}
}
...
@@ -171,7 +191,7 @@ public class DbQuestionBankServiceImpl implements IDbQuestionBankService {
...
@@ -171,7 +191,7 @@ public class DbQuestionBankServiceImpl implements IDbQuestionBankService {
* 保存前的数据校验
* 保存前的数据校验
*/
*/
private
void
validEntityBeforeSave
(
DbQuestionBank
entity
)
{
private
void
validEntityBeforeSave
(
DbQuestionBank
entity
)
{
//
TODO 做一些数据校验,如唯一约束
//TODO 做一些数据校验,如唯一约束
}
}
/**
/**
...
@@ -180,8 +200,17 @@ public class DbQuestionBankServiceImpl implements IDbQuestionBankService {
...
@@ -180,8 +200,17 @@ public class DbQuestionBankServiceImpl implements IDbQuestionBankService {
@Override
@Override
public
Boolean
deleteWithValidByIds
(
Collection
<
Long
>
ids
,
Boolean
isValid
)
{
public
Boolean
deleteWithValidByIds
(
Collection
<
Long
>
ids
,
Boolean
isValid
)
{
if
(
isValid
)
{
if
(
isValid
)
{
//
TODO 做一些业务上的校验,判断是否需要校验
//TODO 做一些业务上的校验,判断是否需要校验
}
}
return
baseMapper
.
deleteBatchIds
(
ids
)
>
0
;
return
baseMapper
.
deleteBatchIds
(
ids
)
>
0
;
}
}
/**
* 初始化题库到缓存
*/
@Override
public
void
init
()
{
List
<
DbQuestionBank
>
dbQuestionBanks
=
baseMapper
.
selectList
();
RedisUtils
.
setCacheObject
(
"question_bank:default_question_bank"
,
JsonUtils
.
toJsonString
(
dbQuestionBanks
));
}
}
}
school-paper/src/main/java/com/ruoyi/school/paper/service/impl/DbTestPaperServiceImpl.java
View file @
9e680b94
...
@@ -111,4 +111,12 @@ public class DbTestPaperServiceImpl implements IDbTestPaperService {
...
@@ -111,4 +111,12 @@ public class DbTestPaperServiceImpl implements IDbTestPaperService {
}
}
return
baseMapper
.
deleteBatchIds
(
ids
)
>
0
;
return
baseMapper
.
deleteBatchIds
(
ids
)
>
0
;
}
}
/**
* 随机生成试卷
*/
@Override
public
Boolean
randomGeneration
(
DbTestPaperBo
bo
)
{
return
null
;
}
}
}
school-paper/src/main/resources/mapper/school-paper/DbBannerMapper.xml
0 → 100644
View file @
9e680b94
<?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">
<mapper
namespace=
"com.ruoyi.school.paper.mapper.DbBannerMapper"
>
<resultMap
type=
"com.ruoyi.school.paper.domain.DbBanner"
id=
"DbBannerResult"
>
<result
property=
"id"
column=
"id"
/>
<result
property=
"bannerTitle"
column=
"banner_title"
/>
<result
property=
"url"
column=
"url"
/>
<result
property=
"remark"
column=
"remark"
/>
<result
property=
"status"
column=
"status"
/>
<result
property=
"createTime"
column=
"create_time"
/>
<result
property=
"createBy"
column=
"create_by"
/>
<result
property=
"updateTime"
column=
"update_time"
/>
<result
property=
"updateBy"
column=
"update_by"
/>
</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