From 08a2af2b8bf199b53a6614b45ff6e3ca6ade1952 Mon Sep 17 00:00:00 2001 From: lizhicheng Date: Mon, 24 Oct 2022 13:59:40 +0800 Subject: [PATCH] =?UTF-8?q?enke=E8=A7=86=E9=A2=91=E4=BC=9A=E8=AE=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- lib/contingencyplan-1.1.0.jar | Bin 0 -> 15057 bytes renren-admin/lib/contingencyplan-1.1.0.jar | Bin 0 -> 15057 bytes renren-admin/pom.xml | 14 +++ .../renren/modules/enke/EnkeController.java | 96 ++++++++++++++++++ 4 files changed, 110 insertions(+) create mode 100644 lib/contingencyplan-1.1.0.jar create mode 100644 renren-admin/lib/contingencyplan-1.1.0.jar create mode 100644 renren-admin/src/main/java/io/renren/modules/enke/EnkeController.java diff --git a/lib/contingencyplan-1.1.0.jar b/lib/contingencyplan-1.1.0.jar new file mode 100644 index 0000000000000000000000000000000000000000..382f1d025aa6d51d0c162cb65f6199bd2fbe5a77 GIT binary patch literal 15057 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.basedir}/lib/yawei-pso-2.0.2.jar ${yawei-pso.version} + + + sw.vc3term + contingencyplan + 1.1.0 + system + ${project.basedir}/lib/contingencyplan-1.1.0.jar + + + + org.json + json + 20180130 + com.belerweb pinyin4j diff --git a/renren-admin/src/main/java/io/renren/modules/enke/EnkeController.java b/renren-admin/src/main/java/io/renren/modules/enke/EnkeController.java new file mode 100644 index 00000000..b629bda5 --- /dev/null +++ b/renren-admin/src/main/java/io/renren/modules/enke/EnkeController.java @@ -0,0 +1,96 @@ +package io.renren.modules.enke; + +import io.renren.modules.activiti.service.ActHistoryService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.apache.commons.lang3.StringUtils; +import org.json.JSONObject; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.util.CollectionUtils; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; +import sw.vc3term.contingencyplan.ContingencyPlanUtil; + +import java.net.Inet4Address; +import java.net.InetAddress; +import java.net.NetworkInterface; +import java.net.SocketException; +import java.util.ArrayList; +import java.util.Enumeration; +import java.util.List; + +/** + * @Auther:lizhicheng2@hisense.com + * @date:2022/10/22 + * @des + */ +@RestController +@RequestMapping("/enke") +@Api(tags = "enke视频会议") +public class EnkeController { + + private static final String videoConfernceIp = "35.1.190.62"; + private static final int videoConferncePort = 8756; + + private static final ContingencyPlanUtil cp; + + private static final Logger logger = LoggerFactory.getLogger(ActHistoryService.class); + + static { + cp = ContingencyPlanUtil.getInstance(); + // 初始化会议 + cp.init(videoConfernceIp, videoConferncePort); + List ips = getLocalIP(); + cp.setLocalAddress(CollectionUtils.isEmpty(ips) ? "0.0.0.0" : ips.get(0), ContingencyPlanUtil.LOCAL_PORT); + } + + @ApiOperation(value = "正式启动会议") + @PostMapping("/initiateMeet") + public boolean initiateMeet(@RequestBody String attender) { + logger.info("视频会议的请求内容为:" + attender); + if (attender != null) { + String confName = "MCU"; + logger.info("发起会议的会议名称为:" + confName + ";" + "参会人员:" + attender); + cp.startContingencyPlan(confName, attender); + return true; + } else { + return false; + } + } + + /** + * 获取本机IP + * + * @author wanglu 2017年10月18日 下午3:33:49 + */ + @SuppressWarnings("rawtypes") + public static List getLocalIP() { + List ips = new ArrayList<>(); + Enumeration allNetInterfaces; + try { + allNetInterfaces = NetworkInterface.getNetworkInterfaces(); + } catch (SocketException e) { + logger.error("获取本机ip异常", e); + return ips; + } + InetAddress ip; + while (allNetInterfaces.hasMoreElements()) { + NetworkInterface netInterface = (NetworkInterface) allNetInterfaces.nextElement(); + Enumeration addresses = netInterface.getInetAddresses(); + while (addresses.hasMoreElements()) { + ip = (InetAddress) addresses.nextElement(); + if (ip instanceof Inet4Address) { + String ipAddress = ip.getHostAddress(); + if (StringUtils.equals(ipAddress, "127.0.0.1") || ipAddress.startsWith("0")) { + continue; + } + ips.add(ipAddress); + } + } + } + return ips; + } +}