合并分支:合并课程两步式向导与教学资源关联管理能力

This commit is contained in:
wangzhibiao committed 2026-10-09 21:33:35 +08:00
commit 9030d797f4
22 files changed
+1178 -291

No files matched your search

@@ -3,6 +3,7 @@ package com.ruoyi.web.controller.train;
import java.util.List;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.PutMapping;
@@ -17,7 +18,9 @@ import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.common.enums.BusinessType;
import com.ruoyi.common.utils.StringUtils;
import com.ruoyi.train.domain.TrainCourse;
import com.ruoyi.train.domain.dto.CourseResourceBindDTO;
import com.ruoyi.train.domain.vo.CourseDetailVO;
import com.ruoyi.train.service.ITrainCourseResourceService;
import com.ruoyi.train.service.ITrainCourseService;
import com.ruoyi.common.core.page.TableDataInfo;
@@ -34,6 +37,9 @@ public class TrainCourseController extends BaseController
@Autowired
private ITrainCourseService trainCourseService;
@Autowired
private ITrainCourseResourceService trainCourseResourceService;
/**
* 查询课程信息列表 【P0】
*/
@@ -48,7 +54,7 @@ public class TrainCourseController extends BaseController
/**
* 获取课程信息详细信息 【P0】
* 返回结构:CourseDetailVO (包含课程基础字段与契约预留resources列表)
* 返回结构:CourseDetailVO(包含课程基础字段与已关联资源列表)
*/
@PreAuthorize("@ss.hasPermi('train:course:query')")
@GetMapping(value = "/{cId}")
@@ -82,7 +88,8 @@ public class TrainCourseController extends BaseController
{
return AjaxResult.error(400, "课程学时必须为正整数");
}
return toAjax(trainCourseService.insertTrainCourse(trainCourse));
int rows = trainCourseService.insertTrainCourse(trainCourse);
return rows > 0 ? success(trainCourse) : error();
}
/**
@@ -105,6 +112,30 @@ public class TrainCourseController extends BaseController
return toAjax(trainCourseService.updateTrainCourse(trainCourse));
}
/**
* 为课程绑定教学资源。
*/
@PreAuthorize("@ss.hasPermi('train:course:edit')")
@Log(title = "课程教学资源", businessType = BusinessType.INSERT)
@PostMapping("/{cId}/resources")
public AjaxResult bindResource(@PathVariable("cId") String cId,
@Validated @RequestBody CourseResourceBindDTO bindDTO)
{
return toAjax(trainCourseResourceService.bindResource(cId, bindDTO.getResourceId(), bindDTO.getSortNo()));
}
/**
* 解除课程与教学资源的关联,不删除资源本身。
*/
@PreAuthorize("@ss.hasPermi('train:course:edit')")
@Log(title = "课程教学资源", businessType = BusinessType.DELETE)
@DeleteMapping("/{cId}/resources/{resourceId}")
public AjaxResult unbindResource(@PathVariable("cId") String cId,
@PathVariable("resourceId") String resourceId)
{
return toAjax(trainCourseResourceService.unbindResource(cId, resourceId));
}
/**
* 删除课程信息
*/
@@ -64,7 +64,8 @@ public class TrainResourceController extends BaseController
public AjaxResult add(@Validated @RequestBody TrainResource trainResource)
{
trainResource.setCreateBy(SecurityUtils.getUsername());
return toAjax(trainResourceService.insertTrainResource(trainResource));
int rows = trainResourceService.insertTrainResource(trainResource);
return rows > 0 ? success(trainResource) : error();
}
/**