he2802 3 gadi atpakaļ
vecāks
revīzija
7040c39a9a
22 mainītis faili ar 363 papildinājumiem un 35 dzēšanām
  1. 49 0
      zhongzheng-api/src/main/java/com/zhongzheng/controller/base/BaseFilterController.java
  2. 11 0
      zhongzheng-api/src/main/java/com/zhongzheng/controller/order/OrderController.java
  3. 7 1
      zhongzheng-system/src/main/java/com/zhongzheng/modules/base/mapper/BaseFilterMapper.java
  4. 2 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/base/service/IBaseFilterService.java
  5. 5 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/base/service/impl/BaseFilterServiceImpl.java
  6. 13 1
      zhongzheng-system/src/main/java/com/zhongzheng/modules/base/vo/BaseFilterVo.java
  7. 2 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/course/mapper/CourseEducationTypeMapper.java
  8. 3 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/course/service/ICourseEducationTypeService.java
  9. 6 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/course/service/impl/CourseEducationTypeServiceImpl.java
  10. 15 5
      zhongzheng-system/src/main/java/com/zhongzheng/modules/course/service/impl/CourseServiceImpl.java
  11. 4 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/goods/vo/GoodsUserVo.java
  12. 53 16
      zhongzheng-system/src/main/java/com/zhongzheng/modules/grade/service/impl/ClassGradeUserServiceImpl.java
  13. 20 3
      zhongzheng-system/src/main/java/com/zhongzheng/modules/grade/vo/ClassPeriodSectionVo.java
  14. 42 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/grade/vo/UserPeriodExportV2Vo.java
  15. 7 8
      zhongzheng-system/src/main/java/com/zhongzheng/modules/grade/vo/UserPeriodItemExportVo.java
  16. 2 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/user/mapper/UserStudyRecordMapper.java
  17. 1 1
      zhongzheng-system/src/main/java/com/zhongzheng/modules/user/service/IUserStudyRecordService.java
  18. 4 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/user/service/impl/UserStudyRecordServiceImpl.java
  19. 46 0
      zhongzheng-system/src/main/resources/mapper/modules/base/BaseFilterMapper.xml
  20. 47 0
      zhongzheng-system/src/main/resources/mapper/modules/course/CourseEducationTypeMapper.xml
  21. 9 0
      zhongzheng-system/src/main/resources/mapper/modules/grade/ClassGradeUserMapper.xml
  22. 15 0
      zhongzheng-system/src/main/resources/mapper/modules/user/UserStudyRecordMapper.xml

+ 49 - 0
zhongzheng-api/src/main/java/com/zhongzheng/controller/base/BaseFilterController.java

@@ -0,0 +1,49 @@
+package com.zhongzheng.controller.base;
+
+import com.zhongzheng.common.annotation.Log;
+import com.zhongzheng.common.core.controller.BaseController;
+import com.zhongzheng.common.core.domain.AjaxResult;
+import com.zhongzheng.common.core.page.TableDataInfo;
+import com.zhongzheng.common.enums.BusinessType;
+import com.zhongzheng.modules.base.bo.BaseFilterAddBo;
+import com.zhongzheng.modules.base.bo.BaseFilterQueryBo;
+import com.zhongzheng.modules.base.service.IBaseFilterService;
+import com.zhongzheng.modules.base.vo.BaseFilterVo;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.RequiredArgsConstructor;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.List;
+
+/**
+ * 业务层次过滤器Controller
+ *
+ * @author hjl
+ * @date 2022-06-22
+ */
+@Api(value = "业务层次过滤器控制器", tags = {"业务层次过滤器管理"})
+@RequiredArgsConstructor(onConstructor_ = @Autowired)
+@RestController
+@RequestMapping("/base/filter")
+public class BaseFilterController extends BaseController {
+
+    private final IBaseFilterService iBaseFilterService;
+
+    /**
+     * 查询业务层次过滤器列表
+     */
+    @ApiOperation("查询业务层次过滤器列表")
+    @PreAuthorize("@ss.hasPermi('system:filter:list')")
+    @GetMapping("/list")
+    public TableDataInfo<BaseFilterVo> list(BaseFilterQueryBo bo) {
+        startPage();
+        List<BaseFilterVo> list = iBaseFilterService.getList(bo);
+        return getDataTable(list);
+    }
+
+
+
+}

+ 11 - 0
zhongzheng-api/src/main/java/com/zhongzheng/controller/order/OrderController.java

@@ -8,6 +8,7 @@ import com.zhongzheng.common.enums.BusinessType;
 import com.zhongzheng.common.utils.SecurityUtils;
 import com.zhongzheng.common.utils.ServletUtils;
 import com.zhongzheng.framework.web.service.WxTokenService;
+import com.zhongzheng.modules.base.vo.BaseFilterVo;
 import com.zhongzheng.modules.course.service.ICourseEducationTypeService;
 import com.zhongzheng.modules.course.vo.CourseEducationTypeVo;
 import com.zhongzheng.modules.order.bo.*;
@@ -157,6 +158,16 @@ public class OrderController extends BaseController {
         return getDataTable(list);
     }
 
+
+    @ApiOperation("查询用户购买教育类型业务层次列表")
+    @GetMapping("/userAllBusinessList")
+    public TableDataInfo<BaseFilterVo> userAllBusinessList(OrderGoodsQueryBo bo) {
+        ClientLoginUser loginUser = wxTokenService.getLoginUser(ServletUtils.getRequest());
+        startPage();
+        List<BaseFilterVo> list = iCourseEducationTypeService.selectUserAllBusinessList(loginUser.getUser().getUserId());
+        return getDataTable(list);
+    }
+
     /**
      * 获取订单商品详细信息
      */

+ 7 - 1
zhongzheng-system/src/main/java/com/zhongzheng/modules/base/mapper/BaseFilterMapper.java

@@ -1,7 +1,13 @@
 package com.zhongzheng.modules.base.mapper;
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.zhongzheng.modules.base.bo.BaseFilterQueryBo;
+import com.zhongzheng.modules.base.bo.CertificateCommonQueryBo;
 import com.zhongzheng.modules.base.domain.BaseFilter;
+import com.zhongzheng.modules.base.vo.BaseFilterVo;
+import com.zhongzheng.modules.base.vo.CertificateCommonVo;
+
+import java.util.List;
 
 /**
  * 业务层次过滤器Mapper接口
@@ -10,5 +16,5 @@ import com.zhongzheng.modules.base.domain.BaseFilter;
  * @date 2022-06-22
  */
 public interface BaseFilterMapper extends BaseMapper<BaseFilter> {
-
+    List<BaseFilterVo> getList(BaseFilterQueryBo bo);
 }

+ 2 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/base/service/IBaseFilterService.java

@@ -38,6 +38,8 @@ public interface IBaseFilterService extends IService<BaseFilter> {
 
 	Boolean insertListByAddBo(List<BaseFilterAddBo> list);
 
+	List<BaseFilterVo> getList(BaseFilterQueryBo bo);
+
 	/**
 	 * 根据编辑业务对象修改业务层次过滤器
 	 * @param bo 业务层次过滤器编辑业务对象

+ 5 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/base/service/impl/BaseFilterServiceImpl.java

@@ -106,6 +106,11 @@ public class BaseFilterServiceImpl extends ServiceImpl<BaseFilterMapper, BaseFil
         return result;
     }
 
+    @Override
+    public List<BaseFilterVo> getList(BaseFilterQueryBo bo) {
+        return this.baseMapper.getList(bo);
+    }
+
     @Override
     public Boolean updateByEditBo(BaseFilterEditBo bo) {
         BaseFilter update = BeanUtil.toBean(bo, BaseFilter.class);

+ 13 - 1
zhongzheng-system/src/main/java/com/zhongzheng/modules/base/vo/BaseFilterVo.java

@@ -1,12 +1,14 @@
 package com.zhongzheng.modules.base.vo;
 
+import com.baomidou.mybatisplus.annotation.TableField;
 import com.zhongzheng.common.annotation.Excel;
 import com.fasterxml.jackson.annotation.JsonFormat;
+import com.zhongzheng.modules.course.vo.CourseSubjectVo;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 import java.util.Date;
-
+import java.util.List;
 
 
 /**
@@ -48,4 +50,14 @@ public class BaseFilterVo {
 	@Excel(name = "0 未启用 1启用 -1删除")
 	@ApiModelProperty("0 未启用 1启用 -1删除")
 	private Integer status;
+	@ApiModelProperty("科目列表")
+	private List<CourseSubjectVo> subjectList;
+	@ApiModelProperty("业务层次项目类别名")
+	private String aliasName;
+	@ApiModelProperty("教育类型名称")
+	private String educationName;
+	@ApiModelProperty("项目类型名称")
+	private String projectName;
+	@ApiModelProperty("业务层次类型名称")
+	private String businessName;
 }

+ 2 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/course/mapper/CourseEducationTypeMapper.java

@@ -1,5 +1,6 @@
 package com.zhongzheng.modules.course.mapper;
 
+import com.zhongzheng.modules.base.vo.BaseFilterVo;
 import com.zhongzheng.modules.course.domain.CourseEducationType;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.zhongzheng.modules.course.vo.CourseEducationTypeVo;
@@ -15,4 +16,5 @@ import java.util.List;
  */
 public interface CourseEducationTypeMapper extends BaseMapper<CourseEducationType> {
    List<CourseEducationTypeVo> selectUserEduList(@Param("userId") Long userId,@Param("goodsType") Integer goodsType);
+   List<BaseFilterVo> selectUserAllBusinessList(@Param("userId") Long userId);
 }

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

@@ -1,5 +1,6 @@
 package com.zhongzheng.modules.course.service;
 
+import com.zhongzheng.modules.base.vo.BaseFilterVo;
 import com.zhongzheng.modules.course.domain.CourseEducationType;
 import com.zhongzheng.modules.course.vo.CourseEducationTypeVo;
 import com.zhongzheng.modules.course.bo.CourseEducationTypeQueryBo;
@@ -25,6 +26,8 @@ public interface ICourseEducationTypeService extends IService<CourseEducationTyp
 
 	List<CourseEducationTypeVo> selectUserEduList(Long userId,Integer goodsType);
 
+	List<BaseFilterVo> selectUserAllBusinessList(Long userId);
+
 	/**
 	 * 查询列表
 	 */

+ 6 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/course/service/impl/CourseEducationTypeServiceImpl.java

@@ -7,6 +7,7 @@ import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
 import com.zhongzheng.common.utils.DateUtils;
 import com.zhongzheng.common.utils.ServletUtils;
 import com.zhongzheng.modules.base.domain.ApplyAreas;
+import com.zhongzheng.modules.base.vo.BaseFilterVo;
 import com.zhongzheng.modules.course.bo.CourseEducationTierAddBo;
 import com.zhongzheng.modules.course.domain.CourseEducationTier;
 import com.zhongzheng.modules.course.service.ICourseEducationTierService;
@@ -60,6 +61,11 @@ public class CourseEducationTypeServiceImpl extends ServiceImpl<CourseEducationT
         return this.baseMapper.selectUserEduList(userId,goodsType);
     }
 
+    @Override
+    public List<BaseFilterVo> selectUserAllBusinessList(Long userId) {
+        return this.baseMapper.selectUserAllBusinessList(userId);
+    }
+
     @Override
     public List<CourseEducationTypeVo> queryList(CourseEducationTypeQueryBo bo) {
         LambdaQueryWrapper<CourseEducationType> lqw = Wrappers.lambdaQuery();

+ 15 - 5
zhongzheng-system/src/main/java/com/zhongzheng/modules/course/service/impl/CourseServiceImpl.java

@@ -46,9 +46,11 @@ import com.zhongzheng.modules.user.bo.UserPlanQueryBo;
 import com.zhongzheng.modules.user.domain.UserBankRecord;
 import com.zhongzheng.modules.user.domain.UserStudyRecord;
 import com.zhongzheng.modules.user.domain.UserStudyRecordPhoto;
+import com.zhongzheng.modules.user.domain.UserSubscribe;
 import com.zhongzheng.modules.user.service.IUserBankRecordService;
 import com.zhongzheng.modules.user.service.IUserStudyRecordPhotoService;
 import com.zhongzheng.modules.user.service.IUserStudyRecordService;
+import com.zhongzheng.modules.user.service.IUserSubscribeService;
 import com.zhongzheng.modules.user.vo.SubjectStudyRecordVo;
 import com.zhongzheng.modules.user.vo.UserStudyRecordPhotoVo;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -114,6 +116,9 @@ public class CourseServiceImpl extends ServiceImpl<CourseMapper, Course> impleme
     @Autowired
     private IExamBeforeService iExamBeforeService;
 
+    @Autowired
+    private IUserSubscribeService iUserSubscribeService;
+
 
 
     @Override
@@ -465,18 +470,23 @@ public class CourseServiceImpl extends ServiceImpl<CourseMapper, Course> impleme
                     }else {
                         examApplyGoodsVos2.add(examApplyGoodsVo);
                     }
-                    LambdaQueryWrapper<ExamBeforeApply> lq = Wrappers.lambdaQuery();
-                    lq.eq(ExamBeforeApply::getApplyId, examApplyGoodsVo.getApplyId());
-                    ExamBeforeApply examBeforeApply = iExamBeforeApplyService.getOne(lq);
-                    if (examBeforeApply != null) {
+                    LambdaQueryWrapper<UserSubscribe> lq = Wrappers.lambdaQuery();
+                    lq.eq(UserSubscribe::getApplyId, examApplyGoodsVo.getApplyId());
+                    lq.eq(UserSubscribe::getOrderGoodsId, goodsUserVo.getOrderGoodsId());
+                    lq.eq(UserSubscribe::getSubscribeStatus, 1);
+                    lq.eq(UserSubscribe::getBeforeStatus, 1);
+                    UserSubscribe userSubscribe = iUserSubscribeService.getOne(lq);
+                    if (userSubscribe != null) {
                         LambdaQueryWrapper<ExamBefore> lqw1 = Wrappers.lambdaQuery();
-                        lqw1.eq(ExamBefore::getBeforeId, examBeforeApply.getBeforeId());
+                        lqw1.eq(ExamBefore::getBeforeId, userSubscribe.getBeforeId());
                         lqw1.eq(ExamBefore::getStatus, 1);
                         ExamBefore examBefore = iExamBeforeService.getOne(lqw1);
                         if (examBefore != null) {
                             if (System.currentTimeMillis()/1000 > examBefore.getBeforeStartTime() && System.currentTimeMillis()/1000 < examBefore.getBeforeEndTime()) {
                                 goodsUserVo.setBeforeStatus(1L);
                                 goodsUserVo.setBeforeName(examBefore.getBeforeName());
+                                goodsUserVo.setBeforeStartTime(examBefore.getBeforeStartTime());
+                                goodsUserVo.setBeforeEndTime(examBefore.getBeforeEndTime());
                             }
                         }
                     }

+ 4 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/goods/vo/GoodsUserVo.java

@@ -375,4 +375,8 @@ public class GoodsUserVo {
 	@Excel(name = "考试列表")
 	@ApiModelProperty("考试列表")
 	private List<ExamApplyGoodsVo> examApplyGoodsList;
+	/** 开始时间 */
+	private Long beforeStartTime;
+	/** 结束时间 */
+	private Long beforeEndTime;
 }

+ 53 - 16
zhongzheng-system/src/main/java/com/zhongzheng/modules/grade/service/impl/ClassGradeUserServiceImpl.java

@@ -36,6 +36,7 @@ import com.zhongzheng.modules.course.service.ICourseProjectTypeService;
 import com.zhongzheng.modules.course.vo.CourseBusinessVo;
 import com.zhongzheng.modules.course.vo.CourseChapterVo;
 import com.zhongzheng.modules.course.vo.CourseProjectTypeVo;
+import com.zhongzheng.modules.course.vo.CourseSectionVo;
 import com.zhongzheng.modules.goods.bo.GoodsQueryBo;
 import com.zhongzheng.modules.goods.domain.Goods;
 import com.zhongzheng.modules.goods.service.IGoodsService;
@@ -63,6 +64,7 @@ import com.zhongzheng.modules.user.mapper.UserMapper;
 import com.zhongzheng.modules.user.mapper.UserStudyRecordPhotoMapper;
 import com.zhongzheng.modules.user.service.IUserStudyRecordPhotoService;
 import com.zhongzheng.modules.user.service.IUserStudyRecordService;
+import com.zhongzheng.modules.user.vo.SectionStudyRecordVo;
 import com.zhongzheng.modules.user.vo.SubjectStudyRecordVo;
 import com.zhongzheng.modules.user.vo.UserStudyRecordPhotoVo;
 import com.zhongzheng.modules.user.vo.UserStudyRecordVo;
@@ -148,6 +150,7 @@ public class ClassGradeUserServiceImpl extends ServiceImpl<ClassGradeUserMapper,
     @Autowired
     private ICourseEducationTypeService iCourseEducationTypeService;
 
+
     @Value("${aliyun.oss.endpoint}")
     private String ALIYUN_OSS_ENDPOINT;
 
@@ -805,6 +808,46 @@ public class ClassGradeUserServiceImpl extends ServiceImpl<ClassGradeUserMapper,
         return rs;
     }
 
+    private UserPeriodExportV2Vo mergeDataV2(Long index, String moduleName, String chapterName, String sectionName,ClassPeriodSectionVo classPeriodSectionVo, UserStudyRecordQueryBo recordQueryBo) {
+        //节学习记录
+        List<SectionStudyRecordVo> recordList = iUserStudyRecordService.selectSectionRecord(recordQueryBo);
+        //录入学时记录
+        UserPeriodExportV2Vo userPeriodExportVo = new UserPeriodExportV2Vo();
+        userPeriodExportVo.setId(index);
+        userPeriodExportVo.setModuleName(moduleName);
+        userPeriodExportVo.setChapterName(chapterName);
+        userPeriodExportVo.setSectionName(sectionName);
+        List<UserPeriodItemExportVo> studyList = new ArrayList<>();
+        //录播
+        if(classPeriodSectionVo.getSectionType()==3){
+            Long startTime = null;
+            Long endTime = null;
+            int studyIndex = -1;
+            for(SectionStudyRecordVo vo : recordList){
+                if(Validator.isEmpty(startTime)){
+                    startTime = vo.getStartTime();
+                    UserPeriodItemExportVo exportVo = new UserPeriodItemExportVo();
+                    studyIndex++;
+                    exportVo.setStudyStartTime(startTime);
+                    exportVo.setStatus(0);
+                    studyList.add(exportVo);
+                }
+                endTime = vo.getEndTime();
+                studyList.get(studyIndex).setStudyEndTime(endTime);
+                if(Validator.isNotEmpty(vo.getStatus())&&vo.getStatus()==1){
+                    studyList.get(studyIndex).setStatus(1);
+                    startTime = null;
+                }
+            }
+        }
+        //回放或者直播
+        if(classPeriodSectionVo.getSectionType()==2||classPeriodSectionVo.getSectionType()==1){
+
+        }
+        userPeriodExportVo.setRecordList(studyList);
+        return userPeriodExportVo;
+    }
+
 
     private UserPeriodExportVo mergeData(Long index, String moduleName, String chapterName, String sectionName, ClassPeriodSectionVo classPeriodSectionVo, BigDecimal performance, Boolean isExam) {
         //录入学时记录
@@ -1300,22 +1343,16 @@ public class ClassGradeUserServiceImpl extends ServiceImpl<ClassGradeUserMapper,
                             if (classPeriodSectionVo.getType() == 3) {
                                 //节
                                 sectionName = classPeriodSectionVo.getTypeName();
-                                UserPeriodQueryBo userPeriodQueryBo = new UserPeriodQueryBo();
-                                userPeriodQueryBo.setSectionId(classPeriodSectionVo.getId());
-                                userPeriodQueryBo.setCourseId(classPeriodSectionVo.getCourseId());
-                                userPeriodQueryBo.setGoodsId(goodsId);
-                                userPeriodQueryBo.setUserId(classPeriodSectionVo.getUserId());
-                                userPeriodQueryBo.setChapterId(classPeriodChapterVo.getId());
-                                userPeriodQueryBo.setModuleId(classPeriodVo.getId());
-                                userPeriodQueryBo.setGradeId(gradeId);
-                                List<UserPeriodStatusVo> userPeriodStatusVos = userPeriodStatusService.selectPeriodStatus(userPeriodQueryBo);
-
-                                classPeriodSectionVo.setModuleId(classPeriodVo.getId());
-                                classPeriodSectionVo.setChapterId(classPeriodChapterVo.getId());
-                                classPeriodSectionVo.setGoodsId(goodsId);
-                                classPeriodSectionVo.setGradeId(gradeId);
-                                classPeriodSectionVo.setCourseId(courseId);
-                                studyList.add(mergeData(i, moduleName, chapterName, sectionName, classPeriodSectionVo, (new BigDecimal(0)), false));
+                                UserStudyRecordQueryBo recordQueryBo = new UserStudyRecordQueryBo();
+                                recordQueryBo.setSectionId(classPeriodSectionVo.getId());
+                                recordQueryBo.setCourseId(classPeriodSectionVo.getCourseId());
+                                recordQueryBo.setGoodsId(goodsId);
+                                recordQueryBo.setUserId(classPeriodSectionVo.getUserId());
+                                recordQueryBo.setChapterId(classPeriodChapterVo.getId());
+                                recordQueryBo.setModuleId(classPeriodVo.getId());
+                                recordQueryBo.setGradeId(gradeId);
+                                mergeDataV2(i, moduleName, chapterName, sectionName,classPeriodSectionVo, recordQueryBo);
+                            //    studyList.add();
                             } else {
                                 //章卷
                                 sectionName = classPeriodSectionVo.getTypeName();

+ 20 - 3
zhongzheng-system/src/main/java/com/zhongzheng/modules/grade/vo/ClassPeriodSectionVo.java

@@ -141,14 +141,31 @@ public class ClassPeriodSectionVo implements Comparable<ClassPeriodSectionVo> {
 	@ApiModelProperty("以往审核记录")
 	private List<UserPeriodStatusVo> userPeriodStatusVos;
 
-	/** 节时长(分钟) */
-	@Excel(name = "节时长(分钟)")
-	@ApiModelProperty("节时长(分钟)")
+	/** 节时长() */
+	@Excel(name = "节时长()")
+	@ApiModelProperty("节时长()")
 	private Long durationTime;
 
 	@ApiModelProperty("sort")
 	private Integer sort;
 
+	/** 保利威真实直播开始时间 */
+	@Excel(name = "保利威真实直播开始时间")
+	@ApiModelProperty("保利威真实直播开始时间")
+	private Long realLiveStartTime;
+	/** 保利威真实直播结束时间 */
+	@Excel(name = "保利威真实直播结束时间")
+	@ApiModelProperty("保利威真实直播结束时间")
+	private Long realLiveEndTime;
+	/** 保利威真实直播时长,单位秒 */
+	@Excel(name = "保利威真实直播时长,单位秒")
+	@ApiModelProperty("保利威真实直播时长,单位秒")
+	private Long realDuration;
+	/** 节类型 1录播 2直播 3回放 */
+	@Excel(name = "节类型 1录播 2直播 3回放")
+	@ApiModelProperty("节类型 1录播 2直播 3回放")
+	private Integer sectionType;
+
 	@Override
 	public int compareTo(ClassPeriodSectionVo o) {
 		return this.getSort() - o.getSort();

+ 42 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/grade/vo/UserPeriodExportV2Vo.java

@@ -0,0 +1,42 @@
+package com.zhongzheng.modules.grade.vo;
+
+import cn.afterturn.easypoi.excel.annotation.Excel;
+import cn.afterturn.easypoi.excel.annotation.ExcelTarget;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.math.BigDecimal;
+import java.util.List;
+
+
+/**
+ * 【请填写功能名称】视图对象 mall_package
+ *
+ * @author ruoyi
+ * @date 2021-11-22
+ */
+@Data
+@ApiModel("【请填写功能名称】视图对象")
+@ExcelTarget("userPeriodVo")
+public class UserPeriodExportV2Vo {
+	private static final long serialVersionUID = 1L;
+
+	@Excel(name = "序号")
+	@ApiModelProperty("序号")
+	private Long id;
+
+	@Excel(name = "模块标题")
+	@ApiModelProperty("模块标题")
+	private String moduleName;
+	@Excel(name = "章标题")
+	@ApiModelProperty("章标题")
+	private String chapterName;
+	@Excel(name = "节标题")
+	@ApiModelProperty("节标题")
+	private String sectionName;
+	@Excel(name = "学习列表")
+	@ApiModelProperty("学习列表")
+	private List<UserPeriodItemExportVo> recordList;
+
+}

+ 7 - 8
zhongzheng-system/src/main/java/com/zhongzheng/modules/grade/vo/UserPeriodItemExportVo.java

@@ -21,15 +21,8 @@ import java.math.BigDecimal;
 public class UserPeriodItemExportVo {
 	private static final long serialVersionUID = 1L;
 
-	@Excel(name = "学习/做题时间")
-	@ApiModelProperty("学习/做题时间")
-	private String studyTimeTxt;
-	@Excel(name = "学习/做题时长")
-	@ApiModelProperty("学习/做题时长")
-	private String studyTimeLongTxt;
-	@Excel(name = "学习/做题状态")
 	@ApiModelProperty("学习/做题状态")
-	private String studyStatusTxt;
+	private Integer status;
 	@Excel(name = "测试成绩")
 	@ApiModelProperty("测试成绩")
 	private BigDecimal score;
@@ -40,5 +33,11 @@ public class UserPeriodItemExportVo {
 	/** 学习结束时间 */
 	@ApiModelProperty("学习结束时间")
 	private Long studyEndTime;
+	/** 节时长(秒) */
+	@ApiModelProperty("节时长(秒)")
+	private Long durationTime;
+
+	@ApiModelProperty("节类型 1录播 2直播 3回放 4题卷")
+	private Integer sectionType;
 
 }

+ 2 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/user/mapper/UserStudyRecordMapper.java

@@ -86,4 +86,6 @@ public interface UserStudyRecordMapper extends BaseMapper<UserStudyRecord> {
     SectionStudyRecordVo getLastLive(UserStudyRecordQueryBo bo);
 
     List<SectionStudyRecordVo> userSectionLiveList(UserStudyRecordQueryBo bo);
+
+    List<SectionStudyRecordVo> selectSectionRecord(UserStudyRecordQueryBo bo);
 }

+ 1 - 1
zhongzheng-system/src/main/java/com/zhongzheng/modules/user/service/IUserStudyRecordService.java

@@ -97,7 +97,7 @@ public interface IUserStudyRecordService extends IService<UserStudyRecord> {
 
 	SectionStudyRecordVo getLastLive(UserStudyRecordQueryBo bo) throws Exception;
 
-
+	List<SectionStudyRecordVo> selectSectionRecord(UserStudyRecordQueryBo bo);
 
 	List<SectionStudyRecordVo> userSectionLiveList(UserStudyRecordQueryBo bo);
 

+ 4 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/user/service/impl/UserStudyRecordServiceImpl.java

@@ -578,6 +578,10 @@ public class UserStudyRecordServiceImpl extends ServiceImpl<UserStudyRecordMappe
         return recordVo;
     }
 
+    @Override
+    public List<SectionStudyRecordVo> selectSectionRecord(UserStudyRecordQueryBo bo) {
+        return this.baseMapper.selectSectionRecord(bo);
+    }
 
 
     @Override

+ 46 - 0
zhongzheng-system/src/main/resources/mapper/modules/base/BaseFilterMapper.xml

@@ -16,5 +16,51 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         <result property="updateTime" column="update_time"/>
     </resultMap>
 
+    <resultMap type="com.zhongzheng.modules.base.vo.BaseFilterVo" id="BaseFilterVoResult">
+        <result property="id" column="id"/>
+        <result property="educationId" column="education_id"/>
+        <result property="projectId" column="project_id"/>
+        <result property="businessId" column="business_id"/>
+        <result property="subjectIds" column="subject_ids"/>
+        <result property="type" column="type"/>
+        <result property="status" column="status"/>
+        <result property="aliasName" column="alias_name"/>
+        <result property="educationName" column="education_name"/>
+        <result property="projectName" column="project_name"/>
+        <result property="businessName" column="business_name"/>
+        <collection property="subjectList" column="subject_ids" select="findSubjectList"/>
+    </resultMap>
+
+    <resultMap type="com.zhongzheng.modules.course.vo.CourseSubjectVo" id="CourseSubjectVoResult">
+        <result property="id" column="id"/>
+        <result property="subjectName" column="subject_name"/>
+    </resultMap>
+
+    <select id="findSubjectList" resultMap="CourseSubjectVoResult">
+        SELECT
+            subject_name,
+               id
+        FROM
+            course_subject
+        WHERE
+            FIND_IN_SET(id,#{subject_ids})
+    </select>
 
+    <select id="getList" parameterType="com.zhongzheng.modules.base.bo.BaseFilterQueryBo" resultMap="BaseFilterVoResult">
+        SELECT
+            bf.*,
+            cb.business_name,
+            cb.alias_name,
+            cet.education_name,
+            cpt.project_name
+        FROM
+            base_filter bf
+                LEFT JOIN course_business cb ON bf.business_id = cb.id
+                LEFT JOIN course_education_type cet ON bf.education_id = cet.id
+                LEFT JOIN course_project_type cpt ON bf.project_id = cpt.id
+        WHERE 1=1
+        <if test="type != null and type != ''">
+            AND bf.type = #{type}
+        </if>
+    </select>
 </mapper>

+ 47 - 0
zhongzheng-system/src/main/resources/mapper/modules/course/CourseEducationTypeMapper.xml

@@ -25,6 +25,20 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         <result property="updateTime" column="update_time"/>
     </resultMap>
 
+    <resultMap type="com.zhongzheng.modules.base.vo.BaseFilterVo" id="BaseFilterVoResult">
+        <result property="id" column="id"/>
+        <result property="educationId" column="education_type_id"/>
+        <result property="projectId" column="project_id"/>
+        <result property="businessId" column="business_id"/>
+        <result property="subjectIds" column="subject_ids"/>
+        <result property="type" column="type"/>
+        <result property="status" column="status"/>
+        <result property="aliasName" column="alias_name"/>
+        <result property="educationName" column="education_name"/>
+        <result property="projectName" column="project_name"/>
+        <result property="businessName" column="business_name"/>
+    </resultMap>
+
 
     <select id="selectUserEduList" parameterType="map" resultMap="CourseEducationTypeVoResult">
         SELECT
@@ -52,4 +66,37 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
 
     </select>
 
+
+    <select id="selectUserAllBusinessList" parameterType="map" resultMap="BaseFilterVoResult">
+        SELECT
+            g.education_type_id,
+            g.business_id,
+            g.project_id,
+            cb.business_name,
+            cb.alias_name,
+            cet.education_name,
+            cpt.project_name
+        FROM
+            (
+                SELECT
+                    og.goods_id
+                FROM
+                    `order` o
+                        LEFT JOIN order_goods og ON o.order_sn = og.order_sn
+                WHERE
+                    o.user_id = #{userId}
+                  AND og.pay_status IN ( 2, 3, 4 )
+                  AND og.refund_status != 2
+                GROUP BY
+                    og.goods_id
+            ) a
+                LEFT JOIN goods g ON a.goods_id = g.goods_id
+                LEFT JOIN course_education_type cet ON g.education_type_id = cet.id
+                LEFT JOIN course_business cb ON g.business_id = cb.id
+                LEFT JOIN course_project_type cpt ON g.project_id = cpt.id
+        GROUP BY
+            cet.id,cb.id,cpt.id
+
+    </select>
+
 </mapper>

+ 9 - 0
zhongzheng-system/src/main/resources/mapper/modules/grade/ClassGradeUserMapper.xml

@@ -190,6 +190,11 @@
         <result property="studyEndTime" column="study_end_time"/>
         <result property="auditNum" column="audit_num"/>
         <result property="sort" column="sort"/>
+
+        <result property="section_type" column="section_type"/>
+        <result property="realLiveStartTime" column="real_live_start_time"/>
+        <result property="realLiveEndTime" column="real_live_end_time"/>
+        <result property="realDuration" column="real_duration"/>
     </resultMap>
 
     <resultMap type="com.zhongzheng.modules.course.vo.CourseChapterVo" id="CourseChapterResultVo">
@@ -974,6 +979,10 @@
     </if>  ) AS user_id,
         cs.NAME AS type_name,
         cs.duration_time,
+        cs.section_type,
+        cs.real_live_start_time,
+        cs.real_live_end_time,
+        cs.real_duration,
         NULL AS class_hours,
         3 AS type
         FROM

+ 15 - 0
zhongzheng-system/src/main/resources/mapper/modules/user/UserStudyRecordMapper.xml

@@ -1379,5 +1379,20 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             </if>
     </select>
 
+    <select id="selectSectionRecord" parameterType="com.zhongzheng.modules.user.bo.UserStudyRecordQueryBo"  resultMap="SectionStudyRecordVoResult">
+        SELECT
+            *
+        FROM
+            user_study_record
+        WHERE
+            user_id = #{userId}
+          AND grade_id = #{gradeId}
+          AND course_id = #{courseId}
+          AND module_id = #{moduleId}
+          AND section_id = #{sectionId}
+          AND chapter_id = #{chapterId}
+          AND goods_id = #{goodsId}
+          AND current_status = 1
+    </select>
 
 </mapper>