教育资源权限

dev
zhaokai 2026-02-24 14:47:07 +08:00
parent 675485fa8e
commit 38cb6ff576
15 changed files with 139 additions and 12 deletions

View File

@ -13,6 +13,7 @@ import com.zcloud.edu.dto.resource.CurriculumUpdateStateCmd;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.validation.annotation.Validated; import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
@ -37,6 +38,7 @@ public class CurriculumController {
@ApiOperation("分页") @ApiOperation("分页")
@PostMapping("/list") @PostMapping("/list")
@PreAuthorize("@pms.hasAnyPermission('gfd-kcgl','qyd-kcgl')")
public PageResponse<CurriculumCO> page(@RequestBody CurriculumPageQry qry) { public PageResponse<CurriculumCO> page(@RequestBody CurriculumPageQry qry) {
return curriculumService.listPage(qry); return curriculumService.listPage(qry);
} }

View File

@ -10,6 +10,7 @@ import com.zcloud.edu.dto.clientobject.resource.ExamPaperCO;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.validation.annotation.Validated; import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile; import org.springframework.web.multipart.MultipartFile;
@ -40,6 +41,7 @@ public class ExamPaperController {
@ApiOperation("试卷分页") @ApiOperation("试卷分页")
@PostMapping("/list") @PostMapping("/list")
@PreAuthorize("@pms.hasAnyPermission('gfd-sjgl','qyd-sjgl')")
public PageResponse<ExamPaperCO> page(@RequestBody ExamPaperPageQry qry) { public PageResponse<ExamPaperCO> page(@RequestBody ExamPaperPageQry qry) {
return examPaperService.listPage(qry); return examPaperService.listPage(qry);
} }

View File

@ -11,6 +11,7 @@ import com.zcloud.edu.dto.resource.*;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.validation.annotation.Validated; import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
@ -49,6 +50,7 @@ public class TeacherController {
@ApiOperation("分页") @ApiOperation("分页")
@PostMapping("/list") @PostMapping("/list")
@PreAuthorize("@pms.hasAnyPermission('gfd-jsgl')")
public PageResponse<TeacherCO> page(@RequestBody TeacherPageQry qry) { public PageResponse<TeacherCO> page(@RequestBody TeacherPageQry qry) {
return teacherService.listPage(qry); return teacherService.listPage(qry);
} }

View File

@ -11,6 +11,7 @@ import com.zcloud.edu.dto.resource.*;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.validation.annotation.Validated; import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
@ -49,6 +50,7 @@ public class VideoCoursewareController {
@ApiOperation("分页") @ApiOperation("分页")
@PostMapping("/list") @PostMapping("/list")
@PreAuthorize("@pms.hasAnyPermission('gfd-kjgl','qyd-kjgl')")
public PageResponse<VideoCoursewareCO> page(@RequestBody VideoCoursewarePageQry qry) { public PageResponse<VideoCoursewareCO> page(@RequestBody VideoCoursewarePageQry qry) {
return videoCoursewareService.listPage(qry); return videoCoursewareService.listPage(qry);
} }

View File

@ -30,6 +30,6 @@ public class TeacherPageQry extends PageQuery {
@ApiModelProperty(name = "eqCorpinfoId", value = "企业ID") @ApiModelProperty(name = "eqCorpinfoId", value = "企业ID")
private Long corpinfoId; private Long corpinfoId;
private String menuPath;
} }

View File

@ -40,6 +40,8 @@ public class VideoCoursewarePageQry extends PageQuery {
@ApiModelProperty(name = "questionNum", value = "习题数量") @ApiModelProperty(name = "questionNum", value = "习题数量")
private String questionNum; private String questionNum;
private String menuPath;
} }

View File

@ -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<String, MenuEnum> 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
}
}

View File

@ -1,8 +1,9 @@
package com.zcloud.edu.persistence.mapper; 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.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage; 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 com.zcloud.edu.persistence.dataobject.CurriculumDO;
import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Mapper;
@ -15,9 +16,12 @@ import java.util.Map;
* @Date 2026-01-09 13:45:38 * @Date 2026-01-09 13:45:38
*/ */
@Mapper @Mapper
@DataScopes({
@DataScope(method = "getListPage", menuPerms = ""),
})
public interface CurriculumMapper extends BaseMapper<CurriculumDO> { public interface CurriculumMapper extends BaseMapper<CurriculumDO> {
IPage<CurriculumDO> getListPage(IPage<CurriculumDO> iPage, Map<String, Object> params); IPage<CurriculumDO> getListPage(IPage<CurriculumDO> iPage, Map<String, Object> params, String menuPerms);
CurriculumDO getInfoById(Long id); CurriculumDO getInfoById(Long id);
} }

View File

@ -2,6 +2,8 @@ package com.zcloud.edu.persistence.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage; 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 com.zcloud.edu.persistence.dataobject.ExamPaperDO;
import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Mapper;
@ -15,9 +17,12 @@ import java.util.Map;
* @Date 2026-01-09 17:04:42 * @Date 2026-01-09 17:04:42
*/ */
@Mapper @Mapper
@DataScopes({
@DataScope(method = "listPage", menuPerms = ""),
})
public interface ExamPaperMapper extends BaseMapper<ExamPaperDO> { public interface ExamPaperMapper extends BaseMapper<ExamPaperDO> {
IPage<ExamPaperDO> listPage(IPage<ExamPaperDO> iPage, Map<String, Object> params); IPage<ExamPaperDO> listPage(IPage<ExamPaperDO> iPage, Map<String, Object> params, String menuPerms);
ExamPaperDO getInfoById(Long id); ExamPaperDO getInfoById(Long id);

View File

@ -1,7 +1,8 @@
package com.zcloud.edu.persistence.mapper; package com.zcloud.edu.persistence.mapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage; 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.zcloud.edu.persistence.dataobject.TeacherDO;
import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Mapper;
@ -17,9 +18,12 @@ import java.util.Map;
* @Date 2025-11-26 17:04:44 * @Date 2025-11-26 17:04:44
*/ */
@Mapper @Mapper
@DataScopes({
@DataScope(method = "getTeacherPage", menuPerms = ""),
})
public interface TeacherMapper extends BaseMapper<TeacherDO> { public interface TeacherMapper extends BaseMapper<TeacherDO> {
IPage<TeacherDO> getTeacherPage(IPage<TeacherDO> page, Map<String, Object> params); IPage<TeacherDO> getTeacherPage(IPage<TeacherDO> page, Map<String, Object> params, String menuPerms);
List<TeacherDO> getTeacherList(@Param("params")Map<String, Object> params); List<TeacherDO> getTeacherList(@Param("params")Map<String, Object> params);

View File

@ -1,7 +1,8 @@
package com.zcloud.edu.persistence.mapper; package com.zcloud.edu.persistence.mapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage; 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.zcloud.edu.persistence.dataobject.VideoCoursewareDO;
import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Mapper;
@ -17,11 +18,14 @@ import java.util.Map;
* @Date 2025-11-27 14:05:32 * @Date 2025-11-27 14:05:32
*/ */
@Mapper @Mapper
@DataScopes({
@DataScope(method = "getVideoCoursewarePage", menuPerms = ""),
})
public interface VideoCoursewareMapper extends BaseMapper<VideoCoursewareDO> { public interface VideoCoursewareMapper extends BaseMapper<VideoCoursewareDO> {
VideoCoursewareDO getInfoById(@Param("id") Long id); VideoCoursewareDO getInfoById(@Param("id") Long id);
IPage<VideoCoursewareDO> getVideoCoursewarePage(IPage<VideoCoursewareDO> page,@Param("params")Map<String, Object> params); IPage<VideoCoursewareDO> getVideoCoursewarePage(IPage<VideoCoursewareDO> page, @Param("params")Map<String, Object> params,@Param("menuPerms")String menuPerms);
List<VideoCoursewareDO> getVideoCoursewareList(@Param("params")Map<String, Object> params); List<VideoCoursewareDO> getVideoCoursewareList(@Param("params")Map<String, Object> params);

View File

@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.metadata.IPage;
import com.jjb.saas.framework.repository.common.PageHelper; import com.jjb.saas.framework.repository.common.PageHelper;
import com.jjb.saas.framework.repository.repo.impl.BaseRepositoryImpl; 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.dataobject.CurriculumDO;
import com.zcloud.edu.persistence.mapper.CurriculumMapper; import com.zcloud.edu.persistence.mapper.CurriculumMapper;
import com.zcloud.edu.persistence.repository.resource.CurriculumRepository; import com.zcloud.edu.persistence.repository.resource.CurriculumRepository;
@ -29,7 +30,11 @@ public class CurriculumRepositoryImpl extends BaseRepositoryImpl<CurriculumMappe
@Override @Override
public PageResponse<CurriculumDO> listPage(Map<String, Object> params) { public PageResponse<CurriculumDO> listPage(Map<String, Object> params) {
IPage<CurriculumDO> iPage = new Query<CurriculumDO>().getPage(params); IPage<CurriculumDO> iPage = new Query<CurriculumDO>().getPage(params);
IPage<CurriculumDO> result = curriculumMapper.getListPage(iPage, params); String menuPerms = "";
if (!org.springframework.util.ObjectUtils.isEmpty(params.get("menuPath"))){
menuPerms = MenuEnum.getMenuKeyByPath(params.get("menuPath").toString());
}
IPage<CurriculumDO> result = curriculumMapper.getListPage(iPage, params,menuPerms);
return PageHelper.pageToResponse(result, result.getRecords()); return PageHelper.pageToResponse(result, result.getRecords());
} }

View File

@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.metadata.IPage;
import com.jjb.saas.framework.repository.common.PageHelper; import com.jjb.saas.framework.repository.common.PageHelper;
import com.jjb.saas.framework.repository.repo.impl.BaseRepositoryImpl; 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.dataobject.ExamPaperDO;
import com.zcloud.edu.persistence.mapper.ExamPaperMapper; import com.zcloud.edu.persistence.mapper.ExamPaperMapper;
import com.zcloud.edu.persistence.repository.resource.ExamPaperRepository; import com.zcloud.edu.persistence.repository.resource.ExamPaperRepository;
@ -30,7 +31,11 @@ public class ExamPaperRepositoryImpl extends BaseRepositoryImpl<ExamPaperMapper,
@Override @Override
public PageResponse<ExamPaperDO> listPage(Map<String, Object> params) { public PageResponse<ExamPaperDO> listPage(Map<String, Object> params) {
IPage<ExamPaperDO> iPage = new Query<ExamPaperDO>().getPage(params); IPage<ExamPaperDO> iPage = new Query<ExamPaperDO>().getPage(params);
IPage<ExamPaperDO> result = examPaperMapper.listPage(iPage, params); String menuPerms = "";
if (!org.springframework.util.ObjectUtils.isEmpty(params.get("menuPath"))){
menuPerms = MenuEnum.getMenuKeyByPath(params.get("menuPath").toString());
}
IPage<ExamPaperDO> result = examPaperMapper.listPage(iPage, params,menuPerms);
return PageHelper.pageToResponse(result, result.getRecords()); return PageHelper.pageToResponse(result, result.getRecords());
} }

View File

@ -1,6 +1,7 @@
package com.zcloud.edu.persistence.repository.impl.resource; package com.zcloud.edu.persistence.repository.impl.resource;
import com.jjb.saas.framework.repository.common.PageHelper; 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.dataobject.TeacherDO;
import com.zcloud.edu.persistence.mapper.TeacherMapper; import com.zcloud.edu.persistence.mapper.TeacherMapper;
import com.zcloud.edu.persistence.repository.resource.TeacherRepository; import com.zcloud.edu.persistence.repository.resource.TeacherRepository;
@ -30,7 +31,11 @@ public class TeacherRepositoryImpl extends BaseRepositoryImpl<TeacherMapper, Tea
@Override @Override
public PageResponse<TeacherDO> listPage(Map<String, Object> params) { public PageResponse<TeacherDO> listPage(Map<String, Object> params) {
IPage<TeacherDO> iPage = new Query<TeacherDO>().getPage(params); IPage<TeacherDO> iPage = new Query<TeacherDO>().getPage(params);
IPage<TeacherDO> result = teacherMapper.getTeacherPage(iPage, params); String menuPerms = "";
if (!org.springframework.util.ObjectUtils.isEmpty(params.get("menuPath"))){
menuPerms = MenuEnum.getMenuKeyByPath(params.get("menuPath").toString());
}
IPage<TeacherDO> result = teacherMapper.getTeacherPage(iPage, params,menuPerms);
return PageHelper.pageToResponse(result, result.getRecords()); return PageHelper.pageToResponse(result, result.getRecords());
} }

View File

@ -1,6 +1,7 @@
package com.zcloud.edu.persistence.repository.impl.resource; package com.zcloud.edu.persistence.repository.impl.resource;
import com.jjb.saas.framework.repository.common.PageHelper; 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.dataobject.VideoCoursewareDO;
import com.zcloud.edu.persistence.mapper.VideoCoursewareMapper; import com.zcloud.edu.persistence.mapper.VideoCoursewareMapper;
import com.zcloud.edu.persistence.repository.resource.VideoCoursewareRepository; import com.zcloud.edu.persistence.repository.resource.VideoCoursewareRepository;
@ -31,7 +32,11 @@ public class VideoCoursewareRepositoryImpl extends BaseRepositoryImpl<VideoCours
@Override @Override
public PageResponse<VideoCoursewareDO> listPage(Map<String, Object> params) { public PageResponse<VideoCoursewareDO> listPage(Map<String, Object> params) {
IPage<VideoCoursewareDO> iPage = new Query<VideoCoursewareDO>().getPage(params); IPage<VideoCoursewareDO> iPage = new Query<VideoCoursewareDO>().getPage(params);
IPage<VideoCoursewareDO> result = videoCoursewareMapper.getVideoCoursewarePage(iPage, params); String menuPerms = "";
if (!org.springframework.util.ObjectUtils.isEmpty(params.get("menuPath"))){
menuPerms = MenuEnum.getMenuKeyByPath(params.get("menuPath").toString());
}
IPage<VideoCoursewareDO> result = videoCoursewareMapper.getVideoCoursewarePage(iPage, params,menuPerms);
return PageHelper.pageToResponse(result, result.getRecords()); return PageHelper.pageToResponse(result, result.getRecords());
} }