理论试题管理代码调整
This commit is contained in:
parent
f8efdbc965
commit
0b8a0ca0d6
@ -1,7 +1,7 @@
|
||||
package club.joylink.rtss.controller.competition.question;
|
||||
|
||||
|
||||
import club.joylink.rtss.services.completition.question.PagerQuestionService;
|
||||
import club.joylink.rtss.services.papger.PagerQuestionService;
|
||||
import club.joylink.rtss.vo.AccountVO;
|
||||
import club.joylink.rtss.vo.LoginUserInfoVO;
|
||||
import club.joylink.rtss.vo.client.PageVO;
|
||||
@ -50,7 +50,7 @@ public class PagerQuestionBankController {
|
||||
*/
|
||||
@GetMapping(path = "/{questionId}")
|
||||
public PaperQuestionVO getQuestion(@PathVariable Long questionId) {
|
||||
return questionBankService.getQuestion(questionId);
|
||||
return questionBankService.getQuestion(questionId,false);
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -1,4 +1,4 @@
|
||||
package club.joylink.rtss.services.completition.question;
|
||||
package club.joylink.rtss.services.papger;
|
||||
|
||||
import club.joylink.rtss.constants.BusinessConsts;
|
||||
import club.joylink.rtss.constants.Project;
|
||||
@ -22,7 +22,10 @@ import org.springframework.util.StringUtils;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import java.time.LocalDateTime;
|
||||
import java.util.*;
|
||||
import java.util.Collection;
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
import java.util.Objects;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
@Service
|
||||
@ -75,7 +78,7 @@ public class PagerQuestionService {
|
||||
* @return
|
||||
*/
|
||||
public List<PaperQuestionVO> queryQuestions(QuestionQueryVO queryVO) {
|
||||
List<PaperQuestion> list = (List<PaperQuestion>) this.queryQuestions(queryVO,true);
|
||||
List<PaperQuestion> list = (List<PaperQuestion>) this.queryQuestions(queryVO,false);
|
||||
List<PaperQuestionVO> questionVOS = PaperQuestionVO.convert2VOList(list);
|
||||
return questionVOS;
|
||||
}
|
||||
@ -84,16 +87,31 @@ public class PagerQuestionService {
|
||||
/**
|
||||
* 获取题型所有数据
|
||||
* @param questionId
|
||||
* @param doNotCheckDel 是否检测数据状态是否删除 true = 不检测,false=检测
|
||||
* @return
|
||||
*/
|
||||
public PaperQuestionVO getQuestion(Long questionId) {
|
||||
public PaperQuestionVO getQuestion(Long questionId,boolean doNotCheckDel) {
|
||||
PaperQuestion question = questionDAO.selectByPrimaryKey(questionId);
|
||||
|
||||
BusinessExceptionAssertEnum.DATA_NOT_EXIST.assertTrue(Objects.nonNull(question) || question.getIsDel() == BusinessConsts.DBLogicDelete.NORMAL.ordinal());
|
||||
boolean isDel = Objects.nonNull(question) || question.getIsDel() == BusinessConsts.DBLogicDelete.NORMAL.ordinal();
|
||||
if(doNotCheckDel){
|
||||
isDel = Objects.nonNull(question);
|
||||
}
|
||||
BusinessExceptionAssertEnum.DATA_NOT_EXIST.assertTrue(isDel);
|
||||
PaperQuestionVO questionVO = new PaperQuestionVO(question);
|
||||
return questionVO;
|
||||
}
|
||||
|
||||
/**
|
||||
* 检测题目是否正确
|
||||
* @param questionId 题目id
|
||||
* @param answer 检测的答案
|
||||
* @return
|
||||
*/
|
||||
public boolean checkAnswer(Long questionId,String answer){
|
||||
PaperQuestionVO vo = this.getQuestion(questionId,true);
|
||||
return vo.getOptionList().stream().anyMatch(d->Objects.equals(d,answer.trim()) && Objects.equals(true,d.getCorrect()));
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取所有公司组织下的标签
|
||||
*
|
||||
@ -155,7 +173,7 @@ public class PagerQuestionService {
|
||||
PaperQuestion question = questionVO.convert2DB();
|
||||
question.setCreateUserId(accountVO.getId());
|
||||
question.setCreateTime(LocalDateTime.now());
|
||||
question.setIsDel(BusinessConsts.DBLogicDelete.NORMAL.ordinal());
|
||||
// question.setIsDel(BusinessConsts.DBLogicDelete.NORMAL.ordinal());
|
||||
if(Objects.nonNull(questionVO.getId())){
|
||||
PaperQuestionExample example = new PaperQuestionExample();
|
||||
PaperQuestionExample.Criteria criteria = example.createCriteria();
|
||||
@ -169,7 +187,6 @@ public class PagerQuestionService {
|
||||
questionDAO.updateByPrimaryKey(question);
|
||||
}else{
|
||||
questionDAO.insert(question);
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
@ -195,9 +212,9 @@ public class PagerQuestionService {
|
||||
|
||||
boolean isDefault = Project.isDefault(Project.valueOf(projectCode));
|
||||
//默认项目导入题考虑是否有单位关联
|
||||
if (isDefault) {
|
||||
PaperQuestionExample example = new PaperQuestionExample();
|
||||
PaperQuestionExample.Criteria criteria = example.createCriteria();
|
||||
if (isDefault) {
|
||||
criteria.andProjectCodeIsNull();
|
||||
if (Objects.nonNull(companyId)) {
|
||||
criteria.andCompanyIdEqualTo(companyId);
|
||||
@ -212,14 +229,13 @@ public class PagerQuestionService {
|
||||
question.setCreateUserId(accountVO.getId());
|
||||
question.setCreateTime(LocalDateTime.now());
|
||||
question.setCompanyId(companyId);
|
||||
question.setIsDel(BusinessConsts.DBLogicDelete.NORMAL.ordinal());
|
||||
// question.setIsDel(BusinessConsts.DBLogicDelete.NORMAL.ordinal());
|
||||
questionDAO.insert(question);
|
||||
});
|
||||
|
||||
} else {
|
||||
//非默认项目导入题
|
||||
PaperQuestionExample example = new PaperQuestionExample();
|
||||
example.createCriteria().andProjectCodeEqualTo(projectCode);
|
||||
criteria.andProjectCodeEqualTo(projectCode);
|
||||
questionDAO.deleteByExample(example);
|
||||
questions.forEach(questionVO -> {
|
||||
questionVO.setProjectCode(projectCode);
|
||||
@ -227,15 +243,16 @@ public class PagerQuestionService {
|
||||
question.setProjectCode(projectCode);
|
||||
question.setCreateUserId(accountVO.getId());
|
||||
question.setCreateTime(LocalDateTime.now());
|
||||
question.setIsDel(BusinessConsts.DBLogicDelete.NORMAL.ordinal());
|
||||
// question.setIsDel(BusinessConsts.DBLogicDelete.NORMAL.ordinal());
|
||||
questionDAO.insert(question);
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* 删除 逻辑删除
|
||||
* @param questionId
|
||||
*/
|
||||
public void deleteQuestion(List<Long> questionId) {
|
||||
PaperQuestionExample example = new PaperQuestionExample();
|
||||
example.createCriteria().andIdIn(questionId);
|
@ -4,6 +4,7 @@ import club.joylink.rtss.constants.BusinessConsts;
|
||||
import club.joylink.rtss.constants.Project;
|
||||
import club.joylink.rtss.entity.paper.question.PaperQuestion;
|
||||
import club.joylink.rtss.util.JsonUtils;
|
||||
import com.fasterxml.jackson.annotation.JsonIgnore;
|
||||
import lombok.Getter;
|
||||
import lombok.NoArgsConstructor;
|
||||
import lombok.Setter;
|
||||
@ -53,6 +54,7 @@ public class PaperQuestionVO implements Cloneable {
|
||||
/**
|
||||
*分值
|
||||
*/
|
||||
@JsonIgnore
|
||||
private Float score = 1f;
|
||||
|
||||
public PaperQuestionVO(PaperQuestion question) {
|
||||
@ -74,7 +76,7 @@ public class PaperQuestionVO implements Cloneable {
|
||||
question.setCompanyId(companyId);
|
||||
question.setQuestions(JsonUtils.writeValueAsString(this.optionList));
|
||||
question.setRaceLable(this.raceLable);
|
||||
|
||||
question.setIsDel(BusinessConsts.DBLogicDelete.NORMAL.ordinal());
|
||||
return question;
|
||||
}
|
||||
|
||||
@ -106,14 +108,15 @@ public class PaperQuestionVO implements Cloneable {
|
||||
clone.setOptionList(cloneList);
|
||||
return clone;
|
||||
}
|
||||
|
||||
@JsonIgnore
|
||||
public boolean isSelect() {
|
||||
return BusinessConsts.TheoryType.select.name().equals(type);
|
||||
}
|
||||
|
||||
@JsonIgnore
|
||||
public boolean isJudge() {
|
||||
return BusinessConsts.TheoryType.judge.name().equals(type);
|
||||
}
|
||||
@JsonIgnore
|
||||
public boolean isMulti(){
|
||||
return BusinessConsts.TheoryType.multi.name().equals(type);
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user