mod_GuiConsole.h 6.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125
  1. #pragma once
  2. #include "SpBase.h"
  3. #include "modVer.h"
  4. #include "GUIConsoleFSM.h"
  5. #include "IHttpFunc.h"
  6. #include "GUIConsole_server_g.h"
  7. using namespace GUIConsole;
  8. #define ENT_TIMERID_CHECK_LOGDB_SIZE 1
  9. #define ENT_TIMERINTERVAL_CHECK_LOGDB_SIZE 300 * 1000
  10. // 本地控制台 GUIConsole 0x508
  11. class CGUIConsoleEntity : public CEntityBase, public ILogListener, public ITimerListener
  12. {
  13. public:
  14. CGUIConsoleEntity() :m_SubLogID1(0), m_SubLogID2(0), m_dwBeginTime(0),
  15. m_strUserID(""), m_strUserName(""), m_strAuthorizer(""), m_strCurRight(""), m_strAuthTime(""), m_uploadLogInfo_waitSec(3600),
  16. m_refreshWaitSec(1200), m_pHttpFunc(NULL), m_defaultSystemId("LR04.02_Terminal")
  17. {
  18. }
  19. virtual ~CGUIConsoleEntity() {}
  20. virtual const char *GetEntityName() const { return "GUIConsole"; }
  21. const char* GetEntityVersion() const { return MODULE_VERSION_FULL; }
  22. virtual bool IsService()const{return true;}
  23. virtual void OnPreStart(CAutoArray<CSimpleStringA> strArgs,CSmartPointer<ITransactionContext> pTransactionContext);
  24. void OnStarted()
  25. {
  26. CSmartPointer<IEntityFunction> spEntityFunction = GetFunction();
  27. spEntityFunction->SetTimer(ENT_TIMERID_CHECK_LOGDB_SIZE, this, ENT_TIMERINTERVAL_CHECK_LOGDB_SIZE);
  28. }
  29. virtual void OnPreClose(EntityCloseCauseEnum eCloseCause,CSmartPointer<ITransactionContext> pTransactionContext) ;
  30. virtual CServerSessionBase *OnNewSession(const char* /*pszRemoteEntityName*/, const char * /*pszParam*/);
  31. virtual void OnLog(const CAutoArray<CUUID> &SubIDs, const CUUID nLogID,const LogTypeEnum eLogType, const SeverityLevelEnum eLevel,
  32. const DWORD dwSysError,const DWORD dwUserCode,const DWORD dwEntityInstanceID, const WORD wEntityDevelID,
  33. const CAutoArray<DWORD> &Param, const char *pszEntityName, const char *pszModuleName,const char *pszMessage, const linkContext& pLinkInfo);
  34. void OnTimeout(DWORD dwTimerID);
  35. ErrorCodeEnum SubscribeEntitysEvents();
  36. ErrorCodeEnum UnsubscribeEntitysEvents();
  37. CSimpleStringA GetCurMaintainer(){ return m_strUserID;}
  38. bool refreshToken();
  39. ErrorCodeEnum GetCurrentMaintainer(CSimpleStringA &strUserID, CSimpleStringA &strUserName, CSimpleStringA &strCurRight,
  40. CSimpleStringA &strAuthorizer, unsigned int &dwBeginTime);
  41. ErrorCodeEnum Empower(const char *pszUserID);
  42. ErrorCodeEnum Takeover(const char *pszUserID);
  43. ErrorCodeEnum ForceQuit();
  44. ErrorCodeEnum PostUserLoginEvent(const char *pszUserID);
  45. ErrorCodeEnum AddMaterialCounter(const char *pszMaterialCode);
  46. ErrorCodeEnum AddTradeManage(const char *pszTerminalNo, const char *pszAgentID, const char *pszTime);
  47. //查询物料信息
  48. ErrorCodeEnum QueryMaterialInfo(const char *pszDeviceNo, unsigned int &count, CAutoArray<CSimpleStringA> &arrDeviceNo, CAutoArray<CSimpleStringA> &arrMateriel,
  49. CAutoArray<CSimpleStringA> &CardGroove, CAutoArray<CSimpleStringA> &CardBoxNo, CAutoArray<CSimpleStringA> &PsbCode, CAutoArray<CSimpleStringA> &PsbName,
  50. CAutoArray<unsigned int> &CardInit, CAutoArray<unsigned int> &CardRemains, CAutoArray<unsigned int> &CardIssued, CAutoArray<unsigned int> &CardMixed, CAutoArray<unsigned int> &CardPercent,
  51. CAutoArray<CSimpleStringA> &TerminalNo, CAutoArray<CSimpleStringA> &Maintainer, CAutoArray<CSimpleStringA> &MaintainTime, CAutoArray<CSimpleStringA> &UpdateTime);
  52. ErrorCodeEnum GetMaterialCounter(const char *pszMaterial, unsigned int &dwLastCapacity, unsigned int &dwUsedCounter);
  53. ErrorCodeEnum ResetMaterialCounter(const char *pszMaterial, unsigned int dwResetCapacity, unsigned int dwUsedCounter,
  54. unsigned int dwRemainCounter, const char *pszComment);
  55. // 吞卡登记
  56. ErrorCodeEnum RegistSwallowedCard(const char *pszCardNo, const char *pszReasonCode, const char *pszDate,
  57. const char *pszTime, const char *pszDeviceSciNo);
  58. // 本地计数同步到数据库
  59. ErrorCodeEnum SyncMaterialCount(const char *pszDeviceNo, DWORD dwCardBoxNum,
  60. CAutoArray<bool> &arrMaintainFlag, CAutoArray<CSimpleStringA> &arrMaintainer, CAutoArray<unsigned int> &arrMaintainTime,
  61. CAutoArray<CSimpleStringA> &arrCardBoxNo, CAutoArray<CSimpleStringA> &arrPsbCode,
  62. CAutoArray<CSimpleStringA> &arrPsbName, CAutoArray<unsigned int> &arrCardInit, CAutoArray<unsigned int> &arrCardRemains,
  63. CAutoArray<unsigned int> &arrCardIssued, CAutoArray<unsigned int> &arrCardMixed, CAutoArray<unsigned int> &arrCardPercent);
  64. private:
  65. void InitializeBeidou();
  66. protected:
  67. //GUITask m_task;
  68. CGUIConsoleFSM m_FSM;
  69. CUUID m_SubLogID1;
  70. CUUID m_SubLogID2;
  71. CUUID m_SubLogID3;
  72. CUUID m_SubLogID4;
  73. // 当前维护用户信息
  74. CSimpleStringA m_strUserID;
  75. CSimpleStringA m_strUserName;
  76. CSimpleStringA m_strCurRight;
  77. CSimpleStringA m_strAuthorizer;
  78. CSimpleStringA m_strAuthTime;
  79. DWORD m_dwBeginTime;
  80. public:
  81. int m_uploadLogInfo_waitSec;
  82. std::string m_channelId;
  83. std::string m_tokenSecret;
  84. std::string m_defaultSystemId;
  85. static std::string m_httpToken;
  86. int m_refreshWaitSec;
  87. IHttpFunc* m_pHttpFunc;
  88. };
  89. class CGUIConsoleSession : public GUIConsoleService_ServerSessionBase
  90. {
  91. public:
  92. CGUIConsoleSession(CGUIConsoleEntity *pEntity) : m_pEntity(pEntity) {}
  93. virtual ~CGUIConsoleSession() {}
  94. virtual void Handle_GetCurrentMaintainer(SpReqAnsContext<GUIConsoleService_GetCurrentMaintainer_Req, GUIConsoleService_GetCurrentMaintainer_Ans>::Pointer ctx);
  95. virtual void Handle_Empower(SpReqAnsContext<GUIConsoleService_Empower_Req, GUIConsoleService_Empower_Ans>::Pointer ctx);
  96. virtual void Handle_Takeover(SpReqAnsContext<GUIConsoleService_Takeover_Req, GUIConsoleService_Takeover_Ans>::Pointer ctx);
  97. virtual void Handle_ForceQuit(SpReqAnsContext<GUIConsoleService_ForceQuit_Req, GUIConsoleService_ForceQuit_Ans>::Pointer ctx);
  98. virtual void Handle_AddMaterialCounter(SpReqAnsContext<GUIConsoleService_AddMaterialCounter_Req, GUIConsoleService_AddMaterialCounter_Ans>::Pointer ctx);
  99. virtual void Handle_AddTradeManage(SpReqAnsContext<GUIConsoleService_AddTradeManage_Req, GUIConsoleService_AddTradeManage_Ans>::Pointer ctx);
  100. virtual void Handle_QueryMaterialInfo(SpReqAnsContext<GUIConsoleService_QueryMaterialInfo_Req, GUIConsoleService_QueryMaterialInfo_Ans>::Pointer ctx);
  101. virtual void Handle_GetMaterialCounter(SpReqAnsContext<GUIConsoleService_GetMaterialCounter_Req, GUIConsoleService_GetMaterialCounter_Ans>::Pointer ctx);
  102. virtual void Handle_ResetMaterialCounter(SpReqAnsContext<GUIConsoleService_ResetMaterialCounter_Req, GUIConsoleService_ResetMaterialCounter_Ans>::Pointer ctx);
  103. virtual void Handle_RegistSwallowedCard(SpReqAnsContext<GUIConsoleService_RegistSwallowedCard_Req, GUIConsoleService_RegistSwallowedCard_Ans>::Pointer ctx);
  104. virtual void Handle_SyncMaterialCount(SpOnewayCallContext<GUIConsoleService_SyncMaterialCount_Info>::Pointer ctx);
  105. private:
  106. CGUIConsoleEntity *m_pEntity;
  107. };