Browse Source

学习记录接口

yangfeng 1 năm trước cách đây
mục cha
commit
1a6710b3c9

+ 4 - 5
web/src/main/java/com/ynfy/buss/course/usercoursecatalog/controller/UserCourseCatalogController.java

@@ -1,6 +1,5 @@
 package com.ynfy.buss.course.usercoursecatalog.controller;
 
-import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.ynfy.buss.course.usercoursecatalog.entity.UserCourseCatalog;
@@ -14,7 +13,6 @@ import org.apache.shiro.authz.annotation.RequiresPermissions;
 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.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
@@ -54,9 +52,10 @@ public class UserCourseCatalogController extends JeecgController<UserCourseCatal
                                                           @RequestParam(name = "pageNo", defaultValue = "1") Integer pageNo,
                                                           @RequestParam(name = "pageSize", defaultValue = "10") Integer pageSize,
                                                           HttpServletRequest req) {
-        QueryWrapper<UserCourseCatalog> queryWrapper = QueryGenerator.initQueryWrapper(userCourseCatalog, req.getParameterMap());
-        Page<UserCourseCatalog> page = new Page<UserCourseCatalog>(pageNo, pageSize);
-        IPage<UserCourseCatalog> pageList = userCourseCatalogService.page(page, queryWrapper);
+        Page<UserCourseCatalog> page = new Page<>(pageNo, pageSize);
+        LoginUser user = (LoginUser) SecurityUtils.getSubject().getPrincipal();
+        userCourseCatalog.setUserId(user.getId());
+        IPage<UserCourseCatalog> pageList = userCourseCatalogService.selectPageList(page, userCourseCatalog);
         return Result.OK(pageList);
     }
 

+ 7 - 0
web/src/main/java/com/ynfy/buss/course/usercoursecatalog/entity/UserCourseCatalog.java

@@ -1,6 +1,7 @@
 package com.ynfy.buss.course.usercoursecatalog.entity;
 
 import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
 import com.baomidou.mybatisplus.annotation.TableId;
 import com.baomidou.mybatisplus.annotation.TableName;
 import com.fasterxml.jackson.annotation.JsonFormat;
@@ -88,4 +89,10 @@ public class UserCourseCatalog implements Serializable {
     @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
     @ApiModelProperty(value = "更新日期")
     private Date updateTime;
+
+    @TableField(exist = false)
+    private String courseName;
+
+    @TableField(exist = false)
+    private String taskName;
 }

+ 36 - 0
web/src/main/java/com/ynfy/buss/course/usercoursecatalog/entity/dto/UserStudyDTO.java

@@ -0,0 +1,36 @@
+package com.ynfy.buss.course.usercoursecatalog.entity.dto;
+
+
+import lombok.Data;
+
+import java.util.Date;
+
+/**
+ * 交卷
+ */
+@Data
+public class UserStudyDTO {
+
+    //课程名称
+    private String courseName;
+
+
+    //任务名称
+    private String taskName;
+
+    /**
+     * 已学时长
+     */
+    private Integer totalLearnTime;
+
+    /**
+     * 学习进度
+     */
+    private Double learnProcess;
+
+
+    /**
+     * 最近学习
+     */
+    private Date lastLearnTime;
+}

+ 5 - 0
web/src/main/java/com/ynfy/buss/course/usercoursecatalog/mapper/UserCourseCatalogMapper.java

@@ -1,8 +1,10 @@
 package com.ynfy.buss.course.usercoursecatalog.mapper;
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.ynfy.buss.course.usercoursecatalog.entity.UserCourseCatalog;
 import com.ynfy.buss.course.usercoursecatalog.entity.vo.UserCourseStudyVO;
+import com.ynfy.buss.practice.userpractice.entity.UserPractice;
 import org.apache.ibatis.annotations.Param;
 
 import java.util.List;
@@ -25,4 +27,7 @@ public interface UserCourseCatalogMapper extends BaseMapper<UserCourseCatalog> {
      */
     List<UserCourseStudyVO> getUserCourseStudy(@Param("courseIds") List<String> courseIds, @Param("userId") String userId);
 
+
+    IPage<UserCourseCatalog> selectPageList(IPage<UserCourseCatalog> page, @Param("userCourseCatalog") UserCourseCatalog userCourseCatalog);
+
 }

+ 23 - 0
web/src/main/java/com/ynfy/buss/course/usercoursecatalog/mapper/xml/UserCourseCatalogMapper.xml

@@ -32,4 +32,27 @@
         GROUP BY
         cc.course_id
     </select>
+
+    <select id="selectPageList" resultType="com.ynfy.buss.course.usercoursecatalog.entity.dto.UserStudyDTO">
+        SELECT
+            ucc.*,
+            c.name as courseName,
+            cc.name as taskName,
+            case when ucc.update_time is not null then ucc.update_time else ucc.create_time end as lastLearnTime
+        FROM user_course_catalog ucc
+        LEFT JOIN course_catalog cc on cc.id=ucc.course_catalog_id
+        LEFT JOIN course c on cc.course_id = c.id
+        <where>
+            <if test="userCourseCatalog.courseName != null and userCourseCatalog.courseName != ''">
+                AND c.name like concat('%', #{userCourseCatalog.courseName}, '%')
+            </if>
+            <if test="userCourseCatalog.taskName != null and userCourseCatalog.taskName != ''">
+                AND cc.name like concat('%', #{userCourseCatalog.taskName}, '%')
+            </if>
+            <if test="userCourseCatalog.userId != null and userCourseCatalog.userId != ''">
+                AND ucc.user_id = #{userCourseCatalog.userId}
+            </if>
+        ORDER by lastLearnTime desc
+        </where>
+    </select>
 </mapper>

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

@@ -1,9 +1,11 @@
 package com.ynfy.buss.course.usercoursecatalog.service;
 
+import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.ynfy.buss.course.usercoursecatalog.entity.vo.UserCourseStudyVO;
 import com.ynfy.buss.course.usercoursecatalog.entity.UserCourseCatalog;
 import com.ynfy.buss.course.usercoursecatalog.entity.vo.CatalogTimeVO;
+import com.ynfy.buss.practice.userpractice.entity.UserPractice;
 
 import java.util.List;
 
@@ -41,4 +43,8 @@ public interface IUserCourseCatalogService extends IService<UserCourseCatalog> {
      * @return
      */
     List<UserCourseStudyVO> getUserCourseStudy(List<String> courseIds, String userId);
+
+
+    IPage<UserCourseCatalog> selectPageList(IPage<UserCourseCatalog> page, UserCourseCatalog userCourseCatalog);
+
 }

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

@@ -4,6 +4,7 @@ import cn.hutool.core.date.DateUnit;
 import cn.hutool.core.date.DateUtil;
 import cn.hutool.core.util.NumberUtil;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.ynfy.buss.course.usercoursecatalog.entity.vo.UserCourseStudyVO;
 import com.ynfy.buss.course.coursecatalog.entity.CourseCatalog;
@@ -12,6 +13,7 @@ import com.ynfy.buss.course.usercoursecatalog.entity.UserCourseCatalog;
 import com.ynfy.buss.course.usercoursecatalog.entity.vo.CatalogTimeVO;
 import com.ynfy.buss.course.usercoursecatalog.mapper.UserCourseCatalogMapper;
 import com.ynfy.buss.course.usercoursecatalog.service.IUserCourseCatalogService;
+import com.ynfy.buss.practice.userpractice.entity.UserPractice;
 import org.apache.commons.lang3.StringUtils;
 import org.apache.shiro.SecurityUtils;
 import org.jeecg.common.system.vo.LoginUser;
@@ -113,4 +115,9 @@ public class UserCourseCatalogServiceImpl extends ServiceImpl<UserCourseCatalogM
     public List<UserCourseStudyVO> getUserCourseStudy(List<String> courseIds, String userId) {
         return userCourseCatalogMapper.getUserCourseStudy(courseIds, userId);
     }
+
+    @Override
+    public IPage<UserCourseCatalog> selectPageList(IPage<UserCourseCatalog> page, UserCourseCatalog userCourseCatalog){
+        return userCourseCatalogMapper.selectPageList(page, userCourseCatalog);
+    }
 }