From 8c1ac419031d562152ec86437215193c20c909b7 Mon Sep 17 00:00:00 2001 From: 胡仁荣 <897853850@qq.com> Date: 星期一, 11 九月 2023 10:44:07 +0800 Subject: [PATCH] 退出接口 --- src/main/java/com/qxueyou/scc/controller/VideoLiveController.java | 155 ++++++++++++++++++++++++++++++++++++++++++++++----- 1 files changed, 138 insertions(+), 17 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..5e75019 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; /** * 鑾峰彇鐩存挱鍒楄〃 * @@ -64,7 +87,7 @@ List<MediaVideoLive> data = liveService.listOfMine(keyword, 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,19 @@ "status","status", "pushUrl","rtmpPushUrl", "hlsPullUrl","hlsPullUrl", - "previewImgUrl","previewImgUrl" + "previewImgUrl","previewImgUrl", + "courseId","courseId" )))); } + @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 +138,102 @@ @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) 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"); +// System.out.println(Integer.parseInt(course_id)); + 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(","))); + 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