serv-学习任务
This commit is contained in:
@@ -71,7 +71,9 @@ INSERT INTO `tb_sys_menu` (id, menu_id, name, parent_id, url, component, icon, o
|
||||
('300', 'menu_study_plan', '学习计划', NULL, '/study-plan', 'study-plan/StudyPlanView', 'el-icon-reading', 3, 1, 'NavigationLayout', '1', now()),
|
||||
('301', 'menu_study_tasks', '学习任务', 'menu_study_plan', '/study-plan/tasks', 'study-plan/StudyTasksView', 'el-icon-s-order', 1, 1, 'NavigationLayout', '1', now()),
|
||||
('302', 'menu_course_center', '课程中心', 'menu_study_plan', '/study-plan/course', 'study-plan/CourseCenterView', 'el-icon-video-play', 2, 1, 'NavigationLayout', '1', now()),
|
||||
|
||||
('303', 'menu_task_detail', '任务详情', 'menu_study_plan', '/study-plan/task-detail', 'study-plan/LearningTaskDetailView', 'el-icon-document', 3, 3, 'BlankLayout', '1', now()),
|
||||
('304', 'menu_course_detail', '课程详情', 'menu_study_plan', '/study-plan/course-detail', 'study-plan/CourseDetailView', 'el-icon-video-play', 4, 3, 'BlankLayout', '1', now()),
|
||||
('305', 'menu_course_study', '课程学习', 'menu_study_plan', '/study-plan/course-study', 'study-plan/CourseStudyView', 'el-icon-video-play', 5, 3, 'BlankLayout', '1', now()),
|
||||
('400', 'menu_user_dropdown', '用户下拉菜单', NULL, '', '', 'el-icon-user', 4, 0, 'NavigationLayout', '1', now()),
|
||||
-- 个人中心
|
||||
('401', 'menu_user_center', '个人中心', 'menu_user_dropdown', '/user-center', 'user-center/UserCenterView', 'el-icon-user', 4, 1, 'NavigationLayout', '1', now()),
|
||||
@@ -107,9 +109,10 @@ INSERT INTO `tb_sys_menu` (id, menu_id, name, parent_id, url, component, icon, o
|
||||
('3002', 'menu_admin_article', '文章管理', 'menu_admin_resource_manage', '/admin/manage/resource/article', 'admin/manage/resource/ArticleManagementView', 'el-icon-document', 2, 1, 'NavigationLayout', '1', now()),
|
||||
('3003', 'menu_admin_data_records', '数据记录', 'menu_admin_resource_manage', '/admin/manage/resource/data-records', 'admin/manage/resource/DataRecordsView', 'el-icon-data-line', 3, 1, 'NavigationLayout', '1', now()),
|
||||
|
||||
|
||||
-- 文章相关
|
||||
('3010', 'menu_article_add', '文章添加', 'menu_admin_article', '/article/add', 'article/ArticleAddView', 'el-icon-plus', 1, 3, 'NavigationLayout', '1', now()),
|
||||
|
||||
('3011', 'menu_article_show', '文章展示', 'menu_admin_article', '/article/show', 'article/ArticleShowView', 'el-icon-document', 2, 3, 'NavigationLayout', '1', now()),
|
||||
-- 运营管理
|
||||
('4000', 'menu_admin_content_manage', '运营管理', NULL, '', '', 'el-icon-s-operation', 4, 1, '', '1', now()),
|
||||
('4001', 'menu_admin_banner', 'Banner管理', 'menu_admin_content_manage', '/admin/manage/content/banner', 'admin/manage/content/BannerManagementView', 'el-icon-picture', 1, 1, 'NavigationLayout', '1', now()),
|
||||
@@ -153,6 +156,10 @@ INSERT INTO `tb_sys_menu_permission` (id, permission_id, menu_id, creator, creat
|
||||
('118', 'perm_ai_manage', 'menu_ai_assistant', '1', now()),
|
||||
('119', 'perm_default', 'menu_user_dropdown', '1', now()),
|
||||
('120', 'perm_news_article_add', 'menu_article_add', '1', now()),
|
||||
('121', 'perm_default', 'menu_task_detail', '1', now()),
|
||||
('122', 'perm_default', 'menu_course_detail', '1', now()),
|
||||
('123', 'perm_default', 'menu_course_study', '1', now()),
|
||||
('124', 'perm_default', 'menu_article_show', '1', now()),
|
||||
|
||||
|
||||
-- 后端管理菜单权限关联
|
||||
|
||||
@@ -90,7 +90,7 @@ public interface CourseService {
|
||||
* @author yslg
|
||||
* @since 2025-10-15
|
||||
*/
|
||||
ResultDomain<TbCourse> incrementViewCount(String courseID);
|
||||
ResultDomain<Boolean> incrementViewCount(String courseID);
|
||||
|
||||
/**
|
||||
* @description 增加课程学习人数
|
||||
|
||||
@@ -140,6 +140,15 @@ public interface LearningTaskService {
|
||||
*/
|
||||
ResultDomain<TbTaskUser> updateTaskUserStatus(String taskID, String userID, Integer status, java.math.BigDecimal progress);
|
||||
|
||||
/**
|
||||
* @description 获取用户整体学习进度
|
||||
* @param userID 用户ID
|
||||
* @return ResultDomain<TaskVO> 学习进度
|
||||
* @author yslg
|
||||
* @since 2025-10-15
|
||||
*/
|
||||
ResultDomain<TaskVO> getUserProgress(String userID);
|
||||
|
||||
// ----------------任务课程相关--------------------------------
|
||||
|
||||
/**
|
||||
|
||||
@@ -16,6 +16,11 @@ public class TaskVO extends BaseDTO{
|
||||
private List<TaskItemVO> taskCourses;
|
||||
private List<TaskItemVO> taskResources;
|
||||
private List<TaskItemVO> taskUsers;
|
||||
private Integer totalTaskNum;
|
||||
private Integer completedTaskNum;
|
||||
private Integer learningTaskNum;
|
||||
private Integer notStartTaskNum;
|
||||
private Integer taskStatus;
|
||||
|
||||
public TbLearningTask getLearningTask() {
|
||||
return learningTask;
|
||||
@@ -42,6 +47,36 @@ public class TaskVO extends BaseDTO{
|
||||
this.taskUsers = taskUsers;
|
||||
}
|
||||
|
||||
public Integer getTotalTaskNum() {
|
||||
return totalTaskNum;
|
||||
}
|
||||
public void setTotalTaskNum(Integer totalTaskNum) {
|
||||
this.totalTaskNum = totalTaskNum;
|
||||
}
|
||||
public Integer getCompletedTaskNum() {
|
||||
return completedTaskNum;
|
||||
}
|
||||
public void setCompletedTaskNum(Integer completedTaskNum) {
|
||||
this.completedTaskNum = completedTaskNum;
|
||||
}
|
||||
public Integer getLearningTaskNum() {
|
||||
return learningTaskNum;
|
||||
}
|
||||
public void setLearningTaskNum(Integer learningTaskNum) {
|
||||
this.learningTaskNum = learningTaskNum;
|
||||
}
|
||||
public Integer getNotStartTaskNum() {
|
||||
return notStartTaskNum;
|
||||
}
|
||||
public void setNotStartTaskNum(Integer notStartTaskNum) {
|
||||
this.notStartTaskNum = notStartTaskNum;
|
||||
}
|
||||
public Integer getTaskStatus() {
|
||||
return taskStatus;
|
||||
}
|
||||
public void setTaskStatus(Integer taskStatus) {
|
||||
this.taskStatus = taskStatus;
|
||||
}
|
||||
public List<TbTaskCourse> toTaskCourses() {
|
||||
return getTaskCourses().stream().map(TaskItemVO::toTaskCourse).collect(Collectors.toList());
|
||||
}
|
||||
|
||||
@@ -75,7 +75,7 @@ public class CourseController {
|
||||
* 删除课程
|
||||
*/
|
||||
@DeleteMapping("/course")
|
||||
public ResultDomain<Boolean> deleteCourse(@PathVariable String courseID) {
|
||||
public ResultDomain<Boolean> deleteCourse(@PathVariable("courseID") String courseID) {
|
||||
return courseService.deleteCourse(courseID);
|
||||
}
|
||||
|
||||
@@ -103,7 +103,7 @@ public class CourseController {
|
||||
* 删除课程章节
|
||||
*/
|
||||
@DeleteMapping("/course/chapter/{chapterID}")
|
||||
public ResultDomain<Boolean> deleteChapter(@PathVariable String chapterID) {
|
||||
public ResultDomain<Boolean> deleteChapter(@PathVariable("chapterID") String chapterID) {
|
||||
return courseService.deleteChapter(chapterID);
|
||||
}
|
||||
|
||||
@@ -131,7 +131,7 @@ public class CourseController {
|
||||
* 删除课程章节节点
|
||||
*/
|
||||
@DeleteMapping("/course/chapter/node/{nodeID}")
|
||||
public ResultDomain<Boolean> deleteChapterNode(@PathVariable String nodeID) {
|
||||
public ResultDomain<Boolean> deleteChapterNode(@PathVariable("nodeID") String nodeID) {
|
||||
return courseService.deleteChapterNode(nodeID);
|
||||
}
|
||||
|
||||
@@ -147,7 +147,7 @@ public class CourseController {
|
||||
* 增加课程浏览次数
|
||||
*/
|
||||
@PostMapping("/{courseID}/view")
|
||||
public ResultDomain<TbCourse> incrementViewCount(@PathVariable String courseID) {
|
||||
public ResultDomain<Boolean> incrementViewCount(@PathVariable("courseID") String courseID) {
|
||||
return courseService.incrementViewCount(courseID);
|
||||
}
|
||||
|
||||
@@ -155,7 +155,7 @@ public class CourseController {
|
||||
* 增加课程学习人数
|
||||
*/
|
||||
@PostMapping("/{courseID}/learn")
|
||||
public ResultDomain<TbCourse> incrementLearnCount(@PathVariable String courseID) {
|
||||
public ResultDomain<TbCourse> incrementLearnCount(@PathVariable("courseID") String courseID) {
|
||||
return courseService.incrementLearnCount(courseID);
|
||||
}
|
||||
|
||||
|
||||
@@ -29,8 +29,8 @@ public class LearningRecordController {
|
||||
@GetMapping("/list")
|
||||
public ResultDomain<TbLearningRecord> getLearningRecords(
|
||||
@RequestParam(required = false) String userID,
|
||||
@RequestParam(required = false) String courseID,
|
||||
@RequestParam(required = false) String taskID) {
|
||||
@RequestParam(required = false) String resourceType,
|
||||
@RequestParam(required = false) String resourceID) {
|
||||
return null;
|
||||
// return learningRecordService.getLearningRecords(userID, courseID, taskID);
|
||||
}
|
||||
@@ -57,7 +57,7 @@ public class LearningRecordController {
|
||||
* 删除学习记录
|
||||
*/
|
||||
@DeleteMapping("/{recordID}")
|
||||
public ResultDomain<Boolean> deleteLearningRecord(@PathVariable String recordID) {
|
||||
public ResultDomain<Boolean> deleteLearningRecord(@PathVariable("recordID") String recordID) {
|
||||
return null;
|
||||
// return learningRecordService.deleteLearningRecord(recordID);
|
||||
}
|
||||
@@ -66,7 +66,7 @@ public class LearningRecordController {
|
||||
* 根据ID获取学习记录
|
||||
*/
|
||||
@GetMapping("/{recordID}")
|
||||
public ResultDomain<TbLearningRecord> getRecordById(@PathVariable String recordID) {
|
||||
public ResultDomain<TbLearningRecord> getRecordById(@PathVariable("recordID") String recordID) {
|
||||
return null;
|
||||
// return learningRecordService.getRecordById(recordID);
|
||||
}
|
||||
@@ -76,7 +76,7 @@ public class LearningRecordController {
|
||||
*/
|
||||
@PutMapping("/{recordID}/progress")
|
||||
public ResultDomain<TbLearningRecord> updateLearningProgress(
|
||||
@PathVariable String recordID,
|
||||
@PathVariable("recordID") String recordID,
|
||||
@RequestParam Integer progress) {
|
||||
return null;
|
||||
// return learningRecordService.updateLearningProgress(recordID, progress);
|
||||
@@ -86,7 +86,7 @@ public class LearningRecordController {
|
||||
* 完成学习
|
||||
*/
|
||||
@PostMapping("/{recordID}/complete")
|
||||
public ResultDomain<TbLearningRecord> completeLearning(@PathVariable String recordID) {
|
||||
public ResultDomain<TbLearningRecord> completeLearning(@PathVariable("recordID") String recordID) {
|
||||
return null;
|
||||
// return learningRecordService.completeLearning(recordID);
|
||||
}
|
||||
|
||||
@@ -19,6 +19,9 @@ import org.xyzh.common.dto.study.TbTaskCourse;
|
||||
import org.xyzh.common.dto.study.TbTaskResource;
|
||||
import org.springframework.web.bind.annotation.GetMapping;
|
||||
import org.springframework.web.bind.annotation.RequestParam;
|
||||
import org.springframework.web.bind.annotation.PostMapping;
|
||||
import org.springframework.web.bind.annotation.RequestBody;
|
||||
|
||||
|
||||
|
||||
/**
|
||||
@@ -145,4 +148,13 @@ public class LearningTaskController {
|
||||
return learningTaskService.getUserTaskPage(filter, pageParam);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 用户整体学习进度
|
||||
*/
|
||||
@PostMapping("/user/progress/{userID}")
|
||||
public ResultDomain<TaskVO> getUserProgress(@PathVariable("userID") String userID) {
|
||||
return learningTaskService.getUserProgress(userID);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -172,4 +172,13 @@ public interface CourseMapper extends BaseMapper<TbCourse> {
|
||||
* @since 2025-10-15
|
||||
*/
|
||||
long countCourses(@Param("filter") TbCourse filter);
|
||||
|
||||
/**
|
||||
* @description 增加课程浏览次数
|
||||
* @param courseID 课程ID
|
||||
* @return int 影响行数
|
||||
* @author yslg
|
||||
* @since 2025-10-15
|
||||
*/
|
||||
int incrementViewCount(@Param("courseID") String courseID);
|
||||
}
|
||||
|
||||
@@ -424,9 +424,16 @@ public class SCCourseServiceImpl implements SCCourseService {
|
||||
}
|
||||
|
||||
@Override
|
||||
public ResultDomain<TbCourse> incrementViewCount(String courseID) {
|
||||
// TODO: 实现增加课程浏览次数
|
||||
return null;
|
||||
public ResultDomain<Boolean> incrementViewCount(String courseID) {
|
||||
ResultDomain<Boolean> resultDomain = new ResultDomain<>();
|
||||
int result = courseMapper.incrementViewCount(courseID);
|
||||
if (result > 0) {
|
||||
resultDomain.success("增加课程浏览次数成功", true);
|
||||
return resultDomain;
|
||||
} else {
|
||||
resultDomain.fail("增加课程浏览次数失败");
|
||||
return resultDomain;
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -466,5 +466,20 @@ public class SCLearningTaskServiceImpl implements LearningTaskService {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public ResultDomain<TaskVO> getUserProgress(String userID) {
|
||||
ResultDomain<TaskVO> resultDomain = new ResultDomain<>();
|
||||
TaskVO taskVO = new TaskVO();
|
||||
|
||||
TbTaskUser fliter = new TbTaskUser();
|
||||
fliter.setUserID(userID);
|
||||
// 获取用户所有任务关联
|
||||
List<TbTaskUser> taskUsers = taskUserMapper.selectTaskUsers(fliter);
|
||||
taskVO.setCompletedTaskNum((int) taskUsers.stream().filter(item -> item.getStatus() == 2).count());
|
||||
taskVO.setLearningTaskNum((int) taskUsers.stream().filter(item -> item.getStatus() == 1).count());
|
||||
taskVO.setNotStartTaskNum((int) taskUsers.stream().filter(item -> item.getStatus() == 0).count());
|
||||
taskVO.setTotalTaskNum(taskUsers.size());
|
||||
resultDomain.success("获取用户整体学习进度成功", taskVO);
|
||||
return resultDomain;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -287,4 +287,9 @@
|
||||
<include refid="Filter_Clause" />
|
||||
</select>
|
||||
|
||||
<update id="incrementViewCount">
|
||||
UPDATE tb_course
|
||||
SET view_count = view_count + 1
|
||||
WHERE course_id = #{courseID} AND deleted = 0
|
||||
</update>
|
||||
</mapper>
|
||||
@@ -180,7 +180,7 @@
|
||||
SELECT
|
||||
<include refid="Base_Column_List"/>
|
||||
FROM tb_sys_user
|
||||
<include refid="Where_Clause"/>
|
||||
<include refid="Filter_Clause"/>
|
||||
ORDER BY create_time DESC
|
||||
LIMIT #{pageParam.pageSize} OFFSET #{pageParam.offset}
|
||||
</select>
|
||||
|
||||
@@ -28,7 +28,7 @@ public class UserCollectionController {
|
||||
*/
|
||||
@GetMapping("/user/{userID}")
|
||||
public ResultDomain<TbUserCollection> getUserCollections(
|
||||
@PathVariable String userID,
|
||||
@PathVariable("userID") String userID,
|
||||
@RequestParam(required = false) Integer resourceType,
|
||||
@RequestParam(required = false) String resourceID) {
|
||||
return userCollectionService.getUserCollections(userID, resourceType);
|
||||
@@ -69,7 +69,7 @@ public class UserCollectionController {
|
||||
*/
|
||||
@GetMapping("/count/{userID}")
|
||||
public ResultDomain<Integer> getCollectionCount(
|
||||
@PathVariable String userID,
|
||||
@PathVariable("userID") String userID,
|
||||
@RequestParam(required = false) Integer resourceType,
|
||||
@RequestParam(required = false) String resourceID) {
|
||||
return userCollectionService.getCollectionCount(userID, resourceType, resourceID);
|
||||
|
||||
Reference in New Issue
Block a user