serv-控制器

This commit is contained in:
2025-10-15 17:58:20 +08:00
parent 5f76c539f4
commit 0dd65e9eda
59 changed files with 4974 additions and 29 deletions

View File

@@ -0,0 +1,142 @@
package org.xyzh.study.controller;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import org.xyzh.api.study.course.CourseService;
import org.xyzh.common.core.domain.ResultDomain;
import org.xyzh.common.dto.study.TbCourse;
import org.xyzh.common.dto.study.TbCourseChapter;
/**
* @description 课程控制器
* @filename CourseController.java
* @author system
* @copyright xyzh
* @since 2025-10-15
*/
@RestController
@RequestMapping("/study/course")
public class CourseController {
private static final Logger logger = LoggerFactory.getLogger(CourseController.class);
@Autowired
private CourseService courseService;
/**
* 获取课程列表
*/
@GetMapping("/list")
public ResultDomain<TbCourse> getCourseList(TbCourse filter) {
return courseService.getCourseList(filter);
}
/**
* 根据ID获取课程详情
*/
@GetMapping("/{courseID}")
public ResultDomain<TbCourse> getCourseById(@PathVariable String courseID) {
return courseService.getCourseById(courseID);
}
/**
* 创建课程
*/
@PostMapping("/create")
public ResultDomain<TbCourse> createCourse(@RequestBody TbCourse course) {
return courseService.createCourse(course);
}
/**
* 更新课程
*/
@PutMapping("/update")
public ResultDomain<TbCourse> updateCourse(@RequestBody TbCourse course) {
return courseService.updateCourse(course);
}
/**
* 删除课程
*/
@DeleteMapping("/{courseID}")
public ResultDomain<Boolean> deleteCourse(@PathVariable String courseID) {
return courseService.deleteCourse(courseID);
}
/**
* 更新课程状态
*/
@PutMapping("/{courseID}/status")
public ResultDomain<TbCourse> updateCourseStatus(
@PathVariable String courseID,
@RequestParam Integer status) {
return courseService.updateCourseStatus(courseID, status);
}
/**
* 增加课程浏览次数
*/
@PostMapping("/{courseID}/view")
public ResultDomain<TbCourse> incrementViewCount(@PathVariable String courseID) {
return courseService.incrementViewCount(courseID);
}
/**
* 增加课程学习人数
*/
@PostMapping("/{courseID}/learn")
public ResultDomain<TbCourse> incrementLearnCount(@PathVariable String courseID) {
return courseService.incrementLearnCount(courseID);
}
/**
* 获取课程章节列表
*/
@GetMapping("/{courseID}/chapters")
public ResultDomain<TbCourseChapter> getCourseChapters(@PathVariable String courseID) {
return courseService.getCourseChapters(courseID);
}
/**
* 根据ID获取章节详情
*/
@GetMapping("/chapter/{chapterID}")
public ResultDomain<TbCourseChapter> getChapterById(@PathVariable String chapterID) {
return courseService.getChapterById(chapterID);
}
/**
* 创建课程章节
*/
@PostMapping("/chapter/create")
public ResultDomain<TbCourseChapter> createChapter(@RequestBody TbCourseChapter chapter) {
return courseService.createChapter(chapter);
}
/**
* 更新课程章节
*/
@PutMapping("/chapter/update")
public ResultDomain<TbCourseChapter> updateChapter(@RequestBody TbCourseChapter chapter) {
return courseService.updateChapter(chapter);
}
/**
* 删除课程章节
*/
@DeleteMapping("/chapter/{chapterID}")
public ResultDomain<Boolean> deleteChapter(@PathVariable String chapterID) {
return courseService.deleteChapter(chapterID);
}
/**
* 更新章节排序
*/
@PutMapping("/chapter/{chapterID}/order")
public ResultDomain<TbCourseChapter> updateChapterOrder(
@PathVariable String chapterID,
@RequestParam Integer orderNum) {
return courseService.updateChapterOrder(chapterID, orderNum);
}
}

View File

@@ -0,0 +1,176 @@
package org.xyzh.study.controller;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.web.bind.annotation.*;
import org.xyzh.common.core.domain.ResultDomain;
import org.xyzh.common.dto.study.TbCourse;
import java.util.Map;
/**
* @description 课程管理控制器
* @filename CourseManagementController.java
* @author system
* @copyright xyzh
* @since 2025-10-15
*/
@RestController
@RequestMapping("/study/course-management")
public class CourseManagementController {
private static final Logger logger = LoggerFactory.getLogger(CourseManagementController.class);
// ==================== 课程列表管理 ====================
/**
* 分页展示所有课程
*/
@GetMapping("/list")
public ResultDomain<TbCourse> getCourseList(
@RequestParam(required = false) String courseName,
@RequestParam(required = false) String tag,
@RequestParam(required = false) Integer pageNum,
@RequestParam(required = false) Integer pageSize) {
// TODO: 实现分页展示所有课程(支持按课程名称/标签筛选)
return null;
}
/**
* 查看课程详情
*/
@GetMapping("/detail/{courseID}")
public ResultDomain<TbCourse> getCourseDetail(@PathVariable String courseID) {
// TODO: 实现查看课程详情
return null;
}
/**
* 按课程名称筛选
*/
@GetMapping("/filter/name")
public ResultDomain<TbCourse> filterByCourseName(@RequestParam String courseName) {
// TODO: 实现按课程名称筛选
return null;
}
/**
* 按标签筛选课程
*/
@GetMapping("/filter/tag")
public ResultDomain<TbCourse> filterByTag(@RequestParam String tag) {
// TODO: 实现按标签筛选课程
return null;
}
// ==================== 课程添加管理 ====================
/**
* 添加课程
*/
@PostMapping("/add")
public ResultDomain<TbCourse> addCourse(@RequestBody Map<String, Object> courseData) {
// TODO: 实现添加课程(录入课程名称、上传课程图片、填写课程描述、选择课程标签、设置课程权限、设置课程状态)
return null;
}
/**
* 上传课程图片
*/
@PostMapping("/upload-image")
public ResultDomain<String> uploadCourseImage(@RequestParam("file") String file) {
// TODO: 实现上传课程图片
return null;
}
/**
* 设置课程权限
*/
@PutMapping("/permission/set")
public ResultDomain<Boolean> setCoursePermission(@RequestBody Map<String, Object> params) {
// TODO: 实现设置课程权限(公开/指定部门)
return null;
}
/**
* 设置课程状态
*/
@PutMapping("/status/set")
public ResultDomain<Boolean> setCourseStatus(@RequestBody Map<String, Object> params) {
// TODO: 实现设置课程状态(未上线/已上线)
return null;
}
/**
* 选择课程标签
*/
@PutMapping("/tag/select")
public ResultDomain<Boolean> selectCourseTags(@RequestBody Map<String, Object> params) {
// TODO: 实现选择课程标签
return null;
}
// ==================== 课程维护管理 ====================
/**
* 编辑课程信息
*/
@PutMapping("/edit")
public ResultDomain<TbCourse> editCourseInfo(@RequestBody TbCourse course) {
// TODO: 实现编辑课程信息
return null;
}
/**
* 更新课程内容
*/
@PutMapping("/content/update")
public ResultDomain<Boolean> updateCourseContent(@RequestBody Map<String, Object> params) {
// TODO: 实现更新课程内容
return null;
}
/**
* 修改课程状态
*/
@PutMapping("/status/change")
public ResultDomain<Boolean> changeCourseStatus(@RequestBody Map<String, Object> params) {
// TODO: 实现修改课程状态
return null;
}
/**
* 删除课程
*/
@DeleteMapping("/{courseID}")
public ResultDomain<Boolean> deleteCourse(@PathVariable String courseID) {
// TODO: 实现删除课程
return null;
}
/**
* 批量更新课程状态
*/
@PutMapping("/batch-status-update")
public ResultDomain<Boolean> batchUpdateCourseStatus(@RequestBody Map<String, Object> params) {
// TODO: 实现批量更新课程状态
return null;
}
/**
* 获取课程统计信息
*/
@GetMapping("/statistics")
public ResultDomain<Map<String, Object>> getCourseStatistics(@RequestParam String courseID) {
// TODO: 实现获取课程统计信息
return null;
}
/**
* 获取课程学习情况
*/
@GetMapping("/learning-status")
public ResultDomain<Map<String, Object>> getCourseLearningStatus(@RequestParam String courseID) {
// TODO: 实现获取课程学习情况
return null;
}
}

View File

@@ -0,0 +1,82 @@
package org.xyzh.study.controller;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import org.xyzh.api.study.tag.CourseTagService;
import org.xyzh.common.core.domain.ResultDomain;
import org.xyzh.common.dto.study.TbCourseTag;
import org.xyzh.common.dto.study.TbCourse;
/**
* @description 课程标签控制器
* @filename CourseTagController.java
* @author system
* @copyright xyzh
* @since 2025-10-15
*/
@RestController
@RequestMapping("/study/tag")
public class CourseTagController {
private static final Logger logger = LoggerFactory.getLogger(CourseTagController.class);
@Autowired
private CourseTagService courseTagService;
/**
* 获取标签列表
*/
@GetMapping("/list")
public ResultDomain<TbCourseTag> getTagList(TbCourseTag filter) {
return null;
// return courseTagService.getTagList(filter);
}
/**
* 根据ID获取标签详情
*/
@GetMapping("/{tagID}")
public ResultDomain<TbCourseTag> getTagById(@PathVariable String tagID) {
return courseTagService.getTagById(tagID);
}
/**
* 根据标签获取课程列表
*/
@GetMapping("/{tagID}/courses")
public ResultDomain<TbCourse> getCoursesByTag(@PathVariable String tagID) {
return null;
// return courseTagService.getCoursesByTag(tagID);
}
/**
* 添加标签到课程
*/
@PostMapping("/course/{courseID}/tag")
public ResultDomain<TbCourseTag> addTagToCourse(
@PathVariable String courseID,
@RequestParam String tagID) {
return null;
// return courseTagService.addTagToCourse(courseID, tagID);
}
/**
* 从课程移除标签
*/
@DeleteMapping("/course/{courseID}/tag/{tagID}")
public ResultDomain<Boolean> removeTagFromCourse(
@PathVariable String courseID,
@PathVariable String tagID) {
return null;
// return courseTagService.removeTagFromCourse(courseID, tagID);
}
/**
* 获取课程标签列表
*/
@GetMapping("/course/{courseID}/tags")
public ResultDomain<TbCourseTag> getCourseTags(@PathVariable String courseID) {
return courseTagService.getCourseTags(courseID);
}
}

View File

@@ -0,0 +1,192 @@
package org.xyzh.study.controller;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.web.bind.annotation.*;
import org.xyzh.common.core.domain.ResultDomain;
import org.xyzh.common.dto.study.TbLearningTask;
import org.xyzh.common.dto.study.TbTaskUser;
import java.util.List;
import java.util.Map;
/**
* @description 学习管理控制器
* @filename LearningManagementController.java
* @author system
* @copyright xyzh
* @since 2025-10-15
*/
@RestController
@RequestMapping("/study/management")
public class LearningManagementController {
private static final Logger logger = LoggerFactory.getLogger(LearningManagementController.class);
// ==================== 任务发布管理 ====================
/**
* 发布学习任务
*/
@PostMapping("/task/publish")
public ResultDomain<TbLearningTask> publishLearningTask(@RequestBody Map<String, Object> taskData) {
// TODO: 实现发布学习任务(编辑任务名称、任务描述、任务周期、关联资源/课程)
return null;
}
/**
* 编辑学习任务
*/
@PutMapping("/task/edit")
public ResultDomain<TbLearningTask> editLearningTask(@RequestBody TbLearningTask task) {
// TODO: 实现编辑学习任务
return null;
}
/**
* 获取任务发布列表
*/
@GetMapping("/task/published-list")
public ResultDomain<TbLearningTask> getPublishedTaskList(
@RequestParam(required = false) String taskName,
@RequestParam(required = false) Integer status) {
// TODO: 实现获取任务发布列表
return null;
}
/**
* 关联资源到任务
*/
@PostMapping("/task/link-resource")
public ResultDomain<Boolean> linkResourceToTask(@RequestBody Map<String, Object> params) {
// TODO: 实现关联资源/课程到任务
return null;
}
/**
* 关联课程到任务
*/
@PostMapping("/task/link-course")
public ResultDomain<Boolean> linkCourseToTask(@RequestBody Map<String, Object> params) {
// TODO: 实现关联课程到任务
return null;
}
// ==================== 人员选定管理 ====================
/**
* 按部门筛选人员
*/
@GetMapping("/personnel/dept-filter")
public ResultDomain<Map<String, Object>> filterPersonnelByDept(@RequestParam String deptID) {
// TODO: 实现按部门层级筛选人员
return null;
}
/**
* 手动勾选人员
*/
@PostMapping("/personnel/select")
public ResultDomain<List<Map<String, Object>>> selectPersonnel(@RequestBody List<String> userIDs) {
// TODO: 实现手动勾选人员
return null;
}
/**
* 生成任务接收名单
*/
@PostMapping("/personnel/generate-list")
public ResultDomain<List<TbTaskUser>> generateTaskReceiverList(@RequestBody Map<String, Object> params) {
// TODO: 实现生成任务接收名单
return null;
}
/**
* 批量分配任务给用户
*/
@PostMapping("/personnel/batch-assign")
public ResultDomain<Boolean> batchAssignTaskToUsers(@RequestBody Map<String, Object> params) {
// TODO: 实现批量分配任务给用户
return null;
}
/**
* 获取部门人员树形结构
*/
@GetMapping("/personnel/dept-tree")
public ResultDomain<Map<String, Object>> getDeptPersonnelTree() {
// TODO: 实现获取部门人员树形结构
return null;
}
// ==================== 学习记录统计 ====================
/**
* 获取学习记录统计
*/
@GetMapping("/record/statistics")
public ResultDomain<Map<String, Object>> getLearningRecordStatistics(
@RequestParam(required = false) String deptID,
@RequestParam(required = false) String userID,
@RequestParam(required = false) String startDate,
@RequestParam(required = false) String endDate) {
// TODO: 实现获取学习记录统计(支持按部门/个人/时间筛选查询)
return null;
}
/**
* 获取用户学习时长统计
*/
@GetMapping("/record/learning-duration")
public ResultDomain<Map<String, Object>> getLearningDurationStatistics(@RequestParam String userID) {
// TODO: 实现统计用户学习时长
return null;
}
/**
* 获取学习资源数量统计
*/
@GetMapping("/record/resource-count")
public ResultDomain<Map<String, Object>> getResourceCountStatistics(@RequestParam String userID) {
// TODO: 实现统计学习资源数量
return null;
}
/**
* 获取任务完成情况统计
*/
@GetMapping("/record/task-completion")
public ResultDomain<Map<String, Object>> getTaskCompletionStatistics(@RequestParam String userID) {
// TODO: 实现统计任务完成情况
return null;
}
/**
* 生成可视化数据图表
*/
@GetMapping("/record/chart-data")
public ResultDomain<Map<String, Object>> getChartData(
@RequestParam String chartType,
@RequestParam(required = false) String userID,
@RequestParam(required = false) String deptID) {
// TODO: 实现生成可视化数据(图表接口)
return null;
}
/**
* 获取部门学习统计
*/
@GetMapping("/record/dept-statistics")
public ResultDomain<Map<String, Object>> getDeptLearningStatistics(@RequestParam String deptID) {
// TODO: 实现获取部门学习统计
return null;
}
/**
* 导出学习记录报告
*/
@PostMapping("/record/export-report")
public ResultDomain<String> exportLearningReport(@RequestBody Map<String, Object> params) {
// TODO: 实现导出学习记录报告
return null;
}
}

View File

@@ -0,0 +1,204 @@
package org.xyzh.study.controller;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.web.bind.annotation.*;
import org.xyzh.common.core.domain.ResultDomain;
import org.xyzh.common.dto.study.TbLearningTask;
import org.xyzh.common.dto.study.TbTaskUser;
import java.util.Map;
/**
* @description 学习计划控制器
* @filename LearningPlanController.java
* @author system
* @copyright xyzh
* @since 2025-10-15
*/
@RestController
@RequestMapping("/study/plan")
public class LearningPlanController {
private static final Logger logger = LoggerFactory.getLogger(LearningPlanController.class);
// ==================== 计划列表管理 ====================
/**
* 获取学习计划列表
*/
@GetMapping("/list")
public ResultDomain<TbLearningTask> getLearningPlanList(
@RequestParam(required = false) String planName,
@RequestParam(required = false) Integer status,
@RequestParam(required = false) Integer pageNum,
@RequestParam(required = false) Integer pageSize) {
// TODO: 实现展示校方统一发布的学习计划(名称、起止时间、任务描述)
return null;
}
/**
* 获取计划详情
*/
@GetMapping("/{planID}")
public ResultDomain<TbLearningTask> getPlanDetail(@PathVariable String planID) {
// TODO: 实现获取计划详情
return null;
}
/**
* 获取进行中的计划
*/
@GetMapping("/active")
public ResultDomain<TbLearningTask> getActivePlans() {
// TODO: 实现获取进行中的计划
return null;
}
/**
* 获取已完成的计划
*/
@GetMapping("/completed")
public ResultDomain<TbLearningTask> getCompletedPlans() {
// TODO: 实现获取已完成的计划
return null;
}
/**
* 获取即将开始的计划
*/
@GetMapping("/upcoming")
public ResultDomain<TbLearningTask> getUpcomingPlans() {
// TODO: 实现获取即将开始的计划
return null;
}
/**
* 按时间范围筛选计划
*/
@GetMapping("/filter/date-range")
public ResultDomain<TbLearningTask> filterPlansByDateRange(
@RequestParam String startDate,
@RequestParam String endDate) {
// TODO: 实现按时间范围筛选计划
return null;
}
// ==================== 任务进度管理 ====================
/**
* 获取当前用户的学习任务
*/
@GetMapping("/user/{userID}/tasks")
public ResultDomain<TbTaskUser> getUserLearningTasks(@PathVariable String userID) {
// TODO: 实现展示当前用户的学习任务(已完成/未完成)
return null;
}
/**
* 获取任务进度详情
*/
@GetMapping("/task/{taskID}/progress")
public ResultDomain<Map<String, Object>> getTaskProgress(@PathVariable String taskID) {
// TODO: 实现获取任务进度详情
return null;
}
/**
* 获取用户任务进度
*/
@GetMapping("/user/{userID}/task/{taskID}/progress")
public ResultDomain<Map<String, Object>> getUserTaskProgress(
@PathVariable String userID,
@PathVariable String taskID) {
// TODO: 实现获取用户任务进度
return null;
}
/**
* 更新任务进度
*/
@PutMapping("/task/{taskID}/progress")
public ResultDomain<Boolean> updateTaskProgress(
@PathVariable String taskID,
@RequestParam String userID,
@RequestParam Integer progress) {
// TODO: 实现更新任务进度
return null;
}
/**
* 完成任务
*/
@PostMapping("/task/{taskID}/complete")
public ResultDomain<Boolean> completeTask(
@PathVariable String taskID,
@RequestParam String userID) {
// TODO: 实现完成任务
return null;
}
/**
* 获取进度条数据
*/
@GetMapping("/user/{userID}/progress-bar")
public ResultDomain<Map<String, Object>> getProgressBarData(@PathVariable String userID) {
// TODO: 实现用进度条显示完成百分比
return null;
}
/**
* 获取已完成任务列表
*/
@GetMapping("/user/{userID}/completed-tasks")
public ResultDomain<TbTaskUser> getCompletedTasks(@PathVariable String userID) {
// TODO: 实现获取已完成任务列表
return null;
}
/**
* 获取未完成任务列表
*/
@GetMapping("/user/{userID}/pending-tasks")
public ResultDomain<TbTaskUser> getPendingTasks(@PathVariable String userID) {
// TODO: 实现获取未完成任务列表
return null;
}
/**
* 获取任务统计信息
*/
@GetMapping("/user/{userID}/task-statistics")
public ResultDomain<Map<String, Object>> getTaskStatistics(@PathVariable String userID) {
// TODO: 实现获取任务统计信息
return null;
}
/**
* 获取学习计划统计
*/
@GetMapping("/statistics")
public ResultDomain<Map<String, Object>> getLearningPlanStatistics() {
// TODO: 实现获取学习计划统计
return null;
}
/**
* 获取用户学习计划参与情况
*/
@GetMapping("/user/{userID}/participation")
public ResultDomain<Map<String, Object>> getUserParticipation(@PathVariable String userID) {
// TODO: 实现获取用户学习计划参与情况
return null;
}
/**
* 获取计划排行榜
*/
@GetMapping("/ranking")
public ResultDomain<Map<String, Object>> getPlanRanking(
@RequestParam(required = false) String planID,
@RequestParam(required = false) Integer limit) {
// TODO: 实现获取计划排行榜
return null;
}
}

View File

@@ -0,0 +1,93 @@
package org.xyzh.study.controller;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import org.xyzh.api.study.record.LearningRecordService;
import org.xyzh.common.core.domain.ResultDomain;
import org.xyzh.common.dto.study.TbLearningRecord;
/**
* @description 学习记录控制器
* @filename LearningRecordController.java
* @author system
* @copyright xyzh
* @since 2025-10-15
*/
@RestController
@RequestMapping("/study/record")
public class LearningRecordController {
private static final Logger logger = LoggerFactory.getLogger(LearningRecordController.class);
@Autowired
private LearningRecordService learningRecordService;
/**
* 获取学习记录
*/
@GetMapping("/list")
public ResultDomain<TbLearningRecord> getLearningRecords(
@RequestParam(required = false) String userID,
@RequestParam(required = false) String courseID,
@RequestParam(required = false) String taskID) {
return null;
// return learningRecordService.getLearningRecords(userID, courseID, taskID);
}
/**
* 创建学习记录
*/
@PostMapping("/create")
public ResultDomain<TbLearningRecord> createLearningRecord(@RequestBody TbLearningRecord record) {
return null;
// return learningRecordService.createLearningRecord(record);
}
/**
* 更新学习记录
*/
@PutMapping("/update")
public ResultDomain<TbLearningRecord> updateLearningRecord(@RequestBody TbLearningRecord record) {
return null;
// return learningRecordService.updateLearningRecord(record);
}
/**
* 删除学习记录
*/
@DeleteMapping("/{recordID}")
public ResultDomain<Boolean> deleteLearningRecord(@PathVariable String recordID) {
return null;
// return learningRecordService.deleteLearningRecord(recordID);
}
/**
* 根据ID获取学习记录
*/
@GetMapping("/{recordID}")
public ResultDomain<TbLearningRecord> getRecordById(@PathVariable String recordID) {
return null;
// return learningRecordService.getRecordById(recordID);
}
/**
* 更新学习进度
*/
@PutMapping("/{recordID}/progress")
public ResultDomain<TbLearningRecord> updateLearningProgress(
@PathVariable String recordID,
@RequestParam Integer progress) {
return null;
// return learningRecordService.updateLearningProgress(recordID, progress);
}
/**
* 完成学习
*/
@PostMapping("/{recordID}/complete")
public ResultDomain<TbLearningRecord> completeLearning(@PathVariable String recordID) {
return null;
// return learningRecordService.completeLearning(recordID);
}
}

View File

@@ -0,0 +1,100 @@
package org.xyzh.study.controller;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import org.xyzh.api.study.statistics.LearningStatisticsService;
import org.xyzh.common.core.domain.ResultDomain;
import org.xyzh.common.dto.study.TbLearningStatistics;
/**
* @description 学习统计控制器
* @filename LearningStatisticsController.java
* @author system
* @copyright xyzh
* @since 2025-10-15
*/
@RestController
@RequestMapping("/study/statistics")
public class LearningStatisticsController {
private static final Logger logger = LoggerFactory.getLogger(LearningStatisticsController.class);
@Autowired
private LearningStatisticsService learningStatisticsService;
/**
* 获取用户学习统计
*/
@GetMapping("/user/{userID}")
public ResultDomain<TbLearningStatistics> getUserStatistics(@PathVariable String userID) {
return null;
// return learningStatisticsService.getUserStatistics(userID);
}
/**
* 获取课程学习统计
*/
@GetMapping("/course/{courseID}")
public ResultDomain<TbLearningStatistics> getCourseStatistics(@PathVariable String courseID) {
return null;
// return learningStatisticsService.getCourseStatistics(courseID);
}
/**
* 获取任务学习统计
*/
@GetMapping("/task/{taskID}")
public ResultDomain<TbLearningStatistics> getTaskStatistics(@PathVariable String taskID) {
return null;
// return learningStatisticsService.getTaskStatistics(taskID);
}
/**
* 创建学习统计
*/
@PostMapping("/create")
public ResultDomain<TbLearningStatistics> createStatistics(@RequestBody TbLearningStatistics statistics) {
return null;
// return learningStatisticsService.createStatistics(statistics);
}
/**
* 更新学习统计
*/
@PutMapping("/update")
public ResultDomain<TbLearningStatistics> updateStatistics(@RequestBody TbLearningStatistics statistics) {
return null;
// return learningStatisticsService.updateStatistics(statistics);
}
/**
* 增加学习时长
*/
@PostMapping("/{userID}/study-time")
public ResultDomain<TbLearningStatistics> incrementStudyTime(
@PathVariable String userID,
@RequestParam String courseID,
@RequestParam Integer minutes) {
return null;
// return learningStatisticsService.incrementStudyTime(userID, courseID, minutes);
}
/**
* 增加完成课程数
*/
@PostMapping("/{userID}/completed-courses")
public ResultDomain<TbLearningStatistics> incrementCompletedCourses(@PathVariable String userID) {
return null;
// return learningStatisticsService.incrementCompletedCourses(userID);
}
/**
* 增加完成任务数
*/
@PostMapping("/{userID}/completed-tasks")
public ResultDomain<TbLearningStatistics> incrementCompletedTasks(@PathVariable String userID) {
return null;
// return learningStatisticsService.incrementCompletedTasks(userID);
}
}

View File

@@ -0,0 +1,168 @@
package org.xyzh.study.controller;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import org.xyzh.api.study.task.LearningTaskService;
import org.xyzh.common.core.domain.ResultDomain;
import org.xyzh.common.dto.study.TbLearningTask;
import org.xyzh.common.dto.study.TbTaskUser;
import org.xyzh.common.dto.study.TbTaskCourse;
import org.xyzh.common.dto.study.TbTaskResource;
/**
* @description 学习任务控制器
* @filename LearningTaskController.java
* @author system
* @copyright xyzh
* @since 2025-10-15
*/
@RestController
@RequestMapping("/study/task")
public class LearningTaskController {
private static final Logger logger = LoggerFactory.getLogger(LearningTaskController.class);
@Autowired
private LearningTaskService learningTaskService;
/**
* 获取任务列表
*/
@GetMapping("/list")
public ResultDomain<TbLearningTask> getTaskList(TbLearningTask filter) {
return learningTaskService.getTaskList(filter);
}
/**
* 根据ID获取任务详情
*/
@GetMapping("/{taskID}")
public ResultDomain<TbLearningTask> getTaskById(@PathVariable String taskID) {
return learningTaskService.getTaskById(taskID);
}
/**
* 创建任务
*/
@PostMapping("/create")
public ResultDomain<TbLearningTask> createTask(@RequestBody TbLearningTask task) {
return learningTaskService.createTask(task);
}
/**
* 更新任务
*/
@PutMapping("/update")
public ResultDomain<TbLearningTask> updateTask(@RequestBody TbLearningTask task) {
return learningTaskService.updateTask(task);
}
/**
* 删除任务
*/
@DeleteMapping("/{taskID}")
public ResultDomain<Boolean> deleteTask(@PathVariable String taskID) {
return learningTaskService.deleteTask(taskID);
}
/**
* 更新任务状态
*/
@PutMapping("/{taskID}/status")
public ResultDomain<TbLearningTask> updateTaskStatus(
@PathVariable String taskID,
@RequestParam Integer status) {
return learningTaskService.updateTaskStatus(taskID, status);
}
/**
* 获取任务用户列表
*/
@GetMapping("/{taskID}/users")
public ResultDomain<TbTaskUser> getTaskUsers(@PathVariable String taskID) {
return learningTaskService.getTaskUsers(taskID);
}
/**
* 分配任务给用户
*/
@PostMapping("/{taskID}/assign")
public ResultDomain<TbTaskUser> assignTaskToUser(
@PathVariable String taskID,
@RequestParam String userID) {
return null;
// return learningTaskService.assignTaskToUser(taskID, userID);
}
/**
* 从用户移除任务
*/
@DeleteMapping("/{taskID}/user/{userID}")
public ResultDomain<Boolean> removeTaskFromUser(
@PathVariable String taskID,
@PathVariable String userID) {
return null;
// return learningTaskService.removeTaskFromUser(taskID, userID);
}
/**
* 获取任务课程列表
*/
@GetMapping("/{taskID}/courses")
public ResultDomain<TbTaskCourse> getTaskCourses(@PathVariable String taskID) {
return learningTaskService.getTaskCourses(taskID);
}
/**
* 添加课程到任务
*/
@PostMapping("/{taskID}/course")
public ResultDomain<TbTaskCourse> addCourseToTask(
@PathVariable String taskID,
@RequestParam String courseID) {
return null;
// return learningTaskService.addCourseToTask(taskID, courseID);
}
/**
* 从任务移除课程
*/
@DeleteMapping("/{taskID}/course/{courseID}")
public ResultDomain<Boolean> removeCourseFromTask(
@PathVariable String taskID,
@PathVariable String courseID) {
return null;
// return learningTaskService.removeCourseFromTask(taskID, courseID);
}
/**
* 获取任务资源列表
*/
@GetMapping("/{taskID}/resources")
public ResultDomain<TbTaskResource> getTaskResources(@PathVariable String taskID) {
return learningTaskService.getTaskResources(taskID);
}
/**
* 添加资源到任务
*/
@PostMapping("/{taskID}/resource")
public ResultDomain<TbTaskResource> addResourceToTask(
@PathVariable String taskID,
@RequestParam String resourceID) {
return null;
// return learningTaskService.addResourceToTask(taskID, resourceID);
}
/**
* 从任务移除资源
*/
@DeleteMapping("/{taskID}/resource/{resourceID}")
public ResultDomain<Boolean> removeResourceFromTask(
@PathVariable String taskID,
@PathVariable String resourceID) {
return null;
// return learningTaskService.removeResourceFromTask(taskID, resourceID);
}
}

View File

@@ -0,0 +1,14 @@
package org.xyzh.study.service;
import org.xyzh.api.study.course.CourseService;
/**
* @description 课程服务接口
* @filename SCCourseService.java
* @author system
* @copyright xyzh
* @since 2025-10-15
*/
public interface SCCourseService extends CourseService {
}

View File

@@ -0,0 +1,14 @@
package org.xyzh.study.service;
import org.xyzh.api.study.tag.CourseTagService;
/**
* @description 课程标签服务接口
* @filename SCCourseTagService.java
* @author system
* @copyright xyzh
* @since 2025-10-15
*/
public interface SCCourseTagService extends CourseTagService {
}

View File

@@ -0,0 +1,14 @@
package org.xyzh.study.service;
import org.xyzh.api.study.record.LearningRecordService;
/**
* @description 学习记录服务接口
* @filename SCLearningRecordService.java
* @author system
* @copyright xyzh
* @since 2025-10-15
*/
public interface SCLearningRecordService extends LearningRecordService {
}

View File

@@ -0,0 +1,14 @@
package org.xyzh.study.service;
import org.xyzh.api.study.statistics.LearningStatisticsService;
/**
* @description 学习统计服务接口
* @filename SCLearningStatisticsService.java
* @author system
* @copyright xyzh
* @since 2025-10-15
*/
public interface SCLearningStatisticsService extends LearningStatisticsService {
}

View File

@@ -0,0 +1,14 @@
package org.xyzh.study.service;
import org.xyzh.api.study.task.LearningTaskService;
/**
* @description 学习任务服务接口
* @filename SCLearningTaskService.java
* @author system
* @copyright xyzh
* @since 2025-10-15
*/
public interface SCLearningTaskService extends LearningTaskService {
}

View File

@@ -0,0 +1,115 @@
package org.xyzh.study.service.impl;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.xyzh.common.core.domain.ResultDomain;
import org.xyzh.common.dto.study.TbCourse;
import org.xyzh.common.dto.study.TbCourseChapter;
import org.xyzh.study.mapper.CourseMapper;
import org.xyzh.study.mapper.CourseChapterMapper;
import org.xyzh.study.service.SCCourseService;
/**
* @description 课程服务实现类
* @filename SCCourseServiceImpl.java
* @author system
* @copyright xyzh
* @since 2025-10-15
*/
@Service
public class SCCourseServiceImpl implements SCCourseService {
private static final Logger logger = LoggerFactory.getLogger(SCCourseServiceImpl.class);
@Autowired
private CourseMapper courseMapper;
@Autowired
private CourseChapterMapper courseChapterMapper;
@Override
public ResultDomain<TbCourse> getCourseList(TbCourse filter) {
// TODO: 实现获取课程列表
return null;
}
@Override
public ResultDomain<TbCourse> getCourseById(String courseID) {
// TODO: 实现根据ID获取课程详情
return null;
}
@Override
public ResultDomain<TbCourse> createCourse(TbCourse course) {
// TODO: 实现创建课程
return null;
}
@Override
public ResultDomain<TbCourse> updateCourse(TbCourse course) {
// TODO: 实现更新课程
return null;
}
@Override
public ResultDomain<Boolean> deleteCourse(String courseID) {
// TODO: 实现删除课程
return null;
}
@Override
public ResultDomain<TbCourse> updateCourseStatus(String courseID, Integer status) {
// TODO: 实现更新课程状态
return null;
}
@Override
public ResultDomain<TbCourse> incrementViewCount(String courseID) {
// TODO: 实现增加课程浏览次数
return null;
}
@Override
public ResultDomain<TbCourse> incrementLearnCount(String courseID) {
// TODO: 实现增加课程学习人数
return null;
}
@Override
public ResultDomain<TbCourseChapter> getCourseChapters(String courseID) {
// TODO: 实现获取课程章节列表
return null;
}
@Override
public ResultDomain<TbCourseChapter> getChapterById(String chapterID) {
// TODO: 实现根据ID获取章节详情
return null;
}
@Override
public ResultDomain<TbCourseChapter> createChapter(TbCourseChapter chapter) {
// TODO: 实现创建课程章节
return null;
}
@Override
public ResultDomain<TbCourseChapter> updateChapter(TbCourseChapter chapter) {
// TODO: 实现更新课程章节
return null;
}
@Override
public ResultDomain<Boolean> deleteChapter(String chapterID) {
// TODO: 实现删除课程章节
return null;
}
@Override
public ResultDomain<TbCourseChapter> updateChapterOrder(String chapterID, Integer orderNum) {
// TODO: 实现更新章节排序
return null;
}
}

View File

@@ -0,0 +1,82 @@
package org.xyzh.study.service.impl;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.xyzh.common.core.domain.ResultDomain;
import org.xyzh.common.dto.study.TbCourseTag;
import org.xyzh.api.study.tag.CourseTagService;
import org.xyzh.study.mapper.CourseTagMapper;
/**
* @description 课程标签服务实现类
* @filename SCCourseTagServiceImpl.java
* @author system
* @copyright xyzh
* @since 2025-10-15
*/
@Service
public class SCCourseTagServiceImpl implements CourseTagService {
private static final Logger logger = LoggerFactory.getLogger(SCCourseTagServiceImpl.class);
@Autowired
private CourseTagMapper courseTagMapper;
@Override
public ResultDomain<Boolean> addCourseTag(String courseID, String tagID) {
// TODO Auto-generated method stub
return null;
}
@Override
public ResultDomain<TbCourseTag> createCourseTag(TbCourseTag courseTag) {
// TODO Auto-generated method stub
return null;
}
@Override
public ResultDomain<Boolean> deleteCourseTag(String tagID) {
// TODO Auto-generated method stub
return null;
}
@Override
public ResultDomain<TbCourseTag> getAllCourseTags() {
// TODO Auto-generated method stub
return null;
}
@Override
public ResultDomain<TbCourseTag> getCourseTags(String courseID) {
// TODO Auto-generated method stub
return null;
}
@Override
public ResultDomain<String> getCoursesByTag(String tagID) {
// TODO Auto-generated method stub
return null;
}
@Override
public ResultDomain<TbCourseTag> getTagById(String tagID) {
// TODO Auto-generated method stub
return null;
}
@Override
public ResultDomain<Boolean> removeCourseTag(String courseID, String tagID) {
// TODO Auto-generated method stub
return null;
}
@Override
public ResultDomain<TbCourseTag> updateCourseTag(TbCourseTag courseTag) {
// TODO Auto-generated method stub
return null;
}
}

View File

@@ -0,0 +1,87 @@
package org.xyzh.study.service.impl;
import java.math.BigDecimal;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.xyzh.common.core.domain.ResultDomain;
import org.xyzh.common.dto.study.TbLearningRecord;
import org.xyzh.api.study.record.LearningRecordService;
import org.xyzh.study.mapper.LearningRecordMapper;
/**
* @description 学习记录服务实现类
* @filename SCLearningRecordServiceImpl.java
* @author system
* @copyright xyzh
* @since 2025-10-15
*/
@Service
public class SCLearningRecordServiceImpl implements LearningRecordService {
private static final Logger logger = LoggerFactory.getLogger(SCLearningRecordServiceImpl.class);
@Autowired
private LearningRecordMapper learningRecordMapper;
@Override
public ResultDomain<Boolean> deleteLearningRecord(String recordID) {
// TODO Auto-generated method stub
return null;
}
@Override
public ResultDomain<TbLearningRecord> getResourceLearningRecords(Integer resourceType, String resourceID) {
// TODO Auto-generated method stub
return null;
}
@Override
public ResultDomain<TbLearningRecord> getTaskLearningStatistics(String taskID) {
// TODO Auto-generated method stub
return null;
}
@Override
public ResultDomain<TbLearningRecord> getUserLearningProgress(String userID, Integer resourceType,
String resourceID) {
// TODO Auto-generated method stub
return null;
}
@Override
public ResultDomain<TbLearningRecord> getUserLearningRecords(String userID, Integer resourceType, String taskID) {
// TODO Auto-generated method stub
return null;
}
@Override
public ResultDomain<TbLearningRecord> getUserLearningStatistics(String userID, Integer resourceType) {
// TODO Auto-generated method stub
return null;
}
@Override
public ResultDomain<TbLearningRecord> markLearningComplete(String userID, Integer resourceType, String resourceID,
String taskID) {
// TODO Auto-generated method stub
return null;
}
@Override
public ResultDomain<TbLearningRecord> saveLearningRecord(TbLearningRecord learningRecord) {
// TODO Auto-generated method stub
return null;
}
@Override
public ResultDomain<TbLearningRecord> updateLearningProgress(String userID, Integer resourceType, String resourceID,
BigDecimal progress, Integer duration) {
// TODO Auto-generated method stub
return null;
}
}

View File

@@ -0,0 +1,79 @@
package org.xyzh.study.service.impl;
import java.util.Date;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.xyzh.common.core.domain.ResultDomain;
import org.xyzh.common.dto.study.TbLearningStatistics;
import org.xyzh.study.mapper.LearningStatisticsMapper;
import org.xyzh.api.study.statistics.LearningStatisticsService;
/**
* @description 学习统计服务实现类
* @filename SCLearningStatisticsServiceImpl.java
* @author system
* @copyright xyzh
* @since 2025-10-15
*/
@Service
public class SCLearningStatisticsServiceImpl implements LearningStatisticsService {
private static final Logger logger = LoggerFactory.getLogger(SCLearningStatisticsServiceImpl.class);
@Autowired
private LearningStatisticsMapper learningStatisticsMapper;
@Override
public ResultDomain<Boolean> deleteLearningStatistics(String statisticsID) {
// TODO Auto-generated method stub
return null;
}
@Override
public ResultDomain<TbLearningStatistics> getDailyLearningStatistics(String userID, Date statDate) {
// TODO Auto-generated method stub
return null;
}
@Override
public ResultDomain<TbLearningStatistics> getDeptLearningStatistics(String deptID, Date startDate, Date endDate) {
// TODO Auto-generated method stub
return null;
}
@Override
public ResultDomain<TbLearningStatistics> getLearningRanking(Date statDate, Integer limit) {
// TODO Auto-generated method stub
return null;
}
@Override
public ResultDomain<TbLearningStatistics> getOverallLearningStatistics(Date startDate, Date endDate) {
// TODO Auto-generated method stub
return null;
}
@Override
public ResultDomain<TbLearningStatistics> getUserLearningStatistics(String userID, Date startDate, Date endDate) {
// TODO Auto-generated method stub
return null;
}
@Override
public ResultDomain<TbLearningStatistics> saveLearningStatistics(TbLearningStatistics statistics) {
// TODO Auto-generated method stub
return null;
}
@Override
public ResultDomain<TbLearningStatistics> updateLearningStatistics(String userID, Date statDate,
Integer totalDuration, Integer resourceCount, Integer courseCount, Integer completeCount) {
// TODO Auto-generated method stub
return null;
}
}

View File

@@ -0,0 +1,149 @@
package org.xyzh.study.service.impl;
import java.math.BigDecimal;
import java.util.List;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.xyzh.common.core.domain.ResultDomain;
import org.xyzh.common.dto.study.TbLearningTask;
import org.xyzh.common.dto.study.TbTaskUser;
import org.xyzh.common.dto.study.TbTaskCourse;
import org.xyzh.common.dto.study.TbTaskResource;
import org.xyzh.study.mapper.LearningTaskMapper;
import org.xyzh.study.mapper.TaskUserMapper;
import org.xyzh.study.mapper.TaskCourseMapper;
import org.xyzh.study.mapper.TaskResourceMapper;
import org.xyzh.api.study.task.LearningTaskService;
/**
* @description 学习任务服务实现类
* @filename SCLearningTaskServiceImpl.java
* @author system
* @copyright xyzh
* @since 2025-10-15
*/
@Service
public class SCLearningTaskServiceImpl implements LearningTaskService {
private static final Logger logger = LoggerFactory.getLogger(SCLearningTaskServiceImpl.class);
@Autowired
private LearningTaskMapper learningTaskMapper;
@Autowired
private TaskUserMapper taskUserMapper;
@Autowired
private TaskCourseMapper taskCourseMapper;
@Autowired
private TaskResourceMapper taskResourceMapper;
@Override
public ResultDomain<TbTaskCourse> addTaskCourse(TbTaskCourse taskCourse) {
// TODO Auto-generated method stub
return null;
}
@Override
public ResultDomain<TbTaskResource> addTaskResource(TbTaskResource taskResource) {
// TODO Auto-generated method stub
return null;
}
@Override
public ResultDomain<TbTaskUser> addTaskUser(TbTaskUser taskUser) {
// TODO Auto-generated method stub
return null;
}
@Override
public ResultDomain<TbTaskUser> batchAddTaskUsers(String taskID, List<String> userIDs, String deptID) {
// TODO Auto-generated method stub
return null;
}
@Override
public ResultDomain<TbLearningTask> createTask(TbLearningTask task) {
// TODO Auto-generated method stub
return null;
}
@Override
public ResultDomain<Boolean> deleteTask(String taskID) {
// TODO Auto-generated method stub
return null;
}
@Override
public ResultDomain<TbLearningTask> getTaskById(String taskID) {
// TODO Auto-generated method stub
return null;
}
@Override
public ResultDomain<TbTaskCourse> getTaskCourses(String taskID) {
// TODO Auto-generated method stub
return null;
}
@Override
public ResultDomain<TbLearningTask> getTaskList(TbLearningTask filter) {
// TODO Auto-generated method stub
return null;
}
@Override
public ResultDomain<TbTaskResource> getTaskResources(String taskID) {
// TODO Auto-generated method stub
return null;
}
@Override
public ResultDomain<TbTaskUser> getTaskUsers(String taskID) {
// TODO Auto-generated method stub
return null;
}
@Override
public ResultDomain<Boolean> removeTaskCourse(String taskID, String courseID) {
// TODO Auto-generated method stub
return null;
}
@Override
public ResultDomain<Boolean> removeTaskResource(String taskID, String resourceID) {
// TODO Auto-generated method stub
return null;
}
@Override
public ResultDomain<Boolean> removeTaskUser(String taskID, String userID) {
// TODO Auto-generated method stub
return null;
}
@Override
public ResultDomain<TbLearningTask> updateTask(TbLearningTask task) {
// TODO Auto-generated method stub
return null;
}
@Override
public ResultDomain<TbLearningTask> updateTaskStatus(String taskID, Integer status) {
// TODO Auto-generated method stub
return null;
}
@Override
public ResultDomain<TbTaskUser> updateTaskUserStatus(String taskID, String userID, Integer status,
BigDecimal progress) {
// TODO Auto-generated method stub
return null;
}
}