From 2174b22bbbb45284765a23b8189df59583c65d29 Mon Sep 17 00:00:00 2001 From: 胡仁荣 <897853850@qq.com> Date: 星期五, 04 八月 2023 14:33:47 +0800 Subject: [PATCH] 统计人数 --- src/main/java/com/qxueyou/scc/controller/VideoLiveController.java | 61 +++++++++++++++++++++++------- 1 files changed, 47 insertions(+), 14 deletions(-) diff --git a/src/main/java/com/qxueyou/scc/controller/VideoLiveController.java b/src/main/java/com/qxueyou/scc/controller/VideoLiveController.java index 58b4d3a..5e75019 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; /** * 鑾峰彇鐩存挱鍒楄〃 * @@ -157,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