From 25b5dc537bba2e583ec4e978d9d0ae06c2f92b57 Mon Sep 17 00:00:00 2001
From: shenrongliang <1328040932@qq.com>
Date: 星期五, 23 五月 2025 15:26:06 +0800
Subject: [PATCH] 获取DUIXtoken

---
 yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/duix/DuixController.java |   17 +++++
 yudao-module-system/yudao-module-system-api/src/main/java/cn/iocoder/yudao/module/system/api/duix/DuixApi.java                     |   17 +++++
 yudao-module-system/yudao-module-system-api/pom.xml                                                                                |    8 ++
 yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/api/duix/DuixApiImpl.java                 |   81 +++++++++++++++++++++++++++
 4 files changed, 123 insertions(+), 0 deletions(-)

diff --git a/yudao-module-system/yudao-module-system-api/pom.xml b/yudao-module-system/yudao-module-system-api/pom.xml
index c98baf3..a954cfc 100644
--- a/yudao-module-system/yudao-module-system-api/pom.xml
+++ b/yudao-module-system/yudao-module-system-api/pom.xml
@@ -28,6 +28,14 @@
             <artifactId>spring-boot-starter-validation</artifactId>
             <optional>true</optional>
         </dependency>
+
+
+<!--        寮曞叆DUIXpom渚濊禆-->
+        <dependency>
+            <groupId>com.auth0</groupId>
+            <artifactId>java-jwt</artifactId>
+            <version>3.8.3</version>
+        </dependency>
     </dependencies>
 
 </project>
diff --git a/yudao-module-system/yudao-module-system-api/src/main/java/cn/iocoder/yudao/module/system/api/duix/DuixApi.java b/yudao-module-system/yudao-module-system-api/src/main/java/cn/iocoder/yudao/module/system/api/duix/DuixApi.java
new file mode 100644
index 0000000..fe83f70
--- /dev/null
+++ b/yudao-module-system/yudao-module-system-api/src/main/java/cn/iocoder/yudao/module/system/api/duix/DuixApi.java
@@ -0,0 +1,17 @@
+package cn.iocoder.yudao.module.system.api.duix;
+
+import java.util.Map;
+
+/**
+ * duix鎺ュ彛API
+ */
+public interface DuixApi {
+
+    /**
+     * 鑾峰彇APP瀹炴椂骞跺彂鍙�
+     * 鏌ヨ鎸囧畾 APP 涓嬬殑骞跺彂鍙�
+     * appId 搴旂敤绋嬪簭	瀛楃涓�	鏌ヨ	浠庡钩鍙板垱寤虹殑 APPID
+     */
+    Map<String, Object> getAppConcurrent(String appId);
+
+}
diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/api/duix/DuixApiImpl.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/api/duix/DuixApiImpl.java
new file mode 100644
index 0000000..52e2657
--- /dev/null
+++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/api/duix/DuixApiImpl.java
@@ -0,0 +1,81 @@
+package cn.iocoder.yudao.module.system.api.duix;
+
+
+import org.springframework.stereotype.Service;
+import com.auth0.jwt.JWT;
+import com.auth0.jwt.algorithms.Algorithm;
+import java.util.Calendar;
+import java.util.Date;
+import java.util.Map;
+import java.io.BufferedReader;
+import java.io.InputStreamReader;
+import java.net.HttpURLConnection;
+import java.net.URL;
+
+@Service
+public class DuixApiImpl implements DuixApi{
+
+    /**
+     * 鐢熸垚touken
+     * appId	string	浼氳瘽鏍囪瘑锛屼細璇濆垱寤烘垚鍔熷悗鑾峰彇	xxxxxxx
+     * appKey	string	浼氳瘽瀵嗛挜锛屼細璇濆垱寤烘垚鍔熷悗鑾峰彇	xxxxxxx
+     * sigExp	Integer	绛惧悕鏈夋晥鏃堕棿锛屽崟浣嶇	18000
+     */
+    public static String createSig(String appId, String appKey, int sigExp) {
+        Calendar nowTime = Calendar.getInstance();
+        nowTime.add(Calendar.SECOND, sigExp);
+        Date expiresDate = nowTime.getTime();
+        return JWT.create()
+                //Release date
+                .withIssuedAt(new Date())
+                //effective time
+                .withExpiresAt(expiresDate)
+                //load
+                .withClaim("appId", appId)
+                //encryption
+                .sign(Algorithm.HMAC256(appKey));
+    }
+
+    /**
+     * 鑾峰彇APP瀹炴椂骞跺彂鍙�
+     * 鏌ヨ鎸囧畾 APP 涓嬬殑骞跺彂鍙�
+     * appId 搴旂敤绋嬪簭	瀛楃涓�	鏌ヨ	浠庡钩鍙板垱寤虹殑 APPID
+     *
+     * @param appId
+     */
+    @Override
+    public Map<String, Object> getAppConcurrent(String appId) {
+        String urlString = "https://your-domain.com/duix-openapi-v2/sdk/v2/getconcurrentNumber?appId=" + appId;
+
+        try {
+            URL url = new URL(urlString);
+            HttpURLConnection conn = (HttpURLConnection) url.openConnection();
+
+            // 璁剧疆璇锋眰鏂规硶涓� GET
+            conn.setRequestMethod("GET");
+
+            // 璁剧疆璇锋眰澶达紙濡傛灉闇�瑕佽韩浠介獙璇侊紝姣斿token锛屽彲浠ユ坊鍔犲涓嬪唴瀹癸級
+            // conn.setRequestProperty("Authorization", "Bearer your_token");
+
+            int responseCode = conn.getResponseCode();
+            System.out.println("Response Code: " + responseCode);
+
+            BufferedReader in = new BufferedReader(new InputStreamReader(
+                    conn.getInputStream()));
+            String inputLine;
+            StringBuilder response = new StringBuilder();
+
+            while ((inputLine = in.readLine()) != null) {
+                response.append(inputLine);
+            }
+            in.close();
+
+            // 鎵撳嵃杩斿洖缁撴灉
+            System.out.println("Response: " + response.toString());
+
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+        return null;
+    }
+}
diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/duix/DuixController.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/duix/DuixController.java
new file mode 100644
index 0000000..0f04f25
--- /dev/null
+++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/duix/DuixController.java
@@ -0,0 +1,17 @@
+package cn.iocoder.yudao.module.system.controller.admin.duix;
+
+import cn.iocoder.yudao.module.system.api.duix.DuixApiImpl;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+@RequestMapping("/system/duix")
+@RestController
+public class DuixController {
+
+    @GetMapping("/sign")
+    public String sign() {
+        String sig = DuixApiImpl.createSig("1375476628657934336", "5a067196-e493-4141-9ded-275f242212a3", 3600);
+        return sig;
+    }
+}

--
Gitblit v1.9.3