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