From 97a1117b41b6e0f1df6f0bdd2cecbe7943239701 Mon Sep 17 00:00:00 2001 From: zhangyue Date: Tue, 20 Jan 2026 16:13:35 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E8=AF=BE=E7=A8=8B=E7=AE=A1?= =?UTF-8?q?=E7=90=86=E5=92=8C=E8=AF=95=E5=8D=B7=E8=87=AA=E5=8A=A8=E7=94=9F?= =?UTF-8?q?=E6=88=90=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../zcloud/edu/web/study/ClassController.java | 11 +- .../web/study/ClassCurriculumController.java | 10 +- .../web/study/ClassExamPaperController.java | 8 +- .../query/study/ClassCurriculumQueryExe.java | 29 +++++ .../command/query/study/ClassQueryExe.java | 25 ++++ .../command/study/ClassCurriculumAddExe.java | 53 ++++++-- .../study/ClassCurriculumRemoveExe.java | 7 ++ .../command/study/ClassExamPaperAddExe.java | 52 ++++++++ .../study/ClassCurriculumServiceImpl.java | 14 ++- .../study/ClassExamPaperServiceImpl.java | 7 ++ .../edu/service/study/ClassServiceImpl.java | 7 ++ .../api/study/ClassCurriculumServiceI.java | 7 +- .../edu/api/study/ClassExamPaperServiceI.java | 3 + .../zcloud/edu/api/study/ClassServiceI.java | 3 + .../clientobject/study/ClassCurriculumCO.java | 38 +++++- .../study/ClassCurriculumChapterCO.java | 51 ++++++++ .../edu/dto/data/study/ClassQuestionDTO.java | 27 +++++ .../edu/dto/study/ClassCurriculumAddCmd.java | 8 +- .../study/ClassCurriculumChapterAddCmd.java | 5 + .../edu/dto/study/ClassCurriculumPageQry.java | 1 + .../dto/study/ClassCurriculumUpdateCmd.java | 17 +-- .../edu/dto/study/ClassExamPaperAddCmd.java | 17 +-- .../dto/study/ClassExamPaperAutoAddCmd.java | 79 ++++++++++++ .../study/ClassCurriculumChapterGateway.java | 4 + .../gateway/study/ClassCurriculumGateway.java | 4 + .../edu/domain/model/resource/ExamPaperE.java | 6 + .../model/study/ClassCurriculumChapterE.java | 3 + .../domain/model/study/ClassCurriculumE.java | 34 +++++- .../domain/model/study/ClassExamPaperE.java | 114 +++++++++++++++++- .../ClassCurriculumChapterGatewayImpl.java | 8 ++ .../study/ClassCurriculumGatewayImpl.java | 8 ++ .../study/ClassCurriculumChapterDO.java | 49 ++++++++ .../dataobject/study/ClassCurriculumDO.java | 29 ++++- .../dataobject/study/ClassExamPaperDO.java | 8 +- .../persistence/mapper/QuestionMapper.java | 4 +- .../mapper/po/study/ClassQuestionPO.java | 18 +++ .../study/ClassCurriculumChapterMapper.java | 3 + .../mapper/study/ClassCurriculumMapper.java | 3 + .../mapper/study/ClassExamPaperMapper.java | 1 + .../persistence/mapper/study/ClassMapper.java | 6 +- .../impl/resource/QuestionRepositoryImpl.java | 5 + .../ClassCurriculumChapterRepositoryImpl.java | 17 +++ .../study/ClassCurriculumRepositoryImpl.java | 6 + .../impl/study/ClassRepositoryImpl.java | 7 ++ .../resource/QuestionRepository.java | 2 + .../ClassCurriculumChapterRepository.java | 5 + .../study/ClassCurriculumRepository.java | 2 + .../repository/study/ClassRepository.java | 4 + .../main/resources/mapper/QuestionMapper.xml | 11 ++ .../study/ClassCurriculumChapterMapper.xml | 27 ++++- .../mapper/study/ClassCurriculumMapper.xml | 22 ++++ .../resources/mapper/study/ClassMapper.xml | 13 ++ 52 files changed, 849 insertions(+), 53 deletions(-) create mode 100644 web-client/src/main/java/com/zcloud/edu/dto/data/study/ClassQuestionDTO.java create mode 100644 web-client/src/main/java/com/zcloud/edu/dto/study/ClassExamPaperAutoAddCmd.java create mode 100644 web-infrastructure/src/main/java/com/zcloud/edu/persistence/mapper/po/study/ClassQuestionPO.java diff --git a/web-adapter/src/main/java/com/zcloud/edu/web/study/ClassController.java b/web-adapter/src/main/java/com/zcloud/edu/web/study/ClassController.java index b31c121..7c99988 100644 --- a/web-adapter/src/main/java/com/zcloud/edu/web/study/ClassController.java +++ b/web-adapter/src/main/java/com/zcloud/edu/web/study/ClassController.java @@ -5,10 +5,9 @@ import com.alibaba.cola.dto.MultiResponse; import com.alibaba.cola.dto.PageResponse; import com.alibaba.cola.dto.Response; import com.alibaba.cola.dto.SingleResponse; -import com.jjb.saas.framework.auth.model.SSOUser; -import com.jjb.saas.framework.auth.utils.AuthContext; import com.zcloud.edu.api.study.ClassServiceI; import com.zcloud.edu.dto.clientobject.study.ClassCO; +import com.zcloud.edu.dto.data.study.ClassQuestionDTO; import com.zcloud.edu.dto.study.ClassAddCmd; import com.zcloud.edu.dto.study.ClassPageQry; import com.zcloud.edu.dto.study.ClassUpdateCmd; @@ -36,10 +35,16 @@ public class ClassController { @ApiOperation("新增") @PostMapping("/save") public SingleResponse add(@Validated @RequestBody ClassAddCmd cmd) { - return classService.add(cmd); } + @ApiOperation("查看班级可用习题数量") + @GetMapping("/countQuestionByClassId/{id}") + public SingleResponse countQuestionByClassId(@PathVariable("id") String id) { + return classService.countQuestionByClassId(id); + } + + @ApiOperation("分页") @PostMapping("/list") public PageResponse page(@RequestBody ClassPageQry qry) { diff --git a/web-adapter/src/main/java/com/zcloud/edu/web/study/ClassCurriculumController.java b/web-adapter/src/main/java/com/zcloud/edu/web/study/ClassCurriculumController.java index a55801c..eb38715 100644 --- a/web-adapter/src/main/java/com/zcloud/edu/web/study/ClassCurriculumController.java +++ b/web-adapter/src/main/java/com/zcloud/edu/web/study/ClassCurriculumController.java @@ -19,6 +19,7 @@ import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; import java.util.ArrayList; +import java.util.List; /** * web-adapter @@ -35,9 +36,9 @@ public class ClassCurriculumController { @ApiOperation("新增") @PostMapping("/save") - public SingleResponse add(@Validated @RequestBody ClassCurriculumAddCmd cmd) { + public Response add(@Validated @RequestBody List cmdList) { SSOUser ssoUser = AuthContext.getCurrentUser(); - return classCurriculumService.add(cmd); + return classCurriculumService.add(cmdList); } @ApiOperation("分页") @@ -55,9 +56,12 @@ public class ClassCurriculumController { @ApiOperation("详情") @GetMapping("/{id}") public SingleResponse getInfoById(@PathVariable("id") Long id) { - return SingleResponse.of(new ClassCurriculumCO()); + return classCurriculumService.getInfoById(id); } + + + @ApiOperation("删除") @DeleteMapping("/{id}") public Response remove(@PathVariable("id") Long id) { diff --git a/web-adapter/src/main/java/com/zcloud/edu/web/study/ClassExamPaperController.java b/web-adapter/src/main/java/com/zcloud/edu/web/study/ClassExamPaperController.java index f8405b7..dc7625a 100644 --- a/web-adapter/src/main/java/com/zcloud/edu/web/study/ClassExamPaperController.java +++ b/web-adapter/src/main/java/com/zcloud/edu/web/study/ClassExamPaperController.java @@ -10,6 +10,7 @@ import com.jjb.saas.framework.auth.utils.AuthContext; import com.zcloud.edu.api.study.ClassExamPaperServiceI; import com.zcloud.edu.dto.clientobject.study.ClassExamPaperCO; import com.zcloud.edu.dto.study.ClassExamPaperAddCmd; +import com.zcloud.edu.dto.study.ClassExamPaperAutoAddCmd; import com.zcloud.edu.dto.study.ClassExamPaperPageQry; import com.zcloud.edu.dto.study.ClassExamPaperUpdateCmd; import io.swagger.annotations.Api; @@ -36,10 +37,15 @@ public class ClassExamPaperController { @ApiOperation("新增") @PostMapping("/save") public SingleResponse add(@Validated @RequestBody ClassExamPaperAddCmd cmd) { - SSOUser ssoUser = AuthContext.getCurrentUser(); return classExamPaperService.add(cmd); } + @ApiOperation("自动生成试卷") + @PostMapping("/autoSave") + public SingleResponse autoSave(@Validated @RequestBody ClassExamPaperAutoAddCmd cmd) { + return classExamPaperService.autoSave(cmd); + } + @ApiOperation("分页") @PostMapping("/list") public PageResponse page(@RequestBody ClassExamPaperPageQry qry) { diff --git a/web-app/src/main/java/com/zcloud/edu/command/query/study/ClassCurriculumQueryExe.java b/web-app/src/main/java/com/zcloud/edu/command/query/study/ClassCurriculumQueryExe.java index 7b7ba99..fae8de9 100644 --- a/web-app/src/main/java/com/zcloud/edu/command/query/study/ClassCurriculumQueryExe.java +++ b/web-app/src/main/java/com/zcloud/edu/command/query/study/ClassCurriculumQueryExe.java @@ -1,14 +1,23 @@ package com.zcloud.edu.command.query.study; import com.alibaba.cola.dto.PageResponse; +import com.alibaba.cola.dto.SingleResponse; +import com.zcloud.edu.command.convertor.study.ClassCurriculumChapterCoConvertor; import com.zcloud.edu.command.convertor.study.ClassCurriculumCoConvertor; +import com.zcloud.edu.domain.gateway.study.ClassCurriculumChapterGateway; import com.zcloud.edu.dto.clientobject.study.ClassCurriculumCO; +import com.zcloud.edu.dto.clientobject.study.ClassCurriculumChapterCO; import com.zcloud.edu.dto.study.ClassCurriculumPageQry; +import com.zcloud.edu.persistence.dataobject.study.ClassCurriculumChapterDO; import com.zcloud.edu.persistence.dataobject.study.ClassCurriculumDO; +import com.zcloud.edu.persistence.repository.study.ClassCurriculumChapterRepository; import com.zcloud.edu.persistence.repository.study.ClassCurriculumRepository; import com.zcloud.gbscommon.utils.PageQueryHelper; +import com.zcloud.gbscommon.utils.Tools; import lombok.AllArgsConstructor; +import org.springframework.beans.BeanUtils; import org.springframework.stereotype.Component; +import org.springframework.util.ObjectUtils; import java.util.List; import java.util.Map; @@ -25,6 +34,8 @@ import java.util.Map; public class ClassCurriculumQueryExe { private final ClassCurriculumRepository classCurriculumRepository; private final ClassCurriculumCoConvertor classCurriculumCoConvertor; + private final ClassCurriculumChapterRepository classCurriculumChapterRepository; + private final ClassCurriculumChapterCoConvertor classCurriculumChapterCoConvertor; /** * 分页 @@ -38,5 +49,23 @@ public class ClassCurriculumQueryExe { List examCenterCOS = classCurriculumCoConvertor.converDOsToCOs(pageResponse.getData()); return PageResponse.of(examCenterCOS, pageResponse.getTotalCount(), pageResponse.getPageSize(), pageResponse.getPageIndex()); } + + /** + * 详情 + * @param id + * @return + */ + public SingleResponse executeGetInfoById(Long id) { + ClassCurriculumDO classCurriculumDO = classCurriculumRepository.getInfoById(id); + List classCurriculumChapterDOList = classCurriculumChapterRepository.listByCurriculumId(classCurriculumDO.getClassCurriculumId()); + ClassCurriculumCO classCurriculumCO = new ClassCurriculumCO(); + BeanUtils.copyProperties(classCurriculumDO, classCurriculumCO); + List classCurriculumChapterCOList = classCurriculumChapterCoConvertor.converDOsToCOs(classCurriculumChapterDOList); + long videoCount = classCurriculumChapterCOList.stream().filter(bean -> !ObjectUtils.isEmpty(bean.getVideoCoursewareId())).count(); + Tools.buildEntityTree(classCurriculumChapterCOList, "curriculumChapterId", "parentId", "children", "0"); + classCurriculumCO.setChapterList(classCurriculumChapterCOList); + classCurriculumCO.setVideoCount(videoCount); + return SingleResponse.of(classCurriculumCO); + } } diff --git a/web-app/src/main/java/com/zcloud/edu/command/query/study/ClassQueryExe.java b/web-app/src/main/java/com/zcloud/edu/command/query/study/ClassQueryExe.java index 9483cb2..abfe63b 100644 --- a/web-app/src/main/java/com/zcloud/edu/command/query/study/ClassQueryExe.java +++ b/web-app/src/main/java/com/zcloud/edu/command/query/study/ClassQueryExe.java @@ -1,10 +1,13 @@ package com.zcloud.edu.command.query.study; import com.alibaba.cola.dto.PageResponse; +import com.alibaba.cola.dto.SingleResponse; import com.zcloud.edu.command.convertor.study.ClassCoConvertor; import com.zcloud.edu.dto.clientobject.study.ClassCO; +import com.zcloud.edu.dto.data.study.ClassQuestionDTO; import com.zcloud.edu.dto.study.ClassPageQry; import com.zcloud.edu.persistence.dataobject.study.ClassDO; +import com.zcloud.edu.persistence.mapper.po.study.ClassQuestionPO; import com.zcloud.edu.persistence.repository.study.ClassRepository; import com.zcloud.gbscommon.utils.PageQueryHelper; import lombok.AllArgsConstructor; @@ -38,5 +41,27 @@ public class ClassQueryExe { List examCenterCOS = classCoConvertor.converDOsToCOs(pageResponse.getData()); return PageResponse.of(examCenterCOS, pageResponse.getTotalCount(), pageResponse.getPageSize(), pageResponse.getPageIndex()); } + + public SingleResponse executeCountQuestionByClassId(String classId) { + + List questionCountList = classRepository.countQuestionByClassId(classId); + ClassQuestionDTO classQuestionDTO = new ClassQuestionDTO(); + if (questionCountList != null && questionCountList.size() > 0){ + for (ClassQuestionPO questionPO : questionCountList){ + switch (questionPO.getQuestionType()){ + case 1: + classQuestionDTO.setSingleCount(questionPO.getQuestionCount()); + break; + case 2: + classQuestionDTO.setMultipleCount(questionPO.getQuestionCount()); + break; + case 3: + classQuestionDTO.setJudgeCount(questionPO.getQuestionCount()); + break; + } + } + } + return SingleResponse.of(classQuestionDTO); + } } diff --git a/web-app/src/main/java/com/zcloud/edu/command/study/ClassCurriculumAddExe.java b/web-app/src/main/java/com/zcloud/edu/command/study/ClassCurriculumAddExe.java index 5083d63..d94eec5 100644 --- a/web-app/src/main/java/com/zcloud/edu/command/study/ClassCurriculumAddExe.java +++ b/web-app/src/main/java/com/zcloud/edu/command/study/ClassCurriculumAddExe.java @@ -1,14 +1,22 @@ package com.zcloud.edu.command.study; +import cn.hutool.core.bean.BeanUtil; import com.alibaba.cola.exception.BizException; +import com.zcloud.edu.domain.gateway.study.ClassCurriculumChapterGateway; import com.zcloud.edu.domain.gateway.study.ClassCurriculumGateway; +import com.zcloud.edu.domain.model.study.ClassCurriculumChapterE; import com.zcloud.edu.domain.model.study.ClassCurriculumE; import com.zcloud.edu.dto.study.ClassCurriculumAddCmd; +import com.zcloud.edu.dto.study.ClassCurriculumChapterAddCmd; import lombok.AllArgsConstructor; import org.springframework.beans.BeanUtils; import org.springframework.stereotype.Component; import org.springframework.transaction.annotation.Transactional; +import java.math.BigDecimal; +import java.util.ArrayList; +import java.util.List; + /** * web-app @@ -20,20 +28,51 @@ import org.springframework.transaction.annotation.Transactional; @AllArgsConstructor public class ClassCurriculumAddExe { private final ClassCurriculumGateway classCurriculumGateway; + private final ClassCurriculumChapterGateway classCurriculumChapterGateway; @Transactional(rollbackFor = Exception.class) - public boolean execute(ClassCurriculumAddCmd cmd) { + public boolean execute(List cmdList) { ClassCurriculumE classCurriculumE = new ClassCurriculumE(); - BeanUtils.copyProperties(cmd, classCurriculumE); - boolean res = false; + // cmdList 转 Elist + List classCurriculumEList = new ArrayList<>(); + for (ClassCurriculumAddCmd curCmd : cmdList){ + ClassCurriculumE curriculum = new ClassCurriculumE(); + BeanUtils.copyProperties(curCmd, curriculum); + BigDecimal decimal = BigDecimal.valueOf(curCmd.getVideoTotalTime()); + curriculum.setVideoTotalTime(decimal); + for (ClassCurriculumChapterAddCmd chapterCmd : curCmd.getChapterList()){ + ClassCurriculumChapterE chapter = new ClassCurriculumChapterE(); + BeanUtils.copyProperties(chapterCmd, chapter); + if (chapterCmd.getChildren() != null && chapterCmd.getChildren().size() > 0){ + for (ClassCurriculumChapterAddCmd childChapterCmd : chapterCmd.getChildren()){ + ClassCurriculumChapterE childChapter = new ClassCurriculumChapterE(); + BeanUtils.copyProperties(childChapterCmd, childChapter); + if (chapter.getChildren() != null){ + chapter.getChildren().add(childChapter); + } else { + List children = new ArrayList<>(); + children.add(childChapter); + chapter.setChildren(children); + } + } + } + if (curriculum.getChapterList() != null){ + curriculum.getChapterList().add(chapter); + } else { + List chapterList = new ArrayList<>(); + chapterList.add(chapter); + curriculum.setChapterList(chapterList); + } + } + classCurriculumEList.add(curriculum); + } + List chapterList = classCurriculumE. initCurList(classCurriculumEList); try { - res = classCurriculumGateway.add(classCurriculumE); + classCurriculumGateway.batchAdd(classCurriculumEList); + classCurriculumChapterGateway.batchAdd(chapterList); } catch (Exception e) { throw new RuntimeException(e); } - if (!res) { - throw new BizException("保存失败"); - } return true; } } diff --git a/web-app/src/main/java/com/zcloud/edu/command/study/ClassCurriculumRemoveExe.java b/web-app/src/main/java/com/zcloud/edu/command/study/ClassCurriculumRemoveExe.java index 3a0e54c..566034d 100644 --- a/web-app/src/main/java/com/zcloud/edu/command/study/ClassCurriculumRemoveExe.java +++ b/web-app/src/main/java/com/zcloud/edu/command/study/ClassCurriculumRemoveExe.java @@ -2,6 +2,9 @@ package com.zcloud.edu.command.study; import com.alibaba.cola.exception.BizException; import com.zcloud.edu.domain.gateway.study.ClassCurriculumGateway; +import com.zcloud.edu.persistence.dataobject.study.ClassCurriculumDO; +import com.zcloud.edu.persistence.repository.study.ClassCurriculumChapterRepository; +import com.zcloud.edu.persistence.repository.study.ClassCurriculumRepository; import lombok.AllArgsConstructor; import org.springframework.stereotype.Component; import org.springframework.transaction.annotation.Transactional; @@ -17,10 +20,14 @@ import org.springframework.transaction.annotation.Transactional; @AllArgsConstructor public class ClassCurriculumRemoveExe { private final ClassCurriculumGateway classCurriculumGateway; + private final ClassCurriculumRepository classCurriculumRepository; + private final ClassCurriculumChapterRepository classCurriculumChapterRepository; @Transactional(rollbackFor = Exception.class) public boolean execute(Long id) { + ClassCurriculumDO classCurriculumDO = classCurriculumRepository.getById(id); boolean res = classCurriculumGateway.deletedClassCurriculumById(id); + classCurriculumChapterRepository.deleteByCurriculumId(classCurriculumDO.getClassCurriculumId()); if (!res) { throw new BizException("删除失败"); } diff --git a/web-app/src/main/java/com/zcloud/edu/command/study/ClassExamPaperAddExe.java b/web-app/src/main/java/com/zcloud/edu/command/study/ClassExamPaperAddExe.java index 68daf96..07e431e 100644 --- a/web-app/src/main/java/com/zcloud/edu/command/study/ClassExamPaperAddExe.java +++ b/web-app/src/main/java/com/zcloud/edu/command/study/ClassExamPaperAddExe.java @@ -1,14 +1,28 @@ package com.zcloud.edu.command.study; +import cn.hutool.core.bean.BeanUtil; import com.alibaba.cola.exception.BizException; +import com.jjb.saas.framework.auth.model.SSOUser; +import com.jjb.saas.framework.auth.utils.AuthContext; +import com.zcloud.edu.domain.gateway.resource.ExamPaperGateway; import com.zcloud.edu.domain.gateway.study.ClassExamPaperGateway; +import com.zcloud.edu.domain.model.resource.ExamPaperE; +import com.zcloud.edu.domain.model.resource.QuestionE; import com.zcloud.edu.domain.model.study.ClassExamPaperE; import com.zcloud.edu.dto.study.ClassExamPaperAddCmd; +import com.zcloud.edu.dto.study.ClassExamPaperAutoAddCmd; +import com.zcloud.edu.persistence.dataobject.QuestionDO; +import com.zcloud.edu.persistence.repository.resource.QuestionRepository; import lombok.AllArgsConstructor; import org.springframework.beans.BeanUtils; import org.springframework.stereotype.Component; import org.springframework.transaction.annotation.Transactional; +import java.util.ArrayList; +import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; + /** * web-app @@ -20,11 +34,16 @@ import org.springframework.transaction.annotation.Transactional; @AllArgsConstructor public class ClassExamPaperAddExe { private final ClassExamPaperGateway classExamPaperGateway; + private final ExamPaperGateway examPaperGateway; + private final QuestionRepository questionRepository; @Transactional(rollbackFor = Exception.class) public boolean execute(ClassExamPaperAddCmd cmd) { ClassExamPaperE classExamPaperE = new ClassExamPaperE(); BeanUtils.copyProperties(cmd, classExamPaperE); + // 初始化字段,并判断题目分数是否符合要求 + SSOUser ssoUser = AuthContext.getCurrentUser(); + classExamPaperE.initSave(ssoUser.getTenantId()); boolean res = false; try { res = classExamPaperGateway.add(classExamPaperE); @@ -36,5 +55,38 @@ public class ClassExamPaperAddExe { } return true; } + + @Transactional(rollbackFor = Exception.class) + public boolean executeAutoSave(ClassExamPaperAutoAddCmd cmd) { + ClassExamPaperE classExamPaperE = new ClassExamPaperE(); + BeanUtils.copyProperties(cmd, classExamPaperE); + // 初始化字段,并判断题目分数是否符合要求 + SSOUser ssoUser = AuthContext.getCurrentUser(); + classExamPaperE.initAutoSave(ssoUser.getTenantId()); + + + // 检验习题数是否够用,并随机生成试卷 + List questionDOList = questionRepository.listByClassId(classExamPaperE.getClassId()); + List questionEList = BeanUtil.copyToList(questionDOList, QuestionE.class); + List paperQuesList = classExamPaperE.automaticPaper(questionEList); + ExamPaperE examPaperE = new ExamPaperE(); + BeanUtils.copyProperties(classExamPaperE, examPaperE); + examPaperE.initExamPaper(); + boolean res = false; + try { + // 新增试卷 + res = examPaperGateway.add(examPaperE); + // 新增习题 + res = questionRepository.saveBatch(BeanUtil.copyToList(paperQuesList, QuestionDO.class)); + // 新增班级内试卷 + res = classExamPaperGateway.add(classExamPaperE); + } catch (Exception e) { + throw new RuntimeException(e); + } + if (!res) { + throw new BizException("保存失败"); + } + return true; + } } diff --git a/web-app/src/main/java/com/zcloud/edu/service/study/ClassCurriculumServiceImpl.java b/web-app/src/main/java/com/zcloud/edu/service/study/ClassCurriculumServiceImpl.java index 83673fc..eb5106c 100644 --- a/web-app/src/main/java/com/zcloud/edu/service/study/ClassCurriculumServiceImpl.java +++ b/web-app/src/main/java/com/zcloud/edu/service/study/ClassCurriculumServiceImpl.java @@ -1,6 +1,7 @@ package com.zcloud.edu.service.study; import com.alibaba.cola.dto.PageResponse; +import com.alibaba.cola.dto.Response; import com.alibaba.cola.dto.SingleResponse; import com.zcloud.edu.api.study.ClassCurriculumServiceI; import com.zcloud.edu.command.query.study.ClassCurriculumQueryExe; @@ -14,6 +15,8 @@ import com.zcloud.edu.dto.study.ClassCurriculumUpdateCmd; import lombok.AllArgsConstructor; import org.springframework.stereotype.Service; +import java.util.List; + /** * web-app * @@ -35,10 +38,10 @@ public class ClassCurriculumServiceImpl implements ClassCurriculumServiceI { } @Override - public SingleResponse add(ClassCurriculumAddCmd cmd) { + public Response add(List cmdList) { - classCurriculumAddExe.execute(cmd); - return SingleResponse.buildSuccess(); + classCurriculumAddExe.execute(cmdList); + return Response.buildSuccess(); } @Override @@ -55,5 +58,10 @@ public class ClassCurriculumServiceImpl implements ClassCurriculumServiceI { public void removeBatch(Long[] ids) { classCurriculumRemoveExe.execute(ids); } + + @Override + public SingleResponse getInfoById(Long id) { + return classCurriculumQueryExe.executeGetInfoById(id); + } } diff --git a/web-app/src/main/java/com/zcloud/edu/service/study/ClassExamPaperServiceImpl.java b/web-app/src/main/java/com/zcloud/edu/service/study/ClassExamPaperServiceImpl.java index 75c30d0..ba3632b 100644 --- a/web-app/src/main/java/com/zcloud/edu/service/study/ClassExamPaperServiceImpl.java +++ b/web-app/src/main/java/com/zcloud/edu/service/study/ClassExamPaperServiceImpl.java @@ -9,6 +9,7 @@ import com.zcloud.edu.command.study.ClassExamPaperRemoveExe; import com.zcloud.edu.command.study.ClassExamPaperUpdateExe; import com.zcloud.edu.dto.clientobject.study.ClassExamPaperCO; import com.zcloud.edu.dto.study.ClassExamPaperAddCmd; +import com.zcloud.edu.dto.study.ClassExamPaperAutoAddCmd; import com.zcloud.edu.dto.study.ClassExamPaperPageQry; import com.zcloud.edu.dto.study.ClassExamPaperUpdateCmd; import lombok.AllArgsConstructor; @@ -41,6 +42,12 @@ public class ClassExamPaperServiceImpl implements ClassExamPaperServiceI { return SingleResponse.buildSuccess(); } + @Override + public SingleResponse autoSave(ClassExamPaperAutoAddCmd cmd) { + classExamPaperAddExe.executeAutoSave(cmd); + return SingleResponse.buildSuccess(); + } + @Override public void edit(ClassExamPaperUpdateCmd classExamPaperUpdateCmd) { classExamPaperUpdateExe.execute(classExamPaperUpdateCmd); diff --git a/web-app/src/main/java/com/zcloud/edu/service/study/ClassServiceImpl.java b/web-app/src/main/java/com/zcloud/edu/service/study/ClassServiceImpl.java index a99c2f7..5164bd9 100644 --- a/web-app/src/main/java/com/zcloud/edu/service/study/ClassServiceImpl.java +++ b/web-app/src/main/java/com/zcloud/edu/service/study/ClassServiceImpl.java @@ -8,6 +8,7 @@ import com.zcloud.edu.command.study.ClassAddExe; import com.zcloud.edu.command.study.ClassRemoveExe; import com.zcloud.edu.command.study.ClassUpdateExe; import com.zcloud.edu.dto.clientobject.study.ClassCO; +import com.zcloud.edu.dto.data.study.ClassQuestionDTO; import com.zcloud.edu.dto.study.ClassAddCmd; import com.zcloud.edu.dto.study.ClassPageQry; import com.zcloud.edu.dto.study.ClassUpdateCmd; @@ -55,5 +56,11 @@ public class ClassServiceImpl implements ClassServiceI { public void removeBatch(Long[] ids) { classRemoveExe.execute(ids); } + + @Override + public SingleResponse countQuestionByClassId(String id) { + + return classQueryExe.executeCountQuestionByClassId(id); + } } diff --git a/web-client/src/main/java/com/zcloud/edu/api/study/ClassCurriculumServiceI.java b/web-client/src/main/java/com/zcloud/edu/api/study/ClassCurriculumServiceI.java index 1cb9358..d64ebf4 100644 --- a/web-client/src/main/java/com/zcloud/edu/api/study/ClassCurriculumServiceI.java +++ b/web-client/src/main/java/com/zcloud/edu/api/study/ClassCurriculumServiceI.java @@ -1,12 +1,15 @@ package com.zcloud.edu.api.study; import com.alibaba.cola.dto.PageResponse; +import com.alibaba.cola.dto.Response; import com.alibaba.cola.dto.SingleResponse; import com.zcloud.edu.dto.clientobject.study.ClassCurriculumCO; import com.zcloud.edu.dto.study.ClassCurriculumAddCmd; import com.zcloud.edu.dto.study.ClassCurriculumPageQry; import com.zcloud.edu.dto.study.ClassCurriculumUpdateCmd; +import java.util.List; + /** * web-client * @@ -16,12 +19,14 @@ import com.zcloud.edu.dto.study.ClassCurriculumUpdateCmd; public interface ClassCurriculumServiceI { PageResponse listPage(ClassCurriculumPageQry qry); - SingleResponse add(ClassCurriculumAddCmd cmd); + Response add(List cmdList); void edit(ClassCurriculumUpdateCmd cmd); void remove(Long id); void removeBatch(Long[] ids); + + SingleResponse getInfoById(Long id); } diff --git a/web-client/src/main/java/com/zcloud/edu/api/study/ClassExamPaperServiceI.java b/web-client/src/main/java/com/zcloud/edu/api/study/ClassExamPaperServiceI.java index 79debef..8863601 100644 --- a/web-client/src/main/java/com/zcloud/edu/api/study/ClassExamPaperServiceI.java +++ b/web-client/src/main/java/com/zcloud/edu/api/study/ClassExamPaperServiceI.java @@ -4,6 +4,7 @@ import com.alibaba.cola.dto.PageResponse; import com.alibaba.cola.dto.SingleResponse; import com.zcloud.edu.dto.clientobject.study.ClassExamPaperCO; import com.zcloud.edu.dto.study.ClassExamPaperAddCmd; +import com.zcloud.edu.dto.study.ClassExamPaperAutoAddCmd; import com.zcloud.edu.dto.study.ClassExamPaperPageQry; import com.zcloud.edu.dto.study.ClassExamPaperUpdateCmd; @@ -18,6 +19,8 @@ public interface ClassExamPaperServiceI { SingleResponse add(ClassExamPaperAddCmd cmd); + SingleResponse autoSave(ClassExamPaperAutoAddCmd cmd); + void edit(ClassExamPaperUpdateCmd cmd); void remove(Long id); diff --git a/web-client/src/main/java/com/zcloud/edu/api/study/ClassServiceI.java b/web-client/src/main/java/com/zcloud/edu/api/study/ClassServiceI.java index 3c73bc3..6e1f41d 100644 --- a/web-client/src/main/java/com/zcloud/edu/api/study/ClassServiceI.java +++ b/web-client/src/main/java/com/zcloud/edu/api/study/ClassServiceI.java @@ -3,6 +3,7 @@ package com.zcloud.edu.api.study; import com.alibaba.cola.dto.PageResponse; import com.alibaba.cola.dto.SingleResponse; import com.zcloud.edu.dto.clientobject.study.ClassCO; +import com.zcloud.edu.dto.data.study.ClassQuestionDTO; import com.zcloud.edu.dto.study.ClassAddCmd; import com.zcloud.edu.dto.study.ClassPageQry; import com.zcloud.edu.dto.study.ClassUpdateCmd; @@ -23,5 +24,7 @@ public interface ClassServiceI { void remove(Long id); void removeBatch(Long[] ids); + + SingleResponse countQuestionByClassId(String id); } diff --git a/web-client/src/main/java/com/zcloud/edu/dto/clientobject/study/ClassCurriculumCO.java b/web-client/src/main/java/com/zcloud/edu/dto/clientobject/study/ClassCurriculumCO.java index a00c0ae..480638c 100644 --- a/web-client/src/main/java/com/zcloud/edu/dto/clientobject/study/ClassCurriculumCO.java +++ b/web-client/src/main/java/com/zcloud/edu/dto/clientobject/study/ClassCurriculumCO.java @@ -1,12 +1,15 @@ package com.zcloud.edu.dto.clientobject.study; import com.alibaba.cola.dto.ClientObject; +import com.baomidou.mybatisplus.annotation.TableField; import com.fasterxml.jackson.annotation.JsonFormat; import com.google.type.Decimal; import io.swagger.annotations.ApiModelProperty; import lombok.Data; +import java.math.BigDecimal; import java.time.LocalDateTime; +import java.util.List; /** @@ -32,7 +35,39 @@ public class ClassCurriculumCO extends ClientObject { private String curriculumName; //课程总时长 @ApiModelProperty(value = "课程总时长") - private Decimal videoTotalTime; + private BigDecimal videoTotalTime; + //课程总时长 + @ApiModelProperty(value = "课件数") + @TableField(exist = false) + private long videoCount; + // 章节目录 + @ApiModelProperty(value = "章节目录") + private List chapterList; + + + @ApiModelProperty(value = "所属单位id") + @TableField(exist = false) + private long corpinfoId; + @ApiModelProperty(value = "所属单位名称") + @TableField(exist = false) + private String corpName; + @ApiModelProperty(value = "培训类型id") + @TableField(exist = false) + private String trainingTypeId; + @ApiModelProperty(value = "培训类型名称") + @TableField(exist = false) + private String trainingTypeName; + @ApiModelProperty(value = "原课程总时长") + @TableField(exist = false) + private BigDecimal curriculumVideoTotalTime; + //课程描述 + @ApiModelProperty(value = "课程描述") + @TableField(exist = false) + private String curriculumIntroduce; + //封面路径url + @ApiModelProperty(value = "封面路径url") + @TableField(exist = false) + private String coverPath; //删除标识true false @ApiModelProperty(value = "删除标识true false") private String deleteEnum; @@ -71,5 +106,6 @@ public class ClassCurriculumCO extends ClientObject { //环境 @ApiModelProperty(value = "环境") private String env; + } diff --git a/web-client/src/main/java/com/zcloud/edu/dto/clientobject/study/ClassCurriculumChapterCO.java b/web-client/src/main/java/com/zcloud/edu/dto/clientobject/study/ClassCurriculumChapterCO.java index 7e834a3..b28fd22 100644 --- a/web-client/src/main/java/com/zcloud/edu/dto/clientobject/study/ClassCurriculumChapterCO.java +++ b/web-client/src/main/java/com/zcloud/edu/dto/clientobject/study/ClassCurriculumChapterCO.java @@ -1,11 +1,13 @@ package com.zcloud.edu.dto.clientobject.study; import com.alibaba.cola.dto.ClientObject; +import com.baomidou.mybatisplus.annotation.TableField; import com.fasterxml.jackson.annotation.JsonFormat; import io.swagger.annotations.ApiModelProperty; import lombok.Data; import java.time.LocalDateTime; +import java.util.List; /** @@ -43,6 +45,45 @@ public class ClassCurriculumChapterCO extends ClientObject { //上级ID @ApiModelProperty(value = "上级ID") private String parentId; + + + + //课件名称 + @ApiModelProperty(value = "课件名称") + private String coursewareName; + //培训类型id + @ApiModelProperty(value = "培训类型id") + private String trainingTypeId; + //教师id + @ApiModelProperty(value = "教师id") + @TableField(exist = false) + private String teacherId; + //课件文件路径 + @ApiModelProperty(value = "课件文件路径") + @TableField(exist = false) + private String videoFiles; + //课件描述 + @ApiModelProperty(value = "课件描述") + @TableField(exist = false) + private String coursewareIntroduce; + //课件时长(视频时间)-秒 + @ApiModelProperty(value = "课件时长(视频时间)-秒") + @TableField(exist = false) + private Integer videoTime; + @ApiModelProperty(value = "课件截图url") + @TableField(exist = false) + private String screenshotUrl; + @ApiModelProperty(value = "教师名称") + @TableField(exist = false) + private String teacherName; + @ApiModelProperty(value = "培训类型名称") + @TableField(exist = false) + private String trainingTypeName; + + + + + //删除标识true false @ApiModelProperty(value = "删除标识true false") private String deleteEnum; @@ -81,5 +122,15 @@ public class ClassCurriculumChapterCO extends ClientObject { //环境 @ApiModelProperty(value = "环境") private String env; + + + + +// 章节目录 + @ApiModelProperty(value = "章节目录") + private List children; + + + } diff --git a/web-client/src/main/java/com/zcloud/edu/dto/data/study/ClassQuestionDTO.java b/web-client/src/main/java/com/zcloud/edu/dto/data/study/ClassQuestionDTO.java new file mode 100644 index 0000000..e0dd461 --- /dev/null +++ b/web-client/src/main/java/com/zcloud/edu/dto/data/study/ClassQuestionDTO.java @@ -0,0 +1,27 @@ +package com.zcloud.edu.dto.data.study; + + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * @author zhangyue + * @date 2026/1/19 15:31 + */ +@Data +public class ClassQuestionDTO { + + @ApiModelProperty(value = "单选题数量") + private Integer singleCount; + @ApiModelProperty(value = "多选题数量") + private Integer multipleCount; + @ApiModelProperty(value = "判断题数量") + private Integer judgeCount; + + public ClassQuestionDTO() { + this.judgeCount = 0; + this.multipleCount = 0; + this.singleCount = 0; + } + +} diff --git a/web-client/src/main/java/com/zcloud/edu/dto/study/ClassCurriculumAddCmd.java b/web-client/src/main/java/com/zcloud/edu/dto/study/ClassCurriculumAddCmd.java index 26aadf7..0f56247 100644 --- a/web-client/src/main/java/com/zcloud/edu/dto/study/ClassCurriculumAddCmd.java +++ b/web-client/src/main/java/com/zcloud/edu/dto/study/ClassCurriculumAddCmd.java @@ -10,6 +10,7 @@ import lombok.NoArgsConstructor; import javax.validation.constraints.NotEmpty; import javax.validation.constraints.NotNull; +import java.util.List; /** * web-client @@ -40,7 +41,12 @@ public class ClassCurriculumAddCmd extends Command { @ApiModelProperty(value = "课程总时长", name = "videoTotalTime", required = true) @NotNull(message = "课程总时长不能为空") - private Decimal videoTotalTime; + private double videoTotalTime; + + + @ApiModelProperty(value = "课程目录", name = "curriculumChapterAddCmdList", required = true) + @NotNull(message = "课程目录") + private List chapterList; } diff --git a/web-client/src/main/java/com/zcloud/edu/dto/study/ClassCurriculumChapterAddCmd.java b/web-client/src/main/java/com/zcloud/edu/dto/study/ClassCurriculumChapterAddCmd.java index e73ffa1..326d33f 100644 --- a/web-client/src/main/java/com/zcloud/edu/dto/study/ClassCurriculumChapterAddCmd.java +++ b/web-client/src/main/java/com/zcloud/edu/dto/study/ClassCurriculumChapterAddCmd.java @@ -9,6 +9,7 @@ import lombok.NoArgsConstructor; import javax.validation.constraints.NotEmpty; import javax.validation.constraints.NotNull; +import java.util.List; /** * web-client @@ -49,5 +50,9 @@ public class ClassCurriculumChapterAddCmd extends Command { @NotEmpty(message = "上级ID不能为空") private String parentId; + @ApiModelProperty(value = "目录课件", name = "curriculumChapterAddCmdList", required = true) + @NotEmpty(message = "目录课件不能为空") + private List children; + } diff --git a/web-client/src/main/java/com/zcloud/edu/dto/study/ClassCurriculumPageQry.java b/web-client/src/main/java/com/zcloud/edu/dto/study/ClassCurriculumPageQry.java index 9bbab24..94c7b1e 100644 --- a/web-client/src/main/java/com/zcloud/edu/dto/study/ClassCurriculumPageQry.java +++ b/web-client/src/main/java/com/zcloud/edu/dto/study/ClassCurriculumPageQry.java @@ -24,5 +24,6 @@ public class ClassCurriculumPageQry extends PageQuery { * - `ne`: 不等比较查询,对应SQL的!=操作符 */ private String likeClassCurriculumId; + private String eqClassId; } diff --git a/web-client/src/main/java/com/zcloud/edu/dto/study/ClassCurriculumUpdateCmd.java b/web-client/src/main/java/com/zcloud/edu/dto/study/ClassCurriculumUpdateCmd.java index 38603b1..4eead0d 100644 --- a/web-client/src/main/java/com/zcloud/edu/dto/study/ClassCurriculumUpdateCmd.java +++ b/web-client/src/main/java/com/zcloud/edu/dto/study/ClassCurriculumUpdateCmd.java @@ -10,6 +10,7 @@ import lombok.NoArgsConstructor; import javax.validation.constraints.NotEmpty; import javax.validation.constraints.NotNull; +import java.math.BigDecimal; /** * web-client @@ -22,23 +23,11 @@ import javax.validation.constraints.NotNull; @NoArgsConstructor @AllArgsConstructor public class ClassCurriculumUpdateCmd extends Command { - @ApiModelProperty(value = "${column.comment}", name = "id", required = true) - @NotNull(message = "${column.comment}不能为空") + @ApiModelProperty(value = "主键id", name = "id", required = true) + @NotNull(message = "主键id不能为空") private Long id; - @ApiModelProperty(value = "业务id", name = "classCurriculumId", required = true) - @NotEmpty(message = "业务id不能为空") - private String classCurriculumId; - @ApiModelProperty(value = "课程id", name = "curriculumId", required = true) - @NotEmpty(message = "课程id不能为空") - private String curriculumId; - @ApiModelProperty(value = "班级id", name = "classId", required = true) - @NotEmpty(message = "班级id不能为空") - private String classId; @ApiModelProperty(value = "课程名称", name = "curriculumName", required = true) @NotEmpty(message = "课程名称不能为空") private String curriculumName; - @ApiModelProperty(value = "课程总时长", name = "videoTotalTime", required = true) - @NotNull(message = "课程总时长不能为空") - private Decimal videoTotalTime; } diff --git a/web-client/src/main/java/com/zcloud/edu/dto/study/ClassExamPaperAddCmd.java b/web-client/src/main/java/com/zcloud/edu/dto/study/ClassExamPaperAddCmd.java index 0e10e68..69739c9 100644 --- a/web-client/src/main/java/com/zcloud/edu/dto/study/ClassExamPaperAddCmd.java +++ b/web-client/src/main/java/com/zcloud/edu/dto/study/ClassExamPaperAddCmd.java @@ -9,6 +9,7 @@ import lombok.NoArgsConstructor; import javax.validation.constraints.NotEmpty; import javax.validation.constraints.NotNull; +import java.math.BigDecimal; /** * web-client @@ -22,7 +23,6 @@ import javax.validation.constraints.NotNull; @AllArgsConstructor public class ClassExamPaperAddCmd extends Command { @ApiModelProperty(value = "业务id", name = "classExamPaperId", required = true) - @NotEmpty(message = "业务id不能为空") private String classExamPaperId; @ApiModelProperty(value = "班级id", name = "classId", required = true) @@ -34,7 +34,6 @@ public class ClassExamPaperAddCmd extends Command { private String examPaperId; @ApiModelProperty(value = "企业ID", name = "corpinfoId", required = true) - @NotNull(message = "企业ID不能为空") private Long corpinfoId; @ApiModelProperty(value = "试卷名称", name = "examName", required = true) @@ -42,16 +41,18 @@ public class ClassExamPaperAddCmd extends Command { private String examName; @ApiModelProperty(value = "试卷总分数", name = "examScore", required = true) - @NotEmpty(message = "试卷总分数不能为空") - private String examScore; + @NotNull(message = "试卷总分数不能为空") + private BigDecimal examScore; @ApiModelProperty(value = "合格分数", name = "passScore", required = true) - @NotEmpty(message = "合格分数不能为空") - private String passScore; + @NotNull(message = "合格分数不能为空") + private BigDecimal passScore; @ApiModelProperty(value = "考试时长(分钟)", name = "examTime", required = true) - @NotEmpty(message = "考试时长(分钟)不能为空") - private String examTime; + @NotNull(message = "考试时长(分钟)不能为空") + private Integer examTime; + + } diff --git a/web-client/src/main/java/com/zcloud/edu/dto/study/ClassExamPaperAutoAddCmd.java b/web-client/src/main/java/com/zcloud/edu/dto/study/ClassExamPaperAutoAddCmd.java new file mode 100644 index 0000000..ec4e182 --- /dev/null +++ b/web-client/src/main/java/com/zcloud/edu/dto/study/ClassExamPaperAutoAddCmd.java @@ -0,0 +1,79 @@ +package com.zcloud.edu.dto.study; + +import com.alibaba.cola.dto.Command; +import io.swagger.annotations.ApiModelProperty; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; + +import javax.validation.constraints.NotEmpty; +import javax.validation.constraints.NotNull; +import java.math.BigDecimal; + +/** + * web-client + * + * @Author zhangyue + * @Date 2026-01-13 14:18:21 + */ +@EqualsAndHashCode(callSuper = true) +@Data +@NoArgsConstructor +@AllArgsConstructor +public class ClassExamPaperAutoAddCmd extends Command { + @ApiModelProperty(value = "业务id", name = "classExamPaperId", required = true) + private String classExamPaperId; + + @ApiModelProperty(value = "班级id", name = "classId", required = true) + @NotEmpty(message = "班级id不能为空") + private String classId; + + @ApiModelProperty(value = "试卷id", name = "examPaperId", required = true) + private String examPaperId; + + @ApiModelProperty(value = "企业ID", name = "corpinfoId", required = true) + private Long corpinfoId; + + @ApiModelProperty(value = "试卷名称", name = "examName", required = true) + @NotEmpty(message = "试卷名称不能为空") + private String examName; + + @ApiModelProperty(value = "试卷总分数", name = "examScore", required = true) + @NotNull(message = "试卷总分数不能为空") + private BigDecimal examScore; + + @ApiModelProperty(value = "合格分数", name = "passScore", required = true) + @NotNull(message = "合格分数不能为空") + private BigDecimal passScore; + + @ApiModelProperty(value = "考试时长(分钟)", name = "examTime", required = true) + @NotNull(message = "考试时长(分钟)不能为空") + private Integer examTime; + + + @ApiModelProperty(value = "单选题数量", name = "singleCount", required = true) + @NotNull(message = "单选题数量不能为空") + private Integer singleCount; + @ApiModelProperty(value = "单选题分数", name = "singleScore", required = true) + @NotNull(message = "单选题分数不能为空") + private BigDecimal singleScore; + + + @ApiModelProperty(value = "多选题数量", name = "multipleCount", required = true) + @NotNull(message = "多选题数量不能为空") + private Integer multipleCount; + @ApiModelProperty(value = "多选题分数", name = "multipleScore", required = true) + @NotNull(message = "多选题分数不能为空") + private BigDecimal multipleScore; + + + @ApiModelProperty(value = "判断题数量", name = "judgeCount", required = true) + @NotNull(message = "判断题数量不能为空") + private Integer judgeCount; + @ApiModelProperty(value = "判断题分数", name = "judgeScore", required = true) + @NotNull(message = "判断题分数不能为空") + private BigDecimal judgeScore; + +} + diff --git a/web-domain/src/main/java/com/zcloud/edu/domain/gateway/study/ClassCurriculumChapterGateway.java b/web-domain/src/main/java/com/zcloud/edu/domain/gateway/study/ClassCurriculumChapterGateway.java index 73a2d01..6865e12 100644 --- a/web-domain/src/main/java/com/zcloud/edu/domain/gateway/study/ClassCurriculumChapterGateway.java +++ b/web-domain/src/main/java/com/zcloud/edu/domain/gateway/study/ClassCurriculumChapterGateway.java @@ -3,6 +3,8 @@ package com.zcloud.edu.domain.gateway.study; import com.zcloud.edu.domain.model.study.ClassCurriculumChapterE; +import java.util.List; + /** * web-domain * @@ -27,5 +29,7 @@ public interface ClassCurriculumChapterGateway { Boolean deletedClassCurriculumChapterById(Long id); Boolean deletedClassCurriculumChapterByIds(Long[] id); + + void batchAdd(List classCurriculumChapterE); } diff --git a/web-domain/src/main/java/com/zcloud/edu/domain/gateway/study/ClassCurriculumGateway.java b/web-domain/src/main/java/com/zcloud/edu/domain/gateway/study/ClassCurriculumGateway.java index 1a9523b..e279038 100644 --- a/web-domain/src/main/java/com/zcloud/edu/domain/gateway/study/ClassCurriculumGateway.java +++ b/web-domain/src/main/java/com/zcloud/edu/domain/gateway/study/ClassCurriculumGateway.java @@ -3,6 +3,8 @@ package com.zcloud.edu.domain.gateway.study; import com.zcloud.edu.domain.model.study.ClassCurriculumE; +import java.util.List; + /** * web-domain * @@ -27,5 +29,7 @@ public interface ClassCurriculumGateway { Boolean deletedClassCurriculumById(Long id); Boolean deletedClassCurriculumByIds(Long[] id); + + void batchAdd(List classCurriculumEList); } diff --git a/web-domain/src/main/java/com/zcloud/edu/domain/model/resource/ExamPaperE.java b/web-domain/src/main/java/com/zcloud/edu/domain/model/resource/ExamPaperE.java index 9348604..56e25b8 100644 --- a/web-domain/src/main/java/com/zcloud/edu/domain/model/resource/ExamPaperE.java +++ b/web-domain/src/main/java/com/zcloud/edu/domain/model/resource/ExamPaperE.java @@ -1,6 +1,7 @@ package com.zcloud.edu.domain.model.resource; import com.jjb.saas.framework.domain.model.BaseE; +import com.zcloud.gbscommon.utils.Tools; import lombok.Data; import java.math.BigDecimal; @@ -55,5 +56,10 @@ public class ExamPaperE extends BaseE { private Long updateId; //环境 private String env; + + public void initExamPaper(){ + this.sellFlag = 0; + this.type = 2; + } } diff --git a/web-domain/src/main/java/com/zcloud/edu/domain/model/study/ClassCurriculumChapterE.java b/web-domain/src/main/java/com/zcloud/edu/domain/model/study/ClassCurriculumChapterE.java index efdc32e..fc30d66 100644 --- a/web-domain/src/main/java/com/zcloud/edu/domain/model/study/ClassCurriculumChapterE.java +++ b/web-domain/src/main/java/com/zcloud/edu/domain/model/study/ClassCurriculumChapterE.java @@ -4,6 +4,7 @@ import com.jjb.saas.framework.domain.model.BaseE; import lombok.Data; import java.time.LocalDateTime; +import java.util.List; /** * web-domain @@ -31,6 +32,8 @@ public class ClassCurriculumChapterE extends BaseE { private Integer sort; //上级ID private String parentId; + //子集 + private List children; //删除标识true false private String deleteEnum; //备注 diff --git a/web-domain/src/main/java/com/zcloud/edu/domain/model/study/ClassCurriculumE.java b/web-domain/src/main/java/com/zcloud/edu/domain/model/study/ClassCurriculumE.java index 2cb9dfd..3be4cc0 100644 --- a/web-domain/src/main/java/com/zcloud/edu/domain/model/study/ClassCurriculumE.java +++ b/web-domain/src/main/java/com/zcloud/edu/domain/model/study/ClassCurriculumE.java @@ -2,9 +2,13 @@ package com.zcloud.edu.domain.model.study; import com.google.type.Decimal; import com.jjb.saas.framework.domain.model.BaseE; +import com.zcloud.gbscommon.utils.Tools; import lombok.Data; +import java.math.BigDecimal; import java.time.LocalDateTime; +import java.util.ArrayList; +import java.util.List; /** * web-domain @@ -24,7 +28,7 @@ public class ClassCurriculumE extends BaseE { //课程名称 private String curriculumName; //课程总时长 - private Decimal videoTotalTime; + private BigDecimal videoTotalTime; //删除标识true false private String deleteEnum; //备注 @@ -33,6 +37,10 @@ public class ClassCurriculumE extends BaseE { private String createName; //更新人姓名 private String updateName; + + private List chapterList; + + //租户id private Long tenantId; //单位id @@ -49,5 +57,29 @@ public class ClassCurriculumE extends BaseE { private Long updateId; //环境 private String env; + + public List initCurList(List curList){ + List classCurriculumChapterEList = new ArrayList(); + for (ClassCurriculumE cur : curList){ + cur.setClassCurriculumId(Tools.get32UUID()); + for (ClassCurriculumChapterE chapter : cur.getChapterList()){ + chapter.setCurriculumChapterId(Tools.get32UUID()); + chapter.setClassId(cur.getClassId()); + chapter.setClassCurriculumId(cur.getClassCurriculumId()); + chapter.setParentId("0"); + if (chapter.getChildren() != null && chapter.getChildren().size() > 0){ + for (ClassCurriculumChapterE childChapter : chapter.getChildren()){ + childChapter.setCurriculumChapterId(Tools.get32UUID()); + childChapter.setClassId(cur.getClassId()); + childChapter.setClassCurriculumId(cur.getClassCurriculumId()); + childChapter.setParentId(chapter.getCurriculumChapterId()); + } + classCurriculumChapterEList.addAll(chapter.getChildren()); + } + } + classCurriculumChapterEList.addAll(cur.getChapterList()); + } + return classCurriculumChapterEList; + } } diff --git a/web-domain/src/main/java/com/zcloud/edu/domain/model/study/ClassExamPaperE.java b/web-domain/src/main/java/com/zcloud/edu/domain/model/study/ClassExamPaperE.java index 48c5941..1640e9c 100644 --- a/web-domain/src/main/java/com/zcloud/edu/domain/model/study/ClassExamPaperE.java +++ b/web-domain/src/main/java/com/zcloud/edu/domain/model/study/ClassExamPaperE.java @@ -1,9 +1,21 @@ package com.zcloud.edu.domain.model.study; +import cn.hutool.core.bean.BeanUtil; +import com.alibaba.cola.exception.BizException; import com.jjb.saas.framework.domain.model.BaseE; +import com.zcloud.edu.domain.model.resource.QuestionE; +import com.zcloud.gbscommon.utils.Tools; +import io.swagger.annotations.ApiModelProperty; import lombok.Data; +import javax.validation.constraints.NotNull; +import java.math.BigDecimal; import java.time.LocalDateTime; +import java.util.ArrayList; +import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; +import java.util.zip.ZipException; /** * web-domain @@ -25,11 +37,34 @@ public class ClassExamPaperE extends BaseE { //试卷名称 private String examName; //试卷总分数 - private String examScore; + private BigDecimal examScore; //合格分数 - private String passScore; + private BigDecimal passScore; //考试时长(分钟) - private String examTime; + private Integer examTime; + + + + // 单选题数量 + private Integer singleCount; + // 单选题分数 + private BigDecimal singleScore; + + // 多选题数量 + private Integer multipleCount; + // 多选题分数 + private BigDecimal multipleScore; + + // 判断题数量 + private Integer judgeCount; + // 判断题分数 + private BigDecimal judgeScore; + + + + + + //删除标识true false private String deleteEnum; //备注 @@ -54,5 +89,78 @@ public class ClassExamPaperE extends BaseE { private Long updateId; //环境 private String env; + + + + public void initSave(long corpinfoId){ + if (this.passScore.compareTo(this.examScore) > 0){ + throw new BizException("合格分数不能大于总分数"); + } + this.classExamPaperId = Tools.get32UUID(); + this.corpinfoId = corpinfoId; + + } + + + public void initAutoSave(long corpinfoId){ + BigDecimal questionScore = this.singleScore.multiply(BigDecimal.valueOf(this.singleCount)).add(this.multipleScore.multiply(BigDecimal.valueOf(this.multipleCount))).add(this.judgeScore.multiply(BigDecimal.valueOf(this.judgeCount))); + if (questionScore.compareTo(this.examScore) != 0){ + throw new BizException("习题总分数与试卷总分数不同,请调整"); + } + this.classExamPaperId = Tools.get32UUID(); + this.examPaperId = Tools.get32UUID(); + this.corpinfoId = corpinfoId; + + } + + public List automaticPaper(List questionEList){ + List resultQuesList = new ArrayList(); + Map> questionListMap = questionEList.stream() + .collect(Collectors.groupingBy(QuestionE::getQuestionType)); + List singleQuestionEList = questionListMap.get(1) != null ? questionListMap.get(1) : new ArrayList(); + List multipleQuestionEList = questionListMap.get(2) != null ? questionListMap.get(2) : new ArrayList(); + List judgeQuestionEList = questionListMap.get(3) != null ? questionListMap.get(3) : new ArrayList(); + if (this.getSingleCount() > singleQuestionEList.size()){ + throw new BizException("单选题数量不足"); + } + if (this.getMultipleCount() > multipleQuestionEList.size()){ + throw new BizException("多选题数量不足"); + } + if (this.getJudgeCount() > judgeQuestionEList.size()){ + throw new BizException("判断题数量不足"); + } + resultQuesList.addAll(Tools.getRandomElements(singleQuestionEList, this.getSingleCount())); + resultQuesList.addAll(Tools.getRandomElements(multipleQuestionEList, this.getMultipleCount())); + resultQuesList.addAll(Tools.getRandomElements(judgeQuestionEList, this.getJudgeCount())); + resultQuesList.stream().forEach(questionE -> { + questionE.setQuestionId(Tools.get32UUID()); + questionE.setExamPaperId(this.examPaperId); + questionE.setCoursewareType(2); + if (questionE.getQuestionType() == 1){ + questionE.setScore(this.singleScore); + }else if (questionE.getQuestionType() == 2){ + questionE.setScore(this.multipleScore); + }else{ + questionE.setScore(this.judgeScore); + } + questionE.setId(null); + questionE.setDeleteEnum("FALSE"); + questionE.setRemarks(null); + questionE.setCreateName(null); + questionE.setUpdateName(null); + questionE.setTenantId(null); + questionE.setOrgId(null); + questionE.setVersion(null); + questionE.setCreateTime(null); + questionE.setUpdateTime(null); + questionE.setCreateId(null); + questionE.setUpdateId(null); + questionE.setEnv(null); + + }); + return resultQuesList; + } + + } diff --git a/web-infrastructure/src/main/java/com/zcloud/edu/gatewayimpl/study/ClassCurriculumChapterGatewayImpl.java b/web-infrastructure/src/main/java/com/zcloud/edu/gatewayimpl/study/ClassCurriculumChapterGatewayImpl.java index dfa2922..4de000d 100644 --- a/web-infrastructure/src/main/java/com/zcloud/edu/gatewayimpl/study/ClassCurriculumChapterGatewayImpl.java +++ b/web-infrastructure/src/main/java/com/zcloud/edu/gatewayimpl/study/ClassCurriculumChapterGatewayImpl.java @@ -1,5 +1,6 @@ package com.zcloud.edu.gatewayimpl.study; +import cn.hutool.core.bean.BeanUtil; import com.zcloud.edu.domain.gateway.study.ClassCurriculumChapterGateway; import com.zcloud.edu.domain.model.study.ClassCurriculumChapterE; import com.zcloud.edu.persistence.dataobject.study.ClassCurriculumChapterDO; @@ -9,6 +10,7 @@ import org.springframework.beans.BeanUtils; import org.springframework.stereotype.Service; import java.util.Collections; +import java.util.List; /** * web-infrastructure @@ -46,5 +48,11 @@ public class ClassCurriculumChapterGatewayImpl implements ClassCurriculumChapter public Boolean deletedClassCurriculumChapterByIds(Long[] ids) { return classCurriculumChapterRepository.removeByIds(Collections.singletonList(ids)); } + + @Override + public void batchAdd(List classCurriculumChapterE) { + List classCurriculumChapterDO = BeanUtil.copyToList(classCurriculumChapterE, ClassCurriculumChapterDO.class); + classCurriculumChapterRepository.saveBatch(classCurriculumChapterDO); + } } diff --git a/web-infrastructure/src/main/java/com/zcloud/edu/gatewayimpl/study/ClassCurriculumGatewayImpl.java b/web-infrastructure/src/main/java/com/zcloud/edu/gatewayimpl/study/ClassCurriculumGatewayImpl.java index 5f01001..96528b1 100644 --- a/web-infrastructure/src/main/java/com/zcloud/edu/gatewayimpl/study/ClassCurriculumGatewayImpl.java +++ b/web-infrastructure/src/main/java/com/zcloud/edu/gatewayimpl/study/ClassCurriculumGatewayImpl.java @@ -1,5 +1,6 @@ package com.zcloud.edu.gatewayimpl.study; +import cn.hutool.core.bean.BeanUtil; import com.zcloud.edu.domain.gateway.study.ClassCurriculumGateway; import com.zcloud.edu.domain.model.study.ClassCurriculumE; import com.zcloud.edu.persistence.dataobject.study.ClassCurriculumDO; @@ -9,6 +10,7 @@ import org.springframework.beans.BeanUtils; import org.springframework.stereotype.Service; import java.util.Collections; +import java.util.List; /** * web-infrastructure @@ -46,5 +48,11 @@ public class ClassCurriculumGatewayImpl implements ClassCurriculumGateway { public Boolean deletedClassCurriculumByIds(Long[] ids) { return classCurriculumRepository.removeByIds(Collections.singletonList(ids)); } + + @Override + public void batchAdd(List classCurriculumEList) { + List curList = BeanUtil.copyToList(classCurriculumEList, ClassCurriculumDO.class); + classCurriculumRepository.saveBatch(curList); + } } diff --git a/web-infrastructure/src/main/java/com/zcloud/edu/persistence/dataobject/study/ClassCurriculumChapterDO.java b/web-infrastructure/src/main/java/com/zcloud/edu/persistence/dataobject/study/ClassCurriculumChapterDO.java index 02d8313..00725f5 100644 --- a/web-infrastructure/src/main/java/com/zcloud/edu/persistence/dataobject/study/ClassCurriculumChapterDO.java +++ b/web-infrastructure/src/main/java/com/zcloud/edu/persistence/dataobject/study/ClassCurriculumChapterDO.java @@ -1,5 +1,6 @@ package com.zcloud.edu.persistence.dataobject.study; +import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableName; import com.jjb.saas.framework.repository.basedo.BaseDO; import io.swagger.annotations.ApiModelProperty; @@ -7,6 +8,8 @@ import lombok.Data; import lombok.EqualsAndHashCode; import lombok.NoArgsConstructor; +import java.math.BigDecimal; + /** * web-infrastructure * @@ -44,5 +47,51 @@ public class ClassCurriculumChapterDO extends BaseDO { private String parentId; + + + + + + + + + + + + //课件名称 + @ApiModelProperty(value = "课件名称") + @TableField(exist = false) + private String coursewareName; + //培训类型id + @ApiModelProperty(value = "培训类型id") + @TableField(exist = false) + private String trainingTypeId; + //教师id + @ApiModelProperty(value = "教师id") + @TableField(exist = false) + private String teacherId; + //课件文件路径 + @ApiModelProperty(value = "课件文件路径") + @TableField(exist = false) + private String videoFiles; + //课件描述 + @ApiModelProperty(value = "课件描述") + @TableField(exist = false) + private String coursewareIntroduce; + //课件时长(视频时间)-秒 + @ApiModelProperty(value = "课件时长(视频时间)-秒") + @TableField(exist = false) + private Integer videoTime; + @ApiModelProperty(value = "课件截图url") + @TableField(exist = false) + private String screenshotUrl; + @ApiModelProperty(value = "教师名称") + @TableField(exist = false) + private String teacherName; + @ApiModelProperty(value = "培训类型名称") + @TableField(exist = false) + private String trainingTypeName; + + } diff --git a/web-infrastructure/src/main/java/com/zcloud/edu/persistence/dataobject/study/ClassCurriculumDO.java b/web-infrastructure/src/main/java/com/zcloud/edu/persistence/dataobject/study/ClassCurriculumDO.java index ea1bdda..70d8b59 100644 --- a/web-infrastructure/src/main/java/com/zcloud/edu/persistence/dataobject/study/ClassCurriculumDO.java +++ b/web-infrastructure/src/main/java/com/zcloud/edu/persistence/dataobject/study/ClassCurriculumDO.java @@ -1,5 +1,6 @@ package com.zcloud.edu.persistence.dataobject.study; +import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableName; import com.google.type.Decimal; import com.jjb.saas.framework.repository.basedo.BaseDO; @@ -8,6 +9,9 @@ import lombok.Data; import lombok.EqualsAndHashCode; import lombok.NoArgsConstructor; +import java.math.BigDecimal; +import java.util.List; + /** * web-infrastructure * @@ -33,8 +37,31 @@ public class ClassCurriculumDO extends BaseDO { private String curriculumName; //课程总时长 @ApiModelProperty(value = "课程总时长") - private Decimal videoTotalTime; + private BigDecimal videoTotalTime; + @ApiModelProperty(value = "所属单位id") + @TableField(exist = false) + private long corpinfoId; + @ApiModelProperty(value = "所属单位名称") + @TableField(exist = false) + private String corpName; + @ApiModelProperty(value = "培训类型id") + @TableField(exist = false) + private String trainingTypeId; + @ApiModelProperty(value = "培训类型名称") + @TableField(exist = false) + private String trainingTypeName; + @ApiModelProperty(value = "原课程总时长") + @TableField(exist = false) + private BigDecimal curriculumVideoTotalTime; + //课程描述 + @ApiModelProperty(value = "课程描述") + @TableField(exist = false) + private String curriculumIntroduce; + //封面路径url + @ApiModelProperty(value = "封面路径url") + @TableField(exist = false) + private String coverPath; } diff --git a/web-infrastructure/src/main/java/com/zcloud/edu/persistence/dataobject/study/ClassExamPaperDO.java b/web-infrastructure/src/main/java/com/zcloud/edu/persistence/dataobject/study/ClassExamPaperDO.java index ac71c63..b2bf16f 100644 --- a/web-infrastructure/src/main/java/com/zcloud/edu/persistence/dataobject/study/ClassExamPaperDO.java +++ b/web-infrastructure/src/main/java/com/zcloud/edu/persistence/dataobject/study/ClassExamPaperDO.java @@ -7,6 +7,8 @@ import lombok.Data; import lombok.EqualsAndHashCode; import lombok.NoArgsConstructor; +import java.math.BigDecimal; + /** * web-infrastructure * @@ -35,13 +37,13 @@ public class ClassExamPaperDO extends BaseDO { private String examName; //试卷总分数 @ApiModelProperty(value = "试卷总分数") - private String examScore; + private BigDecimal examScore; //合格分数 @ApiModelProperty(value = "合格分数") - private String passScore; + private BigDecimal passScore; //考试时长(分钟) @ApiModelProperty(value = "考试时长(分钟)") - private String examTime; + private Integer examTime; } diff --git a/web-infrastructure/src/main/java/com/zcloud/edu/persistence/mapper/QuestionMapper.java b/web-infrastructure/src/main/java/com/zcloud/edu/persistence/mapper/QuestionMapper.java index 9dd9e3f..273f44e 100644 --- a/web-infrastructure/src/main/java/com/zcloud/edu/persistence/mapper/QuestionMapper.java +++ b/web-infrastructure/src/main/java/com/zcloud/edu/persistence/mapper/QuestionMapper.java @@ -4,6 +4,8 @@ import com.zcloud.edu.persistence.dataobject.QuestionDO; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import org.apache.ibatis.annotations.Mapper; +import java.util.List; + /** * web-infrastructure * @@ -12,6 +14,6 @@ import org.apache.ibatis.annotations.Mapper; */ @Mapper public interface QuestionMapper extends BaseMapper { - + List listByClassId(String classId); } diff --git a/web-infrastructure/src/main/java/com/zcloud/edu/persistence/mapper/po/study/ClassQuestionPO.java b/web-infrastructure/src/main/java/com/zcloud/edu/persistence/mapper/po/study/ClassQuestionPO.java new file mode 100644 index 0000000..b097fe3 --- /dev/null +++ b/web-infrastructure/src/main/java/com/zcloud/edu/persistence/mapper/po/study/ClassQuestionPO.java @@ -0,0 +1,18 @@ +package com.zcloud.edu.persistence.mapper.po.study; + +import com.baomidou.mybatisplus.annotation.TableField; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * @author zhangyue + * @date 2026/1/19 15:38 + */ +@Data +public class ClassQuestionPO { + @ApiModelProperty(value = "题目类型") + private Integer questionType; + @ApiModelProperty(value = "题目数量") + @TableField(exist = false) + private Integer questionCount; +} diff --git a/web-infrastructure/src/main/java/com/zcloud/edu/persistence/mapper/study/ClassCurriculumChapterMapper.java b/web-infrastructure/src/main/java/com/zcloud/edu/persistence/mapper/study/ClassCurriculumChapterMapper.java index 4b1d592..3db9e2c 100644 --- a/web-infrastructure/src/main/java/com/zcloud/edu/persistence/mapper/study/ClassCurriculumChapterMapper.java +++ b/web-infrastructure/src/main/java/com/zcloud/edu/persistence/mapper/study/ClassCurriculumChapterMapper.java @@ -4,6 +4,8 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.zcloud.edu.persistence.dataobject.study.ClassCurriculumChapterDO; import org.apache.ibatis.annotations.Mapper; +import java.util.List; + /** * web-infrastructure * @@ -12,6 +14,7 @@ import org.apache.ibatis.annotations.Mapper; */ @Mapper public interface ClassCurriculumChapterMapper extends BaseMapper { + List listByCurriculumId(String classCurriculumId); } diff --git a/web-infrastructure/src/main/java/com/zcloud/edu/persistence/mapper/study/ClassCurriculumMapper.java b/web-infrastructure/src/main/java/com/zcloud/edu/persistence/mapper/study/ClassCurriculumMapper.java index bb1f169..9c63494 100644 --- a/web-infrastructure/src/main/java/com/zcloud/edu/persistence/mapper/study/ClassCurriculumMapper.java +++ b/web-infrastructure/src/main/java/com/zcloud/edu/persistence/mapper/study/ClassCurriculumMapper.java @@ -4,6 +4,8 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.zcloud.edu.persistence.dataobject.study.ClassCurriculumDO; import org.apache.ibatis.annotations.Mapper; +import java.util.List; + /** * web-infrastructure * @@ -12,6 +14,7 @@ import org.apache.ibatis.annotations.Mapper; */ @Mapper public interface ClassCurriculumMapper extends BaseMapper { + ClassCurriculumDO getInfoById(long id); } diff --git a/web-infrastructure/src/main/java/com/zcloud/edu/persistence/mapper/study/ClassExamPaperMapper.java b/web-infrastructure/src/main/java/com/zcloud/edu/persistence/mapper/study/ClassExamPaperMapper.java index 3ab03ef..5d57d58 100644 --- a/web-infrastructure/src/main/java/com/zcloud/edu/persistence/mapper/study/ClassExamPaperMapper.java +++ b/web-infrastructure/src/main/java/com/zcloud/edu/persistence/mapper/study/ClassExamPaperMapper.java @@ -2,6 +2,7 @@ package com.zcloud.edu.persistence.mapper.study; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.zcloud.edu.persistence.dataobject.study.ClassExamPaperDO; +import com.zcloud.edu.persistence.mapper.po.study.ClassQuestionPO; import org.apache.ibatis.annotations.Mapper; /** diff --git a/web-infrastructure/src/main/java/com/zcloud/edu/persistence/mapper/study/ClassMapper.java b/web-infrastructure/src/main/java/com/zcloud/edu/persistence/mapper/study/ClassMapper.java index 3f995ea..57adb1f 100644 --- a/web-infrastructure/src/main/java/com/zcloud/edu/persistence/mapper/study/ClassMapper.java +++ b/web-infrastructure/src/main/java/com/zcloud/edu/persistence/mapper/study/ClassMapper.java @@ -2,7 +2,11 @@ package com.zcloud.edu.persistence.mapper.study; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.zcloud.edu.persistence.dataobject.study.ClassDO; +import com.zcloud.edu.persistence.mapper.po.study.ClassQuestionPO; import org.apache.ibatis.annotations.Mapper; +import oshi.jna.platform.mac.SystemB; + +import java.util.List; /** * web-infrastructure @@ -12,6 +16,6 @@ import org.apache.ibatis.annotations.Mapper; */ @Mapper public interface ClassMapper extends BaseMapper { - + List countQuestionByClassId(String classId); } diff --git a/web-infrastructure/src/main/java/com/zcloud/edu/persistence/repository/impl/resource/QuestionRepositoryImpl.java b/web-infrastructure/src/main/java/com/zcloud/edu/persistence/repository/impl/resource/QuestionRepositoryImpl.java index be905bc..2d24d70 100644 --- a/web-infrastructure/src/main/java/com/zcloud/edu/persistence/repository/impl/resource/QuestionRepositoryImpl.java +++ b/web-infrastructure/src/main/java/com/zcloud/edu/persistence/repository/impl/resource/QuestionRepositoryImpl.java @@ -103,5 +103,10 @@ public class QuestionRepositoryImpl extends BaseRepositoryImpl listByClassId(String classId) { + return questionMapper.listByClassId(classId); + } } diff --git a/web-infrastructure/src/main/java/com/zcloud/edu/persistence/repository/impl/study/ClassCurriculumChapterRepositoryImpl.java b/web-infrastructure/src/main/java/com/zcloud/edu/persistence/repository/impl/study/ClassCurriculumChapterRepositoryImpl.java index 82ad2de..0647132 100644 --- a/web-infrastructure/src/main/java/com/zcloud/edu/persistence/repository/impl/study/ClassCurriculumChapterRepositoryImpl.java +++ b/web-infrastructure/src/main/java/com/zcloud/edu/persistence/repository/impl/study/ClassCurriculumChapterRepositoryImpl.java @@ -2,10 +2,12 @@ package com.zcloud.edu.persistence.repository.impl.study; import com.alibaba.cola.dto.PageResponse; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.jjb.saas.framework.repository.common.PageHelper; import com.jjb.saas.framework.repository.repo.impl.BaseRepositoryImpl; import com.zcloud.edu.persistence.dataobject.study.ClassCurriculumChapterDO; +import com.zcloud.edu.persistence.dataobject.study.ClassCurriculumDO; import com.zcloud.edu.persistence.mapper.study.ClassCurriculumChapterMapper; import com.zcloud.edu.persistence.repository.study.ClassCurriculumChapterRepository; import com.zcloud.gbscommon.utils.PageQueryHelper; @@ -13,6 +15,7 @@ import com.zcloud.gbscommon.utils.Query; import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Service; +import java.util.List; import java.util.Map; /** @@ -35,5 +38,19 @@ public class ClassCurriculumChapterRepositoryImpl extends BaseRepositoryImpl result = classCurriculumChapterMapper.selectPage(iPage, queryWrapper); return PageHelper.pageToResponse(result, result.getRecords()); } + + @Override + public List listByCurriculumId(String classCurriculumId) { + return classCurriculumChapterMapper.listByCurriculumId(classCurriculumId); + } + + @Override + public Integer deleteByCurriculumId(String classCurriculumId) { + UpdateWrapper updateWrapper = new UpdateWrapper<>(); + updateWrapper.eq("class_curriculum_id", classCurriculumId); + updateWrapper.eq("delete_enum", "FALSE"); + updateWrapper.set("delete_enum", "TRUE"); + return classCurriculumChapterMapper.delete(updateWrapper); + } } diff --git a/web-infrastructure/src/main/java/com/zcloud/edu/persistence/repository/impl/study/ClassCurriculumRepositoryImpl.java b/web-infrastructure/src/main/java/com/zcloud/edu/persistence/repository/impl/study/ClassCurriculumRepositoryImpl.java index 871b642..73ea862 100644 --- a/web-infrastructure/src/main/java/com/zcloud/edu/persistence/repository/impl/study/ClassCurriculumRepositoryImpl.java +++ b/web-infrastructure/src/main/java/com/zcloud/edu/persistence/repository/impl/study/ClassCurriculumRepositoryImpl.java @@ -50,5 +50,11 @@ public class ClassCurriculumRepositoryImpl extends BaseRepositoryImpl countQuestionByClassId(String classId) { + return classMapper.countQuestionByClassId(classId); + } } diff --git a/web-infrastructure/src/main/java/com/zcloud/edu/persistence/repository/resource/QuestionRepository.java b/web-infrastructure/src/main/java/com/zcloud/edu/persistence/repository/resource/QuestionRepository.java index fb5758a..cb0d7f8 100644 --- a/web-infrastructure/src/main/java/com/zcloud/edu/persistence/repository/resource/QuestionRepository.java +++ b/web-infrastructure/src/main/java/com/zcloud/edu/persistence/repository/resource/QuestionRepository.java @@ -35,5 +35,7 @@ public interface QuestionRepository extends BaseRepository { void removeByExampaperIdList(List examPaperIdList); Long getCountByVideoCoursewareList(List videoCoursewareIds); + + List listByClassId(String classId); } diff --git a/web-infrastructure/src/main/java/com/zcloud/edu/persistence/repository/study/ClassCurriculumChapterRepository.java b/web-infrastructure/src/main/java/com/zcloud/edu/persistence/repository/study/ClassCurriculumChapterRepository.java index 7a64685..bd77ce2 100644 --- a/web-infrastructure/src/main/java/com/zcloud/edu/persistence/repository/study/ClassCurriculumChapterRepository.java +++ b/web-infrastructure/src/main/java/com/zcloud/edu/persistence/repository/study/ClassCurriculumChapterRepository.java @@ -4,6 +4,7 @@ import com.alibaba.cola.dto.PageResponse; import com.jjb.saas.framework.repository.repo.BaseRepository; import com.zcloud.edu.persistence.dataobject.study.ClassCurriculumChapterDO; +import java.util.List; import java.util.Map; /** @@ -14,5 +15,9 @@ import java.util.Map; */ public interface ClassCurriculumChapterRepository extends BaseRepository { PageResponse listPage(Map params); + + List listByCurriculumId(String classCurriculumId); + + Integer deleteByCurriculumId(String classCurriculumId); } diff --git a/web-infrastructure/src/main/java/com/zcloud/edu/persistence/repository/study/ClassCurriculumRepository.java b/web-infrastructure/src/main/java/com/zcloud/edu/persistence/repository/study/ClassCurriculumRepository.java index 460e57b..b8e80c9 100644 --- a/web-infrastructure/src/main/java/com/zcloud/edu/persistence/repository/study/ClassCurriculumRepository.java +++ b/web-infrastructure/src/main/java/com/zcloud/edu/persistence/repository/study/ClassCurriculumRepository.java @@ -18,5 +18,7 @@ public interface ClassCurriculumRepository extends BaseRepository { PageResponse listPage(Map params); ClassDO getByClassId(String classId); + + List countQuestionByClassId(String classId); } diff --git a/web-infrastructure/src/main/resources/mapper/QuestionMapper.xml b/web-infrastructure/src/main/resources/mapper/QuestionMapper.xml index 8d03d7c..cff66e2 100644 --- a/web-infrastructure/src/main/resources/mapper/QuestionMapper.xml +++ b/web-infrastructure/src/main/resources/mapper/QuestionMapper.xml @@ -3,5 +3,16 @@ "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> + diff --git a/web-infrastructure/src/main/resources/mapper/study/ClassCurriculumChapterMapper.xml b/web-infrastructure/src/main/resources/mapper/study/ClassCurriculumChapterMapper.xml index 6291851..95b39ef 100644 --- a/web-infrastructure/src/main/resources/mapper/study/ClassCurriculumChapterMapper.xml +++ b/web-infrastructure/src/main/resources/mapper/study/ClassCurriculumChapterMapper.xml @@ -3,6 +3,31 @@ "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> - + diff --git a/web-infrastructure/src/main/resources/mapper/study/ClassCurriculumMapper.xml b/web-infrastructure/src/main/resources/mapper/study/ClassCurriculumMapper.xml index 533e107..10a819f 100644 --- a/web-infrastructure/src/main/resources/mapper/study/ClassCurriculumMapper.xml +++ b/web-infrastructure/src/main/resources/mapper/study/ClassCurriculumMapper.xml @@ -3,6 +3,28 @@ "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> + diff --git a/web-infrastructure/src/main/resources/mapper/study/ClassMapper.xml b/web-infrastructure/src/main/resources/mapper/study/ClassMapper.xml index 21ea9b3..1bb3f4b 100644 --- a/web-infrastructure/src/main/resources/mapper/study/ClassMapper.xml +++ b/web-infrastructure/src/main/resources/mapper/study/ClassMapper.xml @@ -3,6 +3,19 @@ "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> +