AntiTheftCommand.h 3.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153
  1. /************************************************************************/
  2. /* Copyright (C), 2016-2020, [IT], 保留所有权利;
  3. /* 模 块 名:;
  4. /* 描 述:;
  5. /*
  6. /* 版 本:[V];
  7. /* 作 者:[IT];
  8. /* 日 期:[1/17/2017];
  9. /*
  10. /*
  11. /* 注 意:只适合多字节字符编集;
  12. /*
  13. /* 修改记录:[IT];
  14. /* 修改日期:;
  15. /* 修改版本:;
  16. /* 修改内容:;
  17. /************************************************************************/
  18. #ifndef __ANTI_THEFT_COMMAND__
  19. #define __ANTI_THEFT_COMMAND__
  20. #include <vector>
  21. #pragma once
  22. // 盗版提示操作;
  23. typedef struct _WARN_OPT_
  24. {
  25. BOOL bEnable; // 是否启用;
  26. CString strContent; // 盗版提示内容;
  27. _WARN_OPT_()
  28. {
  29. bEnable = FALSE;
  30. strContent = _T("");
  31. }
  32. }WarnOpt, *pWarnOpt;
  33. // 加密狗过期操作;
  34. typedef struct _DOG_OPT_
  35. {
  36. BOOL bEnable; // 是否启用;
  37. CString strExpired; // 过期日期;
  38. _DOG_OPT_()
  39. {
  40. bEnable = FALSE;
  41. strExpired = _T("");
  42. }
  43. }DogOpt, *pDogOpt;
  44. // SQL操作元素内容;
  45. typedef struct _SQL_ELEMENT_
  46. {
  47. CString strSQL; // SQL语句;
  48. CString strExecTime; // 执行时间;
  49. BOOL bExecStatus; // 执行状态(用于返回服务器);
  50. _SQL_ELEMENT_()
  51. {
  52. bExecStatus = FALSE;
  53. strSQL = _T("");
  54. strExecTime = _T("");
  55. }
  56. }SQLElement, *pSQLElement;
  57. // SQL操作;
  58. typedef struct _SQL_OPT_
  59. {
  60. BOOL bEnable; // 是否启用;
  61. std::vector<SQLElement> vtSQLElement; // SQL元素集合;
  62. _SQL_OPT_()
  63. {
  64. bEnable = FALSE;
  65. }
  66. }SQLOpt, *pSQLOpt;
  67. // 相片加密操作;
  68. typedef struct _DATA_OPT_
  69. {
  70. BOOL bEnable; // 是否启用;
  71. CString strExecTime; // 执行时间;
  72. INT nEncryptCount; // 加密订单数量;
  73. BOOL bExecStatus; // 执行状态(用于返回服务器);
  74. CStringArray AryOrder; // 加密的订单串(用于返回服务器);
  75. _DATA_OPT_()
  76. {
  77. bEnable = FALSE;
  78. bExecStatus = FALSE;
  79. nEncryptCount = 0;
  80. strExecTime = _T("");
  81. }
  82. }DataOpt, *pDataOpt;
  83. // 防盗命令;
  84. typedef struct _ANTI_CMD_
  85. {
  86. BOOL bResult; // false:等待接收; true:已接收 ;
  87. CString strCmdGuid; // 命令的guid值;
  88. WarnOpt stWarnOpt; // 盗版提示操作;
  89. DogOpt stDogOpt; // 加密狗操作;
  90. SQLOpt stSQLOpt; // SQL操作;
  91. DataOpt stDataOpt; // 加密相片操作;
  92. _ANTI_CMD_()
  93. {
  94. bResult = FALSE;
  95. strCmdGuid = _T("");
  96. }
  97. }AntiCmd, *pAntiCmd;
  98. class CAntiTheftCommand
  99. {
  100. CAntiTheftCommand(void);
  101. public:
  102. static CAntiTheftCommand* GetInstance()
  103. {
  104. static CAntiTheftCommand* pInstance = NULL;
  105. if ( pInstance == NULL)
  106. pInstance = new CAntiTheftCommand;
  107. return pInstance;
  108. }
  109. ~CAntiTheftCommand(void);
  110. // 初始化命令行到AntiCmd结构体中;
  111. static BOOL InitCommand(IN AntiCmd &tagAntiCmd);
  112. // 防盗提示操作;
  113. static BOOL OptWarning(IN WarnOpt &tagWarnOpt);
  114. // 加密狗操作;
  115. static BOOL OptDog(IN DogOpt &tagDogOpt);
  116. // SQL操作;
  117. static BOOL OptSQL(IN SQLOpt &tagSQLOpt);
  118. // 加密操作;
  119. static BOOL OptData(IN DataOpt &tagDataOpt);
  120. // 获取要加密的订单号;
  121. static BOOL GetOrderInfo(IN INT nEncryptCount, IN CStringArray &AryOrder);
  122. // 获取要加密的订单相片;
  123. static BOOL GetOrderImgfile(IN CStringArray& AryOrder, std::vector<string> &vtImgfiles);
  124. // 删除备份数据库;
  125. static void DeleteBackupDB();
  126. // 删除指定订单的备份相片;
  127. static void DeleteBackupImg(IN CStringArray &AryOrder);
  128. // 加密相片;
  129. static void EncryptImg( IN std::vector<string> &vtfiles, IN LPBYTE lpKey, IN LPBYTE lpVi);
  130. // 保存执行结果;
  131. static void SaveResult(IN AntiCmd &tagAnticmd);
  132. public:
  133. HANDLE m_hThread;
  134. void StartThread();
  135. void EndofThread();
  136. static DWORD WINAPI ThreadAntiTheft(LPVOID lpPara);
  137. };
  138. #endif // __ANTI_THEFT_COMMAND__;