From 3970ced88b5b456f03fe277c254ca761f05492e0 Mon Sep 17 00:00:00 2001
From: yn147 <2270338776@qq.com>
Date: 星期四, 26 十月 2023 14:00:12 +0800
Subject: [PATCH] 直播是否发布门户
---
src/main/java/com/qxueyou/scc/controller/VideoLiveController.java | 159 ++++++++++++++++++++++++++++++++++++++++++++++------
1 files changed, 140 insertions(+), 19 deletions(-)
diff --git a/src/main/java/com/qxueyou/scc/controller/VideoLiveController.java b/src/main/java/com/qxueyou/scc/controller/VideoLiveController.java
index 3597283..2caa80a 100644
--- a/src/main/java/com/qxueyou/scc/controller/VideoLiveController.java
+++ b/src/main/java/com/qxueyou/scc/controller/VideoLiveController.java
@@ -1,12 +1,23 @@
package com.qxueyou.scc.controller;
-import java.util.ArrayList;
-import java.util.Date;
-import java.util.List;
-import java.util.Map;
+import java.text.SimpleDateFormat;
+import java.util.*;
+import java.util.concurrent.TimeUnit;
+import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONArray;
+import com.alibaba.fastjson.JSONObject;
+import com.hankcs.hanlp.corpus.tag.Nature;
+import com.qxueyou.scc.base.dao.CommonDAO;
+import com.qxueyou.scc.config.IpUtils;
+import com.qxueyou.scc.sdk.MTCloud;
+import com.qxueyou.scc.teach.live.model.AccessLog;
+import com.qxueyou.scc.teach.live.utils.RedisCache;
+import io.swagger.models.auth.In;
+import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.http.HttpRequest;
import org.springframework.web.bind.annotation.*;
import com.qxueyou.scc.admin.classes.model.ClsClass;
@@ -24,9 +35,16 @@
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
+import springfox.documentation.spring.web.json.Json;
+
+import javax.servlet.http.HttpServletRequest;
+
+import static com.hankcs.hanlp.corpus.tag.Nature.r;
+import static com.hankcs.hanlp.corpus.tag.Nature.s;
@Api(tags="鐩存挱绠$悊鎺ュ彛")
@RestController
+@Slf4j
@CrossOrigin(origins="*",maxAge=3600)
@RequestMapping(value = "/admin/videoLive")
public class VideoLiveController {
@@ -46,7 +64,12 @@
@Autowired
MediaLiveDAO dao;
-
+
+ @Autowired
+ CommonDAO commonDAO;
+
+ @Autowired
+ private RedisCache redisCache;
/**
* 鑾峰彇鐩存挱鍒楄〃
*
@@ -60,11 +83,11 @@
*/
@ApiOperation(value = "鑾峰彇鍒涘缓浜虹殑鐩存挱鍒楄〃")
@GetMapping(value = "list")
- public Result list(String keyword, Integer pageNum, Integer pageSize) {
+ public Result list(String keyword,String portalStatus, Integer pageNum, Integer pageSize) {
- List<MediaVideoLive> data = liveService.listOfMine(keyword, pageNum, pageSize);
+ List<MediaVideoLive> data = liveService.listOfMine(keyword,portalStatus, pageNum, pageSize);
int count = liveService.listCountOfMine(keyword);
-
+
return new Result(true, "success", CollectionUtils.newObjectMap("videoLiveCount", count,
"videoLiveLst",QBeanUtils.listBean2ListMap(data, CollectionUtils.newStringMap(
"creator","creator",
@@ -78,10 +101,20 @@
"status","status",
"pushUrl","rtmpPushUrl",
"hlsPullUrl","hlsPullUrl",
- "previewImgUrl","previewImgUrl"
+ "previewImgUrl","previewImgUrl",
+ "courseId","courseId",
+ "portalStatus","portalStatus"
))));
}
+ @ApiOperation(value = "鑾峰彇宸茬粨鏉熺洿鎾垪琛�")
+ @GetMapping(value = "listvideo")
+ public Result listvideo() {
+
+ List<MediaVideoLive> data = liveService.listvideo("9");
+
+ return new Result(true, "success", CollectionUtils.newObjectMap("listVideo",data));
+ }
/**
* 鏂板鐩存挱/鏇存柊鐩存挱
*
@@ -106,14 +139,101 @@
@ApiOperation(value = "鍒涘缓缂栬緫鐩存挱")
@PostMapping(value = "addOrUpdate")
public Result addOrUpdate(String videoLiveId, String name, String content,String teacherId,String teacherName,String subjectId,
- String subjectName,String definition,String imgPath, long startTime,long endTime, boolean isPlayBack, String classIds) {
- if(StringUtils.isEmpty(videoLiveId)) {
- return liveService.add(name, content,teacherId,teacherName,subjectId,subjectName,definition,imgPath, new Date(startTime), new Date(endTime), isPlayBack, StringUtils.isEmpty(classIds)?null:CollectionUtils.newList(String.class,classIds.split(",")));
- }else {
- return liveService.update(videoLiveId,name, content,teacherId,teacherName,subjectId,subjectName,definition,imgPath, new Date(startTime), new Date(endTime), isPlayBack, StringUtils.isEmpty(classIds)?null:CollectionUtils.newList(String.class,classIds.split(",")));
+ String subjectName,String definition,String imgPath, long startTime,long endTime, boolean isPlayBack, String classIds,String portalStatus) throws Exception {
+ MTCloud client = new MTCloud();
+ HashMap<Object,Object> options = new HashMap<Object,Object>();
+ options.put("barrage", 1);
+ options.put("isPublic", 1);
+ options.put("robotNumber", 1);
+ options.put("robotType", 1);
+ options.put("pptDisplay", 1);
+ options.put("modetype", 6);
+ //灏唋ong绫诲瀷杞崲涓篠tring绫诲瀷
+ SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+ String startTime1 = simpleDateFormat.format(new Date(startTime));
+ String endTime1 = simpleDateFormat.format(new Date(endTime));
+ System.out.println(startTime1+"------"+endTime1);
+ //璋冪敤绗笁鏂圭洿鎾帴鍙�
+ String s = client.courseAdd(name, ClientUtils.getUserId(), startTime1, endTime1, ClientUtils.getUserName(), "222", options);
+ //json杞崲鎷垮埌courseId
+ JSONObject jsonObject = JSON.parseObject(s);
+ JSONObject data = jsonObject.getJSONObject("data");
+ if(jsonObject.getString("code").equals("0")) {
+ String course_id = (String) data.get("course_id");
+ liveService.add(name, content,teacherId,teacherName,subjectId,subjectName,definition,imgPath, new Date(startTime), new Date(endTime),Integer.parseInt(course_id), isPlayBack, StringUtils.isEmpty(classIds)?null:CollectionUtils.newList(String.class,classIds.split(",")),portalStatus);
+ return new Result(true, "鎴愬姛", s);
}
+ return new Result(false,jsonObject.getString("msg"));
}
+ @ApiOperation(value = "寮�鍚洿鎾�")
+ @GetMapping(value = "OpenLive")
+ public Result OpenLive(Integer courseId, String logId, HttpServletRequest request) throws Exception {
+ MTCloud client = new MTCloud();
+ String redisUrl = redisCache.getCacheObject("ZCR" + courseId);
+ AccessLog accessLog = new AccessLog();
+
+ if (StringUtils.isEmpty(logId)) {
+ String ip = IpUtils.getIpAddr(request);
+ String cityInfo = null;
+ try {
+ cityInfo = IpUtils.getCityInfo(ip);
+ } catch (Exception e) {
+ log.error("鑾峰彇ip褰掑睘鍦颁俊鎭け璐ワ紒");
+ }
+ accessLog.setCourseId(courseId.toString());
+ accessLog.setEnterTime(new Date());
+ accessLog.setType("videoLive");
+ accessLog.setName(ClientUtils.getUserName());
+ accessLog.setIp(ip);
+ accessLog.setIpAttribution(cityInfo);
+ accessLog.setCreateTime(new Date());
+ accessLog.setUpdateTime(new Date());
+ //璁块棶鐣欑棔
+ commonDAO.save(accessLog);
+ }
+ if (StringUtils.isEmpty(redisUrl)) {
+ HashMap<Object, Object> options = new HashMap<Object, Object>();
+ options.put("ssl", false);
+ String res = client.courseLogin(ClientUtils.getUserId(), MTCloud.ACCOUNT_TYPE_THIRD, options);
+ JSONObject jsonObject = JSON.parseObject(res);
+ if (jsonObject.getString("code").equals("0")) {
+ JSONObject data = jsonObject.getJSONObject("data");
+ String protocol = (String) data.get("url");
+ redisCache.setCacheObject("ZCR" + courseId, protocol, 1, TimeUnit.DAYS);
+ return new Result(true,"suc", CollectionUtils.newObjectMap("url", protocol, "log", accessLog.getLogId()));
+ }
+ }
+ return new Result(true,"suc",CollectionUtils.newObjectMap("url", redisUrl, "log", accessLog.getLogId()));
+ }
+
+ @ApiOperation(value = "淇敼鐩存挱鐘舵��")
+ @GetMapping(value = "updateLive")
+ public Result updateLive(Integer courseId) {
+
+ MediaVideoLive revamp = liveService.revamp(courseId);
+ revamp.setStatus(MediaVideoLive.STATUS_LIVE_STOP);
+ commonDAO.update(revamp);
+
+ return new Result(true,"鍏抽棴鎴愬姛");
+ }
+
+ @ApiOperation(value = "鍦ㄧ嚎鏃堕暱")
+ @GetMapping(value = "onlineCommunication")
+ public Result onlineCommunication(String courseId,Integer page, Integer size) throws Exception {
+ MTCloud client = new MTCloud();
+ HashMap<Object,Object> options = new HashMap<Object, Object>();
+ options.put("ssl", false);
+ String res = client.courseVisitorList(courseId,page,size,options);
+ return new Result(true,"寮�鍚垚鍔�",res);
+ }
+
+// @ApiOperation(value = "鏌ョ湅璇︽儏")
+// @GetMapping(value = "detailLive")
+// public Result detailLive(String liveId) {
+// commonDAO.find
+// return new Result(true,"寮�鍚垚鍔�",res);
+// }
/**
* 鏌ヨ鐩存挱璇︽儏
*
@@ -200,13 +320,13 @@
/**
* 鍒犻櫎/澶氫釜浠ラ�楀彿闅斿紑
*
- * @param videoLiveId
+ * @param videoLiveIds
* @return
*/
@ApiOperation(value = "鍒犻櫎鍒涘缓鐨勭洿鎾�")
@PostMapping(value = "delete")
- public Result delete(String videoLiveIds) {
- return liveService.delete(videoLiveIds.split(","));
+ public Result delete(String videoLiveIds,String courseIds) throws Exception {
+ return liveService.delete(videoLiveIds.split(","),courseIds.split(","));
}
@@ -246,7 +366,7 @@
/**
* 鐩存挱缁撴潫
*
- * @param videoLiveId
+ * @param videoLiveIds
* 鐩存挱id
*/
@ApiOperation(value = "鐩存挱缁撴潫")
@@ -300,7 +420,8 @@
"status","status",
"pushUrl","rtmpPushUrl",
"hlsPullUrl","hlsPullUrl",
- "previewImgUrl","previewImgUrl"
+ "previewImgUrl","previewImgUrl",
+ "courseId","courseId"
))));
}
--
Gitblit v1.8.0