tanzh 3 жил өмнө
parent
commit
1c12b36da8

+ 12 - 0
zhongzheng-api/src/main/java/com/zhongzheng/controller/mock/MockApplyController.java

@@ -136,4 +136,16 @@ public class MockApplyController extends BaseController {
         return getDataTable(list);
     }
 
+    /**
+     * 查询模考讲解直播列表
+     */
+    @ApiOperation("查询模考讲解直播列表")
+    @PreAuthorize("@ss.hasPermi('system:apply:list')")
+    @GetMapping("/listMockLive")
+    public TableDataInfo<MockApplyVo> listMockLive(MockApplyQueryBo bo) {
+        startPage();
+        List<MockApplyVo> list = iMockApplyService.listMockLive(bo);
+        return getDataTable(list);
+    }
+
 }

+ 2 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/mock/mapper/MockApplyMapper.java

@@ -23,4 +23,6 @@ public interface MockApplyMapper extends BaseMapper<MockApply> {
     List<MockApplyVo> queryApplyList(MockApplyQueryBo bo);
 
     List<MockApplyVo> listApplyBusiness(MockApplyQueryBo bo);
+
+    List<MockApplyVo> listMockLive(MockApplyQueryBo bo);
 }

+ 2 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/mock/service/IMockApplyService.java

@@ -60,4 +60,6 @@ public interface IMockApplyService extends IService<MockApply> {
 	MockApplyVo queryByApplyId(Long applyId);
 
 	List<MockApplyVo> listApplyBusiness(MockApplyQueryBo bo);
+
+    List<MockApplyVo> listMockLive(MockApplyQueryBo bo);
 }

+ 37 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/mock/service/impl/MockApplyServiceImpl.java

@@ -477,4 +477,41 @@ public class MockApplyServiceImpl extends ServiceImpl<MockApplyMapper, MockApply
     public List<MockApplyVo> listApplyBusiness(MockApplyQueryBo bo) {
         return baseMapper.listApplyBusiness(bo);
     }
+
+    @Override
+    public List<MockApplyVo> listMockLive(MockApplyQueryBo bo) {
+        List<MockApplyVo> list = baseMapper.listMockLive(bo);
+        ArrayList<MockApplyVo> ingList = new ArrayList<>();
+        ArrayList<MockApplyVo> offList = new ArrayList<>();
+        ArrayList<MockApplyVo> playBackList = new ArrayList<>();
+        ArrayList<MockApplyVo> overList = new ArrayList<>();
+        if (list != null && list.size() > 0) {
+            list.forEach(mockApplyVo -> {
+                if (Validator.isNotEmpty(mockApplyVo.getLiveStartTime()) && Validator.isNotEmpty(mockApplyVo.getLiveEndTime())) {
+                    if (System.currentTimeMillis() / 1000 > mockApplyVo.getLiveStartTime() && System.currentTimeMillis() / 1000 < mockApplyVo.getLiveEndTime()) {
+                        mockApplyVo.setLiveStatus(0);
+                        ingList.add(mockApplyVo);
+                    }
+                    if (System.currentTimeMillis() / 1000 < mockApplyVo.getLiveStartTime()) {
+                        mockApplyVo.setLiveStatus(1);
+                        offList.add(mockApplyVo);
+                    }
+                    if (mockApplyVo.getSectionType() == 3) {
+                        mockApplyVo.setLiveStatus(2);
+                        playBackList.add(mockApplyVo);
+                    }
+                    if (System.currentTimeMillis() / 1000 > mockApplyVo.getLiveEndTime()) {
+                        mockApplyVo.setLiveStatus(3);
+                        overList.add(mockApplyVo);
+                    }
+                }
+            });
+        }
+        ArrayList<MockApplyVo> resultList = new ArrayList<>();
+        resultList.addAll(ingList);
+        resultList.addAll(offList);
+        resultList.addAll(playBackList);
+        resultList.addAll(overList);
+        return resultList;
+    }
 }

+ 26 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/mock/vo/MockApplyVo.java

@@ -163,4 +163,30 @@ public class MockApplyVo {
 	@ApiModelProperty("模考绑定专业集合")
 	private List<MockMajorVo> mockMajorList;
 
+	/** 节类型 1录播 2直播 3回放 */
+	@Excel(name = "节类型 1录播 2直播 3回放")
+	@ApiModelProperty("节类型 1录播 2直播 3回放")
+	private Integer sectionType;
+	/** 直播流地址 */
+	@Excel(name = "直播流地址")
+	@ApiModelProperty("直播流地址")
+	private String liveUrl;
+	/** 直播开始时间 */
+	@Excel(name = "直播开始时间")
+	@ApiModelProperty("直播开始时间")
+	private Long liveStartTime;
+	/** 直播结束时间 */
+	@Excel(name = "直播结束时间")
+	@ApiModelProperty("直播结束时间")
+	private Long liveEndTime;
+	/** 录播和回放的url地址 */
+	@Excel(name = "录播和回放的url地址")
+	@ApiModelProperty("录播和回放的url地址")
+	private String recordingUrl;
+
+	/** 直播状态 0直播中 1未开播 2回放中 3已结束 */
+	@Excel(name = "直播状态 0直播中 1未开播 2回放中 3已结束")
+	@ApiModelProperty("直播状态 0直播中 1未开播 2回放中 3已结束")
+	private Integer liveStatus;
+
 }

+ 13 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/user/vo/UserMockSubscribeVo.java

@@ -189,4 +189,17 @@ public class UserMockSubscribeVo {
 	@Excel(name = "做题id")
 	@ApiModelProperty("做题id")
 	private Long recordId;
+
+	/** 直播流地址 */
+	@Excel(name = "直播流地址")
+	@ApiModelProperty("直播流地址")
+	private String liveUrl;
+	/** 直播开始时间 */
+	@Excel(name = "直播开始时间")
+	@ApiModelProperty("直播开始时间")
+	private Long liveStartTime;
+	/** 直播结束时间 */
+	@Excel(name = "直播结束时间")
+	@ApiModelProperty("直播结束时间")
+	private Long liveEndTime;
 }

+ 6 - 1
zhongzheng-system/src/main/resources/mapper/modules/exam/ExamApplyMapper.xml

@@ -289,7 +289,12 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             LEFT JOIN goods g on eag.goods_id=g.goods_id
         WHERE
             1 = 1
-          AND eag.goods_id = #{goodsId}
+        <if test="goodsId != null and goodsId != ''">
+            AND eag.goods_id = #{goodsId}
+        </if>
+        <if test="applyId != null and applyId != ''">
+            AND eag.apply_id = #{applyId}
+        </if>
           AND ea.`status` =1
     </select>
 

+ 33 - 0
zhongzheng-system/src/main/resources/mapper/modules/mock/MockApplyMapper.xml

@@ -46,6 +46,11 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         <result property="majorId" column="major_id"/>
         <result property="categoryName" column="category_name"/>
         <result property="eachExamId" column="each_exam_id"/>
+        <result property="sectionType" column="section_type"/>
+        <result property="liveUrl" column="live_url"/>
+        <result property="liveStartTime" column="live_start_time"/>
+        <result property="liveEndTime" column="live_end_time"/>
+        <result property="recordingUrl" column="recording_url"/>
     </resultMap>
     <select id="getMockSubjectInfo" parameterType="java.lang.Long" resultMap="MockApplyVoResult">
         SELECT ma.*,
@@ -173,6 +178,34 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         GROUP BY a.business_id,a.business_name,a.project_id,a.project_name
         HAVING COUNT(a.project_id)=2
     </select>
+    <select id="listMockLive" parameterType="com.zhongzheng.modules.mock.bo.MockApplyQueryBo" resultMap="MockApplyVoResult">
+        SELECT
+            ma.*,
+            cb.business_name,
+            cpt.project_name,
+            cs.section_type,
+            cs.live_url,
+            cs.live_start_time,
+            cs.live_end_time,
+            cs.recording_url
+        FROM
+            mock_apply ma
+        LEFT JOIN mock_major mm ON ma.apply_id = mm.apply_id
+        LEFT JOIN mock_major_subject mms ON mm.mock_major_id = mms.mock_major_id
+        LEFT JOIN course_business cb ON ma.business_id = cb.id
+        LEFT JOIN course_project_type cpt ON ma.project_id = cpt.id
+        LEFT JOIN course_section cs ON mms.section_id = cs.section_id
+        WHERE 1=1
+        <if test="startTime != null and starTime != ''">
+            AND cs.live_start_time &gt; #{startTime}
+        </if>
+        <if test="endTime != null and endTime != ''">
+            AND cs.live_end_time &lt; #{endTime}
+        </if>
+        <if test="applyName != null and applyName != ''">
+            AND ma.apply_name = #{applyName}
+        </if>
+    </select>
 
 
 </mapper>

+ 8 - 1
zhongzheng-system/src/main/resources/mapper/modules/mock/MockMajorSubjectTimeMapper.xml

@@ -36,6 +36,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         <result property="businessName" column="business_name"/>
         <result property="timeLimit" column="time_limit"/>
         <result property="firstHandTime" column="first_hand_time"/>
+        <result property="liveUrl" column="live_url"/>
+        <result property="liveStartTime" column="live_start_time"/>
+        <result property="liveEndTime" column="live_end_time"/>
     </resultMap>
     <select id="listBySubject" parameterType="com.zhongzheng.modules.user.bo.UserMockSubscribeQueryBo" resultType="com.zhongzheng.modules.mock.domain.MockMajorSubjectTime">
         SELECT
@@ -74,7 +77,10 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             ma.business_id,
             cb.business_name,
             ma.time_limit,
-            mms.exam_id
+            mms.exam_id,
+            css.live_url,
+            css.live_start_time,
+            css.live_end_time
         FROM
             mock_major_subject_time mmst
         LEFT JOIN mock_major_subject mms ON mmst.mock_major_subject_id = mms.mock_major_subject_id
@@ -84,6 +90,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         LEFT JOIN mock_apply ma ON mm.apply_id = ma.apply_id
         LEFT JOIN course_project_type cpt ON ma.project_id = cpt.id
         LEFT JOIN course_business cb ON ma.business_id = cb.id
+        LEFT JOIN course_section css ON mms.section_id = css.section_id
         WHERE
         mmst.id = #{eachExamId}
     </select>