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 b38e221..8530411 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 @@ -9,10 +9,7 @@ import com.jjb.saas.framework.auth.model.SSOUser; import com.jjb.saas.framework.auth.utils.AuthContext; import com.zcloud.edu.api.study.ClassCurriculumServiceI; import com.zcloud.edu.dto.clientobject.study.ClassCurriculumCO; -import com.zcloud.edu.dto.study.ClassCurriculumAddCmd; -import com.zcloud.edu.dto.study.ClassCurriculumBatchAddCmd; -import com.zcloud.edu.dto.study.ClassCurriculumPageQry; -import com.zcloud.edu.dto.study.ClassCurriculumUpdateCmd; +import com.zcloud.edu.dto.study.*; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import lombok.AllArgsConstructor; @@ -56,8 +53,8 @@ public class ClassCurriculumController { @ApiOperation("所有数据") @GetMapping("/listAll") - public MultiResponse listAll() { - return MultiResponse.of(new ArrayList()); + public MultiResponse listAll(@RequestBody ClassCurriculumQry qry) { + return classCurriculumService.listAll(qry); } @ApiOperation("详情") 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 7a2d69c..7179a8c 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,5 +1,6 @@ package com.zcloud.edu.command.query.study; +import com.alibaba.cola.dto.MultiResponse; import com.alibaba.cola.dto.PageResponse; import com.alibaba.cola.dto.SingleResponse; import com.zcloud.edu.command.convertor.study.ClassCurriculumChapterCoConvertor; @@ -8,6 +9,7 @@ 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.dto.study.ClassCurriculumQry; import com.zcloud.edu.persistence.dataobject.study.ClassCurriculumChapterDO; import com.zcloud.edu.persistence.dataobject.study.ClassCurriculumDO; import com.zcloud.edu.persistence.repository.study.ClassCurriculumChapterRepository; @@ -21,6 +23,7 @@ import org.springframework.util.ObjectUtils; import java.util.List; import java.util.Map; +import java.util.stream.Collectors; /** @@ -62,10 +65,26 @@ public class ClassCurriculumQueryExe { 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", "childCurriculumChapterCOList", "0"); + Tools.buildEntityTree(classCurriculumChapterCOList, "classCurriculumChapterId", "parentId", "childCurriculumChapterCOList", "0"); classCurriculumCO.setCurriculumChapterCOList(classCurriculumChapterCOList); classCurriculumCO.setVideoCount(videoCount); return SingleResponse.of(classCurriculumCO); } + + public MultiResponse executeListAll(ClassCurriculumQry qry) { + Map params = PageQueryHelper.toHashMap(qry); + List curList = classCurriculumRepository.listAll(params); + List classCurriculumIds = curList.stream().map(ClassCurriculumDO::getClassCurriculumId).collect(Collectors.toList()); + List chapterList = classCurriculumChapterRepository.listByClassCurriculumIds(classCurriculumIds); + List chapterCoList = classCurriculumChapterCoConvertor.converDOsToCOs(chapterList); + Tools.buildEntityTree(chapterCoList, "classCurriculumChapterId", "parentId", "childCurriculumChapterCOList", "0"); + + Map> chapterMap = chapterCoList.stream().collect(Collectors.groupingBy(ClassCurriculumChapterCO::getClassCurriculumId)); + List curriculumList = classCurriculumCoConvertor.converDOsToCOs(curList); + curriculumList.stream().forEach(bean -> { + bean.setCurriculumChapterCOList(chapterMap.get(bean.getClassCurriculumId())); + }); + return MultiResponse.of(curriculumList); + } } 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 c6d7b69..394dbd1 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,5 +1,6 @@ package com.zcloud.edu.service.study; +import com.alibaba.cola.dto.MultiResponse; import com.alibaba.cola.dto.PageResponse; import com.alibaba.cola.dto.Response; import com.alibaba.cola.dto.SingleResponse; @@ -9,10 +10,7 @@ import com.zcloud.edu.command.study.ClassCurriculumAddExe; import com.zcloud.edu.command.study.ClassCurriculumRemoveExe; import com.zcloud.edu.command.study.ClassCurriculumUpdateExe; import com.zcloud.edu.dto.clientobject.study.ClassCurriculumCO; -import com.zcloud.edu.dto.study.ClassCurriculumAddCmd; -import com.zcloud.edu.dto.study.ClassCurriculumBatchAddCmd; -import com.zcloud.edu.dto.study.ClassCurriculumPageQry; -import com.zcloud.edu.dto.study.ClassCurriculumUpdateCmd; +import com.zcloud.edu.dto.study.*; import lombok.AllArgsConstructor; import org.springframework.stereotype.Service; @@ -70,5 +68,10 @@ public class ClassCurriculumServiceImpl implements ClassCurriculumServiceI { classCurriculumAddExe.executeBatchAdd(cmd); return Response.buildSuccess(); } + + @Override + public MultiResponse listAll(ClassCurriculumQry qry) { + return classCurriculumQueryExe.executeListAll(qry); + } } 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 647271a..d610d36 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,14 +1,13 @@ package com.zcloud.edu.api.study; +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.zcloud.edu.dto.clientobject.study.ClassCurriculumCO; -import com.zcloud.edu.dto.study.ClassCurriculumAddCmd; -import com.zcloud.edu.dto.study.ClassCurriculumBatchAddCmd; -import com.zcloud.edu.dto.study.ClassCurriculumPageQry; -import com.zcloud.edu.dto.study.ClassCurriculumUpdateCmd; +import com.zcloud.edu.dto.study.*; +import java.nio.channels.MulticastChannel; import java.util.List; /** @@ -31,5 +30,9 @@ public interface ClassCurriculumServiceI { SingleResponse getInfoById(Long id); Response batchAdd(ClassCurriculumBatchAddCmd cmd); + + MultiResponse listAll(ClassCurriculumQry qry); + + } 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 e429af6..bd22e2f 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 @@ -44,6 +44,9 @@ public class ClassCurriculumCO extends ClientObject { @ApiModelProperty(value = "章节目录") private List curriculumChapterCOList; + //目录级别 1-一级目录 2-二级目录 + @ApiModelProperty(value = "目录级别 1-一级目录 2-二级目录") + private Integer catalogueLevel; @ApiModelProperty(value = "所属单位id") @TableField(exist = false) 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 dd98d31..d2ecd9a 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 @@ -43,6 +43,11 @@ public class ClassCurriculumAddCmd extends Command { @NotNull(message = "课程总时长不能为空") private double videoTotalTime; + //目录级别 1-一级目录 2-二级目录 + @ApiModelProperty(value = "目录级别 1-一级目录 2-二级目录") + @NotNull(message = "课程总时长不能为空") + private Integer catalogueLevel; + @ApiModelProperty(value = "课程目录", name = "curriculumChapterAddCmdList", required = true) @NotNull(message = "课程目录") diff --git a/web-client/src/main/java/com/zcloud/edu/dto/study/ClassCurriculumQry.java b/web-client/src/main/java/com/zcloud/edu/dto/study/ClassCurriculumQry.java new file mode 100644 index 0000000..a7c7cbd --- /dev/null +++ b/web-client/src/main/java/com/zcloud/edu/dto/study/ClassCurriculumQry.java @@ -0,0 +1,29 @@ +package com.zcloud.edu.dto.study; + +import com.alibaba.cola.dto.PageQuery; +import lombok.Data; + + +/** + * web-client + * + * @Author zhangyue + * @Date 2026-01-16 09:54:33 + */ +@Data +public class ClassCurriculumQry { + + /** + * 查询条件操作前缀,支持以下几种数据库查询操作: + * - `like`: 模糊匹配查询,对应SQL的LIKE操作符 + * - `eq`: 等值查询,对应SQL的=操作符 + * - `gt`: 大于比较查询 + * - `lt`: 小于比较查询 + * - `ge`: 大于等于比较查询 + * - `le`: 小于等于比较查询 + * - `ne`: 不等比较查询,对应SQL的!=操作符 + */ + private String likeClassCurriculumId; + private String eqClassId; +} + 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 e97b8e0..79d104d 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 @@ -3,8 +3,10 @@ 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 io.swagger.annotations.ApiModelProperty; import lombok.Data; +import javax.validation.constraints.NotNull; import java.math.BigDecimal; import java.time.LocalDateTime; import java.util.ArrayList; @@ -42,7 +44,7 @@ public class ClassCurriculumE extends BaseE { private List curriculumChapterAddCmdList; - + private Integer catalogueLevel; //租户id private Long tenantId; //单位id 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 70d8b59..3ecafbb 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 @@ -9,6 +9,7 @@ import lombok.Data; import lombok.EqualsAndHashCode; import lombok.NoArgsConstructor; +import javax.validation.constraints.NotNull; import java.math.BigDecimal; import java.util.List; @@ -39,6 +40,9 @@ public class ClassCurriculumDO extends BaseDO { @ApiModelProperty(value = "课程总时长") private BigDecimal videoTotalTime; + //目录级别 1-一级目录 2-二级目录 + @ApiModelProperty(value = "目录级别 1-一级目录 2-二级目录") + private Integer catalogueLevel; @ApiModelProperty(value = "所属单位id") @TableField(exist = false) private long corpinfoId; @@ -63,5 +67,6 @@ public class ClassCurriculumDO extends BaseDO { @TableField(exist = false) private String coverPath; + } 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 f96cd5f..09e410f 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 @@ -16,5 +16,7 @@ import java.util.List; public interface ClassCurriculumChapterMapper extends BaseMapper { List listByClassCurriculumId(String classCurriculumId); + List listByClassCurriculumIds(List classCurriculumIds); + } 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 ede58f7..258c6ec 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 @@ -61,5 +61,14 @@ public class ClassCurriculumChapterRepositoryImpl extends BaseRepositoryImpl listByClassCurriculumIds(List classCurriculumIds) { + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.in("class_curriculum_id", classCurriculumIds); + queryWrapper.eq("delete_enum", "FALSE"); + return classCurriculumChapterMapper.selectList(queryWrapper); + + } } 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 1611d4d..c3bef3c 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 @@ -14,6 +14,7 @@ import com.zcloud.gbscommon.utils.Query; import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Service; +import java.util.List; import java.util.Map; /** @@ -66,5 +67,14 @@ public class ClassCurriculumRepositoryImpl extends BaseRepositoryImpl listAll(Map params) { + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper = PageQueryHelper.createPageQueryWrapper(queryWrapper, params); + queryWrapper.orderByDesc("create_time"); + queryWrapper.eq("delete_enum", "FALSE"); + return classCurriculumMapper.selectList(queryWrapper); + } } 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 4c30088..530676b 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 @@ -21,5 +21,7 @@ public interface ClassCurriculumChapterRepository extends BaseRepository listByClassCurriculumIds(List classCurriculumIds); } 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 81fda9d..797e54c 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 @@ -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.ClassCurriculumDO; +import java.util.List; import java.util.Map; /** @@ -22,5 +23,7 @@ public interface ClassCurriculumRepository extends BaseRepository listAll(Map params); } diff --git a/web-infrastructure/src/main/resources/mapper/study/ClassCurriculumChapterMapper.xml b/web-infrastructure/src/main/resources/mapper/study/ClassCurriculumChapterMapper.xml index 91066d2..a3662e2 100644 --- a/web-infrastructure/src/main/resources/mapper/study/ClassCurriculumChapterMapper.xml +++ b/web-infrastructure/src/main/resources/mapper/study/ClassCurriculumChapterMapper.xml @@ -29,5 +29,36 @@ c.parent_id, c.sort + +