From a1b0f938832dd36eddc66fe2b92ea32ba26dee7d Mon Sep 17 00:00:00 2001 From: fuliqi <fuliqi@qq.com> Date: 星期五, 07 六月 2024 15:53:42 +0800 Subject: [PATCH] 模板、试卷增删改查 --- src/main/java/com/ycl/jxkg/service/impl/ExamTemplateServiceImpl.java | 87 +++++++++++++++++++++++++++++++++++++++---- 1 files changed, 78 insertions(+), 9 deletions(-) diff --git a/src/main/java/com/ycl/jxkg/service/impl/ExamTemplateServiceImpl.java b/src/main/java/com/ycl/jxkg/service/impl/ExamTemplateServiceImpl.java index d682060..81e94fb 100644 --- a/src/main/java/com/ycl/jxkg/service/impl/ExamTemplateServiceImpl.java +++ b/src/main/java/com/ycl/jxkg/service/impl/ExamTemplateServiceImpl.java @@ -23,11 +23,13 @@ import lombok.RequiredArgsConstructor; import com.ycl.jxkg.utils.PageUtil; import org.springframework.beans.BeanUtils; +import org.springframework.transaction.annotation.Transactional; import org.springframework.util.Assert; import org.springframework.util.StringUtils; import java.math.BigDecimal; import java.security.Security; +import java.util.ArrayList; import java.util.Date; import java.util.List; import java.util.stream.Collectors; @@ -59,7 +61,7 @@ entity.setCreateUser(currentUser.getId()); entity.setCreateTime(new Date()); if(!StringUtils.isEmpty(entity.getVisibility())) { - entity.setVisibility(VisibilityEnum.fromCode(Integer.parseInt(entity.getVisibility())).getName()); + entity.setVisibility(VisibilityEnum.fromCode(entity.getVisibility()).getName()); } List<TemplateQuestionDTO> questionList = form.getQuestionList(); BigDecimal score = BigDecimal.ZERO; @@ -111,13 +113,54 @@ * @return */ @Override + @Transactional(rollbackFor = Exception.class) public Result update(ExamTemplateForm form) { - ExamTemplate entity = baseMapper.selectById(form.getId()); - - // 涓虹┖鎶汭llegalArgumentException锛屽仛鍏ㄥ眬寮傚父澶勭悊 - Assert.notNull(entity, "璁板綍涓嶅瓨鍦�"); - BeanUtils.copyProperties(form, entity); - baseMapper.updateById(entity); + ExamTemplate entity = ExamTemplateForm.getEntityByForm(form, null); + if(!StringUtils.isEmpty(entity.getVisibility())) { + entity.setVisibility(VisibilityEnum.fromCode(entity.getVisibility()).getName()); + } + List<TemplateQuestionDTO> questionList = form.getQuestionList(); + BigDecimal score = BigDecimal.ZERO; + //璁剧疆棰樼洰淇℃伅 + for (TemplateQuestionDTO dto : questionList) { + score = score.add(dto.getScore().multiply(BigDecimal.valueOf(dto.getNum()))); + Integer questionType = dto.getQuestionType(); + switch (QuestionTypeEnum.fromCode(questionType)){ + //鍗曢�� + case SingleChoice: + entity.setSingleChoice(dto.getNum()); + entity.setSingleScore(dto.getScore()); + break; + //澶氶�� + case MultipleChoice: + entity.setMultipleChoice(dto.getNum()); + entity.setMultipleScore(dto.getScore()); + break; + //鍒ゆ柇 + case TrueFalse: + entity.setTrueFalse(dto.getNum()); + entity.setTrueFalseScore(dto.getScore()); + break; + //濉┖ + case GapFilling: + entity.setGapFilling(dto.getNum()); + entity.setGapScore(dto.getScore()); + break; + //绠�绛� + case ShortAnswer: + entity.setShortAnswer(dto.getNum()); + entity.setShortAnswerScore(dto.getScore()); + break; + //璁$畻 + case Calculation: + entity.setCalculation(dto.getNum()); + entity.setCalculationScore(dto.getScore()); + break; + } + } + entity.setScore(score); + examTemplateMapper.removeById(entity.getId()); + baseMapper.insert(entity); return Result.ok("淇敼鎴愬姛"); } @@ -150,9 +193,35 @@ */ @Override public Result page(ExamTemplateQuery query) { - IPage<ExamTemplateVO> page = PageUtil.getPage(query, ExamTemplateVO.class); + IPage<ExamTemplate> page = PageUtil.getPage(query, ExamTemplate.class); baseMapper.getPage(page, query); - return Result.ok().data(page.getRecords()).total(page.getTotal()); + List<ExamTemplate> records = page.getRecords(); + List<ExamTemplateVO> vos = new ArrayList<>(); + for (ExamTemplate examTemplate : records) { + ExamTemplateVO vo = new ExamTemplateVO(); + BeanUtils.copyProperties(examTemplate,vo); + String visibility = vo.getVisibility(); + vo.setVisibility(VisibilityEnum.valueOf(visibility).getCode()+""); + //鏁寸悊棰樼洰淇℃伅涓洪泦鍚� + List<TemplateQuestionDTO> questionList = new ArrayList<>(); + addQuestionList(questionList,QuestionTypeEnum.SingleChoice.getCode(),examTemplate.getSingleScore(),examTemplate.getSingleChoice()); + addQuestionList(questionList,QuestionTypeEnum.MultipleChoice.getCode(),examTemplate.getMultipleScore(),examTemplate.getMultipleChoice()); + addQuestionList(questionList,QuestionTypeEnum.TrueFalse.getCode(),examTemplate.getTrueFalseScore(),examTemplate.getTrueFalse()); + addQuestionList(questionList,QuestionTypeEnum.GapFilling.getCode(),examTemplate.getGapScore(),examTemplate.getGapFilling()); + addQuestionList(questionList,QuestionTypeEnum.ShortAnswer.getCode(),examTemplate.getShortAnswerScore(),examTemplate.getShortAnswer()); + addQuestionList(questionList,QuestionTypeEnum.Calculation.getCode(),examTemplate.getCalculationScore(),examTemplate.getCalculation()); + vo.setQuestionList(questionList); + vos.add(vo); + } + return Result.ok().data(vos).total(page.getTotal()); + } + + private void addQuestionList(List<TemplateQuestionDTO> questionList, Integer code,BigDecimal score,Integer num) { + TemplateQuestionDTO questionDTO = new TemplateQuestionDTO(); + questionDTO.setQuestionType(code); + questionDTO.setScore(score); + questionDTO.setNum(num); + questionList.add(questionDTO); } /** -- Gitblit v1.8.0