This commit is contained in:
zhangheng 2024-03-06 15:44:23 +08:00
parent 4552919c34
commit 62b6d99c23
7 changed files with 28 additions and 21 deletions

View File

@ -70,7 +70,7 @@ public class QuestionInfoController extends BaseController {
*/ */
@PreAuthorize("@ss.hasPermi('system:question:add')") @PreAuthorize("@ss.hasPermi('system:question:add')")
@Log(title = "问卷基本信息", businessType = BusinessType.INSERT) @Log(title = "问卷基本信息", businessType = BusinessType.INSERT)
@PostMapping @PostMapping("/add")
public AjaxResult add(@RequestBody QuestionVO questionInfo) { public AjaxResult add(@RequestBody QuestionVO questionInfo) {
if (Objects.isNull(questionInfo) || StringUtils.isBlank(questionInfo.getQuestionnaireName())) { if (Objects.isNull(questionInfo) || StringUtils.isBlank(questionInfo.getQuestionnaireName())) {
return AjaxResult.error("请添加问卷信息!"); return AjaxResult.error("请添加问卷信息!");
@ -83,7 +83,7 @@ public class QuestionInfoController extends BaseController {
*/ */
@PreAuthorize("@ss.hasPermi('system:question:edit')") @PreAuthorize("@ss.hasPermi('system:question:edit')")
@Log(title = "问卷基本信息", businessType = BusinessType.UPDATE) @Log(title = "问卷基本信息", businessType = BusinessType.UPDATE)
@PutMapping @PostMapping("/edit")
public AjaxResult edit(@RequestBody QuestionVO question) { public AjaxResult edit(@RequestBody QuestionVO question) {
return questionInfoService.updateQuestionInfo(question); return questionInfoService.updateQuestionInfo(question);
} }

View File

@ -44,7 +44,7 @@ public class QuestionSubject extends BaseEntity {
*/ */
@ApiModelProperty(value = "题目序号") @ApiModelProperty(value = "题目序号")
@Excel(name = "题目序号") @Excel(name = "题目序号")
private Integer questionNumber; private BigDecimal questionNumber;
/** /**
* 题目类型单选题MULTIPLE_CHOICE多选题MULTIPLE_CHOICE_QUESTIONS填空题FILL_IN_THE_BLANKS打分题SCORING_QUESTIONS * 题目类型单选题MULTIPLE_CHOICE多选题MULTIPLE_CHOICE_QUESTIONS填空题FILL_IN_THE_BLANKS打分题SCORING_QUESTIONS
@ -95,7 +95,7 @@ public class QuestionSubject extends BaseEntity {
*/ */
@ApiModelProperty(value = "是否计分01") @ApiModelProperty(value = "是否计分01")
@Excel(name = "是否计分01") @Excel(name = "是否计分01")
private Integer whetherScore; private Boolean whetherScore;
/** /**
* 计分方式每个选项都有对应分值NOT_UNIQUE_ANSWER全部答对才得分UNIQUE_ANSWER * 计分方式每个选项都有对应分值NOT_UNIQUE_ANSWER全部答对才得分UNIQUE_ANSWER

View File

@ -84,5 +84,5 @@ public interface QuestionSubjectOptionMapper {
* @param questionSubjectIds 题目表id * @param questionSubjectIds 题目表id
* @return int * @return int
*/ */
int deleteOptionByQuestionSubjectIds(List<Long> questionSubjectIds); int deleteOptionByQuestionSubjectIds(@Param("questionSubjectIds") List<Long> questionSubjectIds);
} }

View File

@ -102,8 +102,8 @@ public class QuestionInfoServiceImpl implements IQuestionInfoService {
List<QuestionSubjectVO> questionSubjectList = question.getQuestionSubjectList(); List<QuestionSubjectVO> questionSubjectList = question.getQuestionSubjectList();
List<QuestionSubject> questionSubjects = new ArrayList<>(); List<QuestionSubject> questionSubjects = new ArrayList<>();
List<QuestionSubjectOptionVO> questionSubjectOptions = new ArrayList<>(); List<QuestionSubjectOptionVO> questionSubjectOptions = new ArrayList<>();
QuestionSubject saveQuestionSubject = new QuestionSubject();
for (QuestionSubjectVO questionSubject : questionSubjectList) { for (QuestionSubjectVO questionSubject : questionSubjectList) {
QuestionSubject saveQuestionSubject = new QuestionSubject();
BeanUtils.copyBeanProp(saveQuestionSubject, questionSubject); BeanUtils.copyBeanProp(saveQuestionSubject, questionSubject);
saveQuestionSubject.setQuestionInfoId(questionInfo.getId()); saveQuestionSubject.setQuestionInfoId(questionInfo.getId());
saveQuestionSubject.setCreateTime(DateUtils.getNowDate()); saveQuestionSubject.setCreateTime(DateUtils.getNowDate());
@ -118,14 +118,14 @@ public class QuestionInfoServiceImpl implements IQuestionInfoService {
} }
//新增选项表 //新增选项表
List<QuestionSubjectOption> saveQuestionSubjectOptions = new ArrayList<>(); List<QuestionSubjectOption> saveQuestionSubjectOptions = new ArrayList<>();
QuestionSubjectOption saveQuestionSubjectOption = new QuestionSubjectOption();
for (QuestionSubjectOptionVO questionSubjectOption : questionSubjectOptions) { for (QuestionSubjectOptionVO questionSubjectOption : questionSubjectOptions) {
QuestionSubjectOption saveQuestionSubjectOption = new QuestionSubjectOption();
BeanUtils.copyBeanProp(saveQuestionSubjectOption, questionSubjectOption); BeanUtils.copyBeanProp(saveQuestionSubjectOption, questionSubjectOption);
QuestionSubject questionSubject = questionSubjects.stream().filter(Objects::nonNull).filter(item -> Objects.nonNull(item.getQuestionNumber()) && questionSubjectOption.getQuestionNumber().equals(item.getQuestionNumber())).findFirst().orElse(new QuestionSubject()); QuestionSubject questionSubject = questionSubjects.stream().filter(Objects::nonNull).filter(item -> Objects.nonNull(item.getQuestionNumber()) && questionSubjectOption.getQuestionNumber().compareTo(item.getQuestionNumber()) == 0).findFirst().orElse(new QuestionSubject());
questionSubjectOption.setQuestionnaireSubjectId(questionSubject.getId()); saveQuestionSubjectOption.setQuestionnaireSubjectId(questionSubject.getId());
saveQuestionSubjectOption.setCreateTime(DateUtils.getNowDate()); saveQuestionSubjectOption.setCreateTime(DateUtils.getNowDate());
saveQuestionSubjectOption.setCreateBy(SecurityUtils.getUsername()); saveQuestionSubjectOption.setCreateBy(SecurityUtils.getUsername());
saveQuestionSubjectOptions.add(questionSubjectOption); saveQuestionSubjectOptions.add(saveQuestionSubjectOption);
} }
int subjectOptionCount = questionSubjectOptionMapper.insertQuestionSubjectOptionList(saveQuestionSubjectOptions); int subjectOptionCount = questionSubjectOptionMapper.insertQuestionSubjectOptionList(saveQuestionSubjectOptions);
if (subjectOptionCount <= 0) { if (subjectOptionCount <= 0) {
@ -173,8 +173,8 @@ public class QuestionInfoServiceImpl implements IQuestionInfoService {
List<QuestionSubjectVO> questionSubjectList = question.getQuestionSubjectList(); List<QuestionSubjectVO> questionSubjectList = question.getQuestionSubjectList();
List<QuestionSubject> questionSubjects = new ArrayList<>(); List<QuestionSubject> questionSubjects = new ArrayList<>();
List<QuestionSubjectOptionVO> questionSubjectOptions = new ArrayList<>(); List<QuestionSubjectOptionVO> questionSubjectOptions = new ArrayList<>();
QuestionSubject saveQuestionSubject = new QuestionSubject();
for (QuestionSubjectVO questionSubject : questionSubjectList) { for (QuestionSubjectVO questionSubject : questionSubjectList) {
QuestionSubject saveQuestionSubject = new QuestionSubject();
BeanUtils.copyBeanProp(saveQuestionSubject, questionSubject); BeanUtils.copyBeanProp(saveQuestionSubject, questionSubject);
saveQuestionSubject.setQuestionInfoId(questionInfo.getId()); saveQuestionSubject.setQuestionInfoId(questionInfo.getId());
saveQuestionSubject.setCreateTime(DateUtils.getNowDate()); saveQuestionSubject.setCreateTime(DateUtils.getNowDate());
@ -188,14 +188,14 @@ public class QuestionInfoServiceImpl implements IQuestionInfoService {
throw new SecurityException("修改问卷失败!请联系管理员!"); throw new SecurityException("修改问卷失败!请联系管理员!");
} }
List<QuestionSubjectOption> saveQuestionSubjectOptions = new ArrayList<>(); List<QuestionSubjectOption> saveQuestionSubjectOptions = new ArrayList<>();
QuestionSubjectOption saveQuestionSubjectOption = new QuestionSubjectOption();
for (QuestionSubjectOptionVO questionSubjectOption : questionSubjectOptions) { for (QuestionSubjectOptionVO questionSubjectOption : questionSubjectOptions) {
QuestionSubjectOption saveQuestionSubjectOption = new QuestionSubjectOption();
BeanUtils.copyBeanProp(saveQuestionSubjectOption, questionSubjectOption); BeanUtils.copyBeanProp(saveQuestionSubjectOption, questionSubjectOption);
QuestionSubject questionSubject = questionSubjects.stream().filter(Objects::nonNull).filter(item -> Objects.nonNull(item.getQuestionNumber()) && questionSubjectOption.getQuestionNumber().equals(item.getQuestionNumber())).findFirst().orElse(new QuestionSubject()); QuestionSubject questionSubject = questionSubjects.stream().filter(Objects::nonNull).filter(item -> Objects.nonNull(item.getQuestionNumber()) && questionSubjectOption.getQuestionNumber().compareTo(item.getQuestionNumber()) == 0).findFirst().orElse(new QuestionSubject());
questionSubjectOption.setQuestionnaireSubjectId(questionSubject.getId()); saveQuestionSubjectOption.setQuestionnaireSubjectId(questionSubject.getId());
saveQuestionSubjectOption.setCreateTime(DateUtils.getNowDate()); saveQuestionSubjectOption.setCreateTime(DateUtils.getNowDate());
saveQuestionSubjectOption.setCreateBy(SecurityUtils.getUsername()); saveQuestionSubjectOption.setCreateBy(SecurityUtils.getUsername());
saveQuestionSubjectOptions.add(questionSubjectOption); saveQuestionSubjectOptions.add(saveQuestionSubjectOption);
} }
int subjectOptionCount = questionSubjectOptionMapper.insertQuestionSubjectOptionList(saveQuestionSubjectOptions); int subjectOptionCount = questionSubjectOptionMapper.insertQuestionSubjectOptionList(saveQuestionSubjectOptions);
if (subjectOptionCount <= 0) { if (subjectOptionCount <= 0) {

View File

@ -4,6 +4,8 @@ import com.xinelu.manage.domain.questionsubjectoption.QuestionSubjectOption;
import lombok.Data; import lombok.Data;
import lombok.EqualsAndHashCode; import lombok.EqualsAndHashCode;
import java.math.BigDecimal;
/** /**
* 问卷题目选项答案对象 question_subject_option * 问卷题目选项答案对象 question_subject_option
* *
@ -17,5 +19,5 @@ public class QuestionSubjectOptionVO extends QuestionSubjectOption {
/** /**
* 题号 * 题号
*/ */
private Integer questionNumber; private BigDecimal questionNumber;
} }

View File

@ -345,7 +345,7 @@
<include refid="selectQuestionSubjectVo"/> <include refid="selectQuestionSubjectVo"/>
<where> <where>
<if test="questionInfoId != null "> <if test="questionInfoId != null ">
and question_info_id = #{id} question_info_id = #{id}
</if> </if>
</where> </where>
</select> </select>

View File

@ -228,9 +228,14 @@
</select> </select>
<delete id="deleteOptionByQuestionSubjectIds"> <delete id="deleteOptionByQuestionSubjectIds">
delete from question_subject_option where questionnaire_subject_id in delete from question_subject_option
<foreach item="id" collection="list" open="(" separator="," close=")"> <where>
#{questionSubjectIds} <if test="questionSubjectIds != null and questionSubjectIds.size() > 0">
</foreach> questionnaire_subject_id in
<foreach item="questionSubjectIds" collection="questionSubjectIds" open="(" separator="," close=")">
#{questionSubjectIds}
</foreach>
</if>
</where>
</delete> </delete>
</mapper> </mapper>