From 316d5d2d26a5e0b18cf6ebd55e0487cde0cdef36 Mon Sep 17 00:00:00 2001 From: none Date: Sun, 26 Feb 2023 18:45:19 +0800 Subject: [PATCH] =?UTF-8?q?=E8=AF=BE=E6=97=B6=E7=B1=BB=E5=9E=8B=E5=88=A4?= =?UTF-8?q?=E6=96=AD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../playedu/api/constant/BackendConstant.java | 3 +++ .../backend/CourseHourController.java | 24 ++++++++++++++++--- .../xyz/playedu/api/types/SelectOption.java | 13 ++++++++++ 3 files changed, 37 insertions(+), 3 deletions(-) create mode 100644 src/main/java/xyz/playedu/api/types/SelectOption.java diff --git a/src/main/java/xyz/playedu/api/constant/BackendConstant.java b/src/main/java/xyz/playedu/api/constant/BackendConstant.java index b4cca91..b572c01 100644 --- a/src/main/java/xyz/playedu/api/constant/BackendConstant.java +++ b/src/main/java/xyz/playedu/api/constant/BackendConstant.java @@ -9,4 +9,7 @@ public class BackendConstant { public final static String[] RESOURCE_DISK_WHITELIST = {"MINIO"}; + public final static String[] COURSE_HOUR_TYPE_WHITELIST = {"VIDEO"}; + public final static String[] COURSE_HOUR_TYPE_WHITELIST_TEXT = {"视频"}; + } diff --git a/src/main/java/xyz/playedu/api/controller/backend/CourseHourController.java b/src/main/java/xyz/playedu/api/controller/backend/CourseHourController.java index 7c99c3d..17cbc87 100644 --- a/src/main/java/xyz/playedu/api/controller/backend/CourseHourController.java +++ b/src/main/java/xyz/playedu/api/controller/backend/CourseHourController.java @@ -1,5 +1,6 @@ package xyz.playedu.api.controller.backend; +import lombok.Data; import org.apache.ibatis.annotations.Delete; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.ApplicationContext; @@ -7,6 +8,7 @@ import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; import xyz.playedu.api.PlayEduBackendThreadLocal; import xyz.playedu.api.constant.BPermissionConstant; +import xyz.playedu.api.constant.BackendConstant; import xyz.playedu.api.domain.CourseHour; import xyz.playedu.api.event.CourseHourCreatedEvent; import xyz.playedu.api.event.CourseHourDestroyEvent; @@ -15,9 +17,9 @@ import xyz.playedu.api.middleware.BackendPermissionMiddleware; import xyz.playedu.api.request.backend.CourseHourRequest; import xyz.playedu.api.service.CourseHourService; import xyz.playedu.api.types.JsonResponse; +import xyz.playedu.api.types.SelectOption; -import java.util.Date; -import java.util.List; +import java.util.*; /** * @Author 杭州白书科技有限公司 @@ -42,12 +44,28 @@ public class CourseHourController { @BackendPermissionMiddleware(slug = BPermissionConstant.COURSE) @GetMapping("/create") public JsonResponse create(@PathVariable(name = "courseId") Integer courseId) { - return JsonResponse.data(null); + // 课时类型 + List> typeItems = new ArrayList<>(); + for (int i = 0; i < BackendConstant.COURSE_HOUR_TYPE_WHITELIST.length; i++) { + SelectOption tmpTypeItem = new SelectOption<>(); + tmpTypeItem.setKey(BackendConstant.COURSE_HOUR_TYPE_WHITELIST[i]); + tmpTypeItem.setValue(BackendConstant.COURSE_HOUR_TYPE_WHITELIST_TEXT[i]); + + typeItems.add(tmpTypeItem); + } + + HashMap data = new HashMap<>(); + data.put("types", typeItems); + + return JsonResponse.data(data); } @BackendPermissionMiddleware(slug = BPermissionConstant.COURSE) @PostMapping("/create") public JsonResponse store(@PathVariable(name = "courseId") Integer courseId, @RequestBody @Validated CourseHourRequest req) { + if (!Arrays.asList(BackendConstant.COURSE_HOUR_TYPE_WHITELIST).contains(req.getType())) { + return JsonResponse.error("课时类型不支持"); + } CourseHour courseHour = hourService.create(courseId, req.getChapterId(), req.getTitle(), req.getType(), req.getDuration(), req.getPublishedAt()); ctx.publishEvent(new CourseHourCreatedEvent(this, PlayEduBackendThreadLocal.getAdminUserID(), courseHour.getCourseId(), courseHour.getChapterId(), courseHour.getId(), new Date())); return JsonResponse.success(); diff --git a/src/main/java/xyz/playedu/api/types/SelectOption.java b/src/main/java/xyz/playedu/api/types/SelectOption.java new file mode 100644 index 0000000..c01098f --- /dev/null +++ b/src/main/java/xyz/playedu/api/types/SelectOption.java @@ -0,0 +1,13 @@ +package xyz.playedu.api.types; + +import lombok.Data; + +/** + * @Author 杭州白书科技有限公司 + * @create 2023/2/26 18:43 + */ +@Data +public class SelectOption { + private String key; + private T value; +}