From d95047d4d0e212896d1a1ed1f4528b46553d4e09 Mon Sep 17 00:00:00 2001
From: zhang <zc857179121@qq.com>
Date: 星期二, 12 八月 2025 15:28:34 +0800
Subject: [PATCH] 保存一个版本

---
 zy-acs-manager/src/main/java/com/zy/acs/manager/system/service/impl/ConfigServiceImpl.java |   45 ++++++++++++++++++++++++++++++++++++++++++++-
 1 files changed, 44 insertions(+), 1 deletions(-)

diff --git a/zy-acs-manager/src/main/java/com/zy/acs/manager/system/service/impl/ConfigServiceImpl.java b/zy-acs-manager/src/main/java/com/zy/acs/manager/system/service/impl/ConfigServiceImpl.java
index d20cd4c..ba0d1e8 100644
--- a/zy-acs-manager/src/main/java/com/zy/acs/manager/system/service/impl/ConfigServiceImpl.java
+++ b/zy-acs-manager/src/main/java/com/zy/acs/manager/system/service/impl/ConfigServiceImpl.java
@@ -12,7 +12,9 @@
 import org.springframework.stereotype.Service;
 
 import javax.annotation.PostConstruct;
-import java.util.*;
+import java.util.Date;
+import java.util.List;
+import java.util.Map;
 import java.util.concurrent.ConcurrentHashMap;
 
 /**
@@ -71,6 +73,47 @@
         }
     }
 
+
+    @Override
+    @SuppressWarnings("unchecked")
+    public <T> T getVal(String key, Class<T> clazz, T t) {
+        Config config = CONFIG_CACHE.get(key);
+        if (config == null) {
+            List<Config> list = this.list(new LambdaQueryWrapper<Config>().eq(Config::getFlag, key));
+            config = list.stream().findFirst().orElse(null);
+            if (null == config) {
+                return t;
+            }
+        }
+        String val = config.getVal();
+        switch (ConfigType.query(config.getType())) {
+            case BOOLEAN:
+                if (val.equals("1") || val.trim().equalsIgnoreCase("TRUE")) {
+                    return (T) Boolean.TRUE;
+                }
+                return (T) Boolean.FALSE;
+            case NUMBER:
+                if (clazz == Integer.class) {
+                    return (T) Integer.valueOf(val);
+                } else if (clazz == Short.class) {
+                    return (T) Short.valueOf(val);
+                } else if (clazz == Long.class) {
+                    return (T) Long.valueOf(val);
+                } else if (clazz == Double.class) {
+                    return (T) Double.valueOf(val);
+                }
+                throw new UnsupportedOperationException("Unsupported type: " + clazz.getName());
+            case STRING:
+                return (T) val;
+            case JSON:
+                return GsonUtils.fromJson(val, clazz);
+            case DATE:
+                return (T) DateUtils.convert(val);
+            default:
+                return t;
+        }
+    }
+
     @Override
     public <T> boolean setVal(String key, T val) {
         Config config = CONFIG_CACHE.get(key);

--
Gitblit v1.9.1