浏览代码

我的学时

change 3 年之前
父节点
当前提交
b19aa707d1
共有 18 个文件被更改,包括 444 次插入15 次删除
  1. 41 2
      zhongzheng-api/src/main/java/com/zhongzheng/controller/course/CourseController.java
  2. 16 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/course/bo/CourseMenuQueryBo.java
  3. 6 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/course/mapper/CourseMenuMapper.java
  4. 4 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/course/mapper/CourseModuleChapterMapper.java
  5. 3 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/course/service/ICourseChapterSectionService.java
  6. 3 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/course/service/ICourseMenuService.java
  7. 4 4
      zhongzheng-system/src/main/java/com/zhongzheng/modules/course/service/ICourseModuleChapterService.java
  8. 6 4
      zhongzheng-system/src/main/java/com/zhongzheng/modules/course/service/impl/CourseChapterSectionServiceImpl.java
  9. 15 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/course/service/impl/CourseMenuServiceImpl.java
  10. 7 4
      zhongzheng-system/src/main/java/com/zhongzheng/modules/course/service/impl/CourseModuleChapterServiceImpl.java
  11. 74 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/course/vo/CourseUserChapterSectionVo.java
  12. 70 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/course/vo/CourseUserMenuVo.java
  13. 68 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/course/vo/CourseUserModuleChapterVo.java
  14. 18 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/user/service/impl/UserExamGoodsServiceImpl.java
  15. 10 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/user/vo/UserExamGoodsVo.java
  16. 64 0
      zhongzheng-system/src/main/resources/mapper/modules/course/CourseMenuMapper.xml
  17. 29 1
      zhongzheng-system/src/main/resources/mapper/modules/course/CourseModuleChapterMapper.xml
  18. 6 0
      zhongzheng-system/src/main/resources/mapper/modules/user/UserSubscribeMapper.xml

+ 41 - 2
zhongzheng-api/src/main/java/com/zhongzheng/controller/course/CourseController.java

@@ -9,10 +9,13 @@ import com.zhongzheng.common.utils.ServletUtils;
 import com.zhongzheng.framework.web.service.WxTokenService;
 import com.zhongzheng.modules.course.bo.CourseAddBo;
 import com.zhongzheng.modules.course.bo.CourseEditBo;
+import com.zhongzheng.modules.course.bo.CourseMenuQueryBo;
 import com.zhongzheng.modules.course.bo.CourseQueryBo;
+import com.zhongzheng.modules.course.service.ICourseChapterSectionService;
+import com.zhongzheng.modules.course.service.ICourseMenuService;
+import com.zhongzheng.modules.course.service.ICourseModuleChapterService;
 import com.zhongzheng.modules.course.service.ICourseService;
-import com.zhongzheng.modules.course.vo.CourseUserVo;
-import com.zhongzheng.modules.course.vo.CourseVo;
+import com.zhongzheng.modules.course.vo.*;
 import com.zhongzheng.modules.goods.vo.GoodsUserVo;
 import com.zhongzheng.modules.goods.vo.GoodsVo;
 import com.zhongzheng.modules.user.entity.ClientLoginUser;
@@ -39,6 +42,9 @@ public class CourseController extends BaseController {
 
     private final ICourseService iCourseService;
     private final WxTokenService wxTokenService;
+    private final ICourseModuleChapterService iCourseModuleChapterService;
+    private final ICourseMenuService iCourseMenuService;
+    private final ICourseChapterSectionService iCourseChapterSectionService;
 
     /**
      * 查询课程列表
@@ -66,5 +72,38 @@ public class CourseController extends BaseController {
         return getDataTable(list);
     }
 
+    /**
+     * 查询课程目录结构列表
+     */
+    @ApiOperation("查询课程目录结构列表")
+    @GetMapping("/menuList")
+    public TableDataInfo<CourseUserMenuVo> menuList(CourseMenuQueryBo bo) {
+        startPage();
+        ClientLoginUser loginUser = wxTokenService.getLoginUser(ServletUtils.getRequest());
+        bo.setUserId(loginUser.getUser().getUserId());
+        List<CourseUserMenuVo> list = iCourseMenuService.menuList(bo);
+        return getDataTable(list);
+    }
 
+
+    @ApiOperation("查询模块与章关系列表")
+    @GetMapping("/chapterList")
+    public AjaxResult<List<CourseUserModuleChapterVo>> chapterList(CourseMenuQueryBo bo) {
+        ClientLoginUser loginUser = wxTokenService.getLoginUser(ServletUtils.getRequest());
+        bo.setUserId(loginUser.getUser().getUserId());
+        List<CourseUserModuleChapterVo> list = iCourseModuleChapterService.chapterList(bo);
+        return AjaxResult.success(list);
+    }
+
+    /**
+     * 查询章与节关系列表
+     */
+    @ApiOperation("查询章与节关系列表+章卷同级展示")
+    @GetMapping("/sectionList")
+    public AjaxResult<List<CourseChapterSectionVo>> sectionList(CourseMenuQueryBo bo) {
+        ClientLoginUser loginUser = wxTokenService.getLoginUser(ServletUtils.getRequest());
+        bo.setUserId(loginUser.getUser().getUserId());
+        List<CourseChapterSectionVo> list = iCourseChapterSectionService.sectionList(bo);
+        return AjaxResult.success(list);
+    }
 }

+ 16 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/course/bo/CourseMenuQueryBo.java

@@ -51,4 +51,20 @@ public class CourseMenuQueryBo extends BaseEntity {
 	/** 状态 1正常 0关闭 */
 	@ApiModelProperty("状态 1正常 0关闭")
 	private Integer status;
+
+	/** 用户Id */
+	@ApiModelProperty("用户Id")
+	private Long userId;
+
+	/** 班级Id */
+	@ApiModelProperty("班级Id")
+	private Long gradeId;
+
+	/** 模块Id */
+	@ApiModelProperty("模块Id")
+	private Long moduleId;
+
+	/** 章Id */
+	@ApiModelProperty("章Id")
+	private Long chapterId;
 }

+ 6 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/course/mapper/CourseMenuMapper.java

@@ -4,7 +4,9 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.zhongzheng.modules.course.bo.CourseMenuQueryBo;
 import com.zhongzheng.modules.course.domain.CourseMenu;
 import com.zhongzheng.modules.course.vo.CourseMenuVo;
+import com.zhongzheng.modules.course.vo.CourseUserMenuVo;
 import com.zhongzheng.modules.course.vo.CourseVo;
+import org.apache.ibatis.annotations.Param;
 
 import java.util.List;
 
@@ -16,4 +18,8 @@ import java.util.List;
  */
 public interface CourseMenuMapper extends BaseMapper<CourseMenu> {
     List<CourseMenuVo> selectList(CourseMenuQueryBo bo);
+
+    List<CourseUserMenuVo> menuList(CourseMenuQueryBo bo);
+
+    Integer rebuildCheck(@Param("sectionId") Long id,@Param("gradeId") Long gradeId,@Param("userId")Long userId);
 }

+ 4 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/course/mapper/CourseModuleChapterMapper.java

@@ -1,9 +1,11 @@
 package com.zhongzheng.modules.course.mapper;
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.zhongzheng.modules.course.bo.CourseMenuQueryBo;
 import com.zhongzheng.modules.course.domain.CourseModuleChapter;
 import com.zhongzheng.modules.course.vo.CourseChapterSectionVo;
 import com.zhongzheng.modules.course.vo.CourseModuleChapterVo;
+import com.zhongzheng.modules.course.vo.CourseUserModuleChapterVo;
 
 import java.util.List;
 
@@ -15,4 +17,6 @@ import java.util.List;
  */
 public interface CourseModuleChapterMapper extends BaseMapper<CourseModuleChapter> {
     List<CourseModuleChapterVo> getListById(Long id);
+
+    List<CourseUserModuleChapterVo> chapterList(CourseMenuQueryBo bo);
 }

+ 3 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/course/service/ICourseChapterSectionService.java

@@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.extension.service.IService;
 import com.zhongzheng.modules.course.bo.CourseChapterSectionAddBo;
 import com.zhongzheng.modules.course.bo.CourseChapterSectionEditBo;
 import com.zhongzheng.modules.course.bo.CourseChapterSectionQueryBo;
+import com.zhongzheng.modules.course.bo.CourseMenuQueryBo;
 import com.zhongzheng.modules.course.domain.CourseChapterSection;
 import com.zhongzheng.modules.course.vo.CourseChapterSectionVo;
 
@@ -54,4 +55,6 @@ public interface ICourseChapterSectionService extends IService<CourseChapterSect
 	 * @return
 	 */
 	Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
+
+    List<CourseChapterSectionVo> sectionList(CourseMenuQueryBo bo);
 }

+ 3 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/course/service/ICourseMenuService.java

@@ -7,6 +7,7 @@ import com.zhongzheng.modules.course.bo.CourseMenuListAddBo;
 import com.zhongzheng.modules.course.bo.CourseMenuQueryBo;
 import com.zhongzheng.modules.course.domain.CourseMenu;
 import com.zhongzheng.modules.course.vo.CourseMenuVo;
+import com.zhongzheng.modules.course.vo.CourseUserMenuVo;
 
 import java.util.Collection;
 import java.util.List;
@@ -52,4 +53,6 @@ public interface ICourseMenuService extends IService<CourseMenu> {
 	 * @return
 	 */
 	Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
+
+	List<CourseUserMenuVo> menuList(CourseMenuQueryBo bo);
 }

+ 4 - 4
zhongzheng-system/src/main/java/com/zhongzheng/modules/course/service/ICourseModuleChapterService.java

@@ -1,14 +1,12 @@
 package com.zhongzheng.modules.course.service;
 
 import com.baomidou.mybatisplus.extension.service.IService;
-import com.zhongzheng.modules.course.bo.CourseModuleChapterAddBo;
-import com.zhongzheng.modules.course.bo.CourseModuleChapterEditBo;
-import com.zhongzheng.modules.course.bo.CourseModuleChapterQueryBo;
-import com.zhongzheng.modules.course.bo.CourseSectionQueryBo;
+import com.zhongzheng.modules.course.bo.*;
 import com.zhongzheng.modules.course.domain.CourseModuleChapter;
 import com.zhongzheng.modules.course.vo.CourseChapterSectionVo;
 import com.zhongzheng.modules.course.vo.CourseModuleChapterVo;
 import com.zhongzheng.modules.course.vo.CourseSectionVo;
+import com.zhongzheng.modules.course.vo.CourseUserModuleChapterVo;
 
 import java.util.Collection;
 import java.util.List;
@@ -54,4 +52,6 @@ public interface ICourseModuleChapterService extends IService<CourseModuleChapte
 	 * @return
 	 */
 	Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
+
+    List<CourseUserModuleChapterVo> chapterList(CourseMenuQueryBo bo);
 }

+ 6 - 4
zhongzheng-system/src/main/java/com/zhongzheng/modules/course/service/impl/CourseChapterSectionServiceImpl.java

@@ -3,10 +3,7 @@ package com.zhongzheng.modules.course.service.impl;
 import cn.hutool.core.bean.BeanUtil;
 import cn.hutool.core.util.StrUtil;
 import com.zhongzheng.common.utils.DateUtils;
-import com.zhongzheng.modules.course.bo.CourseChapterBusinessAddBo;
-import com.zhongzheng.modules.course.bo.CourseChapterSectionAddBo;
-import com.zhongzheng.modules.course.bo.CourseChapterSectionEditBo;
-import com.zhongzheng.modules.course.bo.CourseChapterSectionQueryBo;
+import com.zhongzheng.modules.course.bo.*;
 import com.zhongzheng.modules.course.domain.CourseChapterSection;
 import com.zhongzheng.modules.course.domain.CourseStreamingBusiness;
 import com.zhongzheng.modules.course.mapper.CourseChapterMapper;
@@ -128,4 +125,9 @@ public class CourseChapterSectionServiceImpl extends ServiceImpl<CourseChapterSe
         }
         return this.removeByIds(ids);
     }
+
+    @Override
+    public List<CourseChapterSectionVo> sectionList(CourseMenuQueryBo bo) {
+        return null;
+    }
 }

+ 15 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/course/service/impl/CourseMenuServiceImpl.java

@@ -14,6 +14,7 @@ import com.zhongzheng.modules.course.mapper.CourseMenuMapper;
 import com.zhongzheng.modules.course.service.ICourseMenuExamService;
 import com.zhongzheng.modules.course.service.ICourseMenuService;
 import com.zhongzheng.modules.course.vo.CourseMenuVo;
+import com.zhongzheng.modules.course.vo.CourseUserMenuVo;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
@@ -164,4 +165,18 @@ public class CourseMenuServiceImpl extends ServiceImpl<CourseMenuMapper, CourseM
         }
         return this.removeByIds(ids);
     }
+
+    @Override
+    public List<CourseUserMenuVo> menuList(CourseMenuQueryBo bo) {
+        List<CourseUserMenuVo> courseMenuVos = baseMapper.menuList(bo);
+        for (CourseUserMenuVo courseMenuVo : courseMenuVos) {
+            if (courseMenuVo.getType().equals(3)){
+                Integer rebuild = baseMapper.rebuildCheck(courseMenuVo.getId(),courseMenuVo.getGradeId(),bo.getUserId());
+                if (rebuild > 0){
+                    courseMenuVo.setRebuild(1);
+                }
+            }
+        }
+        return courseMenuVos;
+    }
 }

+ 7 - 4
zhongzheng-system/src/main/java/com/zhongzheng/modules/course/service/impl/CourseModuleChapterServiceImpl.java

@@ -3,10 +3,7 @@ package com.zhongzheng.modules.course.service.impl;
 import cn.hutool.core.bean.BeanUtil;
 import cn.hutool.core.util.StrUtil;
 import com.zhongzheng.common.utils.DateUtils;
-import com.zhongzheng.modules.course.bo.CourseModuleChapterAddBo;
-import com.zhongzheng.modules.course.bo.CourseModuleChapterEditBo;
-import com.zhongzheng.modules.course.bo.CourseModuleChapterQueryBo;
-import com.zhongzheng.modules.course.bo.CourseSectionQueryBo;
+import com.zhongzheng.modules.course.bo.*;
 import com.zhongzheng.modules.course.domain.CourseModuleChapter;
 import com.zhongzheng.modules.course.mapper.CourseChapterSectionMapper;
 import com.zhongzheng.modules.course.mapper.CourseModuleChapterMapper;
@@ -14,6 +11,7 @@ import com.zhongzheng.modules.course.service.ICourseModuleChapterService;
 import com.zhongzheng.modules.course.vo.CourseChapterSectionVo;
 import com.zhongzheng.modules.course.vo.CourseModuleChapterVo;
 import com.zhongzheng.modules.course.vo.CourseSectionVo;
+import com.zhongzheng.modules.course.vo.CourseUserModuleChapterVo;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
@@ -108,4 +106,9 @@ public class CourseModuleChapterServiceImpl extends ServiceImpl<CourseModuleChap
         }
         return this.removeByIds(ids);
     }
+
+    @Override
+    public List<CourseUserModuleChapterVo> chapterList(CourseMenuQueryBo bo) {
+        return baseMapper.chapterList(bo);
+    }
 }

+ 74 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/course/vo/CourseUserChapterSectionVo.java

@@ -0,0 +1,74 @@
+package com.zhongzheng.modules.course.vo;
+
+import com.zhongzheng.common.annotation.Excel;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+
+/**
+ * 章与节关系视图对象 mall_package
+ *
+ * @author hjl
+ * @date 2021-10-12
+ */
+@Data
+@ApiModel("章与节关系视图对象")
+public class CourseUserChapterSectionVo {
+	private static final long serialVersionUID = 1L;
+
+	/** $pkColumn.columnComment */
+	@ApiModelProperty("$pkColumn.columnComment")
+	private Long id;
+
+	/** 节id */
+	@Excel(name = "节id")
+	@ApiModelProperty("节id")
+	private Long sectionId;
+	/** 章ID */
+	@Excel(name = "章ID")
+	@ApiModelProperty("章ID")
+	private Long chapterId;
+
+	@Excel(name = "班级ID")
+	@ApiModelProperty("班级ID")
+	private Long gradeId;
+
+	/** 编码 */
+	@Excel(name = "编码")
+	@ApiModelProperty("编码")
+	private String code;
+	/** 名称 */
+	@Excel(name = "名称")
+	@ApiModelProperty("名称")
+	private String name;
+	/** 前缀名称 */
+	@Excel(name = "前缀名称")
+	@ApiModelProperty("前缀名称")
+	private String prefixName;
+	/** 状态 1正常 0关闭 */
+	@Excel(name = "状态 1正常 0关闭")
+	@ApiModelProperty("状态 1正常 0关闭")
+	private Integer status;
+	/** 节类型 1录播 2直播 3回放 */
+	@Excel(name = "节类型 1录播 2直播 3回放")
+	@ApiModelProperty("节类型 1录播 2直播 3回放")
+	private Integer sectionType;
+	/** 发布状态 1发布 0未发布 */
+	@Excel(name = "发布状态 1发布 0未发布")
+	@ApiModelProperty("发布状态 1发布 0未发布")
+	private Integer publishStatus;
+	/** $column.columnComment */
+	@Excel(name = "排序")
+	@ApiModelProperty("$column.columnComment")
+	private Long sort;
+	/** 节时长(分钟) */
+	@Excel(name = "节时长(分钟)")
+	@ApiModelProperty("节时长(分钟)")
+	private Long durationTime;
+
+	/** 1模块卷 2章卷 3试卷 */
+	@Excel(name = "1模块卷 2章卷 3试卷")
+	@ApiModelProperty("1模块卷 2章卷 3试卷")
+	private Integer type;
+}

+ 70 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/course/vo/CourseUserMenuVo.java

@@ -0,0 +1,70 @@
+package com.zhongzheng.modules.course.vo;
+
+import com.zhongzheng.common.annotation.Excel;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.List;
+
+
+/**
+ * 课程目录结构视图对象 mall_package
+ *
+ * @author hjl
+ * @date 2021-10-12
+ */
+@Data
+@ApiModel("课程目录结构视图对象")
+public class CourseUserMenuVo {
+	private static final long serialVersionUID = 1L;
+
+	/** $pkColumn.columnComment */
+	@ApiModelProperty("$pkColumn.columnComment")
+	private Long id;
+
+	/** 课程ID */
+	@Excel(name = "课程ID")
+	@ApiModelProperty("课程ID")
+	private Long courseId;
+
+	/** 课程ID */
+	@Excel(name = "班级ID")
+	@ApiModelProperty("班级ID")
+	private Long gradeId;
+	/** 目录id */
+	@Excel(name = "目录id")
+	@ApiModelProperty("目录id")
+	private Long menuId;
+	/** 1模块 2章 3节 */
+	@Excel(name = "1模块 2章 3节")
+	@ApiModelProperty("1模块 2章 3节")
+	private Integer type;
+	/** 父id ,type为1时父id才是0 */
+	@Excel(name = "父id ,type为1时父id才是0")
+	@ApiModelProperty("父id ,type为1时父id才是0")
+	private Long parentId;
+	/** 状态 1正常 0关闭 */
+	@Excel(name = "状态 1正常 0关闭")
+	@ApiModelProperty("状态 1正常 0关闭")
+	private Integer status;
+	@ApiModelProperty("目录名称")
+	private String menuName;
+	/** 节时长(分钟) */
+	@Excel(name = "节时长(分钟)")
+	@ApiModelProperty("节时长(分钟)")
+	private Long durationTime;
+	private Integer sort;
+	@ApiModelProperty("1要重修")
+	private Integer rebuild;
+
+	/** 章模块关系 */
+	@Excel(name = "章模块关系")
+	@ApiModelProperty("章模块关系")
+	private List<CourseModuleChapterVo> courseModuleChapterVos;
+
+	@Excel(name = "章下面的节")
+	@ApiModelProperty("章下面的节")
+	private List<CourseChapterSectionVo> courseChapterSectionList;
+
+}

+ 68 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/course/vo/CourseUserModuleChapterVo.java

@@ -0,0 +1,68 @@
+package com.zhongzheng.modules.course.vo;
+
+import com.zhongzheng.common.annotation.Excel;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.List;
+
+
+/**
+ * 模块与章关系视图对象 mall_package
+ *
+ * @author hjl
+ * @date 2021-10-11
+ */
+@Data
+@ApiModel("模块与章关系视图对象")
+public class CourseUserModuleChapterVo {
+	private static final long serialVersionUID = 1L;
+
+	/** $pkColumn.columnComment */
+	@ApiModelProperty("$pkColumn.columnComment")
+	private Long id;
+
+	/** 模块id */
+	@Excel(name = "模块id")
+	@ApiModelProperty("模块id")
+	private Long moduleId;
+	/** 章ID */
+	@Excel(name = "章ID")
+	@ApiModelProperty("章ID")
+	private Long chapterId;
+
+	/** 班级ID */
+	@Excel(name = "班级ID")
+	@ApiModelProperty("班级ID")
+	private Long gradeId;
+
+	/** 编码 */
+	@Excel(name = "编码")
+	@ApiModelProperty("编码")
+	private String code;
+	/** 名称 */
+	@Excel(name = "名称")
+	@ApiModelProperty("名称")
+	private String name;
+	/** 前缀名称 */
+	@Excel(name = "前缀名称")
+	@ApiModelProperty("前缀名称")
+	private String prefixName;
+	/** 状态 1正常 0关闭 */
+	@Excel(name = "状态 1正常 0关闭")
+	@ApiModelProperty("状态 1正常 0关闭")
+	private Integer status;
+	/** 发布状态 1发布 0未发布 */
+	@Excel(name = "发布状态 1发布 0未发布")
+	@ApiModelProperty("发布状态 1发布 0未发布")
+	private Integer publishStatus;
+	/** $column.columnComment */
+	@Excel(name = "排序")
+	@ApiModelProperty("$column.columnComment")
+	private Long sort;
+
+	@Excel(name = "章下面的节")
+	@ApiModelProperty("章下面的节")
+	private List<CourseChapterSectionVo> courseChapterSectionList;
+}

+ 18 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/user/service/impl/UserExamGoodsServiceImpl.java

@@ -4,7 +4,12 @@ import cn.hutool.core.bean.BeanUtil;
 import cn.hutool.core.util.StrUtil;
 import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
 import com.zhongzheng.common.utils.DateUtils;
+import com.zhongzheng.modules.user.bo.UserSubscribeQueryBo;
+import com.zhongzheng.modules.user.mapper.UserSubscribeMapper;
+import com.zhongzheng.modules.user.service.IUserSubscribeService;
 import com.zhongzheng.modules.user.vo.UserExamGoodsSupplementVo;
+import com.zhongzheng.modules.user.vo.UserSubscribeVo;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
@@ -32,6 +37,9 @@ import java.util.stream.Collectors;
 @Service
 public class UserExamGoodsServiceImpl extends ServiceImpl<UserExamGoodsMapper, UserExamGoods> implements IUserExamGoodsService {
 
+    @Autowired
+    private UserSubscribeMapper userSubscribeMapper;
+
     @Override
     public UserExamGoodsVo queryById(Long userExamGoodsId){
         UserExamGoods db = this.baseMapper.selectById(userExamGoodsId);
@@ -114,7 +122,17 @@ public class UserExamGoodsServiceImpl extends ServiceImpl<UserExamGoodsMapper, U
             UserExamGoodsVo userExamGoodsVos = userExamGoodsVo.get(0);
             List<UserExamGoodsSupplementVo> userExamGoodsSupplement = baseMapper.getUserExam(userExamGoodsVos.getUserExamGoodsId(), 1L);
             List<UserExamGoodsSupplementVo> userExamGoodsSupplementVos = baseMapper.getUserExam(userExamGoodsVos.getUserExamGoodsId(), 2L);
+            UserSubscribeQueryBo userSubscribeQueryBo = new UserSubscribeQueryBo();
+            userSubscribeQueryBo.setUserId(userExamGoodsVos.getUserId());
+            userSubscribeQueryBo.setGoodsId(userExamGoodsVos.getGoodsId());
+            userSubscribeQueryBo.setExamExpend(1);
+            List<UserSubscribeVo> userSubscribe = userSubscribeMapper.listSubscribe(userSubscribeQueryBo);
+            userSubscribeQueryBo.setExamExpend(null);
+            userSubscribeQueryBo.setBeforeExpend(1);
+            List<UserSubscribeVo> userSubscribeVos = userSubscribeMapper.listSubscribe(userSubscribeQueryBo);
             userExamGoodsVos.setUserExamGoodsSupplementVos(userExamGoodsSupplementVos);
+            userExamGoodsVos.setUserSubscribe(userSubscribe);
+            userExamGoodsVos.setUserSubscribeVos(userSubscribeVos);
             userExamGoodsVos.setUserExamGoodsSupplement(userExamGoodsSupplement);
             return userExamGoodsVos;
         }

+ 10 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/user/vo/UserExamGoodsVo.java

@@ -83,4 +83,14 @@ public class UserExamGoodsVo {
 	@Excel(name = "前培商品")
 	@ApiModelProperty("前培商品自带前培次数")
 	private List<UserExamGoodsSupplementVo> userExamGoodsSupplementVos;
+
+	/** 已消耗前培次数 */
+	@Excel(name = "消耗考试次数")
+	@ApiModelProperty("消耗考试次数")
+	private List<UserSubscribeVo> userSubscribe;
+
+	/** 已消耗前培次数 */
+	@Excel(name = "消耗前培次数")
+	@ApiModelProperty("消耗前培次数")
+	private List<UserSubscribeVo> userSubscribeVos;
 }

+ 64 - 0
zhongzheng-system/src/main/resources/mapper/modules/course/CourseMenuMapper.xml

@@ -28,6 +28,19 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         <result property="sort" column="sort"/>
     </resultMap>
 
+    <resultMap type="com.zhongzheng.modules.course.vo.CourseUserMenuVo" id="CourseUserMenuVo">
+        <result property="id" column="id"/>
+        <result property="courseId" column="course_id"/>
+        <result property="gradeId" column="grade_id"/>
+        <result property="menuId" column="menu_id"/>
+        <result property="type" column="type"/>
+        <result property="parentId" column="parent_id"/>
+        <result property="status" column="status"/>
+        <result property="menuName" column="menu_name"/>
+        <result property="durationTime" column="duration_time"/>
+        <result property="sort" column="sort"/>
+    </resultMap>
+
     <select id="selectList" parameterType="com.zhongzheng.modules.course.bo.CourseMenuQueryBo"  resultMap="CourseMenuResultVo">
         SELECT
             m.*,
@@ -62,4 +75,55 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         ORDER BY m.sort
     </select>
 
+    <select id="menuList" parameterType="com.zhongzheng.modules.course.bo.CourseMenuQueryBo"  resultMap="CourseUserMenuVo">
+        SELECT
+            m.*,
+            #{gradeId} as grade_id,
+            CASE
+
+                WHEN m.type = 1 THEN
+                    cm.module_name
+                WHEN m.type = 2 THEN
+                    cc.`name`
+                WHEN m.type = 3 THEN
+                    cs.`name`
+                END menu_name,
+            CASE
+
+                WHEN m.type = 1 THEN
+                    0
+                WHEN m.type = 2 THEN
+                    0
+                WHEN m.type = 3 THEN
+                    cs.duration_time
+                END duration_time
+        FROM
+            course_menu m
+                LEFT JOIN course_module cm ON m.menu_id = cm.module_id
+                AND m.type = 1
+                LEFT JOIN course_chapter cc ON m.menu_id = cc.chapter_id
+                AND m.type = 2
+                LEFT JOIN course_section cs ON m.menu_id = cs.section_id
+                AND m.type = 3
+        WHERE
+            m.course_id = #{courseId}
+        ORDER BY m.sort
+    </select>
+
+    <select id="rebuildCheck" parameterType="com.zhongzheng.modules.course.bo.CourseMenuQueryBo"  resultMap="CourseUserMenuVo">
+        SELECT
+            COUNT(up.id)
+        FROM
+            user_period up
+                LEFT JOIN user_period_status ups ON up.id = ups.period_id
+        WHERE
+            up.grade_id =#{gradeId}
+          AND up.user_id = #{userId}
+          AND up.module_id= 0
+          and up.chapter_id=0
+          and up.section_id=#{sectionId}
+          AND ups.period_status =1
+          and (ups.`status` = 0 or ups.`status` = 3)
+    </select>
+
 </mapper>

+ 29 - 1
zhongzheng-system/src/main/resources/mapper/modules/course/CourseModuleChapterMapper.xml

@@ -24,6 +24,19 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         <result property="publishStatus" column="publish_status"/>
     </resultMap>
 
+    <resultMap type="com.zhongzheng.modules.course.vo.CourseUserModuleChapterVo" id="CourseUserModuleChapterVo">
+        <result property="chapterId" column="chapter_id"/>
+        <result property="sort" column="c_sort"/>
+        <result property="id" column="id"/>
+        <result property="gradeId" column="grade_id"/>
+
+        <result property="code" column="code"/>
+        <result property="name" column="name"/>
+        <result property="prefixName" column="prefix_name"/>
+        <result property="status" column="status"/>
+        <result property="publishStatus" column="publish_status"/>
+    </resultMap>
+
     <select id="getListById" parameterType="Long"  resultMap="CourseModuleChapterResultVo">
         SELECT
             cc.*,
@@ -39,5 +52,20 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         ORDER BY
             c_sort DESC
     </select>
-
+    <select id="chapterList" parameterType="com.zhongzheng.modules.course.bo.CourseMenuQueryBo"  resultMap="CourseUserModuleChapterVo">
+        SELECT
+            cc.*,
+            cmc.sort AS c_sort,
+            cmc.id,
+            cmc.module_id,
+            #{gradeId} as grade_id
+        FROM
+            course_module_chapter cmc
+                LEFT JOIN course_chapter cc ON cmc.chapter_id = cc.chapter_id
+        WHERE
+            cc.`status` !=- 1
+	AND cmc.module_id = #{moduleId}
+        ORDER BY
+            c_sort DESC
+    </select>
 </mapper>

+ 6 - 0
zhongzheng-system/src/main/resources/mapper/modules/user/UserSubscribeMapper.xml

@@ -83,6 +83,12 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         <if test="examStatus != null ">
             and us.exam_status = #{examStatus}
         </if>
+        <if test="examExpend != null ">
+            and us.exam_expend is NOT NULL
+        </if>
+          <if test="beforeExpend != null ">
+            and us.before_expend is NOT NULL
+        </if>
         <if test="majorId != null and majorId != '' ">
             and (SELECT m.id FROM goods g LEFT JOIN major m on g.major_id= m.id where us.goods_id = g.goods_id) = #{majorId}
         </if>