From a4f07b2a0ddb6c210e05afbbb491feeb466203e7 Mon Sep 17 00:00:00 2001
From: Junjie <fallin.jie@qq.com>
Date: 星期一, 09 三月 2026 19:15:50 +0800
Subject: [PATCH] #V3重大更新,升级JDK17,升级SpirngBoot3.5.1

---
 src/main/java/com/zy/system/timer/LicenseTimer.java |   94 ++++++++++++++++++++++++++++++-----------------
 1 files changed, 60 insertions(+), 34 deletions(-)

diff --git a/src/main/java/com/zy/system/timer/LicenseTimer.java b/src/main/java/com/zy/system/timer/LicenseTimer.java
index f6a724f..09562fd 100644
--- a/src/main/java/com/zy/system/timer/LicenseTimer.java
+++ b/src/main/java/com/zy/system/timer/LicenseTimer.java
@@ -52,6 +52,12 @@
     @Value("${license.publicKeysStorePath}")
     private String publicKeysStorePath;
 
+    /**
+     * 璁稿彲璇佹湇鍔$鍦板潃銆�
+     */
+    @Value("${license.remoteServerUrl:http://net.zoneyung.net:9999/license}")
+    private String remoteServerUrl;
+
     @Autowired
     private LicenseInfosService licenseInfosService;
 
@@ -73,49 +79,61 @@
 
     public void getRemoteLicense() {
         try {
-            AbstractServerInfos abstractServerInfos = null;
-            String osName = System.getProperty("os.name");
-            // 鏍规嵁涓嶅悓鎿嶄綔绯荤粺绫诲瀷閫夋嫨涓嶅悓鐨勬暟鎹幏鍙栨柟娉�
-            if (osName.startsWith("windows")) {
-                abstractServerInfos = new WindowsServerInfos();
-            } else if (osName.startsWith("linux")) {
-                abstractServerInfos = new LinuxServerInfos();
-            } else {// 鍏朵粬鏈嶅姟鍣ㄧ被鍨�
-                abstractServerInfos = new WindowsServerInfos();
+            String requestCode = LicenseUtils.buildRequestCode(subject);
+            LicenseCheck serverInfos = LicenseUtils.getServerInfos();
+            JSONObject response = requestRemoteLicense(buildRequestCodePayload(requestCode));
+            if (!isSuccess(response)) {
+                response = requestRemoteLicense(buildLegacyPayload(serverInfos));
             }
-            LicenseCheck serverInfos = abstractServerInfos.getServerInfos();
-
-            HashMap<String, Object> map = new HashMap<>();
-            map.put("subject", subject);
-            map.put("licenseCheck", serverInfos);
-
-            String response = new HttpHandler.Builder()
-                    .setUri("http://net.zoneyung.net:9999/license")
-                    .setPath("/remoteQueryLicense")
-                    .setJson(JSON.toJSONString(map))
-                    .build()
-                    .doPost();
-            JSONObject jsonObject = JSON.parseObject(response);
-            if (jsonObject.getString("result").equals("ok")) {
+            if (isSuccess(response)) {
                 LicenseInfos licenseInfos = new LicenseInfos();
-                licenseInfos.setLicense(jsonObject.getString("data"));
+                licenseInfos.setLicense(response.getString("data"));
                 licenseInfos.setCreateTime(new Date());
-                licenseInfos.setLicenseTime(jsonObject.getString("licenseTime"));
-                licenseInfosService.insert(licenseInfos);
+                licenseInfos.setLicenseTime(response.getString("licenseTime"));
+                licenseInfos.setRequestCode(requestCode);
+                licenseInfosService.save(licenseInfos);
             }
         } catch (Exception e) {
             e.printStackTrace();
         }
     }
 
-    public void verify() {
-        LicenseInfos latestLicense = licenseInfosService.getLatestLicense();
-        if (latestLicense == null) {
-            setLicenseDays(0);
-            setSystemSupport(false);
-            return;
+    private JSONObject requestRemoteLicense(String json) {
+        try {
+            String response = new HttpHandler.Builder()
+                    .setUri(remoteServerUrl)
+                    .setPath("/remoteQueryLicense")
+                    .setJson(json)
+                    .build()
+                    .doPost();
+            if (response == null || response.trim().isEmpty()) {
+                return null;
+            }
+            return JSON.parseObject(response);
+        } catch (Exception e) {
+            return null;
         }
+    }
 
+    private String buildRequestCodePayload(String requestCode) {
+        HashMap<String, Object> map = new HashMap<>();
+        map.put("subject", subject);
+        map.put("requestCode", requestCode);
+        return JSON.toJSONString(map);
+    }
+
+    private String buildLegacyPayload(LicenseCheck serverInfos) {
+        HashMap<String, Object> map = new HashMap<>();
+        map.put("subject", subject);
+        map.put("licenseCheck", serverInfos);
+        return JSON.toJSONString(map);
+    }
+
+    private boolean isSuccess(JSONObject jsonObject) {
+        return jsonObject != null && "ok".equalsIgnoreCase(jsonObject.getString("result"));
+    }
+
+    public void verify() {
         LicenseVerifyParam param = new LicenseVerifyParam();
         param.setSubject(subject);
         param.setPublicAlias(publicAlias);
@@ -123,10 +141,18 @@
         param.setLicensePath(licensePath);
         param.setPublicKeysStorePath(publicKeysStorePath);
 
+        String requestCode = LicenseUtils.buildRequestCode(subject);
+        LicenseInfos latestLicense = licenseInfosService.getLatestLicenseByRequestCode(requestCode);
+
         // 楠岃瘉璁稿彲璇佹槸鍚︽湁鏁�
         LicenseVerify licenseVerify = new LicenseVerify();
-        // 瀹夎璇佷功
-        LicenseContent install = licenseVerify.install(param, latestLicense.getLicense());
+        LicenseContent install = null;
+        if (latestLicense != null) {
+            install = licenseVerify.install(param, latestLicense.getLicense());
+        }
+        if (install == null) {
+            install = licenseVerify.install(param);
+        }
 
         if (install != null) {
             Date start = new Date();

--
Gitblit v1.9.1