Browse Source

在线学习

yangfeng 1 year ago
parent
commit
6ecd089cb7

+ 52 - 0
web/src/main/java/com/ynfy/app/api/v1/controller/ApiCourseController.java

@@ -7,6 +7,7 @@ import com.ynfy.app.api.v1.util.TokenUtil;
 import com.ynfy.buss.course.course.entity.Course;
 import com.ynfy.buss.course.course.service.ICourseService;
 import com.ynfy.buss.course.coursecatalog.service.ICourseCatalogService;
+import com.ynfy.buss.course.usercoursecatalog.entity.vo.CatalogTimeVO;
 import com.ynfy.buss.course.usercoursecatalog.entity.vo.UserCourseStudyVO;
 import com.ynfy.buss.course.usercoursecatalog.service.IUserCourseCatalogService;
 import io.swagger.annotations.Api;
@@ -14,6 +15,7 @@ import io.swagger.annotations.ApiOperation;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.lang3.StringUtils;
 import org.jeecg.common.api.vo.Result;
+import org.jeecg.common.aspect.annotation.AutoLog;
 import org.jeecg.common.system.vo.LoginUser;
 import org.jeecg.modules.system.service.ISysPositionService;
 import org.jeecg.modules.system.service.ISysUserService;
@@ -120,4 +122,54 @@ public class ApiCourseController extends ApiBaseController {
         return Result.OK(course);
     }
 
+    /**
+     * 计算任务学习时长
+     *
+     * @return
+     */
+    @AutoLog(value = "计算任务学习时长")
+    @ApiOperation(value = "计算任务学习时长", notes = "计算任务学习时长")
+    @PostMapping(value = "/calcStudyTime")
+    public Result<String> calcStudyTime(@RequestBody CatalogTimeVO catalogTimeVO) {
+        userCourseCatalogService.calcStudyTime(catalogTimeVO, TokenUtil.getUserId(TokenUtil.getToken(request)));
+        return Result.OK();
+    }
+
+
+    /**
+     * 获取课程任务学习进度
+     *
+     * @return
+     */
+    @AutoLog(value = "获取课程任务学习进度")
+    @ApiOperation(value = "获取课程任务学习进度", notes = "获取课程任务学习进度")
+    @GetMapping(value = "/getCourseStudyProcess")
+    public Result<?> getCourseStudyProcess(@RequestParam String courseId) {
+        return Result.OK(userCourseCatalogService.getCourseStudyProcess(courseId));
+    }
+
+    /**
+     * 获取任务学习记录
+     *
+     * @return
+     */
+    @AutoLog(value = "获取任务学习记录")
+    @ApiOperation(value = "获取任务学习记录", notes = "获取任务学习记录")
+    @GetMapping(value = "/findUserCatalog")
+    public Result<?> findUserCatalog(@RequestParam String courseCatalogId) {
+        return Result.OK(userCourseCatalogService.findUserCatalog(TokenUtil.getUserId(TokenUtil.getToken(request)), courseCatalogId));
+    }
+
+    /**
+     * 检查上一个任务是否完成
+     *
+     * @param id
+     * @return
+     */
+    @GetMapping("/checkPreTaskComplete")
+    public Result<?> checkPreTaskComplete(@RequestParam String id) {
+        LoginUser user = sysUserService.getLoginUser(TokenUtil.getToken(request));
+        return Result.OK(courseCatalogService.checkPreTaskComplete(id, user));
+    }
+
 }

+ 4 - 1
web/src/main/java/com/ynfy/buss/course/coursecatalog/controller/CourseCatalogController.java

@@ -8,10 +8,12 @@ import com.ynfy.buss.course.coursecatalog.service.ICourseCatalogService;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import lombok.extern.slf4j.Slf4j;
+import org.apache.shiro.SecurityUtils;
 import org.jeecg.common.api.vo.Result;
 import org.jeecg.common.aspect.annotation.AutoLog;
 import org.jeecg.common.system.base.controller.JeecgController;
 import org.jeecg.common.system.query.QueryGenerator;
+import org.jeecg.common.system.vo.LoginUser;
 import org.jeecg.modules.system.entity.FileInfo;
 import org.jeecg.modules.system.service.IFileInfoService;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -183,7 +185,8 @@ public class CourseCatalogController extends JeecgController<CourseCatalog, ICou
      */
     @GetMapping("/checkPreTaskComplete")
     public Result<?> checkPreTaskComplete(@RequestParam String id) {
-        return Result.OK(courseCatalogService.checkPreTaskComplete(id));
+        LoginUser user = (LoginUser) SecurityUtils.getSubject().getPrincipal();
+        return Result.OK(courseCatalogService.checkPreTaskComplete(id, user));
     }
 
 }

+ 2 - 2
web/src/main/java/com/ynfy/buss/course/coursecatalog/service/ICourseCatalogService.java

@@ -2,6 +2,7 @@ package com.ynfy.buss.course.coursecatalog.service;
 
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.ynfy.buss.course.coursecatalog.entity.CourseCatalog;
+import org.jeecg.common.system.vo.LoginUser;
 
 import java.util.List;
 
@@ -30,10 +31,9 @@ public interface ICourseCatalogService extends IService<CourseCatalog> {
     /**
      * 检查上一个任务是否完成
      *
-     * @param id
      * @return
      */
-    boolean checkPreTaskComplete(String id);
+    boolean checkPreTaskComplete(String id, LoginUser user);
 
 
     /**

+ 1 - 2
web/src/main/java/com/ynfy/buss/course/coursecatalog/service/impl/CourseCatalogServiceImpl.java

@@ -126,8 +126,7 @@ public class CourseCatalogServiceImpl extends ServiceImpl<CourseCatalogMapper, C
      * @return
      */
     @Override
-    public boolean checkPreTaskComplete(String id) {
-        LoginUser user = (LoginUser) SecurityUtils.getSubject().getPrincipal();
+    public boolean checkPreTaskComplete(String id, LoginUser user) {
         CourseCatalog courseCatalog = getById(id);
         if (!Objects.isNull(courseCatalog)) {
             if (StringUtils.isNotBlank(courseCatalog.getParentId())) { //点击了目录下的任务

+ 2 - 1
web/src/main/java/com/ynfy/buss/course/usercoursecatalog/controller/UserCourseCatalogController.java

@@ -170,7 +170,8 @@ public class UserCourseCatalogController extends JeecgController<UserCourseCatal
     @ApiOperation(value = "计算任务学习时长", notes = "计算任务学习时长")
     @PostMapping(value = "/calcStudyTime")
     public Result<String> calcStudyTime(@RequestBody CatalogTimeVO catalogTimeVO) {
-        userCourseCatalogService.calcStudyTime(catalogTimeVO);
+        LoginUser user = (LoginUser) SecurityUtils.getSubject().getPrincipal();
+        userCourseCatalogService.calcStudyTime(catalogTimeVO, user.getId());
         return Result.OK();
     }
 

+ 1 - 1
web/src/main/java/com/ynfy/buss/course/usercoursecatalog/service/IUserCourseCatalogService.java

@@ -22,7 +22,7 @@ public interface IUserCourseCatalogService extends IService<UserCourseCatalog> {
      *
      * @return
      */
-    void calcStudyTime(CatalogTimeVO catalogTimeVO);
+    void calcStudyTime(CatalogTimeVO catalogTimeVO, String userId);
 
     UserCourseCatalog findUserCatalog(String userId, String courseCatalogId);
 

+ 5 - 5
web/src/main/java/com/ynfy/buss/course/usercoursecatalog/service/impl/UserCourseCatalogServiceImpl.java

@@ -49,19 +49,19 @@ public class UserCourseCatalogServiceImpl extends ServiceImpl<UserCourseCatalogM
      */
     @Override
     @Transactional(rollbackFor = Exception.class)
-    public synchronized void calcStudyTime(CatalogTimeVO catalogTimeVO) {
+    public synchronized void calcStudyTime(CatalogTimeVO catalogTimeVO, String userId) {
         if (Objects.isNull(catalogTimeVO.getCourseCatalog()) || StringUtils.isBlank(catalogTimeVO.getCourseCatalog().getId())
                 || Objects.isNull(catalogTimeVO.getStartLearnTime()) || Objects.isNull(catalogTimeVO.getEndLearnTime())) {
             return;
         }
         if (DateUtil.compare(catalogTimeVO.getEndLearnTime(), catalogTimeVO.getStartLearnTime()) > 0) {
-            LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
+
             CourseCatalog courseCatalog = catalogTimeVO.getCourseCatalog();
-            UserCourseCatalog userCourseCatalog = findUserCatalog(sysUser.getId(), courseCatalog.getId());
+            UserCourseCatalog userCourseCatalog = findUserCatalog(userId, courseCatalog.getId());
             if (Objects.isNull(userCourseCatalog)) {
                 userCourseCatalog = new UserCourseCatalog();
             }
-            userCourseCatalog.setUserId(sysUser.getId());
+            userCourseCatalog.setUserId(userId);
             userCourseCatalog.setCourseCatalogId(courseCatalog.getId());
             long between = DateUtil.between(catalogTimeVO.getStartLearnTime(), catalogTimeVO.getEndLearnTime(), DateUnit.SECOND);
             userCourseCatalog.setTotalLearnTime(Integer.parseInt(String.valueOf(((!Objects.isNull(userCourseCatalog.getTotalLearnTime())
@@ -117,7 +117,7 @@ public class UserCourseCatalogServiceImpl extends ServiceImpl<UserCourseCatalogM
     }
 
     @Override
-    public IPage<UserCourseCatalog> selectPageList(IPage<UserCourseCatalog> page, UserCourseCatalog userCourseCatalog){
+    public IPage<UserCourseCatalog> selectPageList(IPage<UserCourseCatalog> page, UserCourseCatalog userCourseCatalog) {
         return userCourseCatalogMapper.selectPageList(page, userCourseCatalog);
     }
 }