1
This commit is contained in:
parent
8b7f9ef947
commit
de0b411191
@ -0,0 +1,120 @@
|
|||||||
|
package club.joylink.rtss.controller.competition.question;
|
||||||
|
|
||||||
|
|
||||||
|
import club.joylink.rtss.constants.Project;
|
||||||
|
import club.joylink.rtss.services.completition.question.IQuestionBankService;
|
||||||
|
import club.joylink.rtss.vo.AccountVO;
|
||||||
|
import club.joylink.rtss.vo.LoginUserInfoVO;
|
||||||
|
import club.joylink.rtss.vo.client.PageVO;
|
||||||
|
import club.joylink.rtss.vo.client.competition.TheoryQuestionCountVO;
|
||||||
|
import club.joylink.rtss.vo.client.question.QuestionOptionVO;
|
||||||
|
import club.joylink.rtss.vo.client.question.QuestionQueryVO;
|
||||||
|
import club.joylink.rtss.vo.client.question.QuestionVO;
|
||||||
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
|
import org.springframework.validation.annotation.Validated;
|
||||||
|
import org.springframework.web.bind.annotation.*;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
*题库管理接口
|
||||||
|
*/
|
||||||
|
@RestController
|
||||||
|
@RequestMapping(path = "/api/questionBank2")
|
||||||
|
public class QuestionBankController2 {
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private IQuestionBankService iQuestionBankService;
|
||||||
|
|
||||||
|
/**
|
||||||
|
*分页查询题目
|
||||||
|
*/
|
||||||
|
@GetMapping(path = "/questions/paging")
|
||||||
|
public PageVO<QuestionVO> pagingQueryQuestions(@RequestAttribute LoginUserInfoVO loginInfo, QuestionQueryVO queryVO) {
|
||||||
|
queryVO.setProjectCode(loginInfo.getProject().name());
|
||||||
|
return iQuestionBankService.pagingQueryQuestions(queryVO);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
*查询题目列表
|
||||||
|
*/
|
||||||
|
@GetMapping(path = "/questions")
|
||||||
|
public List<QuestionVO> queryQuestions(@RequestAttribute LoginUserInfoVO loginInfo,QuestionQueryVO queryVO) {
|
||||||
|
queryVO.setProjectCode(loginInfo.getProject().name());
|
||||||
|
return iQuestionBankService.queryQuestions(queryVO);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
*获取题目信息
|
||||||
|
*/
|
||||||
|
@GetMapping(path = "/questions/{questionId}")
|
||||||
|
public QuestionVO getQuestion(@PathVariable Long questionId) {
|
||||||
|
return iQuestionBankService.getQuestion(questionId);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
*添加题目
|
||||||
|
*/
|
||||||
|
@PostMapping(path = "/questions")
|
||||||
|
public void addQuestion(@Validated @RequestBody QuestionVO questionVO,@RequestAttribute LoginUserInfoVO loginInfo,
|
||||||
|
@RequestAttribute AccountVO user) {
|
||||||
|
questionVO.setProjectCode(loginInfo.getProject().name());
|
||||||
|
iQuestionBankService.addQuestion(questionVO, user);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
*导入项目或单位试题库
|
||||||
|
*/
|
||||||
|
@PostMapping(path = "/questions/import")
|
||||||
|
public void importProjectQuestion(@Validated @RequestBody List<QuestionVO> questions, @RequestAttribute LoginUserInfoVO loginInfo,
|
||||||
|
@RequestAttribute AccountVO user, @RequestParam(required = false, name = "id") Long companyId) {
|
||||||
|
|
||||||
|
iQuestionBankService.importProjectQuestion(questions, loginInfo.getProject().name(), companyId,user);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
*更新题目
|
||||||
|
*/
|
||||||
|
@PutMapping(path = "/questions/{questionId}")
|
||||||
|
public void updateQuestion(@PathVariable Long questionId, @RequestAttribute LoginUserInfoVO loginInfo,@RequestBody QuestionVO questionVO) {
|
||||||
|
questionVO.setProjectCode(loginInfo.getProject().name());
|
||||||
|
iQuestionBankService.updateQuestion(questionId, questionVO);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
*删除题目
|
||||||
|
*/
|
||||||
|
@DeleteMapping(path = "/questions/{questionId}")
|
||||||
|
public void deleteQuestion(@PathVariable Long questionId) {
|
||||||
|
iQuestionBankService.deleteQuestion(questionId);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
*根据题目查询选项
|
||||||
|
*/
|
||||||
|
@GetMapping(path = "/questions/{questionId}/options")
|
||||||
|
public List<QuestionOptionVO> getOptionsByQuestionId(@PathVariable Long questionId) {
|
||||||
|
return iQuestionBankService.getOptionsByQuestionId(questionId);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
*根据题型获取题目数量
|
||||||
|
*/
|
||||||
|
@GetMapping(path = "/number")
|
||||||
|
public Integer getNumberUnderKnowledgeAndType(@RequestAttribute LoginUserInfoVO loginInfo, String type, Long companyId) {
|
||||||
|
|
||||||
|
return iQuestionBankService.getNumberWithType(type, loginInfo.getProject().name(), companyId);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
*获取题型数量
|
||||||
|
*/
|
||||||
|
@GetMapping(path = "/type/number")
|
||||||
|
public List<TheoryQuestionCountVO> getNumberUnderKnowledgeAndType(@RequestAttribute LoginUserInfoVO loginInfo, @RequestParam(required = false) Long companyId) {
|
||||||
|
|
||||||
|
String projectCode = Project.isDefault(loginInfo.getProject()) ? null : loginInfo.getProject().name();
|
||||||
|
return iQuestionBankService.countNumByType(projectCode, companyId);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
@ -151,13 +151,13 @@ public class QuestionBankService implements IQuestionBankService {
|
|||||||
@Transactional
|
@Transactional
|
||||||
public void addQuestion(QuestionVO questionVO, AccountVO accountVO) {
|
public void addQuestion(QuestionVO questionVO, AccountVO accountVO) {
|
||||||
BusinessExceptionAssertEnum.ARGUMENT_ILLEGAL.assertTrue(
|
BusinessExceptionAssertEnum.ARGUMENT_ILLEGAL.assertTrue(
|
||||||
(Objects.equals(BusinessConsts.TheoryType.select, questionVO.getType()) ||
|
(Objects.equals(BusinessConsts.TheoryType.select.name(), questionVO.getType()) ||
|
||||||
Objects.equals(BusinessConsts.TheoryType.judge, questionVO.getType())) &&
|
Objects.equals(BusinessConsts.TheoryType.judge.name(), questionVO.getType())) &&
|
||||||
questionVO.getOptionList().stream().filter(QuestionOptionVO::getCorrect).count() == 1,
|
questionVO.getOptionList().stream().filter(QuestionOptionVO::getCorrect).count() == 1,
|
||||||
"单选或判断题正确答案有且只有一个!");
|
"单选或判断题正确答案有且只有一个!");
|
||||||
BusinessExceptionAssertEnum.ARGUMENT_ILLEGAL.assertTrue(
|
BusinessExceptionAssertEnum.ARGUMENT_ILLEGAL.assertNotTrue(
|
||||||
(Objects.equals(BusinessConsts.TheoryType.fill, questionVO.getType()) ||
|
(Objects.equals(BusinessConsts.TheoryType.fill.name(), questionVO.getType()) ||
|
||||||
Objects.equals(BusinessConsts.TheoryType.answer, questionVO.getType())) &&
|
Objects.equals(BusinessConsts.TheoryType.answer.name(), questionVO.getType())) &&
|
||||||
questionVO.getOptionList().stream().filter(op -> !op.getCorrect()).count() == 0,
|
questionVO.getOptionList().stream().filter(op -> !op.getCorrect()).count() == 0,
|
||||||
"填空或问答题不能有错误选项!");
|
"填空或问答题不能有错误选项!");
|
||||||
RaceQuestion question = questionVO.convert2DB();
|
RaceQuestion question = questionVO.convert2DB();
|
||||||
|
Loading…
Reference in New Issue
Block a user