Преглед изворни кода

V1.4.1
1、修改了webapi库的封装方式,依旧是头文件和源文件的方式
2、修改了封装的动态库的命名空间为External

Apple пре 2 недеља
родитељ
комит
f208c00dc4

+ 17 - 21
Libraries/LHHTTPAPI/FindLHHTTPAPI.cmake

@@ -78,32 +78,28 @@ message(STATUS "--------------------------------------------------")
 
 
 #导入目标
-if(LHHTTPAPI_FOUND)
-    if(NOT TARGET lhhttpapi::lhhttpapi)
-        add_library(lhhttpapi::lhhttpapi UNKNOWN IMPORTED)
+# if(LHHTTPAPI_FOUND)
+#     if(NOT TARGET External::lhhttpapi)
+        # add_library(External::lhhttpapi UNKNOWN IMPORTED)
+
         #添加头文件
-        set_target_properties(lhhttpapi::lhhttpapi PROPERTIES
-            INTERFACE_INCLUDE_DIRECTORIES "${LHHTTPAPI_INCLUDE_DIRS}")
+        # set_target_properties(External::lhhttpapi PROPERTIES
+        #     INTERFACE_INCLUDE_DIRECTORIES "${LHHTTPAPI_INCLUDE_DIRS}")
 
         #添加库文件
-        # if(ENABLE_SPDLOG_STATIC_LIB)
-        #     set_target_properties(${_lib_name} PROPERTIES
-        #         IMPORTED_LOCATION "${spdlog_STATIC_LIBRARY}")
-        #     #添加spdlog需要的依赖库
-        #     set_target_properties(${_lib_name} PROPERTIES
-        #         INTERFACE_LINK_LIBRARIES "pthread")
-        # else()
-        #     set_target_properties(${_lib_name} PROPERTIES
-        #         IMPORTED_LOCATION "${spdlog_LIBRARY}")
-        #     set_target_properties(${_lib_name} PROPERTIES
-        #         INTERFACE_LINK_LIBRARIES "pthread")
-        # endif()
+
+        # set_target_properties(External::lhhttpapi PROPERTIES
+        #     IMPORTED_LOCATION "")
+        #添加需要的依赖库
+        # set_target_properties(${_lib_name} PROPERTIES
+        #     INTERFACE_LINK_LIBRARIES "")
+
 
         #添加源文件
-        set_target_properties(lhhttpapi::lhhttpapi PROPERTIES
-           INTERFACE_SOURCES "${LHHTTPAPI_SOURCE_DIRS}")
-    endif()
-endif()
+        # set_target_properties(External::lhhttpapi PROPERTIES
+        #    INTERFACE_SOURCES "${LHHTTPAPI_SOURCE_DIRS}")
+#     endif()
+# endif()
 
 # 标记这些变量为高级变量
 mark_as_advanced(

+ 8 - 8
Libraries/spdlog/Findspdlog.cmake

@@ -169,28 +169,28 @@ message(STATUS "--------------------------------------------------")
 
 #导入目标
 if(spdlog_FOUND)
-    if(NOT TARGET spdlog::spdlog)
-        add_library(spdlog::spdlog UNKNOWN IMPORTED)
+    if(NOT TARGET External::spdlog)
+        add_library(External::spdlog UNKNOWN IMPORTED)
         #添加头文件
-        set_target_properties(spdlog::spdlog PROPERTIES
+        set_target_properties(External::spdlog PROPERTIES
             INTERFACE_INCLUDE_DIRECTORIES "${spdlog_INCLUDE_DIR}")
 
         #添加库文件
         if(ENABLE_SPDLOG_STATIC_LIB)
-            set_target_properties(spdlog::spdlog PROPERTIES
+            set_target_properties(External::spdlog PROPERTIES
                 IMPORTED_LOCATION "${spdlog_STATIC_LIBRARY}")
             #添加spdlog需要的依赖库
-            set_target_properties(spdlog::spdlog PROPERTIES
+            set_target_properties(External::spdlog PROPERTIES
                 INTERFACE_LINK_LIBRARIES "pthread")
         else()
-            set_target_properties(spdlog::spdlog PROPERTIES
+            set_target_properties(External::spdlog PROPERTIES
                 IMPORTED_LOCATION "${spdlog_LIBRARY}")
-            set_target_properties(spdlog::spdlog PROPERTIES
+            set_target_properties(External::spdlog PROPERTIES
                 INTERFACE_LINK_LIBRARIES "pthread")
         endif()
 
         #添加源文件
-        set_target_properties(spdlog::spdlog PROPERTIES
+        set_target_properties(External::spdlog PROPERTIES
            INTERFACE_SOURCES "${spdlog_SOURCES}")
     endif()
 endif()

+ 0 - 144
common/WebAPI/WebAPIBase.cpp

@@ -1,144 +0,0 @@
-#include "WebAPIBase.h"
-
-#include "spdlog/spdlog.h"
-
-
-WebAPIBase::~WebAPIBase()
-{
-    if(m_httpApi != nullptr)
-    {
-        delete m_httpApi;
-        m_httpApi = nullptr;
-    }
-}
-
-
-/* 初始化WebApi */
-bool WebAPIBase::initWebApi(const QString& url,const QString& serID, const QString appType, const QString& serverIP)
-{
-    if(m_httpApi == nullptr)
-    {
-        m_httpApi = new lhhttpapi;
-    }
-    
-    if(!m_httpApi->Load())
-    {
-        SPDLOG_ERROR("Load WebAPI failed");
-        return false;
-    }
-    SPDLOG_DEBUG("URL: {}", url.toStdString());
-    SPDLOG_DEBUG("ServerID: {}", serID.toStdString());
-    SPDLOG_DEBUG("ServerKey: {}", appType.toStdString());
-
-    void* pHttp = nullptr;
-    int i = 0;
-    for(i = 0; i < 3; i++)
-    {
-        pHttp = m_httpApi->DBInit(url.toStdString().c_str(), true);
-        if(pHttp != nullptr)
-        {
-            break;
-        }
-        SPDLOG_ERROR("设置WebAPI地址失败: {}", m_httpApi->DoGetLastError(&i).toStdString());
-    }
-    if(i >= 3)
-    {
-        SPDLOG_ERROR("WebAPI设置地址错误!");
-        return false;
-    }
-    
-    int ret = 0;
-
-#ifdef QT_DEBUG
-    /* 获取服务器列表 */
-    // char serverList[8192]={0};
-    // ret = m_httpApi->DBGetServerList(serverList, 8192-1);
-    // if(ret != 0)
-    // {
-    //     SPDLOG_LOGGER_ERROR(m_logger, "Get server list failed: {}, error info: {}", ret, m_httpApi->DoGetLastError(&ret).toStdString());
-    //     return false;
-    // }
-    // SPDLOG_LOGGER_INFO(m_logger, QString("\nGet server list success:%1").arg(serverList));
-#endif
-
-    /* 登录,第二个参数是限制的服务 */
-    for(i = 0; i < 3; i++)
-    {
-        ret = m_httpApi->DBLogin("", serID, appType, m_userToken, true, pHttp);
-        if(ret == 0)
-        {
-            break;
-        }
-        SPDLOG_ERROR("Login failed: {}, error info: {}", ret, m_httpApi->DoGetLastError(&ret).toStdString());
-        /* 登录失败,等待一段时间 */
-        QThread::msleep(200);
-    }
-    if(i >= 3)
-    {
-        SPDLOG_ERROR("登陆WebAPI失败!");
-        return false;
-    }
-
-    SPDLOG_INFO("WebAPI Login success!");
-
-    return true;
-}
-
-
-/**
- * @brief 将json的key转换成小写,这种转换不会转值中嵌套的json
- * 
- * @param json 
- * @param result 
- * @return true 
- * @return false 
- */
-bool WebAPIBase::convertJsonKeyToLower(const nJson& json, nJson& result)
-{
-    for(auto& it : json.items())
-    {
-        std::string key = it.key();
-        std::transform(key.begin(), key.end(), key.begin(), ::tolower); // 转换成小写
-        /* 是object */
-        if(it.value().is_object())
-        {
-            convertJsonKeyToLower(it.value(), result[key]); // 递归处理嵌套的对象
-        }
-        /* 是array */
-        else if(it.value().is_array())
-        {
-            nJson arrayResult = nJson::array();
-            for(auto& item : it.value())
-            {
-                if(item.is_object())
-                {
-                    /* 如果是对象,递归转换 */
-                    nJson itemJson = nJson::object();
-                    convertJsonKeyToLower(item, itemJson);
-                    /* 将转换后的对象添加到数组中 */
-                    arrayResult.push_back(itemJson);
-                }
-                else
-                {
-                    arrayResult.push_back(item);
-                }
-            }
-            result[key] = arrayResult;
-        }
-        else
-        {
-            /* 直接赋值非对象和非数组类型 */
-            result[key] = it.value(); 
-        }
-    }
-
-    return true;
-}
-
-/* 打印webapi返回的错误信息 */
-void WebAPIBase::printWebApiError(int ret, const QString& errorMsg)
-{
-    SPDLOG_ERROR("WebAPI Error: {}, Error Message: {}", ret, nJson::parse(errorMsg.toStdString()).dump(4));
-}
-
-

+ 0 - 29
common/WebAPI/WebAPIBase.h

@@ -1,29 +0,0 @@
-#ifndef _WEBAPIBASE_H_
-#define _WEBAPIBASE_H_
-
-#include "lhhttpapi.h"
-#include "commonDefine.h"
-
-class WebAPIBase
-{
-public:
-    WebAPIBase() = default;
-    virtual ~WebAPIBase();
-
-    /* 初始化WebAPI */
-    virtual bool initWebApi(const QString& url, const QString& serID, const QString appType, const QString& serverIP = "");
-
-protected:
-    /* 将json的key转换成小写 */
-    bool convertJsonKeyToLower(const nJson& json, nJson& result);
-    /* 打印webapi返回的错误信息 */
-    void printWebApiError(int ret, const QString& errorMsg);
-
-protected:
-    lhhttpapi* m_httpApi = nullptr;
-    QString m_userToken;
-
-};
-
-
-#endif /* _WEBAPIBASE_H_ */

+ 0 - 69
module/Logs/loginit.cpp

@@ -1,69 +0,0 @@
-#include "loginit.h"
-
-#include "spdlog/spdlog.h"
-#include "spdlog/sinks/stdout_color_sinks.h"
-#include "spdlog/sinks/daily_file_sink.h"
-
-// #include "fmt/base.h"
-
-/* 初始化spdlog */
-void init_log()
-{
-    try 
-    {
-        /* 给默认记录器用的sink */
-        auto sink_default = std::make_shared<spdlog::sinks::stdout_color_sink_mt>();
-        /* 创建一个控制台sink */
-        auto sink_consolse = std::make_shared<spdlog::sinks::stdout_color_sink_mt>();
-        /* 创建一个文件sink,每天一个,00:00创建新的 */
-        auto sink_file = std::make_shared<spdlog::sinks::daily_file_sink_mt>("log/log.txt", 0, 0);
-        /* 修改输出格式 */
-        #if C_DEBUG
-            sink_default->set_pattern("%^[%Y-%m-%d %H:%M:%S:%e] [%l] [%s %#] %v %$");
-            sink_consolse->set_pattern("%^[%Y-%m-%d %H:%M:%S:%e] [%l] [%n] [%s %#] %v%$");
-            sink_file->set_pattern("%^[%Y-%m-%d %H:%M:%S:%e] [%l] [%n] [%s %#] %v %$");
-        #elif C_RELEASE
-            sink_default->set_pattern("%^[%Y-%m-%d %H:%M:%S:%e] [%l] %v %$");
-            sink_consolse->set_pattern("%^[%Y-%m-%d %H:%M:%S:%e] [%l] [%n] %v %$");
-            sink_file->set_pattern("%^[%Y-%m-%d %H:%M:%S:%e] [%l] [%n] %v %$");
-        #endif
-
-        /* 设置默认日志记录器,设置成自定义的sink */
-        spdlog::default_logger()->sinks().clear();
-        spdlog::default_logger()->sinks().push_back(sink_default);
-        spdlog::default_logger()->sinks().push_back(sink_file);
-        /* 创建sink数组 */
-        std::vector<spdlog::sink_ptr> sinks;
-        sinks.push_back(sink_consolse);
-        sinks.push_back(sink_file);
-
-        /* 创建一个标准输出 */
-        auto logger_main = std::make_shared<spdlog::logger>("main",begin(sinks),end(sinks));
-        /* 创建一个MQTT输出Logger */
-        auto logger_MQTT = std::make_shared<spdlog::logger>("MQTT",begin(sinks),end(sinks));
-        /* 创建一个线程池输出Logger */
-        auto logger_threadPool = std::make_shared<spdlog::logger>("ThreadPool",begin(sinks),end(sinks));
-
-        /* 注册到注册表 */
-        spdlog::register_logger(logger_main);
-        spdlog::register_logger(logger_MQTT);
-        spdlog::register_logger(logger_threadPool);
-
-
-        /* 设置spdlog输出级别,默认的估计不输出debug这个级别 */
-#ifdef C_DEBUG
-        spdlog::set_level(spdlog::level::trace);
-        spdlog::flush_on(spdlog::level::trace);
-#elif C_RELEASE
-        spdlog::set_level(spdlog::level::info);
-        spdlog::flush_on(spdlog::level::info);
-#endif
-
-
-
-    //    SPDLOG_LOGGER_DEBUG(logger_main,"******* 有行号且debug也能输出 *******");
-    }  catch (const spdlog::spdlog_ex& ex) {
-        fmt::print("Log initialization failed: %s\n", ex.what());
-    }
-}
-

+ 0 - 8
module/Logs/loginit.h

@@ -1,8 +0,0 @@
-
-
-#ifndef LOGINIT_H
-#define LOGINIT_H
-
-void init_log();
-
-#endif /* LOGINIT_H */