| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203 | 
							- #pragma once
 
- #include <QString>
 
- #include <QObject>
 
- #include <QLibrary>
 
- #include <QDateTime>
 
- #include "threadcontroller.h"
 
- #define LH_HTTPAPI_SUCC 0
 
- const int LHHTTPAPI_BUFFER_SIZE = 1024*1024;
 
- // 用New
 
- #define LHAPI_BUFFER_SIZE_NEW 2048000
 
- #define LHAPI_BUFFER_SIZE_ARY 4096
 
- // token 超时
 
- #define  TOKENTIME 20*60
 
- 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  /* 多动作批量操作,失败回滚,请求[{op1}, {op2}, ...],
 
-                                 回复
 
-                                 {
 
-                                     "code":0,
 
-                                     "data":[{
 
-                                         "key":"1",
 
-                                         "value":{
 
-                                             "code":0,
 
-                                             "result":1
 
-                                         }
 
-                                     },
 
-                                     {
 
-                                         "key":"2",
 
-                                         "value":{
 
-                                             "code":0,
 
-                                             "result":[{
 
-                                                 "counT(*)":0
 
-                                             }]
 
-                                         }
 
-                                     }]
 
-                                 }" */
 
- };
 
- /**
 
-  * 单个查询语句多条不同的变量,适合批量查询,paraName是变量名
 
-     EDBOT_Batch
 
-     {
 
-         "opName":"TMS_GetExecPlanOneTemplateList",
 
-         "paraName":[
 
-             1,
 
-             2,
 
-             3
 
-         ]
 
-     }
 
-     多个不同语句集合,适合插入数据,Key表示的是这一个语句的唯一值,用于区分插入操作的
 
-     EDBOT_BatchTransAction
 
-     [
 
-         {
 
-             "opName":"TMS_InsertExecPlanOneTemplateList",
 
-             "Key":"1",
 
-             "paramList":
 
-             {
 
-                 "channelID":1,
 
-                 "templateName":"测试模版1",
 
-                 "templateType":0
 
-             }
 
-         },
 
-         {
 
-             "opName":"TMS_InsertExecPlanOneTemplateList",
 
-             "paramList":
 
-             {
 
-                 "channelID":2,
 
-                 "templateName":"测试模版2",
 
-                 "templateType":0
 
-             }
 
-         }
 
-     ]
 
-  */
 
- class lhhttpapi : public QObject
 
- {
 
-     Q_OBJECT
 
- public:
 
-     typedef void* (*FunDBInit)(const char* lpUrl,bool bismulti);
 
-     typedef int (*FunDBLogin)(const char *plocalip,const char *pSerid, const char* CType, char *pszUserToken, int nSize,bool bismulti, void* phttpip);
 
-     typedef int (*FunDBGetServerList)(char *pszList, int nSize,bool bismulti, void* phttpip);
 
-     typedef int (*FunDBGetChannelList)(const char* pSerid,char *pszList, int nSize,bool bismulti, void* phttpip);
 
-     typedef int (*FunDBDoInterface)(const char* pSerid,const char* CType,const char* strtoken,int nOperatorType, const char * strParamXml, char *strRetXml, int nSize,bool bismulti, void* phttpip);
 
-     typedef int64_t (*FunDoGetHttpFileSize)(const char* pHttAddr);
 
-     typedef int64_t (*FunDoGetHttpFileContent)(const char* lpHttpAddr, char *pszContent, int nSize);
 
-     typedef int (*FunDoUploadFtpFile)(const char* pszLocalFilePath, const char* pszFtpFilePath);
 
-     typedef int (*FunDoUploadFtpFileContent)(const char * szFileContent, int nSize, const char* strFtpFilePath);
 
-     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 (*FunUnInit)();
 
-     typedef int (*FunDoGetLastError)(char *pError, int nLen, int *nErrorCode);
 
-     typedef int (*FunDoRelease)(bool bismulti, void* phttpip);
 
- public:
 
-     explicit lhhttpapi(QObject *parent = nullptr);
 
-     ~lhhttpapi();
 
- public:
 
-     QLibrary *m_pQLib;
 
-     FunDoRelease fnDoRelease;
 
-     FunDBInit fnDBInit;
 
-     FunDBLogin fnDBLogin;
 
-     FunDBGetServerList fnDBGettServerList;
 
-     FunDBGetChannelList fnDBGetChannelList;
 
-     FunDBDoInterface fnDBDoInterface;
 
-     FunDoGetHttpFileSize fnDoGetHttpFileSize;
 
-     FunDoGetHttpFileContent fnDoGetHttpFileContent;
 
-     FunDoUploadFtpFile fnDoUploadFtpFile;
 
-     FunDoUploadFtpFileContent fnDoUploadFtpFileContent;
 
-     FunDoCurlDeleteFtpFile fnDoCurlDeleteFtpFile;
 
-     FunDoCurlUploadFtpFile fnDoCurlUploadFtpFile;
 
-     FunDoCurlUploadFtpFileContent fnDoCurlUploadFtpFileContent;
 
- //    FunUnInit fnUnInit;
 
-     FunDoGetLastError fnGetLastError;
 
-     QMutex m_mutexWorkerDestroy;
 
-     QWaitCondition m_Condition;
 
- public:
 
-     bool Load(QString file);
 
-     bool Load();
 
-     bool UnLoad();
 
-     int  DoRelease(bool bismulti = false, void* phttpip=nullptr);
 
-     void* DBInit (const char *lpUrl,bool bismulti = false);
 
-     int DBLogin(const QString& pLocalip,const QString &pSerid,const QString &appType, QString &pszUserToken,bool bismulti = false, void* phttpip=nullptr);
 
-     int DoGetToken(QString &szToken,bool bismulti = false, void* phttpip=nullptr);
 
- //    void DoGetTokenAgain();
 
-     int DBGetServerList(char *pszList, int nSize,bool bismulti = false, void* phttpip=nullptr);
 
-     int DBGetChannelList(const char* pSerid,char *pszList, int nSize,bool bismulti = false, void* phttpip=nullptr);
 
-     // int DBDoInterface(int nOperatorType, const QString &strParamXml, QString &strRetXml, bool wait = false, bool bismulti = false, void* phttpip=nullptr);
 
-     int DBDoInterface(int nOperatorType, const QString &strParamXml, QString &strRetXml, bool bismulti = false);
 
-     int DoGetLastError(char *pError, int nLen, int *nErrorCode);
 
-     QString DoGetLastError(int *nErrorCode);
 
-     int64_t DoGetHttpFileSize(const QString &url);
 
-     int64_t DoGetHttpFileContent(const QString &url, char *pszContent, int nSize);
 
-    // int64_t DoGetHttpPNGFile(const QString &url, QPixmap &outPixmap);
 
-     bool DoUploadFtpFile(const QString &localFilePath, const QString &ftpFilePath);
 
-     bool DoUploadFtpFileContent(const char * szFileContent, int nSize, const QString &ftpFilePath);
 
-     bool DoCurlDeleteFtpFile(const QString &targetFilePath);
 
-     bool DoCurlDeleteFtpFile(const QString &user, const QString &pwd, const QString &targetFilePath);
 
-     bool DoCurlUploadFtpFile(const QString &localFilePath, const QString &destFilePath);
 
-     bool DoCurlUploadFtpFile(const QString &user, const QString &pwd, const QString &localFilePath, const QString &destFilePath);
 
-     bool DoCurlUploadFtpFileContent(const char * szFileContent, int nSize, const QString &destFilePath);
 
-     bool DoCurlUploadFtpFileContent(const QString &user, const QString &pwd, const char * szFileContent, int nSize, const QString &destFilePath);
 
- private slots:
 
-     void OnWorkerFinished();
 
- private:
 
-     QString m_Localip; // localip
 
-     QString m_Serid; // 当前服务数据库id
 
-     QString m_appType; // 设备类型
 
-     QString m_strtoken;// token
 
-     QDateTime m_lasttimer; // 最后一个获取token的时间
 
-     void* m_phttpip = nullptr;
 
- };
 
- class DoInterfaceObject : public ThreadWorker
 
- {
 
-     Q_OBJECT
 
- public:
 
-     explicit DoInterfaceObject(lhhttpapi *pApi, const QString &strToken, int nOperatorType, const QString &strParamXml,bool bismulti = false,void* phttpip=nullptr);
 
-     virtual ~DoInterfaceObject() override {}
 
-     QString GetRetXML() const {return m_strRetXml;}
 
-     int GetResult() const {return m_nResult;}
 
- public slots:
 
-     virtual void DoInit() override {}
 
-     virtual 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;
 
-     bool m_bismulti;
 
-     void* m_phttpip;
 
- };
 
 
  |