Jelajahi Sumber

V0.8.4
1、修改了lhhttpapi文件,添加了对Windows的兼容

Apple 1 bulan lalu
induk
melakukan
3bd26e0cfa

TEMPAT SAMPAH
Libraries/LHHTTPAPI/.DS_Store


+ 1 - 1
Libraries/LHHTTPAPI/src/lhhttpapi.cpp

@@ -90,7 +90,7 @@ bool lhhttpapi::Load(QString file)
 bool lhhttpapi::Load()
 {
 #if defined(Q_OS_WIN)
-    qDebug() << "暂不支持Windows";
+    QString libFile = QString("%1/LHSqlWebInterface.dll").arg(QCoreApplication::applicationDirPath());
 #elif defined(Q_OS_LINUX)
     QString libFile = QString("%1/libLHSqlWebInterface.so").arg(QCoreApplication::applicationDirPath());
 #elif defined(Q_OS_MAC)

+ 0 - 272
Libraries/LHHTTPAPI/src/lhhttpapi.cpp_

@@ -1,272 +0,0 @@
-#include "lhhttpapi.h"
-#include <QCoreApplication>
-#include <QDebug>
-
-int g_nHttpTimeOut = 0;
-
-//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
-DoInterfaceObject::DoInterfaceObject(lhhttpapi *pApi, const QString &strToken, int nOperatorType, const QString &strParamXml)
-    : ThreadWorker()
-    , m_pApi(pApi)
-    , m_strToken(strToken)
-    , m_nOperatorType(nOperatorType)
-    , m_strParamXml(strParamXml)
-    , m_nResult(-1)
-{
-
-}
-
-void DoInterfaceObject::DoWork()
-{
-    if(m_pApi != nullptr)
-    {
-        QString serid = m_pApi->GetServerID();
-        QString appType = m_pApi->GetClientType();
-        std::unique_ptr<char[]> buffer(new char[LHAPI_BUFFER_SIZE_NEW]{0});
-        m_nResult = m_pApi->fnDBDoInterface(serid.toUtf8().data(),appType.toUtf8().data(),m_strToken.toUtf8().data(),
-                                            m_nOperatorType,m_strParamXml.toUtf8().data(),buffer.get(),LHAPI_BUFFER_SIZE_NEW);
-        m_strRetXml = QString::fromUtf8(buffer.get());
-    }
-    emit sig_WorkFinished();
-}
-//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
-lhhttpapi::lhhttpapi(QObject *parent)
-    : QObject(parent),
-    m_pQLib(nullptr),
-    fnDBInit(nullptr),
-    fnDBLogin(nullptr),
-    fnDBGettServerList(nullptr),
-    fnDBGetChannelList(nullptr),
-    fnDBGetServerInfo(nullptr),
-    fnSetHttpTimeOut(nullptr),
-    fnGetHttpFileSize(nullptr),
-    fnGetHttpFileContent(nullptr),
-    fnGetLastError(nullptr),
-    fnDoWord2Pyjc(nullptr),
-    fnDoUploadFtpFile(nullptr),
-    fnDoUploadFtpFileContent(nullptr),
-    fnDoCurlDeleteFtpFile(nullptr),
-    fnDoCurlUploadFtpFile(nullptr),
-    fnDoCurlUploadFtpFileContent(nullptr),
-    fnDoGetDBInfo(nullptr),
-    fnDBDoInterface(nullptr),
-    m_tUpToken(nullptr)
-{
-#if defined(Q_OS_WIN)
-    QString exePath = QCoreApplication::applicationDirPath();
-
-#ifdef QT_DEBUG
-// #ifdef C_DEBUG
-    exePath += "/LHSqlWebInterfaced.dll";
-    Load(exePath.toLatin1());
-#else
-    exePath += "/LHSqlWebInterface.dll";
-    Load(exePath.toLatin1());
-#endif // debug
-
-#elif defined (Q_OS_LINUX)
-    Load(QString("%1/%2").arg(QCoreApplication::applicationDirPath(), "LHSqlWebInterface.so"));
-#endif // win
-
-    m_tUpToken = new QTimer(this);
-    m_tUpToken->setInterval(25 * 60 * 1000);
-    m_tUpToken->start();
-    connect(m_tUpToken, &QTimer::timeout, this, [this] {
-        QString token("");
-        //qInfo() << "WebApi timeout, old token: " << m_token;
-        DBQLogin("", m_serID, m_clientType, token);
-        //qInfo() << "new token: " << m_token;
-    });
-}
-
-
-lhhttpapi::~lhhttpapi()
-{
-    UnLoad();
-}
-
-bool lhhttpapi::Load(QString file)
-{
-    m_pQLib = new QLibrary(file);
-    if (!m_pQLib->load())
-    {
-        QString strLog = QString("Module %1 load failed -1").arg(file);
-        qInfo() << strLog;
-        qInfo() << m_pQLib->errorString();
-        return false;
-    }
-    fnDBInit = reinterpret_cast<FunDBInit>(m_pQLib->resolve("DBInit"));
-    fnDBLogin = reinterpret_cast<FunDBLogin>(m_pQLib->resolve("DBLogin"));
-    fnDBGettServerList = reinterpret_cast<FunDBGetServerList>(m_pQLib->resolve("DBGetServerList"));
-    fnDBGetChannelList = reinterpret_cast<FunDBGetChannelList>(m_pQLib->resolve("DBGetChannelList"));
-    fnDBGetServerInfo = reinterpret_cast<FunDBGetServerInfo>(m_pQLib->resolve("DBGetServerInfo"));
-    fnDBDoInterface = reinterpret_cast<FunDBDoInterface>(m_pQLib->resolve("DBDoInterface"));
-
-    fnSetHttpTimeOut = reinterpret_cast<FunSetHttpTimeOut>(m_pQLib->resolve("SetHttpTimeOut"));
-    fnGetLastError = reinterpret_cast<FunDoGetLastError>(m_pQLib->resolve("DBGetLastError"));
-    fnGetHttpFileSize = reinterpret_cast<FunDoGetHttpFileSize>(m_pQLib->resolve("DoGetHttpFileSize"));
-    fnGetHttpFileContent = reinterpret_cast<FunDoGetHttpFileContent>(m_pQLib->resolve("DoGetHttpFileContent"));
-    fnDoWord2Pyjc = reinterpret_cast<FunDoWord2Pyjc>(m_pQLib->resolve("DoWord2Pyjc"));
-    fnDoUploadFtpFile = reinterpret_cast<FunDoUploadFtpFile>(m_pQLib->resolve("DoUploadFtpFile"));
-    fnDoUploadFtpFileContent = reinterpret_cast<FunDoUploadFtpFileContent>(m_pQLib->resolve("DoUploadFtpFileContent"));
-
-    fnDoCurlUploadFtpFile = reinterpret_cast<FunDoCurlUploadFtpFile>(m_pQLib->resolve("DoCurlUploadFtpFile"));
-    fnDoCurlDeleteFtpFile = reinterpret_cast<FunDoCurlDeleteFtpFile>(m_pQLib->resolve("DoCurlDeleteFtpFile"));
-    fnDoCurlUploadFtpFileContent = reinterpret_cast<FunDoCurlUploadFtpFileContent>(m_pQLib->resolve("DoCurlUploadFtpFileContent"));
-
-    fnDoGetDBInfo = reinterpret_cast<FunDoGetDBInfo>(m_pQLib->resolve("DoGetDBInfo"));
-
-    if(fnDBInit == nullptr||fnDBLogin == nullptr||fnDBGetChannelList == nullptr||fnSetHttpTimeOut == nullptr||
-            fnDBDoInterface == nullptr|| fnDBGettServerList == nullptr || fnGetLastError == nullptr)
-    {
-        QString strLog = QString("Module %1 load failed,lack interface").arg(file);
-        qInfo() << strLog;
-        return false;
-    }
-    return true;
-}
-
-bool lhhttpapi::UnLoad()
-{
-    if(m_pQLib == nullptr) return false;
-    int ret = m_pQLib->unload();
-    m_pQLib = nullptr;
-    return ret;
-}
-
-int lhhttpapi::SetHttpTimeOut(int nTimeout)
-{
-    if(fnSetHttpTimeOut == nullptr) return -1;
-    return fnSetHttpTimeOut(nTimeout);
-}
-
-QString lhhttpapi::DoGetLastError(int *nErrorCode)
-{
-    if(fnGetLastError == nullptr) return QString();
-
-    int nLen = LHAPI_BUFFER_SIZE_NEW;
-    char *pError = new char[LHAPI_BUFFER_SIZE_NEW]{0};
-    int nRet = fnGetLastError(pError, nLen, nErrorCode);
-
-    if(nRet != 0)
-    {
-        delete [] pError; pError = nullptr;
-        return QString();
-    }
-
-    QString strRet2 = QString::fromUtf8(pError);
-
-    delete [] pError; pError = nullptr;
-    return strRet2;
-}
-
-int lhhttpapi::DBQInit(QString strUrl)
-{
-    char *szUrl = nullptr;
-    QByteArray baUrl = strUrl.toUtf8();
-    szUrl = baUrl.data();
-
-    if(fnDBInit == nullptr) return -1;
-
-    //SetHttpTimeOut(g_nHttpTimeOut);
-    return fnDBInit(szUrl);
-}
-
-int lhhttpapi::DBQGetServerList(QString& serverList)
-{
-    if(fnDBGettServerList == nullptr) return -1;
-    serverList.clear();
-    char* pBuff = new char[LHAPI_BUFFER_SIZE_NEW]{0};
-    int nRet = fnDBGettServerList(pBuff, LHAPI_BUFFER_SIZE_NEW);
-    serverList = QString(pBuff);
-    delete[] pBuff;
-    pBuff = nullptr;
-    return nRet;
-}
-
-int lhhttpapi::DBQGetServerInfo(const QString &serid, QString &serverInfo)
-{
-    if (nullptr == fnDBGetServerInfo) return -1;
-    serverInfo.clear();
-    char* pBuff = new char[LHAPI_BUFFER_SIZE_NEW]{0};
-    int nRet = fnDBGetServerInfo(serid.toUtf8(), m_token.toUtf8(), pBuff, LHAPI_BUFFER_SIZE_NEW);
-    if (LH_HTTPAPI_SUCC == nRet) {
-        serverInfo = QString::fromUtf8(pBuff);
-    }
-    delete[] pBuff;
-    pBuff = nullptr;
-
-    return nRet;
-}
-
-int lhhttpapi::DBQLogin(QString LocalIP, QString Serid, QString CType, QString &strUserToken)
-{
-    //QMutexLocker locker(&m_mtx);
-    std::unique_ptr<char[]> charlist(new char[LHAPI_BUFFER_SIZE_NEW]{0});
-
-    char *szIP = nullptr;
-    QByteArray baIP = LocalIP.toUtf8();
-    szIP = baIP.data();
-
-    char *szDBID = nullptr;
-    QByteArray baDBID = Serid.toUtf8();
-    szDBID = baDBID.data();
-
-    char *szCType = nullptr;
-    QByteArray baCType = CType.toUtf8();
-    szCType = baCType.data();
-
-    if(fnDBLogin == nullptr) {
-        return -1;
-    }
-    int nRet = fnDBLogin(szIP, szDBID, szCType, charlist.get(), LHAPI_BUFFER_SIZE_NEW);
-    if (LH_HTTPAPI_SUCC == nRet)
-    {
-        m_token = QString::fromUtf8(charlist.get());
-        m_serID = Serid;
-        m_clientType = CType;
-
-        strUserToken = m_token;
-    }
-
-    return nRet;
-}
-
-void lhhttpapi::OnWorkerFinished()
-{
-    m_Condition.wakeAll();
-}
-
-int lhhttpapi::DBQDoInterface(int nOperatorType, const QString &strParamXml, QString &strRetXml, bool wait)
-{
-    if(fnDBDoInterface == nullptr) return -1;
-
-    //QMutexLocker locker(&m_mtx);
-    int ret = 0;
-    if(wait)
-    {
-        DoInterfaceObject *pWorker = new DoInterfaceObject(this, m_token, nOperatorType, strParamXml);
-        connect(pWorker, &DoInterfaceObject::sig_WorkFinished, this, &lhhttpapi::OnWorkerFinished, Qt::DirectConnection);
-        pWorker->Start(100000);
-        QMutexLocker locker(&m_mutexWorkerDestroy);
-        m_Condition.wait(&m_mutexWorkerDestroy);
-        strRetXml = pWorker->GetRetXML();
-        ret = pWorker->GetResult();
-        pWorker->BlockStop();
-        if(ret != 0)
-        {
-            int nerror = 0;
-            QString strerror = DoGetLastError(&nerror);
-            qDebug()<<"返回错误为:" << strerror;
-            if (strerror.compare("票据非法") == 0) {
-            }
-        }
-        return ret;
-    }
-
-    std::unique_ptr<char[]> buffer(new char[LHAPI_BUFFER_SIZE_NEW]{0});
-    ret = fnDBDoInterface(m_serID.toUtf8().data(),m_clientType.toUtf8().data(),m_token.toUtf8().data(),
-                              nOperatorType,strParamXml.toUtf8().data(),buffer.get(),LHAPI_BUFFER_SIZE_NEW);
-    strRetXml = QString::fromUtf8(buffer.get());
-    return ret;
-}

+ 0 - 151
Libraries/LHHTTPAPI/src/lhhttpapi.h_

@@ -1,151 +0,0 @@
-#pragma once
-#include <QString>
-#include <QObject>
-#include <QLibrary>
-#include <QDateTime>
-#include <QMutex>
-#include <QWaitCondition>
-// #include "Common/singleton.h"
-#include "threadcontroller.h"
-
-#define LH_HTTPAPI_SUCC 0
-
-// 用New
-#define LHAPI_BUFFER_SIZE_NEW 2048000
-#define LHAPI_BUFFER_SIZE_ARY 4096
-
-extern int g_nHttpTimeOut;
-
-// 操作类型【1查询 2更新 3删除 4插入 5存储过程】
-enum enDBOperatorType
-{
-    EDBOT_Select = 1,
-    EDBOT_Update,
-    EDBOT_Delete,
-    EDBOT_Insert,
-    EDBOT_Procedure,
-    EDBOT_Batch,    // 单动作批量操作,失败全部回滚
-    EDBOT_BatchTransAction // 多动作批量操作,失败回滚
-};
-
-class lhhttpapi : public QObject
-{
-    Q_OBJECT
-public:
-    typedef int (*FunDBInit)(const char* lpUrl);
-    typedef int (*FunDBLogin)(const char *pLocalIP, const char *pSerid, const char* CType, char *pszUserToken, int nSize);
-    typedef int (*FunDBGetServerList)(char *pszList, int nSize);
-    typedef int (*FunDBGetServerInfo)(const char* pSerid, const char* pszUserToken, char* pServerInfo, int nSize);
-    typedef int (*FunDBGetChannelList)(const char* pSerid,char *pszList, int nSize);
-    typedef int (*FunDBDoInterface)(const char* pSerid,const char* CType,const char* strtoken,int nOperatorType, const char * strParam, char *strRet, int nSize);
-    typedef int (*FunDoGetLastError)(char *pError, int nLen, int *nErrorCode);
-
-    typedef int (*FunSetHttpTimeOut)(int nTimeout);
-
-    // 获取网络文件大小,返回文件大小
-    typedef int64_t (*FunDoGetHttpFileSize)(const char *pszHttpAddr);
-
-    // 获取网络文件内容,返回内容大小
-    typedef int64_t (*FunDoGetHttpFileContent)(const char* pHttpAddr, char *pszContent, int nSize);
-
-    // 获取汉字拼音首字母,空格、数字等其它字符保持不动
-    typedef int (*FunDoWord2Pyjc)(const char* pszWord, char *pszContent, int nSize);
-
-    // 文件上传FTP
-    typedef int (*FunDoUploadFtpFile)(const char* pszLocalFilePath, const char* pszFtpFilePath);
-    typedef int (*FunDoUploadFtpFileContent)(const char* pszFileContent, int size, const char* pszFtpFilePath);
-
-    // FTP
-    typedef int (*FunDoCurlDeleteFtpFile)(const char* user, const char* pwd, const char* pszFtpFile);
-    typedef int (*FunDoCurlUploadFtpFile)(const char* user, const char* pwd, const char* pszLocalFilePath, const char* pszFtpFile);
-    typedef int (*FunDoCurlUploadFtpFileContent)(const char* user, const char* pwd, const char* pszFileContent, int nSize, const char* pszFtpFile);
-
-    // 获取数据库信息
-    typedef int (*FunDoGetDBInfo)(const char* strSerid, const char* strtoken, char* pDBInfo, int nsize);
-public:
-    explicit lhhttpapi(QObject *parent = nullptr);
-    ~lhhttpapi();
-
-public:
-    QLibrary *m_pQLib;
-
-    FunDBInit fnDBInit;
-    FunDBLogin fnDBLogin;
-    FunDBGetServerList fnDBGettServerList;
-    FunDBGetChannelList fnDBGetChannelList;
-    FunDBGetServerInfo fnDBGetServerInfo;
-
-    FunSetHttpTimeOut fnSetHttpTimeOut;
-    FunDoGetHttpFileSize fnGetHttpFileSize;
-    FunDoGetHttpFileContent fnGetHttpFileContent;
-    FunDoGetLastError fnGetLastError;
-    FunDoWord2Pyjc    fnDoWord2Pyjc;
-    FunDoUploadFtpFile fnDoUploadFtpFile;
-    FunDoUploadFtpFileContent fnDoUploadFtpFileContent;
-
-    FunDoCurlDeleteFtpFile  fnDoCurlDeleteFtpFile;
-    FunDoCurlUploadFtpFile  fnDoCurlUploadFtpFile;
-    FunDoCurlUploadFtpFileContent fnDoCurlUploadFtpFileContent;
-
-    FunDoGetDBInfo  fnDoGetDBInfo;
-
-    QMutex m_mutexWorkerDestroy;
-    QWaitCondition m_Condition;
-    FunDBDoInterface fnDBDoInterface;
-
-public:
-    bool Load(QString file);
-    bool UnLoad();
-
-    int SetHttpTimeOut(int nTimeout);
-    QString DoGetLastError(int *nErrorCode);
-    QString GetServerID() const {return m_serID;}
-    QString GetClientType() const {return m_clientType;}
-
-    int DBQInit(QString strUrl);
-    int DBQGetServerList(QString& serverList);
-    int DBQGetServerInfo(const QString& serid, QString& serverInfo);
-    /**
-     * @brief 登录数据库
-     * 
-     * @param LocalIP 
-     * @param Serid 
-     * @param CType 
-     * @param strUserToken 传出参数
-     * @return int 
-     */
-    int DBQLogin(QString LocalIP, QString Serid, QString CType, QString &strUserToken);
-    int DBQDoInterface(int nOperatorType, const QString &strParamXml, QString &strRetXml, bool wait = true);
-
-private slots:
-    void OnWorkerFinished();
-private:
-    QString m_token;
-    QMutex m_mtx;
-    QString m_serID;
-    QString m_clientType;
-    QTimer* m_tUpToken;
-};
-
-class DoInterfaceObject : public ThreadWorker
-{
-    Q_OBJECT
-public:
-    explicit DoInterfaceObject(lhhttpapi *pApi, const QString &strToken, int nOperatorType, const QString &strParamXml);
-    virtual ~DoInterfaceObject() override {}
-    QString GetRetXML() const {return m_strRetXml;}
-    int GetResult() const {return m_nResult;}
-public slots:
-    void DoInit() override {}
-    void DoWork() override;
-signals:
-    void sig_WorkFinished();
-public:
-    lhhttpapi *m_pApi;
-    QString m_strToken;
-    int m_nOperatorType;
-    QString m_strParamXml;
-    QString m_strRetXml;
-    int m_nResult;
-};
-