N8Process.h 8.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379
  1. /************************************************************************/
  2. /* Copyright (C), 2016-2020, [IT], 保留所有权利;
  3. /* 模 块 名:;
  4. /* 描 述:;
  5. /*
  6. /* 版 本:[V];
  7. /* 作 者:[IT];
  8. /* 日 期:[5/15/2016];
  9. /*
  10. /*
  11. /* 注 意:;
  12. /*
  13. /* 修改记录:[IT];
  14. /* 修改日期:;
  15. /* 修改版本:;
  16. /* 修改内容:;
  17. /************************************************************************/
  18. #ifndef __N8_PROCESS__
  19. #define __N8_PROCESS__
  20. #include "Markup.h"
  21. #include <vector>
  22. using namespace std;
  23. #pragma once
  24. namespace N8Process
  25. {
  26. //////////////////////////////////////////////////////////////////////////
  27. // 基类;
  28. class CN8XML
  29. {
  30. public:
  31. CN8XML(){
  32. m_bLoad = FALSE;
  33. m_strXMLPath.Empty();
  34. };
  35. ~CN8XML(){};
  36. BOOL m_bLoad;
  37. void SetXMLPath(IN LPCTSTR lpXMLPath){
  38. if ( lpXMLPath == NULL || !PathFileExists(lpXMLPath) )
  39. return;
  40. m_strXMLPath = lpXMLPath;
  41. };
  42. BOOL IsPathExists() {
  43. if ( m_strXMLPath.IsEmpty() || !PathFileExists(m_strXMLPath) )
  44. return FALSE;
  45. return TRUE;
  46. };
  47. CString& GetPath(){return m_strXMLPath;};
  48. private:
  49. CString m_strXMLPath;
  50. };
  51. //////////////////////////////////////////////////////////////////////////
  52. // N8产品列表product.xml;
  53. class CProductList:public CN8XML
  54. {
  55. public:
  56. CProductList(){};
  57. ~CProductList(){};
  58. class CItem
  59. {
  60. public:
  61. CItem(){
  62. m_strProductID = _T("");
  63. m_strProductName = _T("");
  64. m_strProductWidth = _T("");
  65. m_strProductHeight = _T("");
  66. };
  67. ~CItem(){};
  68. CString m_strProductID; // 产品ID;
  69. CString m_strProductName; // 产品名;
  70. CString m_strProductWidth; // 产品宽;
  71. CString m_strProductHeight; // 产品高;
  72. };
  73. CArray<CItem, CItem> m_AryItems;
  74. public:
  75. BOOL CreateXML(IN LPCTSTR lpXMLPath)
  76. {
  77. CMarkup xml;
  78. if ( xml.Load(lpXMLPath) )
  79. return TRUE;
  80. xml.SetDoc(_T("<?xml version=\"1.0\" encoding=\"UTF-8\"?>\r\n"));
  81. xml.AddElem(_T("nemovg"));
  82. return xml.Save(lpXMLPath);
  83. };
  84. BOOL LoadXML(IN LPCTSTR lpXMLPath = NULL);
  85. BOOL IsItemExists(IN LPCTSTR lpProductID, IN LPCTSTR lpProductName);
  86. // 插入productList.xml产品项;
  87. BOOL InsertItem(IN LPCTSTR lpProductID, IN LPCTSTR lpProductName, IN LPCTSTR lpProductWidth, IN LPCTSTR lpProductHeiht);
  88. // 删除指定ID或名称的产品;
  89. BOOL RemoveItemByID(IN LPCTSTR lpProductID);
  90. BOOL RemoveItemByName(IN LPCTSTR lpProductName);
  91. };
  92. //////////////////////////////////////////////////////////////////////////
  93. // 员工类;
  94. class CStaff:public CN8XML
  95. {
  96. public:
  97. CStaff(){};
  98. ~CStaff(){};
  99. class CItem
  100. {
  101. public:
  102. CItem(){
  103. m_strStaffID = _T("");
  104. m_strStaffName = _T("");
  105. };
  106. ~CItem(){};
  107. CString m_strStaffID; // 员工ID;
  108. CString m_strStaffName; // 员工名称;
  109. };
  110. CArray<CItem, CItem> m_AryItems;
  111. public:
  112. BOOL CreateXML(IN LPCTSTR lpXMLPath)
  113. {
  114. CMarkup xml;
  115. if ( xml.Load(lpXMLPath) )
  116. return TRUE;
  117. xml.SetDoc(_T("<?xml version=\"1.0\" encoding=\"UTF-8\"?>\r\n"));
  118. xml.AddElem(_T("nemovg"));
  119. return xml.Save(lpXMLPath);
  120. };
  121. BOOL LoadXML(IN LPCTSTR lpXMLPath = NULL);
  122. BOOL IsItemExists(IN LPCTSTR lpStaffID);
  123. BOOL InsertItem(IN LPCTSTR lpStaffID, IN LPCTSTR lpStaffName);
  124. BOOL RemoveItemByID(IN LPCTSTR lpStaffID);
  125. };
  126. //////////////////////////////////////////////////////////////////////////
  127. // 选版结果产品类;
  128. class CResultProduct:public CN8XML
  129. {
  130. public:
  131. CResultProduct(){};
  132. ~CResultProduct(){};
  133. public:
  134. typedef struct _SubItem_
  135. {
  136. _SubItem_(){
  137. m_strID = _T("");
  138. m_strComment = _T("");
  139. m_strReplease = _T("");
  140. };
  141. CString m_strID; // 版面;
  142. CString m_strComment; // 备注;
  143. CString m_strReplease; // 要替换的相片;
  144. }SubItem;
  145. class CItem
  146. {
  147. public:
  148. CItem(){
  149. m_strProductID = _T("");
  150. m_strProductComment = _T("");
  151. m_strProductName = _T("");
  152. m_strProductWidth = _T("");
  153. m_strProductHeight = _T("");
  154. };
  155. ~CItem(){};
  156. CString m_strProductID;
  157. CString m_strProductComment;
  158. CString m_strProductName;
  159. CString m_strProductWidth;
  160. CString m_strProductHeight;
  161. vector<SubItem> m_ArySubItems;
  162. protected:
  163. private:
  164. };
  165. CArray<CItem,CItem> m_AryItems;
  166. public:
  167. BOOL CreateXML(IN LPCTSTR lpXMLPath)
  168. {
  169. CMarkup xml;
  170. if ( xml.Load(lpXMLPath) )
  171. return TRUE;
  172. xml.SetDoc(_T("<?xml version=\"1.0\" encoding=\"UTF-8\"?>\r\n"));
  173. xml.AddElem(_T("prdlist"));
  174. xml.AddAttrib(_T("version"), _T("1.0"));
  175. return xml.Save(lpXMLPath);
  176. };
  177. BOOL LoadXML(IN LPCTSTR lpXMLPath = NULL);
  178. BOOL IsItemExists(IN LPCTSTR lpID, IN LPCTSTR lpName);
  179. BOOL InsertItem(IN LPCTSTR lpID, IN LPCTSTR lpComment, IN LPCTSTR lpName, IN LPCTSTR lpWidth, IN LPCTSTR lpHeight);
  180. BOOL InsertSubItem(IN LPCTSTR lpID, IN LPCTSTR lpName, IN LPCTSTR lpSubID, IN LPCTSTR lpSubComment, IN LPCTSTR lpSubReplease);
  181. };
  182. //////////////////////////////////////////////////////////////////////////
  183. // 选版结果产品类;
  184. class CResultVgProduct:public CN8XML
  185. {
  186. public:
  187. CResultVgProduct(){};
  188. ~CResultVgProduct(){};
  189. class CItem
  190. {
  191. public:
  192. CItem(){
  193. m_strProductID = _T("");
  194. m_strProductComment = _T("");
  195. m_strProductName = _T("");
  196. m_strProductWidth = _T("");
  197. m_strProductHeight = _T("");
  198. };
  199. ~CItem(){};
  200. CString m_strProductID;
  201. CString m_strProductComment;
  202. CString m_strProductName;
  203. CString m_strProductWidth;
  204. CString m_strProductHeight;
  205. vector<CString> m_ArySubItems;
  206. protected:
  207. private:
  208. };
  209. CArray<CItem,CItem> m_AryItems;
  210. public:
  211. BOOL CreateXML(IN LPCTSTR lpXMLPath)
  212. {
  213. CMarkup xml;
  214. if ( xml.Load(lpXMLPath) )
  215. return TRUE;
  216. xml.SetDoc(_T("<?xml version=\"1.0\" encoding=\"UTF-8\"?>\r\n"));
  217. xml.AddElem(_T("n8vg_prdlist"));
  218. xml.AddAttrib(_T("version"), _T("1.0"));
  219. return xml.Save(lpXMLPath);
  220. };
  221. BOOL LoadXML(IN LPCTSTR lpXMLPath = NULL);
  222. BOOL IsItemExists(IN LPCTSTR lpID, IN LPCTSTR lpName);
  223. BOOL InsertItem(IN LPCTSTR lpID, IN LPCTSTR lpComment, IN LPCTSTR lpName, IN LPCTSTR lpWidth, IN LPCTSTR lpHeight);
  224. BOOL InsertSubItem(IN LPCTSTR lpID, IN LPCTSTR lpName, IN LPCTSTR lpSubID);
  225. protected:
  226. private:
  227. };
  228. //////////////////////////////////////////////////////////////////////////
  229. // ResultItem类;
  230. class CResultItem:public CN8XML
  231. {
  232. public:
  233. CResultItem(){};
  234. ~CResultItem(){};
  235. class CItem
  236. {
  237. public:
  238. CItem(){};
  239. ~CItem(){};
  240. public:
  241. CString m_strPath;
  242. CString m_strComment;
  243. CString m_strDel;
  244. CString m_strPage;
  245. CString m_strDeleted; // 版面中,被删除的相片,多个相片以"|"分隔;
  246. private:
  247. };
  248. CArray<CItem, CItem> m_AryItems;
  249. BOOL LoadXML(IN LPCTSTR lpXMLPath = NULL );
  250. BOOL InsertItem(IN LPCTSTR lpPath, IN LPCTSTR lpComment, IN LPCTSTR lpDel, IN LPCTSTR lpPage);
  251. BOOL IsItemExists(IN LPCTSTR lpPath);
  252. };
  253. //////////////////////////////////////////////////////////////////////////
  254. // Ablum类;
  255. class CAlbum:public CN8XML
  256. {
  257. public:
  258. CAlbum(){};
  259. ~CAlbum(){};
  260. class CPageItem
  261. {
  262. public:
  263. CPageItem(){
  264. m_strtplid = _T("");
  265. m_strFileName = _T("");
  266. m_strtplname = _T("");
  267. };
  268. ~CPageItem(){};
  269. CString m_strtplid; // 模板id;
  270. CString m_strtplname; // 模板名;
  271. CString m_strFileName; // 版面名称;
  272. vector<CString> m_vtImgs; // 组成版本的相片;
  273. protected:
  274. private:
  275. };
  276. CArray<CPageItem, CPageItem> m_AryPages;
  277. public:
  278. BOOL LoadXML(IN LPCTSTR lpXMLPath = NULL );
  279. BOOL IsItemExists(IN LPCTSTR lpID, IN LPCTSTR lpName);
  280. BOOL InsertItem(IN LPCTSTR lpID, IN LPCTSTR lpComment, IN LPCTSTR lpName, IN LPCTSTR lpWidth, IN LPCTSTR lpHeight);
  281. BOOL InsertSubItem(IN LPCTSTR lpID, IN LPCTSTR lpName, IN LPCTSTR lpSubID);
  282. private:
  283. };
  284. //////////////////////////////////////////////////////////////////////////
  285. // 选版完成结果;
  286. class CResultXml:public CN8XML
  287. {
  288. public:
  289. CResultXml(){};
  290. ~CResultXml(){};
  291. class CItem
  292. {
  293. public:
  294. CItem(){
  295. m_strTplid = _T("");
  296. m_strTplname = _T("");
  297. m_strProdid = _T("");
  298. };
  299. ~CItem(){};
  300. // 模板id;
  301. CString m_strTplid;
  302. // 模板名称;
  303. CString m_strTplname;
  304. // 商品id;
  305. CString m_strProdid;
  306. protected:
  307. private:
  308. };
  309. // 员工id;
  310. CString m_strStaffID;
  311. // 用户目录;
  312. CString m_strClientFolder;
  313. // 选版日期;
  314. CString m_strDate;
  315. // 设计师;
  316. CString m_strDesigner;
  317. // 节点元素;
  318. CArray<CItem, CItem> m_AryItems;
  319. public:
  320. BOOL LoadXML(IN LPCTSTR lpXMLPath = NULL );
  321. BOOL IsItemExists(IN LPCTSTR lpTplID, IN LPCTSTR lpTplName, IN LPCTSTR lpProdID);
  322. BOOL InsertItem(IN LPCTSTR lpID, IN LPCTSTR lpComment, IN LPCTSTR lpName, IN LPCTSTR lpWidth, IN LPCTSTR lpHeight);
  323. BOOL InsertSubItem(IN LPCTSTR lpID, IN LPCTSTR lpName, IN LPCTSTR lpSubID);
  324. private:
  325. };
  326. };
  327. #endif // __N8_PROCESS__;