修改:用户在实训平台能看到公开的课程、考试及自己所属组织下的课程、考试数据

This commit is contained in:
joylink_zhangsai 2022-07-14 16:22:25 +08:00
parent c6868d4e0a
commit c4144e5f80
6 changed files with 36 additions and 11 deletions

View File

@ -64,8 +64,8 @@ public class ExamController {
*查询试题列表信息
*/
@GetMapping(path = "/list")
public PageVO<ExamDefinitionVO> queryExamInfoList(ExamDefinitionQueryVO queryVO) {
return iExamService.queryExamInfoList(queryVO);
public PageVO<ExamDefinitionVO> queryExamInfoList(ExamDefinitionQueryVO queryVO, @RequestAttribute LoginUserInfoVO loginInfo) {
return iExamService.queryExamInfoList(queryVO, loginInfo);
}
/**

View File

@ -56,8 +56,8 @@ public class LessonController {
* 根据条件获取课程列表
*/
@GetMapping(path = "")
public List<LessonVO> queryLessons(LessonQueryVO lessonQueryVO) {
return this.iLessonService.queryValidLessons(lessonQueryVO);
public List<LessonVO> queryLessons(LessonQueryVO lessonQueryVO, @RequestAttribute LoginUserInfoVO loginInfo) {
return this.iLessonService.queryValidLessons(lessonQueryVO, loginInfo);
}
/**

View File

@ -234,14 +234,16 @@ public class ExamService implements IExamService {
* 查询试题列表信息
*/
@Override
public PageVO<ExamDefinitionVO> queryExamInfoList(ExamDefinitionQueryVO queryVO) {
public PageVO<ExamDefinitionVO> queryExamInfoList(ExamDefinitionQueryVO queryVO, LoginUserInfoVO loginInfo) {
//查询试题列表
ExamDefinitionExample examDefinitionExample = new ExamDefinitionExample();
ExamDefinitionExample.Criteria criteria = examDefinitionExample.createCriteria();
examDefinitionExample.setOrderByClause(" create_time DESC ");
ExamDefinitionExample.Criteria criteria = examDefinitionExample.createCriteria();
ExamDefinitionExample.Criteria orCriteria = examDefinitionExample.createCriteria();
//根据课程ID查询考试
if (Objects.nonNull(queryVO.getLessonId())) {
criteria.andLessonIdEqualTo(queryVO.getLessonId());
orCriteria.andLessonIdEqualTo(queryVO.getLessonId());
} else if (Objects.nonNull(queryVO.getMapId())) {
// 地图id查询
List<LessonVO> lessonList = this.iLessonService.queryValidLessonsOfMap(queryVO.getMapId());
@ -250,6 +252,7 @@ public class ExamService implements IExamService {
.map(LessonVO::getId)
.collect(Collectors.toList());
criteria.andLessonIdIn(lessonIdList);
orCriteria.andLessonIdIn(lessonIdList);
} else {
// 返回null
return new PageVO<>();
@ -257,10 +260,12 @@ public class ExamService implements IExamService {
}
if (StringUtils.hasText(queryVO.getStatus())) {
criteria.andStatusEqualTo(queryVO.getStatus());
orCriteria.andStatusEqualTo(queryVO.getStatus());
}
//根据考试名称模糊匹配
if (StringUtils.hasText(queryVO.getName())) {
criteria.andNameLike(String.format("%%%s%%", queryVO.getName()));
orCriteria.andNameLike(String.format("%%%s%%", queryVO.getName()));
}
//根据创建人名称模糊匹配
if (StringUtils.hasText(queryVO.getCreatorName())) {
@ -273,7 +278,16 @@ public class ExamService implements IExamService {
creatorIdList.add(null);
}
criteria.andCreatorIdIn(creatorIdList);
orCriteria.andCreatorIdIn(creatorIdList);
}
//公开数据和组织内数据
criteria.andOrgIdIsNull();
Org topOrg = iOrgService.findTopOrgOfUser(loginInfo.getAccountVO().getId());
if (topOrg != null) {
orCriteria.andOrgIdEqualTo(topOrg.getId());
examDefinitionExample.or(orCriteria);
}
PageHelper.startPage(queryVO.getPageNum(), queryVO.getPageSize());
Page<ExamDefinition> examDefinitionList = (Page<ExamDefinition>) examDefinitionDAO.selectByExample(examDefinitionExample);

View File

@ -41,7 +41,7 @@ public interface IExamService {
/**
* 查询试题列表信息
*/
PageVO<ExamDefinitionVO> queryExamInfoList(ExamDefinitionQueryVO queryVO);
PageVO<ExamDefinitionVO> queryExamInfoList(ExamDefinitionQueryVO queryVO, LoginUserInfoVO loginInfo);
/**
* 删除指定ID的考试信息

View File

@ -1,6 +1,5 @@
package club.joylink.rtss.services;
import club.joylink.rtss.constants.Project;
import club.joylink.rtss.entity.LsLesson;
import club.joylink.rtss.vo.AccountVO;
import club.joylink.rtss.vo.LoginUserInfoVO;
@ -50,7 +49,7 @@ public interface ILessonService {
/**
* 查询有效的课程列表
*/
List<LessonVO> queryValidLessons(LessonQueryVO lessonQueryVO);
List<LessonVO> queryValidLessons(LessonQueryVO lessonQueryVO, LoginUserInfoVO loginInfo);
/**
* 查询课程列表无视状态

View File

@ -253,15 +253,27 @@ public class LessonService implements ILessonService {
return new LessonVO(lessonList.get(0));
}
/**
* 查询有效的公开的属于自己组织的数据
*/
@Override
public List<LessonVO> queryValidLessons(LessonQueryVO lessonQueryVO) {
public List<LessonVO> queryValidLessons(LessonQueryVO lessonQueryVO, LoginUserInfoVO loginInfo) {
LsLessonExample example = new LsLessonExample();
example.setOrderByClause("id desc");
Criteria criteria = example.createCriteria()
.andStatusEqualTo(MapStatus.Online.getCode());
.andStatusEqualTo(MapStatus.Online.getCode())
.andOrgIdIsNull();
if (Objects.nonNull(lessonQueryVO.getMapId())) {
criteria.andMapIdEqualTo(lessonQueryVO.getMapId());
}
Org topOrg = iOrgService.findTopOrgOfUser(loginInfo.getAccountVO().getId());
if (topOrg != null) {
Criteria orCriteria = example.or().andStatusEqualTo(MapStatus.Online.getCode())
.andOrgIdEqualTo(topOrg.getId());
if (Objects.nonNull(lessonQueryVO.getMapId())) {
orCriteria.andMapIdEqualTo(lessonQueryVO.getMapId());
}
}
List<LsLesson> list = this.lessonDAO.selectByExample(example);
return LessonVO.convert(list);
}