From d7963a84282c548fee3595b3343e6ae6ca49bb29 Mon Sep 17 00:00:00 2001 From: yn147 <2270338776@qq.com> Date: 星期五, 24 十一月 2023 14:12:01 +0800 Subject: [PATCH] 学籍,考勤 --- src/main/java/com/qxueyou/scc/controller/VideoLiveController.java | 81 ++++++++++++++++++++++++++++++---------- 1 files changed, 61 insertions(+), 20 deletions(-) diff --git a/src/main/java/com/qxueyou/scc/controller/VideoLiveController.java b/src/main/java/com/qxueyou/scc/controller/VideoLiveController.java index 02ed5f2..2caa80a 100644 --- a/src/main/java/com/qxueyou/scc/controller/VideoLiveController.java +++ b/src/main/java/com/qxueyou/scc/controller/VideoLiveController.java @@ -2,16 +2,22 @@ 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; @@ -31,11 +37,14 @@ 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 { @@ -58,7 +67,9 @@ @Autowired CommonDAO commonDAO; - + + @Autowired + private RedisCache redisCache; /** * 鑾峰彇鐩存挱鍒楄〃 * @@ -72,9 +83,9 @@ */ @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, @@ -91,10 +102,19 @@ "pushUrl","rtmpPushUrl", "hlsPullUrl","hlsPullUrl", "previewImgUrl","previewImgUrl", - "courseId","courseId" + "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)); + } /** * 鏂板鐩存挱/鏇存柊鐩存挱 * @@ -119,7 +139,7 @@ @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) throws Exception { + 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); @@ -138,10 +158,9 @@ //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(","))); + 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")); @@ -149,21 +168,43 @@ @ApiOperation(value = "寮�鍚洿鎾�") @GetMapping(value = "OpenLive") - public Result OpenLive(int courseId) throws Exception { + 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(); - 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")); + 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 = "淇敼鐩存挱鐘舵��") -- Gitblit v1.8.0