HandleService.js 32 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812
  1. angular.module('push')
  2. .factory('HandleService', function (UtilService, ConfigService, UserService, $q, ModelService) {
  3. /*--同步状态synchrotype 0:已同步,1:新增,2:修改,3:逻辑删除,4:物理删除--*/
  4. var handleFunction = {
  5. //--依据对接记录计算本地文件夹下counts
  6. computeFolderCounts: function (tempfolderlist, tempconninfolist) {
  7. var deferred = $q.defer();
  8. try {
  9. //父文件夹、子文件夹分类
  10. var parentlsit = [];
  11. var smalllist = [];
  12. angular.forEach(tempfolderlist, function (value, index) {
  13. if (value.localparentid == null || value.localparentid == "0") {
  14. parentlsit.push(value);
  15. } else {
  16. smalllist.push(value);
  17. }
  18. });
  19. //计算分类下文件夹总数(剔除已删除文件夹)
  20. angular.forEach(parentlsit, function (value, index) {
  21. var counts = 0;
  22. angular.forEach(smalllist, function (data, ind) {
  23. //计算各分类下已发布记录counts
  24. if (value.localid == data.localparentid && data.synchrotype != 4) {
  25. counts++;
  26. }
  27. });
  28. parentlsit[index].counts = counts;
  29. });
  30. //计算分类下信息总数(剔除已删除信息)
  31. angular.forEach(parentlsit, function (value, index) {
  32. var counts = 0;
  33. angular.forEach(tempconninfolist, function (data, ind) {
  34. //计算各分类下已发布记录counts
  35. if (value.localid == data.localclaid && data.synchrotype != 4) {
  36. counts++;
  37. }
  38. });
  39. parentlsit[index].counts += counts;
  40. });
  41. deferred.resolve(parentlsit);
  42. } catch (err) {
  43. deferred.reject(err);
  44. }
  45. return deferred.promise;
  46. },
  47. //--处理本地查询的对接信息(所有表查询成功后,组装成同步请求参数)
  48. handleRequestData: function (conninfolist, picturelist, cardlist, personlist, themelist, productlist, iur1list, iur2list) {
  49. var deferred = $q.defer();
  50. var result = {
  51. conninfolist: [],
  52. cardlist: []
  53. };
  54. try {
  55. angular.forEach(conninfolist, function (value, index) {
  56. //图片拼接
  57. var templist1 = [];
  58. angular.forEach(picturelist, function (data, ind) {
  59. if (value.localid == data.localinfoid) {
  60. templist1.push(data);
  61. }
  62. });
  63. if (!UtilService.isDefined(value.defaultFlag) && value.defaultFlag != 1) {
  64. conninfolist[index].defaultFlag = 0;
  65. }
  66. conninfolist[index].picture = templist1;
  67. });
  68. //名片拼接
  69. angular.forEach(cardlist, function (value, index) {
  70. //人员拼接
  71. var templist2 = [];
  72. angular.forEach(personlist, function (data, ind) {
  73. if (value.localid == data.localuid) {
  74. templist2.push(data);
  75. }
  76. });
  77. cardlist[index].personlist = templist2;
  78. //主题拼接
  79. var templist3 = [];
  80. angular.forEach(themelist, function (data, ind) {
  81. if (value.localid == data.localuid) {
  82. templist3.push(data);
  83. }
  84. });
  85. cardlist[index].themelist = templist3;
  86. //主题拼接
  87. var templist4 = [];
  88. angular.forEach(productlist, function (data, ind) {
  89. if (value.localid == data.localuid) {
  90. templist4.push(data);
  91. }
  92. });
  93. cardlist[index].productlist = templist4;
  94. //主题拼接
  95. var templist5 = [];
  96. angular.forEach(iur1list, function (data, ind) {
  97. if (value.localid == data.localuid) {
  98. templist5.push(data);
  99. }
  100. });
  101. cardlist[index].iur1list = templist5;
  102. //主题拼接
  103. var templist6 = [];
  104. angular.forEach(iur2list, function (data, ind) {
  105. if (value.localid == data.localuid) {
  106. templist6.push(data);
  107. }
  108. });
  109. cardlist[index].iur2list = templist6;
  110. });
  111. //区分记录状态
  112. result.conninfolist = conninfolist;
  113. result.cardlist = cardlist;
  114. deferred.resolve(result);
  115. } catch (err) {
  116. deferred.reject(err);
  117. }
  118. return deferred.promise;
  119. },
  120. //--本地记录列表提取第一张图为列表显示图
  121. extractConninfoPicture: function (conninfolist, picturelist) {
  122. var defered = $q.defer();
  123. try {
  124. angular.forEach(conninfolist, function (value, index) {
  125. var num = 0;
  126. conninfolist[index].image = "";
  127. angular.forEach(picturelist, function (data) {
  128. if (value.localid == data.localinfoid) {
  129. num++;
  130. if (num == 1) {
  131. conninfolist[index].image = data.photo_name;
  132. }
  133. }
  134. });
  135. });
  136. defered.resolve(conninfolist);
  137. } catch (e) {
  138. defered.reject(e)
  139. }
  140. return defered.promise;
  141. },
  142. //--处理FirstServer返回数据
  143. handleFirstServerData: function (tempdata) {
  144. var deferred = $q.defer();
  145. var response = {
  146. conninfofolder: [],//分类
  147. conninfo: [],//对接记录
  148. conninfopicture: [],//图片
  149. conninfounit: [],//名片
  150. conninfoperson: [],//人员
  151. conninfotheme: [],//主题
  152. conninfoproduct: [],//产品
  153. conninfoiur: [],//产学研经历
  154. conninforesearch: []//重大科研项目
  155. };
  156. try {
  157. var folderlist = angular.copy(tempdata);
  158. //未所有新增文件夹生成Localid
  159. angular.forEach(folderlist, function (value, index) {
  160. folderlist[index].localid = UtilService.reversalDate(value.createtime) + "";
  161. if (value.parentid == 0) {
  162. folderlist[index].localparentid = "0";
  163. }
  164. });
  165. //为所有新增文件夹生成父文件夹id (localparentid)
  166. angular.forEach(folderlist, function (value, index) {
  167. angular.forEach(folderlist, function (data, ind) {
  168. if (value.parentid == data.id) {
  169. folderlist[index].localparentid = data.localid;
  170. }
  171. });
  172. });
  173. //分类数据处理(取出所有对接信息组成List)
  174. var conninfolist = [];
  175. angular.forEach(folderlist, function (value, index) {
  176. // var templocalid = UtilService.reversalDate(value.createtime) + "";
  177. // folderlist[index].localid = templocalid;
  178. angular.forEach(value.connlist, function (data, ind) {
  179. data.localclaid = value.localid;
  180. conninfolist.push(data);
  181. });
  182. delete value["connlist"];
  183. });
  184. //对接信息、图片处理(取出所有名片)
  185. var picturelist = [];
  186. var companylist = [];
  187. angular.forEach(conninfolist, function (value, index) {
  188. var templocalid = UtilService.reversalDate(value.createtime);
  189. conninfolist[index].localid = templocalid + "";
  190. angular.forEach(value.picture, function (data, ind) {
  191. data.localinfoid = templocalid + "";
  192. data.localid = templocalid + ind + "";
  193. picturelist.push(data);
  194. });
  195. delete value["picture"];
  196. angular.forEach(value.unit, function (data, ind) {
  197. data.localinfoid = templocalid + "";
  198. companylist.push(data);
  199. });
  200. delete value["unit"];
  201. });
  202. //名片、人员、主题处理
  203. var personlist = [];
  204. var themelist = [];
  205. var productlist = [];
  206. var iur1list = [];
  207. var iur2list = [];
  208. angular.forEach(companylist, function (value, index) {
  209. var templocalid = UtilService.reversalDate(value.createtime);
  210. companylist[index].localid = templocalid + "";
  211. angular.forEach(value.personlist, function (data, ind) {
  212. data.localuid = templocalid + "";
  213. data.localid = templocalid + ind + "";
  214. data.localinfoid = value.localinfoid;
  215. personlist.push(data);
  216. });
  217. delete value["personlist"];
  218. angular.forEach(value.themelist, function (data, ind) {
  219. data.localuid = templocalid + "";
  220. data.localid = templocalid + ind + "";
  221. data.localinfoid = value.localinfoid;
  222. themelist.push(data);
  223. });
  224. delete value["themelist"];
  225. angular.forEach(value.productlist, function (data, ind) {
  226. data.localuid = templocalid + "";
  227. data.localid = templocalid + ind + "";
  228. data.localinfoid = value.localinfoid;
  229. productlist.push(data);
  230. });
  231. delete value["productlist"];
  232. angular.forEach(value.iur1list, function (data, ind) {
  233. data.localuid = templocalid + "";
  234. data.localid = templocalid + ind + "";
  235. data.localinfoid = value.localinfoid;
  236. iur1list.push(data);
  237. });
  238. delete value["iur1list"];
  239. angular.forEach(value.iur2list, function (data, ind) {
  240. data.localuid = templocalid + "";
  241. data.localid = templocalid + ind + "";
  242. data.localinfoid = value.localinfoid;
  243. iur2list.push(data);
  244. });
  245. delete value["iur2list"];
  246. });
  247. //返回组装数据
  248. response.conninfofolder = folderlist;
  249. response.conninfo = conninfolist;
  250. response.conninfopicture = picturelist;
  251. response.conninfounit = companylist;
  252. response.conninfoperson = personlist;
  253. response.conninfotheme = themelist;
  254. response.conninfoproduct = productlist;
  255. response.conninfoiur = iur1list;
  256. response.conninforesearch = iur2list;
  257. // console.log(response);
  258. deferred.resolve(response);
  259. } catch (err) {
  260. deferred.reject(err);
  261. }
  262. return deferred.promise;
  263. },
  264. //--处理SecondServer返回数据
  265. handleSecondServerData: function (folderlist, recordlist, cardlist) {
  266. var defered = $q.defer();
  267. var result = {
  268. insertList: {
  269. conninfofolder: [],
  270. conninfo: [],
  271. conninfounit: []
  272. },
  273. updateList: {
  274. conninfofolder: [],
  275. conninfo: [],
  276. conninfounit: []
  277. },
  278. deleteList: {
  279. conninfofolder: [],
  280. conninfo: [],
  281. conninfounit: []
  282. },
  283. conninfopicture: [],
  284. conninfoperson: [],
  285. conninfotheme: [],
  286. conninfoproduct: [],//产品
  287. conninfoiur: [],//产学研经历
  288. conninforesearch: []//重大科研项目
  289. };
  290. try {
  291. //未所有新增文件夹生成Localid
  292. angular.forEach(folderlist, function (value, index) {
  293. if (value.synchrotype == 1) {
  294. folderlist[index].localid = UtilService.reversalDate(value.createtime) + "";
  295. if (value.parentid == 0) {
  296. folderlist[index].localparentid = "0";
  297. }
  298. }
  299. });
  300. //为所有新增文件夹生成父文件夹id (localparentid)
  301. angular.forEach(folderlist, function (value, index) {
  302. if (value.synchrotype == 1) {
  303. angular.forEach(folderlist, function (data, ind) {
  304. if (value.parentid == data.id) {
  305. folderlist[index].localparentid = data.localid;
  306. }
  307. });
  308. }
  309. });
  310. //----分类处理
  311. var tempfolderlist1 = [];
  312. var tempfolderlist2 = ModelService.getLocalFolderList();
  313. angular.forEach(folderlist, function (value, index) {
  314. //1、已同步数据:回写同步状态
  315. if (value.synchrotype == 0) {
  316. var tempobj1 = {};
  317. tempobj1.localid = value.localid;
  318. tempobj1.synchrotype = 0;
  319. result.updateList.conninfofolder.push(tempobj1);
  320. }
  321. //2、新增数据:生成localid、回写同步状态
  322. if (value.synchrotype == 1) {
  323. value.synchrotype = 0;
  324. result.insertList.conninfofolder.push(value);
  325. }
  326. //3、修改数据:回写信息的数据、回写同步状态
  327. if (value.synchrotype == 2 || value.synchrotype == 3) {
  328. value.synchrotype = 0;
  329. result.updateList.conninfofolder.push(value);
  330. }
  331. //4、删除数据:组装localid
  332. if (value.synchrotype == 4) {
  333. var tempobj2 = {};
  334. tempobj2.localid = value.localid;
  335. result.deleteList.conninfofolder.push(tempobj2);
  336. }
  337. //5、生成localid后组装成folder->list
  338. tempfolderlist1.push(value);
  339. });
  340. //----对接信息处理
  341. var tempconninfolist = [];
  342. angular.forEach(recordlist, function (value, index) {
  343. //1、已同步数据:回写同步状态
  344. if (value.synchrotype == 0) {
  345. var tempobj3 = {};
  346. tempobj3.localid = value.localid;
  347. tempobj3.synchrotype = 0;
  348. result.updateList.conninfo.push(tempobj3);
  349. }
  350. //2、新增数据:生成localid、回写同步状态
  351. if (value.synchrotype == 1) {
  352. value.localid = UtilService.reversalDate(value.createtime) + "";
  353. value.synchrotype = 0;
  354. //2.1、新增的对接信息插入分类localid(分类新增:遍历请求返回的分类,分类未新增:遍历本地分类)
  355. angular.forEach(tempfolderlist1, function (data, ind) {
  356. if (value.claid == data.id) {
  357. value.localclaid = data.localid;
  358. }
  359. });
  360. angular.forEach(tempfolderlist2, function (data, ind) {
  361. if (value.claid == data.id) {
  362. value.localclaid = data.localid;
  363. }
  364. });
  365. result.insertList.conninfo.push(value);
  366. }
  367. //3、修改数据:回写信息的数据、回写同步状态
  368. if (value.synchrotype == 2 || value.synchrotype == 3) {
  369. value.synchrotype = 0;
  370. angular.forEach(tempfolderlist1, function (data, ind) {
  371. if (value.claid == data.id) {
  372. value.localclaid = data.localid;
  373. }
  374. });
  375. angular.forEach(tempfolderlist2, function (data, ind) {
  376. if (value.claid == data.id) {
  377. value.localclaid = data.localid;
  378. }
  379. });
  380. result.updateList.conninfo.push(value);
  381. }
  382. //4、删除数据:组装localid
  383. if (value.synchrotype == 4) {
  384. var tempobj4 = {};
  385. tempobj4.localid = value.localid;
  386. result.deleteList.conninfo.push(tempobj4);
  387. }
  388. //5、图片列表生成
  389. if (angular.isDefined(value.picture)) {
  390. var temp = {
  391. localinfoid: value.localid,
  392. picturelist: []
  393. };
  394. if (value.synchrotype != 4) {
  395. angular.forEach(value.picture, function (data, ind) {
  396. data.localinfoid = value.localid;
  397. data.localid = UtilService.reversalDate(value.createtime) + ind + "";
  398. temp.picturelist.push(data);
  399. });
  400. }
  401. result.conninfopicture.push(temp);
  402. }
  403. ///6、生成localid后组装成conninfo->list
  404. delete value["picture"];
  405. tempconninfolist.push(value)
  406. });
  407. //----名片处理
  408. angular.forEach(cardlist, function (value, index) {
  409. //1、已同步数据:回写同步状态
  410. if (value.synchrotype == 0) {
  411. var tempobj5 = {};
  412. tempobj5.localid = value.localid;
  413. tempobj5.synchrotype = 0;
  414. result.updateList.conninfounit.push(tempobj5);
  415. }
  416. //2、新增数据:生成localid、回写同步状态、插入对接信息localid
  417. if (value.synchrotype == 1) {
  418. var templocalid = UtilService.reversalDate(value.createtime);
  419. value.localid = templocalid + "";
  420. value.synchrotype = 0;
  421. angular.forEach(tempconninfolist, function (data, ind) {
  422. //新增的对接信息插入分类localid
  423. if (value.infoid == data.id) {
  424. value.localinfoid = data.localid;
  425. }
  426. });
  427. result.insertList.conninfounit.push(value);
  428. }
  429. //3、修改数据:回写信息的数据、回写同步状态
  430. if (value.synchrotype == 2 || value.synchrotype == 3) {
  431. value.synchrotype = 0;
  432. result.updateList.conninfounit.push(value);
  433. }
  434. //4、删除数据:组装localid
  435. if (value.synchrotype == 4) {
  436. result.deleteList.conninfounit.push(value);
  437. }
  438. //5、人员列表生成
  439. if (angular.isDefined(value.personlist)) {
  440. var temp2 = {
  441. localuid: value.localid,
  442. personlist: []
  443. };
  444. if (value.synchrotype != 4) {
  445. angular.forEach(value.personlist, function (data, ind) {
  446. data.localuid = value.localid;
  447. data.localid = UtilService.reversalDate(value.createtime) + ind + "";
  448. temp2.personlist.push(data);
  449. });
  450. }
  451. result.conninfoperson.push(temp2);
  452. }
  453. delete value["personlist"];
  454. //5、主题列表生成
  455. if (angular.isDefined(value.themelist)) {
  456. var temp3 = {
  457. localuid: value.localid,
  458. themelist: []
  459. };
  460. angular.forEach(value.themelist, function (data, ind) {
  461. data.localuid = value.localid;
  462. data.localid = UtilService.reversalDate(value.createtime) + ind + "";
  463. temp3.themelist.push(data);
  464. });
  465. result.conninfotheme.push(temp3);
  466. }
  467. delete value["themelist"];
  468. //6、产品列表生成
  469. if (angular.isDefined(value.productlist)) {
  470. var temp4 = {
  471. localuid: value.localid,
  472. productlist: []
  473. };
  474. angular.forEach(value.productlist, function (data, ind) {
  475. data.localuid = value.localid;
  476. data.localid = UtilService.reversalDate(value.createtime) + ind + "";
  477. temp4.productlist.push(data);
  478. });
  479. result.conninfoproduct.push(temp4);
  480. }
  481. delete value["productlist"];
  482. //5、产学研经历列表生成
  483. if (angular.isDefined(value.iur1list)) {
  484. var temp5 = {
  485. localuid: value.localid,
  486. iur1list: []
  487. };
  488. angular.forEach(value.iur1list, function (data, ind) {
  489. data.localuid = value.localid;
  490. data.localid = UtilService.reversalDate(value.createtime) + ind + "";
  491. temp5.iur1list.push(data);
  492. });
  493. result.conninfoiur.push(temp5);
  494. }
  495. delete value["iur1list"];
  496. //5、主题列表生成
  497. if (angular.isDefined(value.iur2list)) {
  498. var temp6 = {
  499. localuid: value.localid,
  500. iur2list: []
  501. };
  502. angular.forEach(value.iur2list, function (data, ind) {
  503. data.localuid = value.localid;
  504. data.localid = UtilService.reversalDate(value.createtime) + ind + "";
  505. temp6.iur2list.push(data);
  506. });
  507. result.conninforesearch.push(temp6);
  508. }
  509. delete value["iur2list"];
  510. });
  511. // console.log(result);
  512. defered.resolve(result);
  513. } catch (e) {
  514. defered.reject(e)
  515. }
  516. return defered.promise;
  517. },
  518. //--处理详情数据
  519. handleConninfoDetailData: function (cardlist, ttpersonlist, ttthemelist, tttproductlist, tttiur1list, tttiur2list, tttyearprojectlist) {
  520. var deferred = $q.defer();
  521. try {
  522. angular.forEach(cardlist, function (value, index) {
  523. cardlist[index].personlist = [];
  524. angular.forEach(ttpersonlist, function (data, ind) {
  525. if (value.localid == data.localuid) {
  526. cardlist[index].personlist.push(data);
  527. }
  528. });
  529. cardlist[index].themelist = [];
  530. angular.forEach(ttthemelist, function (data, ind) {
  531. if (value.localid == data.localuid) {
  532. cardlist[index].themelist.push(data);
  533. }
  534. });
  535. cardlist[index].productlist = [];
  536. angular.forEach(tttproductlist, function (data, ind) {
  537. if (value.localid == data.localuid) {
  538. cardlist[index].productlist.push(data);
  539. }
  540. });
  541. cardlist[index].iur1list = [];
  542. angular.forEach(tttiur1list, function (data, ind) {
  543. if (value.localid == data.localuid) {
  544. cardlist[index].iur1list.push(data);
  545. }
  546. });
  547. cardlist[index].iur2list = [];
  548. angular.forEach(tttiur2list, function (data, ind) {
  549. if (value.localid == data.localuid) {
  550. cardlist[index].iur2list.push(data);
  551. }
  552. });
  553. cardlist[index].calendarlist = [];
  554. angular.forEach(tttyearprojectlist, function (data, ind) {
  555. if (value.localid == data.localuid) {
  556. cardlist[index].calendarlist.push(data);
  557. }
  558. });
  559. });
  560. deferred.resolve(cardlist);
  561. } catch (err) {
  562. deferred.reject(err);
  563. }
  564. return deferred.promise;
  565. },
  566. //--处理FirstServer返回数据
  567. handleByServerData: function (tempconninfolist, tempcardlist) {
  568. var deferred = $q.defer();
  569. var response = {
  570. conninfo: [],//对接记录
  571. conninfopicture: [],//图片
  572. conninfounit: [],//名片
  573. conninfoperson: [],//人员
  574. conninfotheme: []//主题
  575. };
  576. try {
  577. angular.forEach(tempconninfolist, function (value, index) {
  578. var tempobj1 = {};
  579. tempobj1.localid = value.localid;
  580. response.conninfo.push(tempobj1);
  581. var tempobj2 = {};
  582. tempobj2.localinfoid = value.localid;
  583. response.conninfopicture.push(tempobj2);
  584. });
  585. angular.forEach(tempcardlist, function (value, index) {
  586. var tempobj3 = {};
  587. tempobj3.localid = value.localid;
  588. response.conninfounit.push(tempobj3);
  589. var tempobj4 = {};
  590. tempobj4.localuid = value.localid;
  591. response.conninfoperson.push(tempobj4);
  592. var tempobj5 = {};
  593. tempobj5.localuid = value.localid;
  594. response.conninfotheme.push(tempobj5);
  595. });
  596. deferred.resolve(response);
  597. } catch (err) {
  598. deferred.reject(err);
  599. }
  600. return deferred.promise;
  601. },
  602. /*------------------------------------------数据操作(new)-------------------------------------------------*/
  603. //--拼接本地与云文件夹(按sort、updatetime排序)
  604. connectLocalAndCloud: function (templocallist, tempcloudlist) {
  605. var deferred = $q.defer();
  606. var response = [];
  607. try {
  608. var tempcloudlist1 = [];//有置顶列表
  609. var tempcloudlist2 = [];//无置顶列表
  610. angular.forEach(tempcloudlist, function (value) {
  611. if (value.sort > 0) {
  612. tempcloudlist1.push(value);
  613. } else {
  614. tempcloudlist2.push(value);
  615. }
  616. });
  617. tempcloudlist2 = tempcloudlist2.concat(templocallist);
  618. tempcloudlist1.sort(function (a, b) {
  619. return b.sort - a.sort;//置顶(sort)降序
  620. });
  621. tempcloudlist2.sort(function (a, b) {
  622. var tempa = a.updatetime;
  623. var tempb = b.updatetime;
  624. //IOS 日期格式化
  625. if (device.platform != "Android") {
  626. tempa = tempa.replace(/-/g, "/");
  627. tempb = tempb.replace(/-/g, "/");
  628. }
  629. return Date.parse(tempb) - Date.parse(tempa);//更新时间降序
  630. });
  631. response = tempcloudlist1.concat(tempcloudlist2);//拼接已排序好的数组
  632. deferred.resolve(response);
  633. } catch (err) {
  634. // console.log(err);
  635. deferred.reject(err);
  636. }
  637. return deferred.promise;
  638. },
  639. //--处理FirstServerResource返回数据
  640. handleFirstServerResourceData: function (tempdata) {
  641. var deferred = $q.defer();
  642. var response = {
  643. conninfofolder: [],//分类
  644. resource: []//资源
  645. };
  646. try {
  647. var folderlist = angular.copy(tempdata);
  648. //分类数据处理(取出所有资源信息组成List)
  649. var resource = [];
  650. angular.forEach(folderlist, function (value, index) {
  651. var templocalid1 = UtilService.reversalDate(value.createtime);
  652. folderlist[index].localid = templocalid1 + "";
  653. if (value.parentid == 0) {
  654. folderlist[index].localparentid = "0";
  655. }
  656. angular.forEach(value.reslist, function (data, ind) {
  657. data.localclaid = value.localid;
  658. resource.push(data);
  659. });
  660. delete value["reslist"];
  661. });
  662. //为所有新增文件夹生成父文件夹id (localparentid)
  663. angular.forEach(folderlist, function (value, index) {
  664. angular.forEach(folderlist, function (data, ind) {
  665. if (value.parentid == data.id) {
  666. folderlist[index].localparentid = data.localid;
  667. }
  668. });
  669. });
  670. //资源处理
  671. angular.forEach(resource, function (value, index) {
  672. var templocalid2 = UtilService.reversalDate(value.createTime);
  673. resource[index].localid = templocalid2 + "";
  674. });
  675. //返回组装数据
  676. response.conninfofolder = folderlist;
  677. response.resource = resource;
  678. deferred.resolve(response);
  679. } catch (err) {
  680. deferred.reject(err);
  681. }
  682. return deferred.promise;
  683. },
  684. //--处理SecondServerResource返回数据
  685. handleSecondServerResourceData: function (folderlist, resourcelist, uploadresliblist) {
  686. var defered = $q.defer();
  687. var result = {
  688. insertList: {
  689. conninfofolder: [],
  690. resource: []
  691. },
  692. updateList: {
  693. conninfofolder: [],
  694. resource: []
  695. },
  696. deleteList: {
  697. conninfofolder: [],
  698. resource: []
  699. }
  700. };
  701. try {
  702. //未所有新增文件夹生成Localid
  703. angular.forEach(folderlist, function (value, index) {
  704. if (value.synchrotype == 1) {
  705. folderlist[index].localid = UtilService.reversalDate(value.createtime) + "";
  706. if (value.parentid == 0) {
  707. folderlist[index].localparentid = "0";
  708. }
  709. }
  710. });
  711. //为所有新增文件夹生成父文件夹id (localparentid)
  712. angular.forEach(folderlist, function (value, index) {
  713. if (value.synchrotype == 1) {
  714. angular.forEach(folderlist, function (data, ind) {
  715. if (value.parentid == data.id) {
  716. folderlist[index].localparentid = data.localid;
  717. }
  718. });
  719. }
  720. });
  721. //----分类处理
  722. angular.forEach(folderlist, function (value, index) {
  723. //1、已同步数据:回写同步状态
  724. if (value.synchrotype == 0) {
  725. var tempobj1 = {};
  726. tempobj1.localid = value.localid;
  727. tempobj1.synchrotype = 0;
  728. result.updateList.conninfofolder.push(tempobj1);
  729. }
  730. //2、新增数据:生成localid、回写同步状态
  731. if (value.synchrotype == 1) {
  732. value.synchrotype = 0;
  733. result.insertList.conninfofolder.push(value);
  734. }
  735. //3、修改数据:回写信息的数据、回写同步状态
  736. if (value.synchrotype == 2 || value.synchrotype == 3) {
  737. value.synchrotype = 0;
  738. result.updateList.conninfofolder.push(value);
  739. }
  740. //4、删除数据:组装localid
  741. if (value.synchrotype == 4) {
  742. var tempobj2 = {};
  743. tempobj2.localid = value.localid;
  744. result.deleteList.conninfofolder.push(tempobj2);
  745. }
  746. });
  747. //----资源信息处理
  748. var tempresourcelist = [];
  749. angular.forEach(resourcelist, function (value, index) {
  750. //1、已同步数据:回写同步状态
  751. if (value.synchrotype == 0) {
  752. var tempobj3 = {};
  753. tempobj3.localid = value.localid;
  754. tempobj3.synchrotype = 0;
  755. result.updateList.resource.push(tempobj3);
  756. }
  757. //2、新增数据:生成localid、回写同步状态
  758. if (value.synchrotype == 1) {
  759. value.localid = UtilService.reversalDate(value.createTime) + "";
  760. value.synchrotype = 0;
  761. //2.1、新增的资源信息插入分类localid(分类新增:遍历请求返回的分类,分类未新增:遍历本地分类)
  762. angular.forEach(folderlist, function (data, ind) {
  763. if (value.claid == data.id) {
  764. value.localclaid = data.localid;
  765. }
  766. });
  767. /*angular.forEach(uploadresliblist, function (data, ind) {
  768. if (value.claid == data.id) {
  769. value.localclaid = data.localid;
  770. }
  771. });*/
  772. result.insertList.resource.push(value);
  773. }
  774. //3、修改数据:回写信息的数据、回写同步状态
  775. if (value.synchrotype == 2 || value.synchrotype == 3) {
  776. value.synchrotype = 0;
  777. angular.forEach(folderlist, function (data, ind) {
  778. if (value.claid == data.id) {
  779. value.localclaid = data.localid;
  780. }
  781. });
  782. /*angular.forEach(uploadresliblist, function (data, ind) {
  783. if (value.claid == data.id) {
  784. value.localclaid = data.localid;
  785. }
  786. });*/
  787. result.updateList.resource.push(value);
  788. }
  789. //4、删除数据:组装localid
  790. if (value.synchrotype == 4) {
  791. var tempobj4 = {};
  792. tempobj4.localid = value.localid;
  793. result.deleteList.resource.push(tempobj4);
  794. }
  795. tempresourcelist.push(value)
  796. });
  797. defered.resolve(result);
  798. } catch (e) {
  799. defered.reject(e)
  800. }
  801. return defered.promise;
  802. }
  803. };
  804. return handleFunction;
  805. });