课时类型判断

This commit is contained in:
none 2023-02-26 18:45:19 +08:00
parent cc4833df60
commit 316d5d2d26
3 changed files with 37 additions and 3 deletions

View File

@ -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 = {"视频"};
}

View File

@ -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<SelectOption<String>> typeItems = new ArrayList<>();
for (int i = 0; i < BackendConstant.COURSE_HOUR_TYPE_WHITELIST.length; i++) {
SelectOption<String> tmpTypeItem = new SelectOption<>();
tmpTypeItem.setKey(BackendConstant.COURSE_HOUR_TYPE_WHITELIST[i]);
tmpTypeItem.setValue(BackendConstant.COURSE_HOUR_TYPE_WHITELIST_TEXT[i]);
typeItems.add(tmpTypeItem);
}
HashMap<String, Object> 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();

View File

@ -0,0 +1,13 @@
package xyz.playedu.api.types;
import lombok.Data;
/**
* @Author 杭州白书科技有限公司
* @create 2023/2/26 18:43
*/
@Data
public class SelectOption<T> {
private String key;
private T value;
}