From b005f8a8669cdea0f1738172d7c13da57a1237e2 Mon Sep 17 00:00:00 2001
From: luohairen <3399054449@qq.com>
Date: 星期二, 29 十月 2024 17:06:23 +0800
Subject: [PATCH] 增加了重置密码的功能
---
src/main/java/com/ycl/jxkg/service/impl/ExamPaperServiceImpl.java | 61 ++++++++++++++++++++----------
1 files changed, 41 insertions(+), 20 deletions(-)
diff --git a/src/main/java/com/ycl/jxkg/service/impl/ExamPaperServiceImpl.java b/src/main/java/com/ycl/jxkg/service/impl/ExamPaperServiceImpl.java
index f641b8e..07bf709 100644
--- a/src/main/java/com/ycl/jxkg/service/impl/ExamPaperServiceImpl.java
+++ b/src/main/java/com/ycl/jxkg/service/impl/ExamPaperServiceImpl.java
@@ -46,6 +46,7 @@
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.CollectionUtils;
+import org.springframework.util.StringUtils;
import org.springframework.web.multipart.MultipartFile;
import javax.servlet.http.HttpServletResponse;
@@ -74,9 +75,12 @@
examPaper.setScore(new BigDecimal(form.getScore()));
//闅忔満璇曞嵎
if (ExamPaperTypeEnum.Random.getCode().equals(form.getPaperType())) {
- //鏍¢獙棰樼洰鏁伴噺
+ //鏍¢獙鏍囬鏄惁濉啓銆佹牎楠岄鐩暟閲�
List<PaperQuestionSettingDTO> questionSetting = form.getQuestionSetting();
for (PaperQuestionSettingDTO settingDTO : questionSetting) {
+ if(StringUtils.isEmpty(settingDTO.getTitle())){
+ return Result.fail(SystemCode.InnerError.getCode(),"鏍囬涓嶈兘涓虹┖");
+ }
Integer questionType = settingDTO.getQuestionType();
for (PaperSettingItem item : settingDTO.getSettingList()) {
Integer num = item.getNum();
@@ -100,6 +104,12 @@
return Result.ok();
} else if (ExamPaperTypeEnum.Fixed.getCode().equals(form.getPaperType())) {
//鍥哄畾璇曞嵎
+ List<PaperFixQuestionDTO> questionTitleList = form.getQuestionTitleList();
+ for (PaperFixQuestionDTO dto : questionTitleList) {
+ if(StringUtils.isEmpty(dto.getTitle())){
+ return Result.fail(SystemCode.InnerError.getCode(),"鏍囬涓嶈兘涓虹┖");
+ }
+ }
examPaper.setContent(JSON.toJSONString(form.getQuestionTitleList()));
baseMapper.insert(examPaper);
return Result.ok();
@@ -116,6 +126,9 @@
List<PaperSettingItem> settingList = settingDTO.getSettingList();
List<PaperQuestion> questionList = new ArrayList<>();
for (PaperSettingItem item : settingList) {
+ if(StringUtils.isEmpty(settingDTO.getTitle())){
+ return Result.fail(SystemCode.InnerError.getCode(),"鏍囬涓嶈兘涓虹┖");
+ }
Integer num = item.getNum();
Integer difficult = item.getDifficult();
//闇�瑕侀厤缃殑棰樼洰鏁伴噺涓�0鍒欒烦杩�
@@ -185,7 +198,7 @@
@Override
public PageInfo<ExamResponseVO> page(ExamPaperPageRequestVO requestVM) {
- //TODO: 鏁版嵁鏉冮檺
+ requestVM.setCreateUser(webContext.getCurrentUser().getId());
PageInfo<ExamPaper> page = PageHelper.startPage(requestVM.getPageIndex(), requestVM.getPageSize(), "id desc").doSelectPageInfo(() ->
examPaperMapper.page(requestVM));
PageInfo<ExamResponseVO> pageVO = PageInfoHelper.copyMap(page, e -> {
@@ -328,12 +341,13 @@
public List<ExamPaper> myExamPaper(Integer paperType) {
Integer userId = webContext.getCurrentUser().getId();
List<ExamPaper> list = new LambdaQueryChainWrapper<>(baseMapper)
- .select(ExamPaper::getId, ExamPaper::getName, ExamPaper::getVisibility)
+ .select(ExamPaper::getId, ExamPaper::getName, ExamPaper::getVisibility,ExamPaper::getSuggestTime)
.eq(ExamPaper::getCreateUser, userId)
.eq(Objects.nonNull(paperType), ExamPaper::getPaperType, paperType)
.or()
.eq(ExamPaper::getVisibility, VisibilityEnum.Public.getName())
.eq(Objects.nonNull(paperType), ExamPaper::getPaperType, paperType)
+ .orderByDesc(ExamPaper::getId)
.list();
list.stream().forEach(item -> {
if (VisibilityEnum.Public.getName().equals(item.getVisibility())) {
@@ -350,9 +364,10 @@
response.setHeader("Content-disposition", "attachment;filename*=utf-8''" + fileName + ".xlsx");
// 鏋勫缓妯℃澘鏍蜂緥鏁版嵁
- List<QuestionImportVO> data = new ArrayList<>(8);
- QuestionImportVO questionImportVO = new QuestionImportVO();
+ List<ExamPaperImportVO> data = new ArrayList<>(8);
+ ExamPaperImportVO questionImportVO = new ExamPaperImportVO();
questionImportVO.setLabel("鏍囬1");
+ questionImportVO.setSubject("璇枃");
questionImportVO.setQuestionType("鍗曢�夐");
questionImportVO.setDifficult(2);
questionImportVO.setCorrect("A");
@@ -363,23 +378,28 @@
questionImportVO.setOptionValue("閫夋垜");
data.add(questionImportVO);
- QuestionImportVO questionImport1 = new QuestionImportVO();
+ ExamPaperImportVO questionImport1 = new ExamPaperImportVO();
questionImport1.setOptionName("B");
questionImport1.setOptionValue("閫塀");
data.add(questionImport1);
- QuestionImportVO questionImport2 = new QuestionImportVO();
+ ExamPaperImportVO questionImport2 = new ExamPaperImportVO();
questionImport2.setOptionName("C");
questionImport2.setOptionValue("閫塁");
data.add(questionImport2);
- QuestionImportVO questionImport3 = new QuestionImportVO();
+ ExamPaperImportVO questionImport3 = new ExamPaperImportVO();
questionImport3.setOptionName("D");
questionImport3.setOptionValue("閫塂");
data.add(questionImport3);
- EasyExcel.write(response.getOutputStream(), QuestionImportVO.class)
+ // 鏌ュ嚭鎵�鏈夌殑璇剧洰锛坋xcel涓嬫媺鏁版嵁锛�
+ List<Subject> subjects = subjectService.list();
+ List<String> subjectNameList = subjects.stream().map(Subject::getName).collect(Collectors.toList());
+
+ EasyExcel.write(response.getOutputStream(), ExamPaperImportVO.class)
.sheet("妯℃澘")
+ .registerWriteHandler(new PaperSelectExcel(subjectNameList))
.registerWriteHandler(new FixedMergeCellStrategy(2, 4, Arrays.asList(2, 3, 6, 7, 8, 9)))
.registerWriteHandler(new FixedMergeCellStrategy(2, 20, Arrays.asList(0, 1)))
.doWrite(data);
@@ -389,13 +409,13 @@
@SneakyThrows
public void export(QuestionExportVO query, HttpServletResponse response) {
// 鏌ヨ瀵煎嚭鏁版嵁
- List<QuestionImportVO> exportData = questionService.export(query);
+ List<ExamPaperImportVO> exportData = questionService.export(query);
// 鏋勫缓鏁版嵁
- List<QuestionImportVO> exportList = new ArrayList<>(exportData.size() * 4);
+ List<ExamPaperImportVO> exportList = new ArrayList<>(exportData.size() * 4);
// 琛屽悎骞惰鍒�
List<RowItem> mergeRowList = new ArrayList<>(exportData.size());
int j = 2;
- for (QuestionImportVO data : exportData) {
+ for (ExamPaperImportVO data : exportData) {
QuestionObject questionContent = JSON.parseObject(data.getQuestionContent(), QuestionObject.class);
RowItem rowItem = new RowItem();
@@ -407,7 +427,7 @@
int i = 0;
for (QuestionItemObject option : questionContent.getQuestionItemObjects()) {
if (i == 0) {
- QuestionImportVO master = new QuestionImportVO();
+ ExamPaperImportVO master = new ExamPaperImportVO();
BeanUtils.copyProperties(data, master);
if (org.springframework.util.StringUtils.hasText(data.getQuestionType())) {
master.setQuestionType(QuestionTypeEnum.fromCode(Integer.valueOf(data.getQuestionType())).getName());
@@ -421,7 +441,7 @@
master.setScore(score.divide(BigDecimal.TEN).intValue());
exportList.add(master);
} else {
- QuestionImportVO optionItem = new QuestionImportVO();
+ ExamPaperImportVO optionItem = new ExamPaperImportVO();
optionItem.setOptionName(option.getPrefix());
optionItem.setOptionValue(option.getContent());
exportList.add(optionItem);
@@ -438,7 +458,7 @@
// 鏌ュ嚭鎵�鏈夌殑璇剧洰锛坋xcel涓嬫媺鏁版嵁锛�
List<Subject> subjects = subjectService.list();
List<String> subjectNameList = subjects.stream().map(Subject::getName).collect(Collectors.toList());
- EasyExcel.write(response.getOutputStream(), QuestionImportVO.class)
+ EasyExcel.write(response.getOutputStream(), ExamPaperImportVO.class)
.sheet("棰樼洰瀵煎嚭鏁版嵁")
.registerWriteHandler(new SelectExcel(subjectNameList))
.registerWriteHandler(new DynamicMergeCellStrategy(mergeRowList, Arrays.asList(0, 1, 2, 5, 6, 7, 8)))
@@ -459,11 +479,11 @@
// 涓�寮犺瘯鍗峰涓爣棰�
ArrayList<PaperFixQuestionDTO> list = new ArrayList<>();
- Consumer<List<QuestionImportVO>> consumer = (data) -> {
+ Consumer<List<ExamPaperImportVO>> consumer = (data) -> {
// 寰幆姣忎竴琛�
for (int i = 0; i < data.size(); i++) {
// 璇诲彇鐨勯鐩�
- QuestionImportVO excelQuestion = data.get(i);
+ ExamPaperImportVO excelQuestion = data.get(i);
String questionType = excelQuestion.getQuestionType();
String label = excelQuestion.getLabel();
// 鍒ゆ柇鏄惁鏍囬
@@ -491,7 +511,7 @@
if (i + 1 == data.size()) {
break;
}
- QuestionImportVO nextQuestion = data.get(1 + i);
+ ExamPaperImportVO nextQuestion = data.get(1 + i);
if (nextQuestion.intact()) {
break;
}
@@ -526,7 +546,7 @@
question.setDeleted(0);
question.setQuestionType(QuestionTypeEnum.get(questionType));
// 鏍规嵁绉戠洰鍚嶇О鑾峰彇id
- QuestionImportVO finalExcelQuestion = excelQuestion;
+ ExamPaperImportVO finalExcelQuestion = excelQuestion;
question.setSubjectId(subjects.stream().filter(subject -> subject.getName().equals(finalExcelQuestion.getSubject())).findFirst().get().getId());
questions.add(question);
@@ -537,6 +557,7 @@
paperQuestion.setScore(BigDecimal.valueOf(excelQuestion.getScore()));
paperQuestions.add(paperQuestion);
}
+ // 涓嬩竴鏉℃暟鎹槸鏍囬
if (i + 1 == data.size() || data.get(i + 1).master()) {
break;
}
@@ -552,7 +573,7 @@
}
}
};
- EasyExcel.read(file.getInputStream(), QuestionImportVO.class, new CurrencyDataListener(consumer)).sheet("妯℃澘").doRead();
+ EasyExcel.read(file.getInputStream(), ExamPaperImportVO.class, new CurrencyDataListener(consumer)).sheet("妯℃澘").doRead();
// 淇濆瓨棰樼洰
questionService.saveBatch(questions);
// 淇濆瓨璇曞嵎
--
Gitblit v1.8.0