| | |
| | | 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 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.sdk.MTCloud; |
| | | import io.swagger.models.auth.In; |
| | | import org.apache.commons.lang3.StringUtils; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.web.bind.annotation.*; |
| | |
| | | |
| | | import io.swagger.annotations.Api; |
| | | import io.swagger.annotations.ApiOperation; |
| | | import springfox.documentation.spring.web.json.Json; |
| | | |
| | | import static com.hankcs.hanlp.corpus.tag.Nature.r; |
| | | import static com.hankcs.hanlp.corpus.tag.Nature.s; |
| | | |
| | | @Api(tags="直播管理接口") |
| | | @RestController |
| | |
| | | |
| | | @Autowired |
| | | MediaLiveDAO dao; |
| | | |
| | | @Autowired |
| | | CommonDAO commonDAO; |
| | | |
| | | /** |
| | | * 获取直播列表 |
| | |
| | | |
| | | 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", |
| | |
| | | "status","status", |
| | | "pushUrl","rtmpPushUrl", |
| | | "hlsPullUrl","hlsPullUrl", |
| | | "previewImgUrl","previewImgUrl" |
| | | "previewImgUrl","previewImgUrl", |
| | | "courseId","courseId" |
| | | )))); |
| | | } |
| | | |
| | |
| | | @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); |
| | | //将long类型转换为String类型 |
| | | 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(int courseId) throws Exception { |
| | | MTCloud client = new MTCloud(); |
| | | |
| | | HashMap<Object,Object> options = new HashMap<Object, Object>(); |
| | | options.put("ssl", false); |
| | | |
| | | String res = client.courseLogin(ClientUtils.getUserId(),MTCloud.ACCOUNT_TYPE_THIRD, options); |
| | | System.out.println(res); |
| | | JSONObject jsonObject = JSON.parseObject(res); |
| | | if(jsonObject.getString("code").equals("0")){ |
| | | JSONObject data = jsonObject.getJSONObject("data"); |
| | | String protocol = (String) data.get("url"); |
| | | return new Result(true,"开启成功",protocol); |
| | | } |
| | | return new Result(false,jsonObject.getString("msg")); |
| | | } |
| | | |
| | | @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("3360573",10,1,options); |
| | | return new Result(true,"开启成功",res); |
| | | } |
| | | /** |
| | | * 查询直播详情 |
| | | * |
| | |
| | | /** |
| | | * 删除/多个以逗号隔开 |
| | | * |
| | | * @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(",")); |
| | | } |
| | | |
| | | |
| | |
| | | /** |
| | | * 直播结束 |
| | | * |
| | | * @param videoLiveId |
| | | * @param videoLiveIds |
| | | * 直播id |
| | | */ |
| | | @ApiOperation(value = "直播结束") |
| | |
| | | "status","status", |
| | | "pushUrl","rtmpPushUrl", |
| | | "hlsPullUrl","hlsPullUrl", |
| | | "previewImgUrl","previewImgUrl" |
| | | "previewImgUrl","previewImgUrl", |
| | | "courseId","courseId" |
| | | )))); |
| | | } |
| | | |