PageRenderTime 63ms CodeModel.GetById 29ms RepoModel.GetById 0ms app.codeStats 0ms

/HallQueFront/HallQueFront/CascadeMethod.cpp

https://gitlab.com/jesse1117/HallQueFront
C++ | 436 lines | 393 code | 25 blank | 18 comment | 47 complexity | 0a385216dd819ec2ad77436da56b250f MD5 | raw file
  1. #include "StdAfx.h"
  2. #include "CascadeMethod.h"
  3. #include "HallQueFront.h"
  4. CCascadeMethod::CCascadeMethod(void)
  5. {
  6. CString fullPath = convert.GetExeFullFilePath();
  7. m_QueInfoPath = fullPath + _T("\\QueBasicInfo\\QueBasicInfo.dat");
  8. m_StaffInfoPath = fullPath + _T("\\StaffBasicInfo\\StaffBasicInfo.dat");
  9. m_WindowInfoPath = fullPath + _T("\\Window.dat");
  10. m_SwingInfoPath = fullPath + _T("\\CardConfigInfo\\CardConfigInfo.dat");
  11. m_connect_path = fullPath + _T("\\CardConfigInfo\\CardConnectInfo.dat");
  12. m_cardLev_path = fullPath + _T("\\CardConfigInfo\\CardLevInfo.dat");
  13. }
  14. CCascadeMethod::~CCascadeMethod(void)
  15. {
  16. }
  17. BOOL CCascadeMethod::ReadQueInfoFromFile()
  18. {
  19. CFile file;
  20. CFileException e;
  21. if (file.Open(m_QueInfoPath,CFile::modeRead,&e))
  22. {
  23. m_map_QueInfo.RemoveAll();
  24. CQueueInfo* queinfo=NULL;
  25. int i=0;
  26. CArchive ar(&file,CArchive::load);
  27. if (file.GetLength())
  28. do
  29. {
  30. ar>>queinfo;
  31. if (queinfo)
  32. {
  33. m_map_QueInfo[i]= *queinfo;
  34. delete queinfo;
  35. queinfo = NULL;
  36. i++;
  37. }
  38. }while(!ar.IsBufferEmpty());
  39. ar.Close();
  40. file.Close();
  41. }
  42. else return FALSE;
  43. return TRUE;
  44. }
  45. BOOL CCascadeMethod::ReadStaffInfoFromFile()
  46. {
  47. CFile file;
  48. CFileException e;
  49. if (file.Open(m_StaffInfoPath,CFile::modeRead,&e))
  50. {
  51. m_map_StaffInfo.RemoveAll();
  52. SLZStaff* Staffinfo=NULL;
  53. int i=0;
  54. CArchive ar(&file,CArchive::load);
  55. if (file.GetLength())
  56. do
  57. {
  58. ar>>Staffinfo;
  59. if (Staffinfo)
  60. {
  61. m_map_StaffInfo[i]= *Staffinfo;
  62. delete Staffinfo;
  63. Staffinfo = NULL;
  64. i++;
  65. }
  66. }while(!ar.IsBufferEmpty());
  67. ar.Close();
  68. file.Close();
  69. }
  70. else return FALSE;
  71. return TRUE;
  72. }
  73. BOOL CCascadeMethod::ReadWindowInfoFromFile()
  74. {
  75. CFile file;
  76. CFileException e;
  77. if (file.Open(m_WindowInfoPath,CFile::modeRead,&e))
  78. {
  79. m_map_WindowInfo.RemoveAll();
  80. SLZWindow* Windowinfo=NULL;
  81. int i=0;
  82. CArchive ar(&file,CArchive::load);
  83. if (file.GetLength())
  84. do
  85. {
  86. ar>>Windowinfo;
  87. if (Windowinfo)
  88. {
  89. m_map_WindowInfo[i]= *Windowinfo;
  90. delete Windowinfo;
  91. Windowinfo = NULL;
  92. i++;
  93. }
  94. }while(!ar.IsBufferEmpty());
  95. ar.Close();
  96. file.Close();
  97. }
  98. else return FALSE;
  99. return TRUE;
  100. }
  101. extern void MyWriteConsole(CString str);
  102. BOOL CCascadeMethod::WriteQueInfoToFile()
  103. {
  104. #ifdef _DEBUG
  105. m_ComputerTime.SetStartTime(clock());
  106. #endif
  107. CFile file;
  108. CFileException e;
  109. if (file.Open(m_QueInfoPath,CFile::modeCreate|CFile::modeWrite,&e))
  110. {
  111. int count=m_map_QueInfo.GetCount();
  112. for (int i=0;i<count;i++)
  113. {
  114. CArchive ar(&file,CArchive::store);
  115. CQueueInfo queinfo;
  116. m_map_QueInfo.Lookup(i,queinfo);
  117. ar<<&queinfo;
  118. ar.Close();
  119. }
  120. file.Close();
  121. // #ifdef _DEBUG
  122. // m_ComputerTime.SetFinshTime(clock());
  123. // CString MyClock;
  124. // MyClock.Format(_T("%f"),m_ComputerTime.GetDuration());
  125. // MyWriteConsole(_T("CArchive:")+MyClock);
  126. // #endif
  127. return TRUE;
  128. }
  129. else
  130. {
  131. TRACE(_T("File could not be opened %d\n"), e.m_cause);
  132. return FALSE;
  133. }
  134. }
  135. BOOL CCascadeMethod::WriteStaffInfoToFile()
  136. {
  137. #ifdef _DEBUG
  138. m_ComputerTime.SetStartTime(clock());
  139. #endif
  140. CFile file;
  141. CFileException e;
  142. if (file.Open(m_StaffInfoPath,CFile::modeCreate|CFile::modeWrite,&e))
  143. {
  144. int count=m_map_StaffInfo.GetCount();
  145. for (int i=0;i<count;i++)
  146. {
  147. CArchive ar(&file,CArchive::store);
  148. SLZStaff staffinfo;
  149. m_map_StaffInfo.Lookup(i,staffinfo);
  150. ar<<&staffinfo;
  151. ar.Close();
  152. }
  153. file.Close();
  154. // #ifdef _DEBUG
  155. // m_ComputerTime.SetFinshTime(clock());
  156. // CString MyClock;
  157. // MyClock.Format(_T("%f"),m_ComputerTime.GetDuration());
  158. // MyWriteConsole(_T("CArchive:")+MyClock);
  159. // #endif
  160. return TRUE;
  161. }
  162. else
  163. {
  164. TRACE(_T("File could not be opened %d\n"), e.m_cause);
  165. return FALSE;
  166. }
  167. }
  168. BOOL CCascadeMethod::WriteWindowInfoToFile()
  169. {
  170. #ifdef _DEBUG
  171. m_ComputerTime.SetStartTime(clock());
  172. #endif
  173. CFile file;
  174. CFileException e;
  175. if (file.Open(m_WindowInfoPath,CFile::modeCreate|CFile::modeWrite,&e))
  176. {
  177. int count=m_map_WindowInfo.GetCount();
  178. for (int i=0;i<count;i++)
  179. {
  180. CArchive ar(&file,CArchive::store);
  181. SLZWindow windowinfo;
  182. m_map_WindowInfo.Lookup(i,windowinfo);
  183. ar<<&windowinfo;
  184. ar.Close();
  185. }
  186. file.Close();
  187. // #ifdef _DEBUG
  188. // m_ComputerTime.SetFinshTime(clock());
  189. // CString MyClock;
  190. // MyClock.Format(_T("%f"),m_ComputerTime.GetDuration());
  191. // MyWriteConsole(_T("CArchive:")+MyClock);
  192. // #endif
  193. return TRUE;
  194. }
  195. else
  196. {
  197. TRACE(_T("File could not be opened %d\n"), e.m_cause);
  198. return FALSE;
  199. }
  200. }
  201. BOOL CCascadeMethod::ReadConfigCardInfoFromFile()
  202. {
  203. CFile file;
  204. CFileException e;
  205. if (file.Open(m_SwingInfoPath,CFile::modeRead,&e))
  206. {
  207. m_map_SwingInfo.RemoveAll();
  208. CSwingCard* Swinginfo=NULL;
  209. int i=0;
  210. CArchive ar(&file,CArchive::load);
  211. if (file.GetLength())
  212. do
  213. {
  214. ar>>Swinginfo;
  215. if (Swinginfo)
  216. {
  217. m_map_SwingInfo[i]= *Swinginfo;
  218. delete Swinginfo;
  219. Swinginfo = NULL;
  220. i++;
  221. }
  222. }while(!ar.IsBufferEmpty());
  223. ar.Close();
  224. file.Close();
  225. }
  226. else return FALSE;
  227. return TRUE;
  228. }
  229. BOOL CCascadeMethod::WriteConfigCardInfoToFile()
  230. {
  231. CFile file;
  232. CFileException e;
  233. if (file.Open(m_SwingInfoPath,CFile::modeCreate|CFile::modeWrite,&e))
  234. {
  235. int count=m_map_SwingInfo.GetCount();
  236. for (int i=0;i<count;i++)
  237. {
  238. CArchive ar(&file,CArchive::store);
  239. CSwingCard swinginfo;
  240. m_map_SwingInfo.Lookup(i,swinginfo);
  241. ar<<&swinginfo;
  242. ar.Close();
  243. }
  244. file.Close();
  245. return TRUE;
  246. }
  247. else
  248. {
  249. return FALSE;
  250. }
  251. }
  252. BOOL CCascadeMethod::ReadConnectInfoFromFile()
  253. {
  254. CFile file;
  255. CFileException e;
  256. if (file.Open(m_connect_path,CFile::modeRead,&e))
  257. {
  258. file.Read(&m_cardConnectInfo,sizeof(CARDCONNECTINFO));
  259. file.Close();
  260. return TRUE;
  261. }
  262. else
  263. {
  264. return FALSE;
  265. }
  266. return TRUE;
  267. }
  268. BOOL CCascadeMethod::WriteConnectInfoToFile()
  269. {
  270. CFile file;
  271. CFileException e;
  272. if (file.Open(m_connect_path,CFile::modeCreate|CFile::modeWrite,&e))
  273. {
  274. file.Write(&m_cardConnectInfo,sizeof(CARDCONNECTINFO));
  275. file.Close();
  276. return TRUE;
  277. }
  278. else
  279. {
  280. return FALSE;
  281. }
  282. return TRUE;
  283. }
  284. BOOL CCascadeMethod::ReadCardLevelFromFile()
  285. {
  286. CFile file;
  287. CFileException e;
  288. if (file.Open(m_cardLev_path,CFile::modeRead,&e))
  289. {
  290. m_map_CardLevelInfo.RemoveAll();
  291. CCardLevel* CardLevelinfo=NULL;
  292. int i=0;
  293. CArchive ar(&file,CArchive::load);
  294. if (file.GetLength())
  295. do
  296. {
  297. ar>>CardLevelinfo;
  298. if (CardLevelinfo)
  299. {
  300. m_map_CardLevelInfo[i]= *CardLevelinfo;
  301. delete CardLevelinfo;
  302. CardLevelinfo = NULL;
  303. i++;
  304. }
  305. }while(!ar.IsBufferEmpty());
  306. ar.Close();
  307. file.Close();
  308. }
  309. else return FALSE;
  310. return TRUE;
  311. }
  312. BOOL CCascadeMethod::WriteCardLevelToFile()
  313. {
  314. CFile file;
  315. CFileException e;
  316. if (file.Open(m_cardLev_path,CFile::modeCreate|CFile::modeWrite,&e))
  317. {
  318. int count=m_map_CardLevelInfo.GetCount();
  319. for (int i=0;i<count;i++)
  320. {
  321. CArchive ar(&file,CArchive::store);
  322. CCardLevel CardLevelinfo;
  323. m_map_CardLevelInfo.Lookup(i,CardLevelinfo);
  324. ar<<&CardLevelinfo;
  325. ar.Close();
  326. }
  327. file.Close();
  328. return TRUE;
  329. }
  330. else
  331. {
  332. return FALSE;
  333. }
  334. }
  335. void CCascadeMethod::DeleteQueInfo(CString strQueId)
  336. {
  337. if(ReadWindowInfoFromFile())
  338. {
  339. for (int index = 0;index < m_map_WindowInfo.GetCount();index++)
  340. {
  341. SLZWindow windowinfo;
  342. CStringArray queidarray;
  343. m_map_WindowInfo.Lookup(index,windowinfo);
  344. windowinfo.GetArrayQueId(queidarray);
  345. for (int j = 0;j<queidarray.GetCount();j++)
  346. {
  347. if (strQueId==queidarray[j])
  348. {
  349. queidarray.RemoveAt(j,1);
  350. break;
  351. }
  352. }
  353. windowinfo.SetArrayQueId(queidarray);
  354. m_map_WindowInfo.SetAt(index,windowinfo);
  355. }
  356. WriteWindowInfoToFile();
  357. }
  358. if (ReadConfigCardInfoFromFile())
  359. {
  360. for (int index = 0;index < m_map_SwingInfo.GetCount();index++)
  361. {
  362. CSwingCard swinginfo;
  363. m_map_SwingInfo.Lookup(index,swinginfo);
  364. if (strQueId==swinginfo.GetAttchQueID())
  365. {
  366. swinginfo.SetAttchQueID(_T(""));
  367. }
  368. m_map_SwingInfo.SetAt(index,swinginfo);
  369. }
  370. WriteConfigCardInfoToFile();
  371. }
  372. if (ReadConnectInfoFromFile())
  373. {
  374. if (strQueId==m_cardConnectInfo.RegAttchQueID)
  375. {
  376. memset(m_cardConnectInfo.RegAttchQueID,0,sizeof(m_cardConnectInfo.RegAttchQueID));
  377. }
  378. WriteConnectInfoToFile();
  379. }
  380. if (ReadCardLevelFromFile())
  381. {
  382. for (int index = 0;index < m_map_CardLevelInfo.GetCount();index++)
  383. {
  384. CCardLevel CardLevelinfo;
  385. m_map_CardLevelInfo.Lookup(index,CardLevelinfo);
  386. if (strQueId==CardLevelinfo.GetCardLevAttchToQue())
  387. {
  388. CardLevelinfo.SetCardLevAttchToQue(_T(""));
  389. }
  390. m_map_CardLevelInfo.SetAt(index,CardLevelinfo);
  391. }
  392. WriteCardLevelToFile();
  393. }
  394. }
  395. void CCascadeMethod::DeleteStaffInfo(CString strStaffId)
  396. {
  397. if (ReadWindowInfoFromFile())
  398. {
  399. for (int index = 0;index < m_map_WindowInfo.GetCount();index++)
  400. {
  401. SLZWindow windowinfo;
  402. m_map_WindowInfo.Lookup(index,windowinfo);
  403. if (strStaffId==windowinfo.GetLoginStaff())
  404. {
  405. windowinfo.SetLoginStaff(_T(""));
  406. }
  407. m_map_WindowInfo.SetAt(index,windowinfo);
  408. }
  409. WriteWindowInfoToFile();
  410. }
  411. }