From ba3233a5b685f0ae6856d8dc5a2bf904296cf8b7 Mon Sep 17 00:00:00 2001
From: “mitao” <“2763622819@qq.com”>
Date: 星期四, 26 三月 2026 15:08:46 +0800
Subject: [PATCH] feat:交易与流水-订单-会员购买订单、交易与流水-订单-养生课程购买订单、交易与流水-财务流水-支付流水、交易与流水-财务流水-退费流水、课程管理-健康科普
---
backend/src/main/java/com/tcm/training/admin/live/controller/HealthCourseController.java | 57 +++++++++++++++++++++++++++++++++++++++++++++++++++++++--
1 files changed, 55 insertions(+), 2 deletions(-)
diff --git a/backend/src/main/java/com/tcm/training/admin/live/controller/HealthCourseController.java b/backend/src/main/java/com/tcm/training/admin/live/controller/HealthCourseController.java
index dcd586b..395cba3 100644
--- a/backend/src/main/java/com/tcm/training/admin/live/controller/HealthCourseController.java
+++ b/backend/src/main/java/com/tcm/training/admin/live/controller/HealthCourseController.java
@@ -8,6 +8,7 @@
import com.tcm.training.admin.live.service.HealthCourseAppService;
import com.tcm.training.admin.live.vo.HealthCourseDetailVO;
import com.tcm.training.admin.live.vo.HealthCourseListItemVO;
+import com.tcm.training.admin.live.vo.HealthCourseOptionVO;
import com.tcm.training.admin.live.vo.HealthCourseStatusVO;
import com.tcm.training.admin.live.vo.HealthCourseVideoDetailVO;
import com.tcm.training.admin.live.vo.HealthCourseVideoItemVO;
@@ -22,10 +23,12 @@
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
+import org.springframework.web.multipart.MultipartFile;
import javax.servlet.http.HttpServletResponse;
import javax.validation.Valid;
import java.io.IOException;
+import java.util.List;
@Validated
@RestController
@@ -55,6 +58,11 @@
@RequestParam(required = false) Long difficultyCategoryId,
@RequestParam(required = false) Integer status) throws IOException {
healthCourseAppService.export(response, keyword, levelCategoryId, difficultyCategoryId, status);
+ }
+
+ @GetMapping("/health-courses/options")
+ public ApiResponse<List<HealthCourseOptionVO>> options(@RequestParam(required = false) String keyword) {
+ return ApiResponse.ok(healthCourseAppService.options(keyword));
}
@PostMapping("/health-courses")
@@ -88,8 +96,8 @@
@RequestParam(required = false, defaultValue = "1") int page,
@RequestParam(required = false, defaultValue = "10") int pageSize,
@RequestParam(required = false) String chapterName,
- @RequestParam(required = false) Integer saleType) {
- return ApiResponse.ok(healthCourseAppService.pageVideos(courseId, page, pageSize, chapterName, saleType));
+ @RequestParam(required = false) Integer priceType) {
+ return ApiResponse.ok(healthCourseAppService.pageVideos(courseId, page, pageSize, chapterName, priceType));
}
@GetMapping("/health-courses/{courseId}/videos/{videoId}")
@@ -117,4 +125,49 @@
healthCourseAppService.deleteVideo(courseId, videoId);
return ApiResponse.ok(null);
}
+
+ @GetMapping("/health-course-video-resources")
+ public ApiResponse<PageResponse<HealthCourseVideoItemVO>> pageVideoResources(@RequestParam(required = false, defaultValue = "1") int page,
+ @RequestParam(required = false, defaultValue = "10") int pageSize,
+ @RequestParam(required = false) String courseKeyword,
+ @RequestParam(required = false) Long courseId,
+ @RequestParam(required = false) Integer courseType,
+ @RequestParam(required = false) String chapterName,
+ @RequestParam(required = false) Integer priceType,
+ @RequestParam(required = false) Integer status) {
+ return ApiResponse.ok(healthCourseAppService.pageVideoResources(page, pageSize, courseKeyword, courseId, courseType, chapterName, priceType, status));
+ }
+
+ @GetMapping("/health-course-video-resources/import-template")
+ public void downloadVideoResourceTemplate(HttpServletResponse response) throws IOException {
+ healthCourseAppService.downloadVideoResourceTemplate(response);
+ }
+
+ @GetMapping("/health-course-video-resources/{id}")
+ public ApiResponse<HealthCourseVideoDetailVO> detailVideoResource(@PathVariable("id") Long id) {
+ return ApiResponse.ok(healthCourseAppService.detailVideoResource(id));
+ }
+
+ @PostMapping("/health-course-video-resources")
+ public ApiResponse<HealthCourseVideoDetailVO> createVideoResource(@Valid @RequestBody HealthCourseVideoSaveRequest req) {
+ return ApiResponse.ok(healthCourseAppService.createVideoResource(req));
+ }
+
+ @PutMapping("/health-course-video-resources/{id}")
+ public ApiResponse<HealthCourseVideoDetailVO> updateVideoResource(@PathVariable("id") Long id,
+ @Valid @RequestBody HealthCourseVideoSaveRequest req) {
+ return ApiResponse.ok(healthCourseAppService.updateVideoResource(id, req));
+ }
+
+ @DeleteMapping("/health-course-video-resources/{id}")
+ public ApiResponse<Void> deleteVideoResource(@PathVariable("id") Long id) {
+ healthCourseAppService.deleteVideoResource(id);
+ return ApiResponse.ok(null);
+ }
+
+ @PostMapping("/health-course-video-resources/import")
+ public ApiResponse<Void> importVideoResources(@RequestParam("file") MultipartFile file) throws IOException {
+ healthCourseAppService.importVideoResources(file);
+ return ApiResponse.ok(null);
+ }
}
--
Gitblit v1.7.1