课时优化

This commit is contained in:
none 2023-03-03 09:44:55 +08:00
parent d52eb0da7b
commit 360ab254d4
2 changed files with 23 additions and 5 deletions

View File

@ -122,7 +122,6 @@
<artifactId>minio</artifactId> <artifactId>minio</artifactId>
<version>8.5.2</version> <version>8.5.2</version>
</dependency> </dependency>
</dependencies> </dependencies>
<build> <build>

View File

@ -9,12 +9,14 @@ import org.springframework.web.bind.annotation.*;
import xyz.playedu.api.PlayEduBackendThreadLocal; import xyz.playedu.api.PlayEduBackendThreadLocal;
import xyz.playedu.api.constant.BPermissionConstant; import xyz.playedu.api.constant.BPermissionConstant;
import xyz.playedu.api.constant.BackendConstant; import xyz.playedu.api.constant.BackendConstant;
import xyz.playedu.api.domain.CourseChapter;
import xyz.playedu.api.domain.CourseHour; import xyz.playedu.api.domain.CourseHour;
import xyz.playedu.api.event.CourseHourCreatedEvent; import xyz.playedu.api.event.CourseHourCreatedEvent;
import xyz.playedu.api.event.CourseHourDestroyEvent; import xyz.playedu.api.event.CourseHourDestroyEvent;
import xyz.playedu.api.exception.NotFoundException; import xyz.playedu.api.exception.NotFoundException;
import xyz.playedu.api.middleware.BackendPermissionMiddleware; import xyz.playedu.api.middleware.BackendPermissionMiddleware;
import xyz.playedu.api.request.backend.CourseHourRequest; import xyz.playedu.api.request.backend.CourseHourRequest;
import xyz.playedu.api.service.CourseChapterService;
import xyz.playedu.api.service.CourseHourService; import xyz.playedu.api.service.CourseHourService;
import xyz.playedu.api.types.JsonResponse; import xyz.playedu.api.types.JsonResponse;
import xyz.playedu.api.types.SelectOption; import xyz.playedu.api.types.SelectOption;
@ -32,6 +34,9 @@ public class CourseHourController {
@Autowired @Autowired
private CourseHourService hourService; private CourseHourService hourService;
@Autowired
private CourseChapterService chapterService;
@Autowired @Autowired
private ApplicationContext ctx; private ApplicationContext ctx;
@ -54,19 +59,29 @@ public class CourseHourController {
typeItems.add(tmpTypeItem); typeItems.add(tmpTypeItem);
} }
// 读取课程下的章节
List<CourseChapter> chapters = chapterService.getChaptersByCourseId(courseId);
HashMap<String, Object> data = new HashMap<>(); HashMap<String, Object> data = new HashMap<>();
data.put("types", typeItems); data.put("types", typeItems);
data.put("chapters", chapters);
return JsonResponse.data(data); return JsonResponse.data(data);
} }
@BackendPermissionMiddleware(slug = BPermissionConstant.COURSE) @BackendPermissionMiddleware(slug = BPermissionConstant.COURSE)
@PostMapping("/create") @PostMapping("/create")
public JsonResponse store(@PathVariable(name = "courseId") Integer courseId, @RequestBody @Validated CourseHourRequest req) { public JsonResponse store(@PathVariable(name = "courseId") Integer courseId, @RequestBody @Validated CourseHourRequest req) throws NotFoundException {
if (!Arrays.asList(BackendConstant.COURSE_HOUR_TYPE_WHITELIST).contains(req.getType())) { // 课时类型校验
String type = req.getType();
if (!Arrays.asList(BackendConstant.COURSE_HOUR_TYPE_WHITELIST).contains(type)) {
return JsonResponse.error("课时类型不支持"); return JsonResponse.error("课时类型不支持");
} }
CourseHour courseHour = hourService.create(courseId, req.getChapterId(), req.getTitle(), req.getType(), req.getDuration(), req.getPublishedAt()); // 章节id校验
Integer chapterId = req.getChapterId();
chapterService.findOrFail(chapterId, courseId);
CourseHour courseHour = hourService.create(courseId, chapterId, req.getTitle(), type, req.getDuration(), req.getPublishedAt());
ctx.publishEvent(new CourseHourCreatedEvent(this, PlayEduBackendThreadLocal.getAdminUserID(), courseHour.getCourseId(), courseHour.getChapterId(), courseHour.getId(), new Date())); ctx.publishEvent(new CourseHourCreatedEvent(this, PlayEduBackendThreadLocal.getAdminUserID(), courseHour.getCourseId(), courseHour.getChapterId(), courseHour.getId(), new Date()));
return JsonResponse.success(); return JsonResponse.success();
} }
@ -82,7 +97,11 @@ public class CourseHourController {
@PutMapping("/{id}") @PutMapping("/{id}")
public JsonResponse update(@PathVariable(name = "courseId") Integer courseId, @PathVariable(name = "id") Integer id, @RequestBody @Validated CourseHourRequest req) throws NotFoundException { public JsonResponse update(@PathVariable(name = "courseId") Integer courseId, @PathVariable(name = "id") Integer id, @RequestBody @Validated CourseHourRequest req) throws NotFoundException {
CourseHour courseHour = hourService.findOrFail(id, courseId); CourseHour courseHour = hourService.findOrFail(id, courseId);
hourService.update(courseHour, req.getChapterId(), req.getTitle(), req.getDuration(), req.getPublishedAt()); // 章节id校验
Integer chapterId = req.getChapterId();
chapterService.findOrFail(chapterId, courseId);
hourService.update(courseHour, chapterId, req.getTitle(), req.getDuration(), req.getPublishedAt());
return JsonResponse.success(); return JsonResponse.success();
} }