he2802 3 gadi atpakaļ
vecāks
revīzija
82d09dfafc

+ 11 - 0
zhongzheng-admin/src/main/java/com/zhongzheng/controller/course/CourseStreamingController.java

@@ -125,4 +125,15 @@ public class CourseStreamingController extends BaseController {
         List<CourseStreamingBusiness> list = iCourseStreamingBusinessService.getListById(id);
         return AjaxResult.success(list);
     }
+
+    /**
+     * 新增课程流媒体
+     */
+    @ApiOperation("同步保利威新增课程流媒体")
+    @PreAuthorize("@ss.hasPermi('system:streaming:add')")
+    @Log(title = "同步保利威新增课程流媒体", businessType = BusinessType.INSERT)
+    @PostMapping("addAll")
+    public AjaxResult<Void> addAll(@RequestBody CourseStreamingAddBo bo) {
+        return toAjax(iCourseStreamingService.insertByAddAllBo(bo) ? 1 : 0);
+    }
 }

+ 4 - 7
zhongzheng-admin/src/main/java/com/zhongzheng/controller/polyv/PolyvVideoController.java

@@ -92,15 +92,12 @@ public class PolyvVideoController extends BaseController {
     /**
      * 查询考试安排列表
      */
-    @ApiOperation("查询考试安排列表")
+    @ApiOperation("查询保利威视频")
     @PreAuthorize("@ss.hasPermi('polyv:video:list')")
     @GetMapping("/list")
-    public AjaxResult<List<PolyvVideoVo>> listPolyv(PolyvVideoQueryBo bo) throws Exception {
-        if (bo.getPageSize() == null || bo.getPageNum() == null){
-            throw new IllegalArgumentException("分页不能为空");
-        }
-        List<PolyvVideoVo> list = iPolyvVideoService.queryPolyv(bo);
-        return AjaxResult.success(list);
+    public TableDataInfo<PolyvVideoVo> listPolyv(PolyvVideoQueryBo bo) throws Exception {
+        TableDataInfo list = iPolyvVideoService.queryPolyv(bo);
+        return list;
     }
 
 }

+ 4 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/course/bo/CourseStreamingAddBo.java

@@ -48,6 +48,10 @@ public class CourseStreamingAddBo {
     /** 录播保利威视频ID */
     @ApiModelProperty("录播保利威视频ID")
     private String recordingVideoId;
+
+    /** 录播保利威视频ID */
+    @ApiModelProperty("录播保利威视频ID")
+    private String[] recordingVideoIds;
     /** 回放地址 */
     @ApiModelProperty("回放地址")
     private String playbackUrl;

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

@@ -51,4 +51,6 @@ public interface ICourseStreamingService extends IService<CourseStreaming> {
 	 * @return
 	 */
 	Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
+
+	boolean insertByAddAllBo(CourseStreamingAddBo bo);
 }

+ 22 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/course/service/impl/CourseStreamingServiceImpl.java

@@ -168,6 +168,28 @@ public class CourseStreamingServiceImpl extends ServiceImpl<CourseStreamingMappe
         return this.removeByIds(ids);
     }
 
+    @Override
+    public boolean insertByAddAllBo(CourseStreamingAddBo bo) {
+        for (String code : bo.getRecordingVideoIds()) {
+            CourseStreaming add = BeanUtil.toBean(bo, CourseStreaming.class);
+            add.setCode(ServletUtils.getEncoded("L"));
+            add.setRecordingVideoId(code);
+            validEntityBeforeSave(add);
+            add.setCreateTime(DateUtils.getNowTime());
+            add.setUpdateTime(DateUtils.getNowTime());
+            boolean result = this.save(add);
+            if(result){
+                for(int i=0;i<bo.getBusinessList().size();i++){
+                    CourseStreamingBusinessAddBo item = bo.getBusinessList().get(i);
+                    item.setStreamingId(add.getId());
+                    iCourseStreamingBusinessService.insertByAddBo(item);
+                }
+            }
+        }
+
+        return true;
+    }
+
     private boolean checkNameUnique(CourseStreaming entity) {
         CourseStreaming info = getOne(new LambdaQueryWrapper<CourseStreaming>()
                 .eq(CourseStreaming::getStreamingName,entity.getStreamingName()).last("limit 1"));

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

@@ -261,4 +261,7 @@ public class GoodsUserVo {
 
 	@ApiModelProperty("课程数量")
 	private Long courseNum;
+
+	@ApiModelProperty("是否确认重修 1已经确认  0未确认")
+	private Long rebuildStatus;
 }

+ 4 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/polyv/bo/PolyvVideoQueryBo.java

@@ -163,4 +163,8 @@ public class PolyvVideoQueryBo extends BaseEntity {
 	@ApiModelProperty("$column.columnComment")
 	private String hls;
 
+	/** 编码后各个清晰度视频的文件大小(单位:字节),类型为array */
+	@ApiModelProperty("视频标题")
+	private String keyword;
+
 }

+ 2 - 1
zhongzheng-system/src/main/java/com/zhongzheng/modules/polyv/service/IPolyvVideoService.java

@@ -1,5 +1,6 @@
 package com.zhongzheng.modules.polyv.service;
 
+import com.zhongzheng.common.core.page.TableDataInfo;
 import com.zhongzheng.modules.polyv.domain.PolyvVideo;
 import com.zhongzheng.modules.polyv.vo.PolyvCataData;
 import com.zhongzheng.modules.polyv.vo.PolyvVideoQuerVo;
@@ -62,5 +63,5 @@ public interface IPolyvVideoService extends IService<PolyvVideo> {
 
     List<PolyvCataData> queryCataList(PolyvVideoQueryBo bo) throws Exception;
 
-	List<PolyvVideoVo> queryPolyv(PolyvVideoQueryBo bo) throws Exception;
+	TableDataInfo queryPolyv(PolyvVideoQueryBo bo) throws Exception;
 }

+ 22 - 13
zhongzheng-system/src/main/java/com/zhongzheng/modules/polyv/service/impl/PolyvVideoServiceImpl.java

@@ -9,6 +9,7 @@ import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
 import com.baomidou.mybatisplus.core.toolkit.StringUtils;
 import com.fasterxml.jackson.databind.ObjectMapper;
+import com.zhongzheng.common.core.page.TableDataInfo;
 import com.zhongzheng.common.core.redis.RedisCache;
 import com.zhongzheng.common.utils.DateUtils;
 import com.zhongzheng.common.utils.http.HttpUtils;
@@ -317,25 +318,27 @@ public class PolyvVideoServiceImpl extends ServiceImpl<PolyvVideoMapper, PolyvVi
 
 
     @Override
-    public List<PolyvVideoVo> queryPolyv(PolyvVideoQueryBo bo) throws Exception {
+    public TableDataInfo<PolyvVideoVo> queryPolyv(PolyvVideoQueryBo bo) throws Exception {
         //获得保利威sign
         Long ptime = System.currentTimeMillis();
         Map<String,String> map = new HashMap<>();
-        map.put("ptime",ptime.toString());
-        map.put("userid",poliv_token_userid);
-        String sign = PolyvUtils.getSign(map, poliv_token_secretkey);
-
         //发送请求
-        String param = "userid="+poliv_token_userid+"&ptime="+ptime+"&sign="+sign;
+        String param = "ptime="+ptime;
         if (StringUtils.isNotBlank(bo.getCataid())){
-            param.concat("&cataid="+bo.getCataid());
+            param = param.concat("&cataid="+bo.getCataid());
         }
-        if (StringUtils.isNotBlank(bo.getTag())){
-            param.concat("&tag="+bo.getTag());
+        if (bo.getPageSize() != null){
+            param =param.concat("&numPerPage="+bo.getPageSize());
+            map.put("numPerPage",bo.getPageSize().toString());
         }
-       /* if (StringUtils.isNotBlank(bo.getKe())){
-            param.concat("&tag="+bo.getTag());
-        }*/
+        if (bo.getPageNum() != null){
+            param =param.concat("&pageNum="+bo.getPageNum());
+            map.put("pageNum",bo.getPageNum().toString());
+        }
+
+        map.put("ptime",ptime.toString());
+        String sign = PolyvUtils.getSign(map, poliv_token_secretkey);
+        param = param.concat("&sign="+sign);
         String polyvVide = HttpUtils.sendGet("http://api.polyv.net/v2/video/" + poliv_token_userid + "/search", param);
         JSONObject jsonObject = JSONObject.parseObject(polyvVide);
         //非200抛出异常
@@ -344,8 +347,14 @@ public class PolyvVideoServiceImpl extends ServiceImpl<PolyvVideoMapper, PolyvVi
         }
         //将数据展示
         JSONArray jsonArray=jsonObject.getJSONArray("data");
+        Object total = jsonObject.get("total");
         List<PolyvVideoVo> list=jsonArray.toJavaList(PolyvVideoVo.class);
-        return list;
+        TableDataInfo tableDataInfo = new TableDataInfo();
+        tableDataInfo.setRows(list);
+        tableDataInfo.setTotal(Convert.toLong(total));
+        tableDataInfo.setCode(200);
+        tableDataInfo.setMsg("请求正常");
+        return tableDataInfo;
     }
 
 

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

@@ -148,6 +148,7 @@
         <result property="goodsPlayConfig" column="goods_play_config"/>
         <result property="goodsExamConfig" column="goods_exam_config"/>
         <result property="gradeId" column="grade_id"/>
+        <result property="rebuildStatus" column="rebuild_status"/>
 
         <result property="supplyName" column="supply_name"/>
         <result property="educationName" column="education_name"/>
@@ -332,7 +333,7 @@
             g.goods_id,
             g.goods_name,
             g.`year`,
-            (SELECT COUNT(1) FROM user_period up LEFT JOIN user_period_status ups on up.id = ups.period_id where up.goods_id = g.goods_id AND ups.period_status =1  and ups.`status` =3 and up.grade_id = cgu.grade_id) as rebuild,
+            (SELECT COUNT(1) FROM user_period up LEFT JOIN user_period_status ups on up.id = ups.period_id where up.goods_id = g.goods_id AND ups.period_status =1  and (ups.`status` =3 or ups.`status` =0) and up.grade_id = cgu.grade_id) as rebuild,
             (case WHEN (SELECT COUNT(1) FROM user_period up LEFT JOIN user_period_status ups on up.id = ups.period_id where up.goods_id = g.goods_id AND ups.period_status =1 and ups.`status` =0) >0 then 0 ELSE 1 end) as rebuild_status,
             cgu.grade_id,
             (SELECT COUNT(m.id) FROM course_menu_exam m LEFT JOIN goods_course c on m.course_id=c.course_id LEFT JOIN class_grade_goods cgg on cgg.goods_id = c.goods_id where cg.grade_id=cgg.grade_id and m.type = 1 ) as exam_num,
@@ -410,6 +411,7 @@
         (SELECT cet.project_name FROM  course_project_type cet where cet.id = g.project_id) as project_name,
         (SELECT cet.business_name FROM  course_business cet  where cet.id = g.business_id) as business_name,
         (SELECT COUNT(1) FROM goods_course gc where gc.goods_id = g.goods_id) as course_num,
+        (case WHEN (SELECT COUNT(1) FROM user_period up LEFT JOIN user_period_status ups on up.id = ups.period_id where up.goods_id = g.goods_id AND ups.period_status =1 and ups.`status` =0) >0 then 0 ELSE 1 end) as rebuild_status,
         (case WHEN (SELECT COUNT(1) FROM exam_apply_goods eag LEFT JOIN exam_apply ea on eag.apply_id = ea.apply_id where eag.goods_id = g.goods_id and ea.`status` = 1 and unix_timestamp(now()) BETWEEN ea.apply_start_time and ea.apply_end_time) >0 then 1 ELSE 0 end) as apply_status,
         (case WHEN (SELECT COUNT(1) FROM exam_before_goods ebg LEFT JOIN exam_before eb on ebg.before_id = eb.before_id where ebg.goods_id = g.goods_id and eb.`status` = 1 and unix_timestamp(now()) BETWEEN eb.before_start_time and eb.before_end_time) >0 then 1 ELSE 0 end) as before_status,
         (SELECT ea.apply_name FROM exam_apply_goods eag LEFT JOIN exam_apply ea on eag.apply_id = ea.apply_id where eag.goods_id = g.goods_id and ea.`status` = 1 and unix_timestamp(now()) BETWEEN ea.apply_start_time and ea.apply_end_time) as apply_name,