diff --git a/web-adapter/src/main/java/com/zcloud/edu/web/resource/CurriculumController.java b/web-adapter/src/main/java/com/zcloud/edu/web/resource/CurriculumController.java index be64a24..fdb48b0 100644 --- a/web-adapter/src/main/java/com/zcloud/edu/web/resource/CurriculumController.java +++ b/web-adapter/src/main/java/com/zcloud/edu/web/resource/CurriculumController.java @@ -13,6 +13,7 @@ import com.zcloud.edu.dto.resource.CurriculumUpdateStateCmd; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import lombok.AllArgsConstructor; +import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; @@ -37,6 +38,7 @@ public class CurriculumController { @ApiOperation("分页") @PostMapping("/list") + @PreAuthorize("@pms.hasAnyPermission('gfd-kcgl','qyd-kcgl')") public PageResponse page(@RequestBody CurriculumPageQry qry) { return curriculumService.listPage(qry); } diff --git a/web-adapter/src/main/java/com/zcloud/edu/web/resource/ExamPaperController.java b/web-adapter/src/main/java/com/zcloud/edu/web/resource/ExamPaperController.java index 118fea3..2e2aecc 100644 --- a/web-adapter/src/main/java/com/zcloud/edu/web/resource/ExamPaperController.java +++ b/web-adapter/src/main/java/com/zcloud/edu/web/resource/ExamPaperController.java @@ -10,6 +10,7 @@ import com.zcloud.edu.dto.clientobject.resource.ExamPaperCO; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import lombok.AllArgsConstructor; +import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; import org.springframework.web.multipart.MultipartFile; @@ -40,6 +41,7 @@ public class ExamPaperController { @ApiOperation("试卷分页") @PostMapping("/list") + @PreAuthorize("@pms.hasAnyPermission('gfd-sjgl','qyd-sjgl')") public PageResponse page(@RequestBody ExamPaperPageQry qry) { return examPaperService.listPage(qry); } diff --git a/web-adapter/src/main/java/com/zcloud/edu/web/resource/TeacherController.java b/web-adapter/src/main/java/com/zcloud/edu/web/resource/TeacherController.java index 8a4751c..156212c 100644 --- a/web-adapter/src/main/java/com/zcloud/edu/web/resource/TeacherController.java +++ b/web-adapter/src/main/java/com/zcloud/edu/web/resource/TeacherController.java @@ -11,6 +11,7 @@ import com.zcloud.edu.dto.resource.*; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import lombok.AllArgsConstructor; +import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; @@ -49,6 +50,7 @@ public class TeacherController { @ApiOperation("分页") @PostMapping("/list") + @PreAuthorize("@pms.hasAnyPermission('gfd-jsgl')") public PageResponse page(@RequestBody TeacherPageQry qry) { return teacherService.listPage(qry); } diff --git a/web-adapter/src/main/java/com/zcloud/edu/web/resource/VideoCoursewareController.java b/web-adapter/src/main/java/com/zcloud/edu/web/resource/VideoCoursewareController.java index 6e26f6b..d7d8a67 100644 --- a/web-adapter/src/main/java/com/zcloud/edu/web/resource/VideoCoursewareController.java +++ b/web-adapter/src/main/java/com/zcloud/edu/web/resource/VideoCoursewareController.java @@ -11,6 +11,7 @@ import com.zcloud.edu.dto.resource.*; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import lombok.AllArgsConstructor; +import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; @@ -49,6 +50,7 @@ public class VideoCoursewareController { @ApiOperation("分页") @PostMapping("/list") + @PreAuthorize("@pms.hasAnyPermission('gfd-kjgl','qyd-kjgl')") public PageResponse page(@RequestBody VideoCoursewarePageQry qry) { return videoCoursewareService.listPage(qry); } diff --git a/web-client/src/main/java/com/zcloud/edu/dto/resource/TeacherPageQry.java b/web-client/src/main/java/com/zcloud/edu/dto/resource/TeacherPageQry.java index 3d2c3b9..ecea07a 100644 --- a/web-client/src/main/java/com/zcloud/edu/dto/resource/TeacherPageQry.java +++ b/web-client/src/main/java/com/zcloud/edu/dto/resource/TeacherPageQry.java @@ -30,6 +30,6 @@ public class TeacherPageQry extends PageQuery { @ApiModelProperty(name = "eqCorpinfoId", value = "企业ID") private Long corpinfoId; - + private String menuPath; } diff --git a/web-client/src/main/java/com/zcloud/edu/dto/resource/VideoCoursewarePageQry.java b/web-client/src/main/java/com/zcloud/edu/dto/resource/VideoCoursewarePageQry.java index 5242999..8c61ca6 100644 --- a/web-client/src/main/java/com/zcloud/edu/dto/resource/VideoCoursewarePageQry.java +++ b/web-client/src/main/java/com/zcloud/edu/dto/resource/VideoCoursewarePageQry.java @@ -40,6 +40,8 @@ public class VideoCoursewarePageQry extends PageQuery { @ApiModelProperty(name = "questionNum", value = "习题数量") private String questionNum; + private String menuPath; + } diff --git a/web-domain/src/main/java/com/zcloud/edu/domain/enums/MenuEnum.java b/web-domain/src/main/java/com/zcloud/edu/domain/enums/MenuEnum.java new file mode 100644 index 0000000..1c41820 --- /dev/null +++ b/web-domain/src/main/java/com/zcloud/edu/domain/enums/MenuEnum.java @@ -0,0 +1,80 @@ +package com.zcloud.edu.domain.enums; + +import lombok.Getter; + +import java.util.Arrays; +import java.util.Map; +import java.util.function.Function; +import java.util.stream.Collectors; + +/** + * 菜单枚举 + */ +@Getter +public enum MenuEnum { + //股份端 + //教师管理 + GFDJSGL("/edu/container/supervision/resourceManage/teacherManage/list", "gfd-jsgl"), + //课件管理 + GFDKJGL("/edu/container/supervision/resourceManage/courseware/list", "gfd-kjgl"), + //课程管理 + GFDKCGL("/edu/container/supervision/resourceManage/courseManage/list", "gfd-kcgl"), + //试卷管理 + GFDSJGL("/edu/container/supervision/resourceManage/testPaperManage/list", "gfd-sjgl"), + + + //企业端 + //课件管理 + QYDKJGL("/edu/container/branchCompany/resourceManage/courseware/list", "qyd-kjgl"), + //课程管理 + QYDKCGL("/edu/container/branchCompany/resourceManage/courseManage/list", "qyd-kcgl"), + //试卷管理 + QYDSJGL("/edu/container/branchCompany/resourceManage/testPaperManage/list", "qyd-sjgl"), + + ; + ; + + private final String path; + private final String menuKey; + + private static final Map PATH_MAP = + Arrays.stream(values()) + .collect(Collectors.toMap(MenuEnum::getPath, Function.identity())); + + MenuEnum(String path, String menuKey) { + this.path = path; + this.menuKey = menuKey; + } + + public String getPath() { + return path; + } + + public String getMenuKey() { + return menuKey; + } + + // 通过name获取枚举 + public static MenuEnum getByPath(String path) { + return PATH_MAP.get(path); + } + + // 通过path获取age + public static String getMenuKeyByPath(String path) { + MenuEnum entry = PATH_MAP.get(path); + return entry != null ? entry.getMenuKey() : null; + } + +// 使用示例 + public static void main(String[] args) { + // 获取整个枚举 + MenuEnum entry = MenuEnum.getByPath("张三"); + if (entry != null) { + System.out.println("MenuKey: " + entry.getMenuKey()); // 输出: MenuKey: 25 + } + + // 直接获取值 + String age = MenuEnum.getMenuKeyByPath("李四"); + System.out.println("李四的年龄: " + age); // 输出: 李四的年龄: 30 + } +} diff --git a/web-infrastructure/src/main/java/com/zcloud/edu/persistence/mapper/CurriculumMapper.java b/web-infrastructure/src/main/java/com/zcloud/edu/persistence/mapper/CurriculumMapper.java index 077ce90..327e239 100644 --- a/web-infrastructure/src/main/java/com/zcloud/edu/persistence/mapper/CurriculumMapper.java +++ b/web-infrastructure/src/main/java/com/zcloud/edu/persistence/mapper/CurriculumMapper.java @@ -1,8 +1,9 @@ package com.zcloud.edu.persistence.mapper; -import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.core.metadata.IPage; +import com.jjb.saas.framework.datascope.annotation.DataScope; +import com.jjb.saas.framework.datascope.annotation.DataScopes; import com.zcloud.edu.persistence.dataobject.CurriculumDO; import org.apache.ibatis.annotations.Mapper; @@ -15,9 +16,12 @@ import java.util.Map; * @Date 2026-01-09 13:45:38 */ @Mapper +@DataScopes({ + @DataScope(method = "getListPage", menuPerms = ""), +}) public interface CurriculumMapper extends BaseMapper { - IPage getListPage(IPage iPage, Map params); + IPage getListPage(IPage iPage, Map params, String menuPerms); CurriculumDO getInfoById(Long id); } diff --git a/web-infrastructure/src/main/java/com/zcloud/edu/persistence/mapper/ExamPaperMapper.java b/web-infrastructure/src/main/java/com/zcloud/edu/persistence/mapper/ExamPaperMapper.java index 3d2ef96..7294c7c 100644 --- a/web-infrastructure/src/main/java/com/zcloud/edu/persistence/mapper/ExamPaperMapper.java +++ b/web-infrastructure/src/main/java/com/zcloud/edu/persistence/mapper/ExamPaperMapper.java @@ -2,6 +2,8 @@ package com.zcloud.edu.persistence.mapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.core.metadata.IPage; +import com.jjb.saas.framework.datascope.annotation.DataScope; +import com.jjb.saas.framework.datascope.annotation.DataScopes; import com.zcloud.edu.persistence.dataobject.ExamPaperDO; import org.apache.ibatis.annotations.Mapper; @@ -15,9 +17,12 @@ import java.util.Map; * @Date 2026-01-09 17:04:42 */ @Mapper +@DataScopes({ + @DataScope(method = "listPage", menuPerms = ""), +}) public interface ExamPaperMapper extends BaseMapper { - IPage listPage(IPage iPage, Map params); + IPage listPage(IPage iPage, Map params, String menuPerms); ExamPaperDO getInfoById(Long id); diff --git a/web-infrastructure/src/main/java/com/zcloud/edu/persistence/mapper/TeacherMapper.java b/web-infrastructure/src/main/java/com/zcloud/edu/persistence/mapper/TeacherMapper.java index 3e334d4..94e3a34 100644 --- a/web-infrastructure/src/main/java/com/zcloud/edu/persistence/mapper/TeacherMapper.java +++ b/web-infrastructure/src/main/java/com/zcloud/edu/persistence/mapper/TeacherMapper.java @@ -1,7 +1,8 @@ package com.zcloud.edu.persistence.mapper; -import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; +import com.jjb.saas.framework.datascope.annotation.DataScope; +import com.jjb.saas.framework.datascope.annotation.DataScopes; import com.zcloud.edu.persistence.dataobject.TeacherDO; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import org.apache.ibatis.annotations.Mapper; @@ -17,9 +18,12 @@ import java.util.Map; * @Date 2025-11-26 17:04:44 */ @Mapper +@DataScopes({ + @DataScope(method = "getTeacherPage", menuPerms = ""), +}) public interface TeacherMapper extends BaseMapper { - IPage getTeacherPage(IPage page, Map params); + IPage getTeacherPage(IPage page, Map params, String menuPerms); List getTeacherList(@Param("params")Map params); diff --git a/web-infrastructure/src/main/java/com/zcloud/edu/persistence/mapper/VideoCoursewareMapper.java b/web-infrastructure/src/main/java/com/zcloud/edu/persistence/mapper/VideoCoursewareMapper.java index 8163a27..1cdf070 100644 --- a/web-infrastructure/src/main/java/com/zcloud/edu/persistence/mapper/VideoCoursewareMapper.java +++ b/web-infrastructure/src/main/java/com/zcloud/edu/persistence/mapper/VideoCoursewareMapper.java @@ -1,7 +1,8 @@ package com.zcloud.edu.persistence.mapper; -import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; +import com.jjb.saas.framework.datascope.annotation.DataScope; +import com.jjb.saas.framework.datascope.annotation.DataScopes; import com.zcloud.edu.persistence.dataobject.VideoCoursewareDO; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import org.apache.ibatis.annotations.Mapper; @@ -17,11 +18,14 @@ import java.util.Map; * @Date 2025-11-27 14:05:32 */ @Mapper +@DataScopes({ + @DataScope(method = "getVideoCoursewarePage", menuPerms = ""), +}) public interface VideoCoursewareMapper extends BaseMapper { VideoCoursewareDO getInfoById(@Param("id") Long id); - IPage getVideoCoursewarePage(IPage page,@Param("params")Map params); + IPage getVideoCoursewarePage(IPage page, @Param("params")Map params,@Param("menuPerms")String menuPerms); List getVideoCoursewareList(@Param("params")Map params); diff --git a/web-infrastructure/src/main/java/com/zcloud/edu/persistence/repository/impl/resource/CurriculumRepositoryImpl.java b/web-infrastructure/src/main/java/com/zcloud/edu/persistence/repository/impl/resource/CurriculumRepositoryImpl.java index ad6e54c..28fd3f6 100644 --- a/web-infrastructure/src/main/java/com/zcloud/edu/persistence/repository/impl/resource/CurriculumRepositoryImpl.java +++ b/web-infrastructure/src/main/java/com/zcloud/edu/persistence/repository/impl/resource/CurriculumRepositoryImpl.java @@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; 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.domain.enums.MenuEnum; import com.zcloud.edu.persistence.dataobject.CurriculumDO; import com.zcloud.edu.persistence.mapper.CurriculumMapper; import com.zcloud.edu.persistence.repository.resource.CurriculumRepository; @@ -29,7 +30,11 @@ public class CurriculumRepositoryImpl extends BaseRepositoryImpl listPage(Map params) { IPage iPage = new Query().getPage(params); - IPage result = curriculumMapper.getListPage(iPage, params); + String menuPerms = ""; + if (!org.springframework.util.ObjectUtils.isEmpty(params.get("menuPath"))){ + menuPerms = MenuEnum.getMenuKeyByPath(params.get("menuPath").toString()); + } + IPage result = curriculumMapper.getListPage(iPage, params,menuPerms); return PageHelper.pageToResponse(result, result.getRecords()); } diff --git a/web-infrastructure/src/main/java/com/zcloud/edu/persistence/repository/impl/resource/ExamPaperRepositoryImpl.java b/web-infrastructure/src/main/java/com/zcloud/edu/persistence/repository/impl/resource/ExamPaperRepositoryImpl.java index 53b471c..3871900 100644 --- a/web-infrastructure/src/main/java/com/zcloud/edu/persistence/repository/impl/resource/ExamPaperRepositoryImpl.java +++ b/web-infrastructure/src/main/java/com/zcloud/edu/persistence/repository/impl/resource/ExamPaperRepositoryImpl.java @@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; 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.domain.enums.MenuEnum; import com.zcloud.edu.persistence.dataobject.ExamPaperDO; import com.zcloud.edu.persistence.mapper.ExamPaperMapper; import com.zcloud.edu.persistence.repository.resource.ExamPaperRepository; @@ -30,7 +31,11 @@ public class ExamPaperRepositoryImpl extends BaseRepositoryImpl listPage(Map params) { IPage iPage = new Query().getPage(params); - IPage result = examPaperMapper.listPage(iPage, params); + String menuPerms = ""; + if (!org.springframework.util.ObjectUtils.isEmpty(params.get("menuPath"))){ + menuPerms = MenuEnum.getMenuKeyByPath(params.get("menuPath").toString()); + } + IPage result = examPaperMapper.listPage(iPage, params,menuPerms); return PageHelper.pageToResponse(result, result.getRecords()); } diff --git a/web-infrastructure/src/main/java/com/zcloud/edu/persistence/repository/impl/resource/TeacherRepositoryImpl.java b/web-infrastructure/src/main/java/com/zcloud/edu/persistence/repository/impl/resource/TeacherRepositoryImpl.java index 803ac16..14c0141 100644 --- a/web-infrastructure/src/main/java/com/zcloud/edu/persistence/repository/impl/resource/TeacherRepositoryImpl.java +++ b/web-infrastructure/src/main/java/com/zcloud/edu/persistence/repository/impl/resource/TeacherRepositoryImpl.java @@ -1,6 +1,7 @@ package com.zcloud.edu.persistence.repository.impl.resource; import com.jjb.saas.framework.repository.common.PageHelper; +import com.zcloud.edu.domain.enums.MenuEnum; import com.zcloud.edu.persistence.dataobject.TeacherDO; import com.zcloud.edu.persistence.mapper.TeacherMapper; import com.zcloud.edu.persistence.repository.resource.TeacherRepository; @@ -30,7 +31,11 @@ public class TeacherRepositoryImpl extends BaseRepositoryImpl listPage(Map params) { IPage iPage = new Query().getPage(params); - IPage result = teacherMapper.getTeacherPage(iPage, params); + String menuPerms = ""; + if (!org.springframework.util.ObjectUtils.isEmpty(params.get("menuPath"))){ + menuPerms = MenuEnum.getMenuKeyByPath(params.get("menuPath").toString()); + } + IPage result = teacherMapper.getTeacherPage(iPage, params,menuPerms); return PageHelper.pageToResponse(result, result.getRecords()); } diff --git a/web-infrastructure/src/main/java/com/zcloud/edu/persistence/repository/impl/resource/VideoCoursewareRepositoryImpl.java b/web-infrastructure/src/main/java/com/zcloud/edu/persistence/repository/impl/resource/VideoCoursewareRepositoryImpl.java index b5f5716..7550b20 100644 --- a/web-infrastructure/src/main/java/com/zcloud/edu/persistence/repository/impl/resource/VideoCoursewareRepositoryImpl.java +++ b/web-infrastructure/src/main/java/com/zcloud/edu/persistence/repository/impl/resource/VideoCoursewareRepositoryImpl.java @@ -1,6 +1,7 @@ package com.zcloud.edu.persistence.repository.impl.resource; import com.jjb.saas.framework.repository.common.PageHelper; +import com.zcloud.edu.domain.enums.MenuEnum; import com.zcloud.edu.persistence.dataobject.VideoCoursewareDO; import com.zcloud.edu.persistence.mapper.VideoCoursewareMapper; import com.zcloud.edu.persistence.repository.resource.VideoCoursewareRepository; @@ -31,7 +32,11 @@ public class VideoCoursewareRepositoryImpl extends BaseRepositoryImpl listPage(Map params) { IPage iPage = new Query().getPage(params); - IPage result = videoCoursewareMapper.getVideoCoursewarePage(iPage, params); + String menuPerms = ""; + if (!org.springframework.util.ObjectUtils.isEmpty(params.get("menuPath"))){ + menuPerms = MenuEnum.getMenuKeyByPath(params.get("menuPath").toString()); + } + IPage result = videoCoursewareMapper.getVideoCoursewarePage(iPage, params,menuPerms); return PageHelper.pageToResponse(result, result.getRecords()); }