// Path: src/main/java/com/lixiaocong/cms/entity/Config.java
// @Entity(name = "Config")
// public class Config extends AbstractEntity {
//     @Column(nullable = false, unique = true, name = "config_key")
//     private String key;
// 
//     @Column(nullable = false, name = "config_value")
//     private String value;
// 
//     public String getKey() {
//         return key;
//     }
// 
//     public void setKey(String key) {
//         this.key = key;
//     }
// 
//     public String getValue() {
//         return value;
//     }
// 
//     public void setValue(String value) {
//         this.value = value;
//     }
// }
// 
// Path: src/main/java/com/lixiaocong/cms/repository/IConfigRepository.java
// public interface IConfigRepository extends JpaRepository<Config, Long> {
//     Config findByKey(String key);
// }
// 
// Path: src/main/java/com/lixiaocong/cms/service/IConfigService.java
// public interface IConfigService {
//     String getApplicationUrl();
// 
//     void setApplicationUrl(String applicationUrl);
// 
//     boolean isBlogEnabled();
// 
//     void setBlogEnabled(boolean isEnabled);
// 
//     boolean isQQEnabled();
// 
//     void setQQEnabled(boolean isEnabled);
// 
//     String getQQId();
// 
//     void setQQId(String qqId);
// 
//     String getQQSecret();
// 
//     void setQQSecret(String qqSecret);
// 
//     boolean isWeixinEnabled();
// 
//     void setWeixinEnabled(boolean isEnabled);
// 
//     String getWeixinId();
// 
//     void setWeixinId(String weixinId);
// 
//     String getWeixinSecret();
// 
//     void setWeixinSecret(String weixinSecret);
// 
//     String getWeixinToken();
// 
//     void setWeixinToken(String weixinToken);
// 
//     String getWeixinKey();
// 
//     void setWeixinKey(String weixinKey);
// 
//     boolean isDownloaderEnabled();
// 
//     void setDownloaderEnabled(boolean isEnabled);
// 
//     String getDownloaderAria2cUrl();
// 
//     void setDownloaderAria2cUrl(String aria2cUrl);
// 
//     String getDownloaderAria2cPassword();
// 
//     void setDownloaderAria2cPassword(String aria2cPassword);
// 
//     String getDownloaderTransmissionUrl();
// 
//     void setDownloaderTransmissionUrl(String transmissionUrl);
// 
//     String getDownloaderTransmissionUsername();
// 
//     void setDownloaderTransmissionUsername(String transmissionUsername);
// 
//     String getDownloaderTransmissionPassword();
// 
//     void setDownloaderTransmissionPassword(String transmissionPassword);
// 
//     String getStorageDir();
// 
//     void setStorageDir(String storageDir);
// 
//     void setValue(String key, String value);
// }


import com.lixiaocong.cms.entity.Config;
import com.lixiaocong.cms.repository.IConfigRepository;
import com.lixiaocong.cms.service.IConfigService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.HashMap;
import java.util.Map;
    public static final String DOWNLOADER_ARIA2C_URL = "aria2cUrl";
    public static final String DOWNLOADER_ARIA2C_PASSWORD = "aria2cPassword";
    public static final String DOWNLOADER_TRANSMISSION_URL = "transmissionUrl";
    public static final String DOWNLOADER_TRANSMISSION_USERNAME = "transmissionUsername";
    public static final String DOWNLOADER_TRANSMISSION_PASSWORD = "transmissionPassword";
    public static final String STORAGE_DIR = "storageDir";
    private static final String VALUE_TRUE = "1";
    private static final String VALUE_FALSE = "0";
    private static Map<String, String> defaultKeyValueMap = new HashMap<>();

    static {
        defaultKeyValueMap.put(BLOG_ENABLED, "1");
        defaultKeyValueMap.put(APPLICATION_URL, "127.0.0.1");
        defaultKeyValueMap.put(QQ_ENABLED, "0");
        defaultKeyValueMap.put(QQ_ID, "");
        defaultKeyValueMap.put(QQ_SECRET, "");
        defaultKeyValueMap.put(WEIXIN_ENABLED, "0");
        defaultKeyValueMap.put(WEIXIN_ID, "");
        defaultKeyValueMap.put(WEIXIN_KEY, "");
        defaultKeyValueMap.put(WEIXIN_SECRET, "");
        defaultKeyValueMap.put(WEIXIN_TOKEN, "");
        defaultKeyValueMap.put(DOWNLOADER_ENABLED, "0");
        defaultKeyValueMap.put(DOWNLOADER_ARIA2C_URL, "http://127.0.0.1:6800/jsonrpc");
        defaultKeyValueMap.put(DOWNLOADER_ARIA2C_PASSWORD, "password");
        defaultKeyValueMap.put(DOWNLOADER_TRANSMISSION_URL, "http://127.0.0.1:9091/transmission/rpc");
        defaultKeyValueMap.put(DOWNLOADER_TRANSMISSION_USERNAME, "username");
        defaultKeyValueMap.put(DOWNLOADER_TRANSMISSION_PASSWORD, "password");
        defaultKeyValueMap.put(STORAGE_DIR, "/downloads");
    }

// Path: src/main/java/com/lixiaocong/cms/entity/Config.java
// @Entity(name = "Config")
// public class Config extends AbstractEntity {
//     @Column(nullable = false, unique = true, name = "config_key")
//     private String key;
// 
//     @Column(nullable = false, name = "config_value")
//     private String value;
// 
//     public String getKey() {
//         return key;
//     }
// 
//     public void setKey(String key) {
//         this.key = key;
//     }
// 
//     public String getValue() {
//         return value;
//     }
// 
//     public void setValue(String value) {
//         this.value = value;
//     }
// }
// 
// Path: src/main/java/com/lixiaocong/cms/repository/IConfigRepository.java
// public interface IConfigRepository extends JpaRepository<Config, Long> {
//     Config findByKey(String key);
// }
// 
// Path: src/main/java/com/lixiaocong/cms/service/IConfigService.java
// public interface IConfigService {
//     String getApplicationUrl();
// 
//     void setApplicationUrl(String applicationUrl);
// 
//     boolean isBlogEnabled();
// 
//     void setBlogEnabled(boolean isEnabled);
// 
//     boolean isQQEnabled();
// 
//     void setQQEnabled(boolean isEnabled);
// 
//     String getQQId();
// 
//     void setQQId(String qqId);
// 
//     String getQQSecret();
// 
//     void setQQSecret(String qqSecret);
// 
//     boolean isWeixinEnabled();
// 
//     void setWeixinEnabled(boolean isEnabled);
// 
//     String getWeixinId();
// 
//     void setWeixinId(String weixinId);
// 
//     String getWeixinSecret();
// 
//     void setWeixinSecret(String weixinSecret);
// 
//     String getWeixinToken();
// 
//     void setWeixinToken(String weixinToken);
// 
//     String getWeixinKey();
// 
//     void setWeixinKey(String weixinKey);
// 
//     boolean isDownloaderEnabled();
// 
//     void setDownloaderEnabled(boolean isEnabled);
// 
//     String getDownloaderAria2cUrl();
// 
//     void setDownloaderAria2cUrl(String aria2cUrl);
// 
//     String getDownloaderAria2cPassword();
// 
//     void setDownloaderAria2cPassword(String aria2cPassword);
// 
//     String getDownloaderTransmissionUrl();
// 
//     void setDownloaderTransmissionUrl(String transmissionUrl);
// 
//     String getDownloaderTransmissionUsername();
// 
//     void setDownloaderTransmissionUsername(String transmissionUsername);
// 
//     String getDownloaderTransmissionPassword();
// 
//     void setDownloaderTransmissionPassword(String transmissionPassword);
// 
//     String getStorageDir();
// 
//     void setStorageDir(String storageDir);
// 
//     void setValue(String key, String value);
// }


// Path: src/main/java/com/lixiaocong/cms/service/impl/ConfigService.java
import com.lixiaocong.cms.entity.Config;
import com.lixiaocong.cms.repository.IConfigRepository;
import com.lixiaocong.cms.service.IConfigService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.HashMap;
import java.util.Map;

    public static final String DOWNLOADER_ARIA2C_URL = "aria2cUrl";
    public static final String DOWNLOADER_ARIA2C_PASSWORD = "aria2cPassword";
    public static final String DOWNLOADER_TRANSMISSION_URL = "transmissionUrl";
    public static final String DOWNLOADER_TRANSMISSION_USERNAME = "transmissionUsername";
    public static final String DOWNLOADER_TRANSMISSION_PASSWORD = "transmissionPassword";
    public static final String STORAGE_DIR = "storageDir";
    private static final String VALUE_TRUE = "1";
    private static final String VALUE_FALSE = "0";
    private static Map<String, String> defaultKeyValueMap = new HashMap<>();

    static {
        defaultKeyValueMap.put(BLOG_ENABLED, "1");
        defaultKeyValueMap.put(APPLICATION_URL, "127.0.0.1");
        defaultKeyValueMap.put(QQ_ENABLED, "0");
        defaultKeyValueMap.put(QQ_ID, "");
        defaultKeyValueMap.put(QQ_SECRET, "");
        defaultKeyValueMap.put(WEIXIN_ENABLED, "0");
        defaultKeyValueMap.put(WEIXIN_ID, "");
        defaultKeyValueMap.put(WEIXIN_KEY, "");
        defaultKeyValueMap.put(WEIXIN_SECRET, "");
        defaultKeyValueMap.put(WEIXIN_TOKEN, "");
        defaultKeyValueMap.put(DOWNLOADER_ENABLED, "0");
        defaultKeyValueMap.put(DOWNLOADER_ARIA2C_URL, "http://127.0.0.1:6800/jsonrpc");
        defaultKeyValueMap.put(DOWNLOADER_ARIA2C_PASSWORD, "password");
        defaultKeyValueMap.put(DOWNLOADER_TRANSMISSION_URL, "http://127.0.0.1:9091/transmission/rpc");
        defaultKeyValueMap.put(DOWNLOADER_TRANSMISSION_USERNAME, "username");
        defaultKeyValueMap.put(DOWNLOADER_TRANSMISSION_PASSWORD, "password");
        defaultKeyValueMap.put(STORAGE_DIR, "/downloads");
    }

    private final IConfigRepository configRepository;