Browse Source

fix 直播

he2802 3 years ago
parent
commit
6e2c4478e3
26 changed files with 194 additions and 486 deletions
  1. 0 79
      zhongzheng-admin/src/main/java/com/zhongzheng/controller/base/GoodsBusinessFieldController.java
  2. 1 6
      zhongzheng-admin/src/main/java/com/zhongzheng/controller/schedule/ScheduleController.java
  3. 14 0
      zhongzheng-api/src/main/java/com/zhongzheng/controller/goods/GoodsController.java
  4. 7 0
      zhongzheng-api/src/main/java/com/zhongzheng/controller/goods/GoodsCourseController.java
  5. 0 39
      zhongzheng-system/src/main/java/com/zhongzheng/modules/base/bo/GoodsBusinessFieldAddBo.java
  6. 0 45
      zhongzheng-system/src/main/java/com/zhongzheng/modules/base/bo/GoodsBusinessFieldEditBo.java
  7. 0 51
      zhongzheng-system/src/main/java/com/zhongzheng/modules/base/bo/GoodsBusinessFieldQueryBo.java
  8. 0 43
      zhongzheng-system/src/main/java/com/zhongzheng/modules/base/domain/GoodsBusinessField.java
  9. 0 14
      zhongzheng-system/src/main/java/com/zhongzheng/modules/base/mapper/GoodsBusinessFieldMapper.java
  10. 0 52
      zhongzheng-system/src/main/java/com/zhongzheng/modules/base/service/IGoodsBusinessFieldService.java
  11. 0 109
      zhongzheng-system/src/main/java/com/zhongzheng/modules/base/service/impl/GoodsBusinessFieldServiceImpl.java
  12. 0 43
      zhongzheng-system/src/main/java/com/zhongzheng/modules/base/vo/GoodsBusinessFieldVo.java
  13. 3 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/course/bo/CourseBusinessAddBo.java
  14. 3 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/course/bo/CourseBusinessEditBo.java
  15. 2 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/course/domain/CourseBusiness.java
  16. 4 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/course/mapper/CourseSectionMapper.java
  17. 2 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/course/service/ICourseSectionService.java
  18. 82 2
      zhongzheng-system/src/main/java/com/zhongzheng/modules/course/service/impl/CourseSectionServiceImpl.java
  19. 4 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/course/vo/CourseBusinessVo.java
  20. 0 1
      zhongzheng-system/src/main/java/com/zhongzheng/modules/schedule/service/impl/ScheduleServiceImpl.java
  21. 8 1
      zhongzheng-system/src/main/java/com/zhongzheng/modules/user/service/impl/UserStudyRecordServiceImpl.java
  22. 15 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/user/vo/UserStudyRecordVo.java
  23. 17 0
      zhongzheng-system/src/main/resources/mapper/modules/base/GoodsFieldMapper.xml
  24. 2 0
      zhongzheng-system/src/main/resources/mapper/modules/course/CourseBusinessMapper.xml
  25. 7 1
      zhongzheng-system/src/main/resources/mapper/modules/course/CourseMapper.xml
  26. 23 0
      zhongzheng-system/src/main/resources/mapper/modules/course/CourseSectionMapper.xml

+ 0 - 79
zhongzheng-admin/src/main/java/com/zhongzheng/controller/base/GoodsBusinessFieldController.java

@@ -1,79 +0,0 @@
-package com.zhongzheng.controller.base;
-
-import java.util.List;
-import java.util.Arrays;
-
-import com.zhongzheng.modules.base.bo.GoodsBusinessFieldAddBo;
-import com.zhongzheng.modules.base.bo.GoodsBusinessFieldQueryBo;
-import com.zhongzheng.modules.base.service.IGoodsBusinessFieldService;
-import com.zhongzheng.modules.base.vo.GoodsBusinessFieldVo;
-import lombok.RequiredArgsConstructor;
-import org.springframework.security.access.prepost.PreAuthorize;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.web.bind.annotation.GetMapping;
-import org.springframework.web.bind.annotation.PostMapping;
-import org.springframework.web.bind.annotation.PutMapping;
-import org.springframework.web.bind.annotation.DeleteMapping;
-import org.springframework.web.bind.annotation.PathVariable;
-import org.springframework.web.bind.annotation.RequestBody;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RestController;
-import com.zhongzheng.common.annotation.Log;
-import com.zhongzheng.common.core.controller.BaseController;
-import com.zhongzheng.common.core.domain.AjaxResult;
-import com.zhongzheng.common.enums.BusinessType;
-import com.zhongzheng.common.utils.poi.ExcelUtil;
-import com.zhongzheng.common.core.page.TableDataInfo;
-import io.swagger.annotations.Api;
-import io.swagger.annotations.ApiOperation;
-
-/**
- * 商品字段业务层次配置Controller
- *
- * @author hjl
- * @date 2022-06-06
- */
-@Api(value = "商品字段业务层次配置控制器", tags = {"商品字段业务层次配置管理"})
-@RequiredArgsConstructor(onConstructor_ = @Autowired)
-@RestController
-@RequestMapping("/system/field")
-public class GoodsBusinessFieldController extends BaseController {
-
-    private final IGoodsBusinessFieldService iGoodsBusinessFieldService;
-
-    /**
-     * 查询商品字段业务层次配置列表
-     */
-    @ApiOperation("查询商品字段业务层次配置列表")
-    @PreAuthorize("@ss.hasPermi('system:field:list')")
-    @GetMapping("/list")
-    public TableDataInfo<GoodsBusinessFieldVo> list(GoodsBusinessFieldQueryBo bo) {
-        startPage();
-        List<GoodsBusinessFieldVo> list = iGoodsBusinessFieldService.queryList(bo);
-        return getDataTable(list);
-    }
-
-
-    /**
-     * 获取商品字段业务层次配置详细信息
-     */
-    @ApiOperation("获取商品字段业务层次配置详细信息")
-    @PreAuthorize("@ss.hasPermi('system:field:query')")
-    @GetMapping("/{id}")
-    public AjaxResult<GoodsBusinessFieldVo> getInfo(@PathVariable("id" ) Long id) {
-        return AjaxResult.success(iGoodsBusinessFieldService.queryById(id));
-    }
-
-    /**
-     * 新增商品字段业务层次配置
-     */
-    @ApiOperation("新增商品字段业务层次配置")
-    @PreAuthorize("@ss.hasPermi('system:field:add')")
-    @Log(title = "商品字段业务层次配置", businessType = BusinessType.INSERT)
-    @PostMapping()
-    public AjaxResult<Void> add(@RequestBody GoodsBusinessFieldAddBo bo) {
-        return toAjax(iGoodsBusinessFieldService.insertByAddBo(bo) ? 1 : 0);
-    }
-
-
-}

+ 1 - 6
zhongzheng-admin/src/main/java/com/zhongzheng/controller/schedule/ScheduleController.java

@@ -182,11 +182,6 @@ public class ScheduleController extends BaseController {
         return AjaxResult.success();
     }
 
-    @ApiOperation("保利威直播结束提问同步")
-    @GetMapping("/chatLog")
-    public AjaxResult GetConsultingRecord(PolyvLiveQueryBo bo) throws Exception {
-        iPolyvLiveService.ListChannelVideoLibrary(bo);
-        return AjaxResult.success();
-    }
+
 
 }

+ 14 - 0
zhongzheng-api/src/main/java/com/zhongzheng/controller/goods/GoodsController.java

@@ -18,7 +18,9 @@ import com.zhongzheng.modules.bank.vo.QuestionChapterVo;
 import com.zhongzheng.modules.collect.bo.CollectQuestionQueryBo;
 import com.zhongzheng.modules.collect.service.ICollectQuestionService;
 import com.zhongzheng.modules.course.bo.CourseQueryBo;
+import com.zhongzheng.modules.course.service.ICourseSectionService;
 import com.zhongzheng.modules.course.vo.CourseModuleFreeExamVo;
+import com.zhongzheng.modules.course.vo.CourseSectionVo;
 import com.zhongzheng.modules.goods.bo.*;
 import com.zhongzheng.modules.goods.service.IGoodsAttachedService;
 import com.zhongzheng.modules.goods.service.IGoodsAuditionConfigService;
@@ -80,6 +82,8 @@ public class GoodsController extends BaseController {
 
     private final IOrderGoodsService iOrderGoodsService;
 
+    private final ICourseSectionService iCourseSectionService;
+
     /**
      * 获取商品详细信息
      */
@@ -201,4 +205,14 @@ public class GoodsController extends BaseController {
         List<OrderGoodsVo> list = iOrderGoodsService.listGoodsUserLive(loginUser.getUser().getUserId());
         return getDataTable(list);
     }
+
+    /**
+     * 获取商品详细信息
+     */
+    @ApiOperation("查下用户有哪些商品节正在直播")
+    @GetMapping("/livingSectionList")
+    public AjaxResult<List<CourseSectionVo>> livingSectionList() {
+        ClientLoginUser loginUser = wxTokenService.getLoginUser(ServletUtils.getRequest());
+        return AjaxResult.success(iCourseSectionService.livingSectionList(loginUser.getUser().getUserId()));
+    }
 }

+ 7 - 0
zhongzheng-api/src/main/java/com/zhongzheng/controller/goods/GoodsCourseController.java

@@ -5,9 +5,14 @@ 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.common.utils.ServletUtils;
+import com.zhongzheng.modules.course.bo.CourseQueryBo;
+import com.zhongzheng.modules.course.vo.CourseSectionVo;
 import com.zhongzheng.modules.course.vo.CourseVo;
 import com.zhongzheng.modules.goods.bo.GoodsCourseAddBo;
 import com.zhongzheng.modules.goods.service.IGoodsCourseService;
+import com.zhongzheng.modules.goods.vo.GoodsVo;
+import com.zhongzheng.modules.user.entity.ClientLoginUser;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import lombok.RequiredArgsConstructor;
@@ -45,4 +50,6 @@ public class GoodsCourseController extends BaseController {
 
 
 
+
+
 }

+ 0 - 39
zhongzheng-system/src/main/java/com/zhongzheng/modules/base/bo/GoodsBusinessFieldAddBo.java

@@ -1,39 +0,0 @@
-package com.zhongzheng.modules.base.bo;
-
-import io.swagger.annotations.ApiModel;
-import io.swagger.annotations.ApiModelProperty;
-import com.fasterxml.jackson.annotation.JsonFormat;
-import lombok.Data;
-import java.util.Date;
-import java.util.List;
-
-
-/**
- * 商品字段业务层次配置添加对象 goods_business_field
- *
- * @author hjl
- * @date 2022-06-06
- */
-@Data
-@ApiModel("商品字段业务层次配置添加对象")
-public class GoodsBusinessFieldAddBo {
-
-    /** 业务层次ID */
-    @ApiModelProperty("业务层次ID")
-    private Long businessId;
-    /** 字段ID */
-    @ApiModelProperty("字段ID")
-    private List<Long> fieldId;
-    /** 0非必填 1必填 */
-    @ApiModelProperty("0非必填 1必填")
-    private Integer require;
-    /** 0 禁用 1启用 */
-    @ApiModelProperty("0 禁用 1启用")
-    private Integer status;
-    /** 添加时间 */
-    @ApiModelProperty("添加时间")
-    private Long createTime;
-    /** 修改时间 */
-    @ApiModelProperty("修改时间")
-    private Long updateTime;
-}

+ 0 - 45
zhongzheng-system/src/main/java/com/zhongzheng/modules/base/bo/GoodsBusinessFieldEditBo.java

@@ -1,45 +0,0 @@
-package com.zhongzheng.modules.base.bo;
-
-import io.swagger.annotations.ApiModel;
-import io.swagger.annotations.ApiModelProperty;
-import com.fasterxml.jackson.annotation.JsonFormat;
-import lombok.Data;
-import java.util.Date;
-
-
-/**
- * 商品字段业务层次配置编辑对象 goods_business_field
- *
- * @author hjl
- * @date 2022-06-06
- */
-@Data
-@ApiModel("商品字段业务层次配置编辑对象")
-public class GoodsBusinessFieldEditBo {
-
-    /** $column.columnComment */
-    @ApiModelProperty("$column.columnComment")
-    private Long id;
-
-    /** 业务层次ID */
-    @ApiModelProperty("业务层次ID")
-    private Long businessId;
-
-    /** 字段ID */
-    @ApiModelProperty("字段ID")
-    private Long fieldId;
-
-    /** 0非必填 1必填 */
-    @ApiModelProperty("0非必填 1必填")
-    private Integer require;
-
-    /** 0 禁用 1启用 */
-    @ApiModelProperty("0 禁用 1启用")
-    private Integer status;
-
-    /** 修改时间 */
-    @ApiModelProperty("修改时间")
-    private Long updateTime;
-
-
-}

+ 0 - 51
zhongzheng-system/src/main/java/com/zhongzheng/modules/base/bo/GoodsBusinessFieldQueryBo.java

@@ -1,51 +0,0 @@
-package com.zhongzheng.modules.base.bo;
-
-import io.swagger.annotations.ApiModel;
-import io.swagger.annotations.ApiModelProperty;
-import lombok.Data;
-import lombok.EqualsAndHashCode;
-
-import java.util.Date;
-import java.util.Map;
-import java.util.HashMap;
-
-import com.zhongzheng.common.core.domain.BaseEntity;
-
-/**
- * 商品字段业务层次配置分页查询对象 goods_business_field
- *
- * @author hjl
- * @date 2022-06-06
- */
-@Data
-@EqualsAndHashCode(callSuper = true)
-@ApiModel("商品字段业务层次配置分页查询对象")
-public class GoodsBusinessFieldQueryBo extends BaseEntity {
-
-	/** 分页大小 */
-	@ApiModelProperty("分页大小")
-	private Integer pageSize;
-	/** 当前页数 */
-	@ApiModelProperty("当前页数")
-	private Integer pageNum;
-	/** 排序列 */
-	@ApiModelProperty("排序列")
-	private String orderByColumn;
-	/** 排序的方向desc或者asc */
-	@ApiModelProperty(value = "排序的方向", example = "asc,desc")
-	private String isAsc;
-
-
-	/** 业务层次ID */
-	@ApiModelProperty("业务层次ID")
-	private Long businessId;
-	/** 字段ID */
-	@ApiModelProperty("字段ID")
-	private Long fieldId;
-	/** 0非必填 1必填 */
-	@ApiModelProperty("0非必填 1必填")
-	private Integer require;
-	/** 0 禁用 1启用 */
-	@ApiModelProperty("0 禁用 1启用")
-	private Integer status;
-}

+ 0 - 43
zhongzheng-system/src/main/java/com/zhongzheng/modules/base/domain/GoodsBusinessField.java

@@ -1,43 +0,0 @@
-package com.zhongzheng.modules.base.domain;
-
-import com.baomidou.mybatisplus.annotation.*;
-import lombok.Data;
-import lombok.NoArgsConstructor;
-import lombok.experimental.Accessors;
-import java.io.Serializable;
-import java.util.Date;
-import java.math.BigDecimal;
-import com.zhongzheng.common.annotation.Excel;
-
-/**
- * 商品字段业务层次配置对象 goods_business_field
- *
- * @author hjl
- * @date 2022-06-06
- */
-@Data
-@NoArgsConstructor
-@Accessors(chain = true)
-@TableName("goods_business_field")
-public class GoodsBusinessField implements Serializable {
-
-private static final long serialVersionUID=1L;
-
-    /** $column.columnComment */
-    @TableId(value = "id")
-    private Long id;
-    /** 业务层次ID */
-    private Long businessId;
-    /** 字段ID */
-    private Long fieldId;
-    /** 0非必填 1必填 */
-    private Integer require;
-    /** 0 禁用 1启用 */
-    private Integer status;
-    /** 添加时间 */
-    @TableField(fill = FieldFill.INSERT)
-    private Long createTime;
-    /** 修改时间 */
-    @TableField(fill = FieldFill.INSERT_UPDATE)
-    private Long updateTime;
-}

+ 0 - 14
zhongzheng-system/src/main/java/com/zhongzheng/modules/base/mapper/GoodsBusinessFieldMapper.java

@@ -1,14 +0,0 @@
-package com.zhongzheng.modules.base.mapper;
-
-import com.baomidou.mybatisplus.core.mapper.BaseMapper;
-import com.zhongzheng.modules.base.domain.GoodsBusinessField;
-
-/**
- * 商品字段业务层次配置Mapper接口
- *
- * @author hjl
- * @date 2022-06-06
- */
-public interface GoodsBusinessFieldMapper extends BaseMapper<GoodsBusinessField> {
-
-}

+ 0 - 52
zhongzheng-system/src/main/java/com/zhongzheng/modules/base/service/IGoodsBusinessFieldService.java

@@ -1,52 +0,0 @@
-package com.zhongzheng.modules.base.service;
-
-import com.baomidou.mybatisplus.extension.service.IService;
-import com.zhongzheng.modules.base.bo.GoodsBusinessFieldAddBo;
-import com.zhongzheng.modules.base.bo.GoodsBusinessFieldEditBo;
-import com.zhongzheng.modules.base.bo.GoodsBusinessFieldQueryBo;
-import com.zhongzheng.modules.base.domain.GoodsBusinessField;
-import com.zhongzheng.modules.base.vo.GoodsBusinessFieldVo;
-
-import java.util.Collection;
-import java.util.List;
-
-/**
- * 商品字段业务层次配置Service接口
- *
- * @author hjl
- * @date 2022-06-06
- */
-public interface IGoodsBusinessFieldService extends IService<GoodsBusinessField> {
-	/**
-	 * 查询单个
-	 * @return
-	 */
-	GoodsBusinessFieldVo queryById(Long id);
-
-	/**
-	 * 查询列表
-	 */
-	List<GoodsBusinessFieldVo> queryList(GoodsBusinessFieldQueryBo bo);
-
-	/**
-	 * 根据新增业务对象插入商品字段业务层次配置
-	 * @param bo 商品字段业务层次配置新增业务对象
-	 * @return
-	 */
-	Boolean insertByAddBo(GoodsBusinessFieldAddBo bo);
-
-	/**
-	 * 根据编辑业务对象修改商品字段业务层次配置
-	 * @param bo 商品字段业务层次配置编辑业务对象
-	 * @return
-	 */
-	Boolean updateByEditBo(GoodsBusinessFieldEditBo bo);
-
-	/**
-	 * 校验并删除数据
-	 * @param ids 主键集合
-	 * @param isValid 是否校验,true-删除前校验,false-不校验
-	 * @return
-	 */
-	Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
-}

+ 0 - 109
zhongzheng-system/src/main/java/com/zhongzheng/modules/base/service/impl/GoodsBusinessFieldServiceImpl.java

@@ -1,109 +0,0 @@
-package com.zhongzheng.modules.base.service.impl;
-
-import cn.hutool.core.bean.BeanUtil;
-import cn.hutool.core.util.StrUtil;
-import com.zhongzheng.common.utils.DateUtils;
-import com.zhongzheng.modules.base.bo.GoodsBusinessFieldAddBo;
-import com.zhongzheng.modules.base.bo.GoodsBusinessFieldEditBo;
-import com.zhongzheng.modules.base.bo.GoodsBusinessFieldQueryBo;
-import com.zhongzheng.modules.base.domain.GoodsBusinessField;
-import com.zhongzheng.modules.base.mapper.GoodsBusinessFieldMapper;
-import com.zhongzheng.modules.base.service.IGoodsBusinessFieldService;
-import com.zhongzheng.modules.base.vo.GoodsBusinessFieldVo;
-import com.zhongzheng.modules.course.domain.CourseChapterSection;
-import org.springframework.stereotype.Service;
-import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
-import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
-import com.baomidou.mybatisplus.core.toolkit.Wrappers;
-import com.github.pagehelper.Page;
-
-import java.util.Collection;
-import java.util.Collections;
-import java.util.HashSet;
-import java.util.List;
-import java.util.stream.Collectors;
-
-/**
- * 商品字段业务层次配置Service业务层处理
- *
- * @author hjl
- * @date 2022-06-06
- */
-@Service
-public class GoodsBusinessFieldServiceImpl extends ServiceImpl<GoodsBusinessFieldMapper, GoodsBusinessField> implements IGoodsBusinessFieldService {
-
-    @Override
-    public GoodsBusinessFieldVo queryById(Long id){
-        GoodsBusinessField db = this.baseMapper.selectById(id);
-        return BeanUtil.toBean(db, GoodsBusinessFieldVo.class);
-    }
-
-    @Override
-    public List<GoodsBusinessFieldVo> queryList(GoodsBusinessFieldQueryBo bo) {
-        LambdaQueryWrapper<GoodsBusinessField> lqw = Wrappers.lambdaQuery();
-        lqw.eq(bo.getBusinessId() != null, GoodsBusinessField::getBusinessId, bo.getBusinessId());
-        lqw.eq(bo.getFieldId() != null, GoodsBusinessField::getFieldId, bo.getFieldId());
-        lqw.eq(bo.getRequire() != null, GoodsBusinessField::getRequire, bo.getRequire());
-        lqw.eq(bo.getStatus() != null, GoodsBusinessField::getStatus, bo.getStatus());
-        return entity2Vo(this.list(lqw));
-    }
-
-    /**
-    * 实体类转化成视图对象
-    *
-    * @param collection 实体类集合
-    * @return
-    */
-    private List<GoodsBusinessFieldVo> entity2Vo(Collection<GoodsBusinessField> collection) {
-        List<GoodsBusinessFieldVo> voList = collection.stream()
-                .map(any -> BeanUtil.toBean(any, GoodsBusinessFieldVo.class))
-                .collect(Collectors.toList());
-        if (collection instanceof Page) {
-            Page<GoodsBusinessField> page = (Page<GoodsBusinessField>)collection;
-            Page<GoodsBusinessFieldVo> pageVo = new Page<>();
-            BeanUtil.copyProperties(page,pageVo);
-            pageVo.addAll(voList);
-            voList = pageVo;
-        }
-        return voList;
-    }
-
-    @Override
-    public Boolean insertByAddBo(GoodsBusinessFieldAddBo bo) {
-        Collection<GoodsBusinessField> coll = new HashSet<>();
-        for(Long id : bo.getFieldId()){
-            GoodsBusinessField add = BeanUtil.toBean(bo, GoodsBusinessField.class);
-            add.setFieldId(id);
-            validEntityBeforeSave(add);
-            add.setCreateTime(DateUtils.getNowTime());
-            add.setUpdateTime(DateUtils.getNowTime());
-            coll.add(add);
-        }
-        return saveBatch(coll);
-    }
-
-    @Override
-    public Boolean updateByEditBo(GoodsBusinessFieldEditBo bo) {
-        GoodsBusinessField update = BeanUtil.toBean(bo, GoodsBusinessField.class);
-        validEntityBeforeSave(update);
-        update.setUpdateTime(DateUtils.getNowTime());
-        return this.updateById(update);
-    }
-
-    /**
-     * 保存前的数据校验
-     *
-     * @param entity 实体类数据
-     */
-    private void validEntityBeforeSave(GoodsBusinessField entity){
-        //TODO 做一些数据校验,如唯一约束
-    }
-
-    @Override
-    public Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid) {
-        if(isValid){
-            //TODO 做一些业务上的校验,判断是否需要校验
-        }
-        return this.removeByIds(ids);
-    }
-}

+ 0 - 43
zhongzheng-system/src/main/java/com/zhongzheng/modules/base/vo/GoodsBusinessFieldVo.java

@@ -1,43 +0,0 @@
-package com.zhongzheng.modules.base.vo;
-
-import com.zhongzheng.common.annotation.Excel;
-import com.fasterxml.jackson.annotation.JsonFormat;
-import io.swagger.annotations.ApiModel;
-import io.swagger.annotations.ApiModelProperty;
-import lombok.Data;
-import java.util.Date;
-
-
-
-/**
- * 商品字段业务层次配置视图对象 mall_package
- *
- * @author hjl
- * @date 2022-06-06
- */
-@Data
-@ApiModel("商品字段业务层次配置视图对象")
-public class GoodsBusinessFieldVo {
-	private static final long serialVersionUID = 1L;
-
-	/** $pkColumn.columnComment */
-	@ApiModelProperty("$pkColumn.columnComment")
-	private Long id;
-
-	/** 业务层次ID */
-	@Excel(name = "业务层次ID")
-	@ApiModelProperty("业务层次ID")
-	private Long businessId;
-	/** 字段ID */
-	@Excel(name = "字段ID")
-	@ApiModelProperty("字段ID")
-	private Long fieldId;
-	/** 0非必填 1必填 */
-	@Excel(name = "0非必填 1必填")
-	@ApiModelProperty("0非必填 1必填")
-	private Integer require;
-	/** 0 禁用 1启用 */
-	@Excel(name = "0 禁用 1启用")
-	@ApiModelProperty("0 禁用 1启用")
-	private Integer status;
-}

+ 3 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/course/bo/CourseBusinessAddBo.java

@@ -72,4 +72,7 @@ public class CourseBusinessAddBo {
     /** 排序 */
     @ApiModelProperty("排序")
     private Integer sort;
+    /** 商品配置字段JSON */
+    @ApiModelProperty("商品配置字段JSON")
+    private String goodsFieldJson;
 }

+ 3 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/course/bo/CourseBusinessEditBo.java

@@ -84,4 +84,7 @@ public class CourseBusinessEditBo {
     /** 排序 */
     @ApiModelProperty("排序")
     private Integer sort;
+    /** 商品配置字段JSON */
+    @ApiModelProperty("商品配置字段JSON")
+    private String goodsFieldJson;
 }

+ 2 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/course/domain/CourseBusiness.java

@@ -64,4 +64,6 @@ private static final long serialVersionUID=1L;
     private String refundConfirmUserIds;
     /** 排序 */
     private Integer sort;
+    /** 商品配置字段JSON */
+    private String goodsFieldJson;
 }

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

@@ -20,4 +20,8 @@ public interface CourseSectionMapper extends BaseMapper<CourseSection> {
     List<CourseSectionVo> selectSectionList(CourseSectionQueryBo bo);
 
     List<CourseSectionVo> overSectionList(@Param("startTime") Long startTime, @Param("endTime") Long endTime);
+
+    List<CourseSectionVo> livingSectionList(@Param("nowTime") Long nowTime);
+
+    Integer checkUserHaveLiveGoods(@Param("userId") Long userId,@Param("goodsIds") List<Long> goodsIds);
 }

+ 2 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/course/service/ICourseSectionService.java

@@ -67,5 +67,7 @@ public interface ICourseSectionService extends IService<CourseSection> {
 
 	List<CourseSectionVo> overSectionList(Long startTime,Long endTime);
 
+	List<CourseSectionVo> livingSectionList(Long userId);
+
 	List<LiveGetMessageListResponse.MessageList> GetHistoryChatMsg(CourseSectionQueryBo bo) throws IOException, NoSuchAlgorithmException;
 }

+ 82 - 2
zhongzheng-system/src/main/java/com/zhongzheng/modules/course/service/impl/CourseSectionServiceImpl.java

@@ -18,8 +18,11 @@ import com.zhongzheng.modules.course.bo.*;
 import com.zhongzheng.modules.course.domain.*;
 import com.zhongzheng.modules.course.mapper.CourseSectionMapper;
 import com.zhongzheng.modules.course.service.*;
-import com.zhongzheng.modules.course.vo.CourseSectionImport;
-import com.zhongzheng.modules.course.vo.CourseSectionVo;
+import com.zhongzheng.modules.course.vo.*;
+import com.zhongzheng.modules.goods.bo.GoodsCourseQueryBo;
+import com.zhongzheng.modules.goods.service.IGoodsCourseService;
+import com.zhongzheng.modules.goods.vo.GoodsCourseVo;
+import com.zhongzheng.modules.grade.vo.ClassPeriodVo;
 import com.zhongzheng.modules.polyv.bo.PolyvLiveQueryBo;
 import com.zhongzheng.modules.polyv.service.IPolyvLiveService;
 import com.zhongzheng.modules.polyv.service.IPolyvVideoService;
@@ -83,6 +86,12 @@ public class CourseSectionServiceImpl extends ServiceImpl<CourseSectionMapper, C
     @Autowired
     private IPolyvLiveService iPolyvLiveService;
 
+    @Autowired
+    private IGoodsCourseService iGoodsCourseService;
+
+    @Autowired
+    private ICourseModuleChapterService iCourseModuleChapterService;
+
     @Override
     public CourseSectionVo queryById(Long sectionId){
         CourseSection db = this.baseMapper.selectById(sectionId);
@@ -351,6 +360,77 @@ public class CourseSectionServiceImpl extends ServiceImpl<CourseSectionMapper, C
         return this.baseMapper.overSectionList(startTime,endTime);
     }
 
+    /**
+     * 查下用户有哪些商品节正在直播
+     * @param userId
+     * @return
+     */
+    @Override
+    public List<CourseSectionVo> livingSectionList(Long userId) {
+        List<CourseSectionVo> list = this.baseMapper.livingSectionList(DateUtils.getNowTime());
+        List<CourseSectionVo> userList = new ArrayList<>();
+        for(CourseSectionVo sectionVo : list){
+            List<Long> goodsIds = new ArrayList<>();//商品ID
+            //当节为根目录时
+            CourseMenuQueryBo menuQueryBo = new CourseMenuQueryBo();
+            menuQueryBo.setType(3);
+            menuQueryBo.setMenuId(sectionVo.getSectionId());
+            List<CourseMenuVo> menuList = iCourseMenuService.queryList(menuQueryBo);
+            for (CourseMenuVo menuVo : menuList) {
+                GoodsCourseQueryBo courseQueryBo = new GoodsCourseQueryBo();
+                courseQueryBo.setCourseId(menuVo.getCourseId());
+                List<GoodsCourseVo> goodsList = iGoodsCourseService.queryList(courseQueryBo);
+                for (GoodsCourseVo goodsCourseVo : goodsList) {
+                    goodsIds.add(goodsCourseVo.getGoodsId());
+                }
+            }
+
+            //当节在章下
+            CourseChapterSectionQueryBo chapterSectionQueryBo = new CourseChapterSectionQueryBo();
+            chapterSectionQueryBo.setSectionId(sectionVo.getSectionId());
+            List<CourseChapterSectionVo> chapterList = iCourseChapterSectionService.queryList(chapterSectionQueryBo);
+            for (CourseChapterSectionVo chapterSectionVo : chapterList) {
+                //当章在根目录时
+                CourseMenuQueryBo menuQueryBo2 = new CourseMenuQueryBo();
+                menuQueryBo2.setType(2);
+                menuQueryBo2.setMenuId(chapterSectionVo.getChapterId());
+                List<CourseMenuVo> menuList2 = iCourseMenuService.queryList(menuQueryBo2);
+                for (CourseMenuVo menuVo : menuList2) {
+                    GoodsCourseQueryBo courseQueryBo = new GoodsCourseQueryBo();
+                    courseQueryBo.setCourseId(menuVo.getCourseId());
+                    List<GoodsCourseVo> goodsList = iGoodsCourseService.queryList(courseQueryBo);
+                    for (GoodsCourseVo goodsCourseVo : goodsList) {
+                        goodsIds.add(goodsCourseVo.getGoodsId());
+                    }
+                }
+
+                //当章在模块下
+                CourseModuleChapterQueryBo moduleChapterQueryBo = new CourseModuleChapterQueryBo();
+                moduleChapterQueryBo.setChapterId(chapterSectionVo.getChapterId());
+                List<CourseModuleChapterVo> moduleList = iCourseModuleChapterService.queryList(moduleChapterQueryBo);
+                for (CourseModuleChapterVo moduleChapterVo : moduleList) {
+                    //当模块在根目录时
+                    CourseMenuQueryBo menuQueryBo3 = new CourseMenuQueryBo();
+                    menuQueryBo3.setType(1);
+                    menuQueryBo3.setMenuId(moduleChapterVo.getModuleId());
+                    List<CourseMenuVo> menuList3 = iCourseMenuService.queryList(menuQueryBo3);
+                    for (CourseMenuVo menuVo : menuList3) {
+                        GoodsCourseQueryBo courseQueryBo = new GoodsCourseQueryBo();
+                        courseQueryBo.setCourseId(menuVo.getCourseId());
+                        List<GoodsCourseVo> goodsList = iGoodsCourseService.queryList(courseQueryBo);
+                        for (GoodsCourseVo goodsCourseVo : goodsList) {
+                            goodsIds.add(goodsCourseVo.getGoodsId());
+                        }
+                    }
+                }
+            }
+            if(baseMapper.checkUserHaveLiveGoods(userId,goodsIds)>0){
+                userList.add(sectionVo);
+            }
+        }
+        return userList;
+    }
+
     /**
      * 获取节保利威聊天历史
      * @param bo

+ 4 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/course/vo/CourseBusinessVo.java

@@ -116,4 +116,8 @@ public class CourseBusinessVo {
 	@Excel(name = "排序")
 	@ApiModelProperty("排序")
 	private Integer sort;
+	/** 商品配置字段JSON */
+	@Excel(name = "商品配置字段JSON")
+	@ApiModelProperty("商品配置字段JSON")
+	private String goodsFieldJson;
 }

+ 0 - 1
zhongzheng-system/src/main/java/com/zhongzheng/modules/schedule/service/impl/ScheduleServiceImpl.java

@@ -952,7 +952,6 @@ public class ScheduleServiceImpl extends ServiceImpl<PolyvVideoMapper, PolyvVide
         List<Long> courseIds = new ArrayList<>();//课程ID
         List<ClassPeriodVo> periodList = new ArrayList<>();//学时列表
         for (CourseSectionVo sectionVo : list) {
-            System.out.println(sectionVo.getSectionId());
             //当节为根目录时
             CourseMenuQueryBo menuQueryBo = new CourseMenuQueryBo();
             menuQueryBo.setType(3);

+ 8 - 1
zhongzheng-system/src/main/java/com/zhongzheng/modules/user/service/impl/UserStudyRecordServiceImpl.java

@@ -193,7 +193,14 @@ public class UserStudyRecordServiceImpl extends ServiceImpl<UserStudyRecordMappe
         lqw.eq( UserStudyRecord::getCurrentStatus, 1);
         lqw.orderByDesc(UserStudyRecord::getRecordId);
         UserStudyRecord last = this.getOne(lqw.last("limit 1"));
-        return BeanUtil.toBean(last, UserStudyRecordVo.class);
+        UserStudyRecordVo vo = BeanUtil.toBean(last, UserStudyRecordVo.class);
+        if(Validator.isNotEmpty(vo)&&Validator.isNotEmpty(vo.getSectionId())){
+            CourseSectionVo sectionVo = iCourseSectionService.queryById(vo.getSectionId());
+            vo.setSectionType(sectionVo.getSectionType());
+            vo.setLiveUrl(sectionVo.getLiveUrl());
+            vo.setRecordingUrl(sectionVo.getRecordingUrl());
+        }
+        return vo;
     }
 
     @Override

+ 15 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/user/vo/UserStudyRecordVo.java

@@ -94,4 +94,19 @@ public class UserStudyRecordVo {
 	@Excel(name = "订单商品ID")
 	@ApiModelProperty("订单商品ID")
 	private Long orderGoodsId;
+
+	/** 节类型 1录播 2直播 3回放 */
+	@Excel(name = "节类型 1录播 2直播 3回放")
+	@ApiModelProperty("节类型 1录播 2直播 3回放")
+	private Integer sectionType;
+
+	/** 直播流地址 */
+	@Excel(name = "直播流地址")
+	@ApiModelProperty("直播流地址")
+	private String liveUrl;
+
+	/** 录播和回放的url地址 */
+	@Excel(name = "录播和回放的url地址")
+	@ApiModelProperty("录播和回放的url地址")
+	private String recordingUrl;
 }

+ 17 - 0
zhongzheng-system/src/main/resources/mapper/modules/base/GoodsFieldMapper.xml

@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper
+PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.zhongzheng.modules.base.mapper.GoodsFieldMapper">
+
+    <resultMap type="com.zhongzheng.modules.base.domain.GoodsField" id="GoodsFieldResult">
+        <result property="fieldId" column="field_id"/>
+        <result property="fieldName" column="field_name"/>
+        <result property="fieldKey" column="field_key"/>
+        <result property="status" column="status"/>
+        <result property="createTime" column="create_time"/>
+        <result property="updateTime" column="update_time"/>
+    </resultMap>
+
+
+</mapper>

+ 2 - 0
zhongzheng-system/src/main/resources/mapper/modules/course/CourseBusinessMapper.xml

@@ -20,6 +20,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         <result property="refundUserIds" column="refund_user_ids"/>
         <result property="refundConfirmUserIds" column="refund_confirm_user_ids"/>
         <result property="sort" column="sort"/>
+        <result property="goodsFieldJson" column="goods_field_json"/>
     </resultMap>
 
     <resultMap type="com.zhongzheng.modules.course.vo.CourseBusinessVo" id="CourseBusinessVoResult">
@@ -41,6 +42,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         <result property="refundUserIds" column="refund_user_ids"/>
         <result property="refundConfirmUserIds" column="refund_confirm_user_ids"/>
         <result property="sort" column="sort"/>
+        <result property="goodsFieldJson" column="goods_field_json"/>
     </resultMap>
 
 

+ 7 - 1
zhongzheng-system/src/main/resources/mapper/modules/course/CourseMapper.xml

@@ -324,7 +324,13 @@
         FROM
             course c
         WHERE
-        1 = 1
+        1 = 1   AND c.status !=-1
+        <if test="subjectIds != null and subjectIds.size()!=0 ">
+            AND c.subject_id in
+            <foreach collection="subjectIds" item="item" index="index" open="(" close=")" separator=",">
+                #{item}
+            </foreach>
+        </if>
         <if test="status != null and status.size()!=0 ">
             AND c.status in
             <foreach collection="status" item="item" index="index" open="(" close=")" separator=",">

+ 23 - 0
zhongzheng-system/src/main/resources/mapper/modules/course/CourseSectionMapper.xml

@@ -218,4 +218,27 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
     <select id="overSectionList" parameterType="map" resultMap="CourseSectionResultVo">
         SELECT * from course_section cs where cs.section_type = 2 and cs.live_end_time >= #{startTime} and  #{endTime} >= cs.live_end_time
     </select>
+
+    <select id="livingSectionList" parameterType="map" resultMap="CourseSectionResultVo">
+        SELECT * from course_section cs where cs.section_type = 2 and cs.live_end_time >= #{nowTime} and  #{nowTime} >= cs.live_start_time
+    </select>
+
+    <select id="checkUserHaveLiveGoods" parameterType="map" resultMap="Integer">
+        SELECT
+            count(*)
+        FROM
+            `order` o
+                LEFT JOIN order_goods og ON o.order_sn = og.order_sn
+        WHERE
+            o.user_id = #{userId}
+        <if test="goodsIds != null and goodsIds.size()!=0 ">
+            AND og.goods_id in
+            <foreach collection="goodsIds" item="item" index="index" open="(" close=")" separator=",">
+                #{item}
+            </foreach>
+        </if>
+        and og.`status` = 1
+        and og.refund_status in (0,1,3)
+        and og.pay_status in (2,3,4)
+    </select>
 </mapper>