MyOrderToDoCtrl.js 22 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746
  1. define([ 'app/app' ], function(app) {
  2. // 买家订单跟踪
  3. app.register.controller('MyOrderToDoCtrl', ['$rootScope', '$scope', '$window', 'ngTableParams', 'BaseService', '$stateParams', 'AuthenticationService', 'Order', 'OrderSimpleInfo', '$modal', 'SessionService', 'toaster', '$filter', '$state', 'bankInfoService', 'Cart', 'Ysepay', 'OrExApplyStatusForBuyer', 'ExNotifyStatusForBuyer', 'AfterSale', function($rootScope, $scope, $window, ngTableParams, BaseService, $stateParams, AuthenticationService, Order, OrderSimpleInfo, $modal, SessionService, toaster, $filter, $state, bankInfoService, Cart, Ysepay, OrExApplyStatusForBuyer, ExNotifyStatusForBuyer, AfterSale) {
  4. //BaseService.scrollBackToTop();
  5. // 如果window.sessionStorage 有值,就设置为当前的active值
  6. // 确认付款
  7. $scope.paymentEnsure= function(order) {
  8. // 签名加密
  9. Ysepay.paymentSign({orderid:order.orderid},{},function(data) {
  10. $scope.ysepayRequest = data;
  11. $scope.$apply();
  12. var form = document.getElementById('paymentForm');
  13. form.action = "https://openapi.ysepay.com/gateway.do";
  14. form.method = "POST";
  15. form.submit();
  16. },function(res){
  17. toaster.pop('error', '获取支付请求参数错误', res.data);
  18. });
  19. };
  20. $scope.applyStatusForBuyer = OrExApplyStatusForBuyer;
  21. $scope.exNotifyStatusForBuyer = ExNotifyStatusForBuyer;
  22. $scope.active = SessionService.get('todoState')? SessionService.get('todoState'):'tobepaid';
  23. $scope.canChange = false;
  24. // 默认设定订单数目为1
  25. $scope.orderLength = 1;
  26. // 分页参数初始化
  27. $scope.pageParams = { number : 1 };
  28. // 存储跳转页码
  29. $scope.topagenum = null;
  30. // 加密订单的ID过滤器
  31. var enIdFilter = $filter('EncryptionFilter');
  32. // 下拉菜单状态
  33. $scope.isShowPop = false;
  34. // 获取当前时间
  35. $scope.nowTime = new Date().getTime();
  36. // 存储选中的订单id或orderid
  37. $scope.store = {};
  38. // 暂时保留,初始化客服、退款、退换货的状态
  39. $scope.operatorStatus = {
  40. service : 1, // 1:申请客服,2:客服确认中,3:客服有反馈
  41. refund : 1, // 1:申请退款,2:退款确认中,3:退款有反馈
  42. returnG : 1 // 1:申请退换货,2:退换货确认中,3:退换货有反馈,4:正在退货,5:正在发货
  43. };
  44. // 失效状态码和失效原因映射
  45. var unavailableReasons = {
  46. 315 : '已注销',
  47. 602 : '库存不足',
  48. 603 : '一直未付款',
  49. 604 : '拒绝发货',
  50. 605 : '全部退货',
  51. 606 : '取消订单'
  52. };
  53. // 订单状态码和订单状态的映射
  54. $scope.stateMap = {
  55. 501 : '待付款',
  56. 503 : '待付款',
  57. 504 : '待付款',
  58. 505 : '待发货',
  59. 406 : '待发货',
  60. 407 : '待发货',
  61. 403 : '待发货',
  62. 408 : '待发货',
  63. 404 : '待收货',
  64. 405 : '已收货',
  65. 520 : '已完成',
  66. 602 : '已失效',
  67. 603 : '已失效',
  68. 604 : '已失效',
  69. 605 : '已失效',
  70. 606 : '已失效',
  71. 315 : '已失效'
  72. };
  73. // 付款方式和付款类型码的映射[后续更新]
  74. $scope.payMap = {
  75. 1102 : '在线支付',
  76. 1103 : '线下支付'
  77. };
  78. // 币种币别符号映射
  79. $scope.currencyTrans = {
  80. 'RMB' : '¥',
  81. 'USD' : '$'
  82. };
  83. // 当前选中的币别
  84. $scope.currentCurrency = "";
  85. // 检查付款信息,设置设置isDisabled属性
  86. var checkPayInfo = function(){
  87. angular.forEach($scope.orders, function(order){
  88. if(order.banktfid){
  89. order.isDisabled = true;
  90. }
  91. });
  92. };
  93. // 动态修改不同状态和全部订单的样式
  94. var getOperatorS = function() {
  95. $scope.canChange = $scope.active != '';
  96. };
  97. getOperatorS();
  98. // 获取优软商城对公账户的信息
  99. bankInfoService.getAdminEnterAccount({}, function(data) {
  100. if(data.length > 0) {
  101. $scope.yrscAccount = data;
  102. }
  103. }, function(response) {
  104. toaster.pop('error', '获取账户信息失败 ', response.data);
  105. });
  106. // 获取优软商城对私账户的信息
  107. bankInfoService.getAdminPersAccount({}, function(data) {
  108. if(data.length > 0) {
  109. $scope.yrscPerAccount = data[0];
  110. }
  111. }, function(response) {
  112. toaster.pop('error', '获取账户信息失败 ', response.data);
  113. });
  114. // 根据当前状态获取对应的状态码值
  115. var getState = function() {
  116. var state = null;
  117. switch($scope.active) {
  118. case 'all' : // 全部
  119. state = null; break;
  120. case 'tobepaid' : // 待付款
  121. state = '501-503-504'; break; // 504-已付款, 放在待付款下面,商城确认收款后再放到待发货
  122. case 'tobedeliver' : // 待发货
  123. state = '505-406-407-403-408'; break;
  124. case 'tobereceive' : // 待收货
  125. state = '404'; break;
  126. case 'received' : // 已收货
  127. state = '405'; break;
  128. case 'success': // 已完成
  129. state = '520'; break;
  130. case 'unavailable' : // 已失效
  131. state = '602-603-315-604-605-606'; break;
  132. }
  133. return state;
  134. };
  135. // 获取各种状态订单的数量信息
  136. var getCounts = function() {
  137. Order.getAllStatusCounts({}, function(data) {
  138. $scope.counts = angular.copy(data);
  139. $scope.counts[$scope.active] = $scope.pageParams.totalElements;
  140. });
  141. };
  142. // 根据状态码获取对应状态的时间信息
  143. var getTimeByStatus = function(order, statushistory, statusCode, statusStr) {
  144. angular.forEach(eval(statushistory), function(statushistory) {
  145. if (statushistory.status === statusCode) {
  146. order[statusStr + 'Time'] = statushistory.time;
  147. }
  148. });
  149. };
  150. $scope.orderby = 'status';
  151. // 设置激活状态
  152. $scope.setActive = function(state) {
  153. window.sessionStorage.removeItem("exType");
  154. SessionService.set('todoState',state);
  155. clearchecked(); // 清除多选数据
  156. $scope.currentCurrency = ''; //切换状态之后,清空数据
  157. if($scope.active != state) {
  158. $scope.active = state;
  159. }
  160. $scope.isShowPop = false;
  161. getOperatorS();
  162. /*// 之后去除
  163. if ($scope.active != 'all') {
  164. $scope.keyword = null;
  165. }*/
  166. if ($scope.ordertodoTableParams.page() != 1) {
  167. $scope.ordertodoTableParams.page(1);
  168. }
  169. $scope.ordertodoTableParams.reload();
  170. };
  171. // 正常交易/异常申请/异常通知/退货/换货 normal / notify / apply / return / exchange / refund
  172. $scope.setExType = function (type, state) {
  173. window.sessionStorage.setItem('exType', type);
  174. SessionService.set('todoState',state);
  175. clearchecked(); // 清除多选数据
  176. $scope.currentCurrency = ''; //切换状态之后,清空数据
  177. $scope.active = state;
  178. $scope.ordertodoTableParams.page(1);
  179. $scope.isShowPop = false;
  180. $scope.ordertodoTableParams.reload();
  181. };
  182. // ng-table加载订单数据
  183. $scope.ordertodoTableParams = new ngTableParams({
  184. page : 1,
  185. count : 10,
  186. sorting : {
  187. creattime : "DESC"
  188. }
  189. }, {
  190. total : 0,
  191. getData : function($defer, params) {
  192. $scope.loading = true;
  193. $scope.paginationParams = params;
  194. var param = BaseService.parseParams(params.url());
  195. param.keyword = $scope.keyword;
  196. param.status = getState();
  197. param.exType = window.sessionStorage.getItem('exType');
  198. param.startDate = angular.copy($scope.startDate);
  199. param.endDate = angular.copy($scope.endDate);
  200. $scope.count = 0;
  201. $scope.startDate = undefined;
  202. $scope.endDate = undefined;
  203. // 根据参数获取订单信息
  204. Order.getIndividualOrder(param, function(page) {
  205. // console.log('TEST PAGE DATA');
  206. // console.log(page);
  207. // 将数据清零
  208. clearchecked();
  209. var orderCount = page.content.length;
  210. $scope.checks.checked = false;
  211. if(orderCount != 0) {
  212. angular.forEach(page.content, function(value, key){
  213. // 给checkCodes数组赋初始值
  214. if($scope.checkCodes.length < orderCount) {
  215. $scope.checkCodes.push(false);
  216. }
  217. });
  218. }
  219. console.log(page);
  220. if (page && page.content) {
  221. // 设置分页参数
  222. $scope.pageParams.number = page.number;
  223. $scope.pageParams.content = page.content;
  224. $scope.pageParams.totalElements = page.totalElements;
  225. $scope.pageParams.totalPages = page.totalPages;
  226. params.total(page.totalElements);
  227. $scope.counts = page;
  228. $scope.exCountMap = page.exCountMap;
  229. $scope.orders = page.content;
  230. $scope.orderLength = page.content ? page.content.length : 0;
  231. $scope.count = 0;
  232. $scope.currentCurrency = "";// 换页,等都需要清空数据
  233. angular.forEach(page.content, function(order){
  234. order.puExInfoJson = eval(order.puExInfoJson);
  235. var orderDatails = angular.copy(order.orderDetails);
  236. // 获取型号数量
  237. var components = {};
  238. angular.forEach(orderDatails, function(orderDatail, key){
  239. components[orderDatail.uuid] ++;
  240. });
  241. order.codeNum = Object.getOwnPropertyNames(components).length;
  242. // 获取付款到账时间[已付款时间]
  243. if(order.deliverTime) {
  244. order.deliverTime = order.deliverTime.replace(':', ''); // 去掉冒号
  245. order.deliveryTimes = order.deliverTime.split(',');
  246. }
  247. // 当订单状态码为失效状态时
  248. var statusCode = order.status;
  249. if (statusCode == 602 || statusCode == 603 || statusCode == 604 || statusCode == 315 || statusCode == 605 || statusCode == 606) {
  250. getTimeByStatus(order, order.statushistory, statusCode, 'unavailable');
  251. order.unavailableReason = unavailableReasons[statusCode];
  252. }
  253. });
  254. getExMsgState();
  255. }
  256. });
  257. }
  258. });
  259. // 进入页面加载订单列表数据
  260. $scope.ordertodoTableParams.reload();
  261. // 分页操作
  262. $scope.topage = function(num) {
  263. if ($scope.topagenum !== null) {
  264. $scope.topagenum = null;
  265. }
  266. if (num < 1) {
  267. num = 1;
  268. } else if (num > $scope.pageParams.totalPages) {
  269. num = $scope.pageParams.totalPages;
  270. }
  271. $scope.ordertodoTableParams.page(num);
  272. $scope.ordertodoTableParams.reload();
  273. };
  274. // 搜索框内容转换成大写
  275. var t;
  276. var setTime = function() {
  277. if($scope.time > 0) {
  278. t = setTimeout(function() {
  279. $scope.$apply(function() {
  280. $scope.time--;
  281. setTime();
  282. });
  283. }, 1000);
  284. }else {
  285. $scope.keyword = angular.uppercase($scope.keyword);
  286. }
  287. };
  288. // 将输入单号自动转换成大写
  289. $scope.upper = function() {
  290. $scope.time = 1;
  291. clearTimeout(t);
  292. setTime();
  293. };
  294. // 根据订单号搜索单据
  295. $scope.onSearch = function() {
  296. $scope.keyword = angular.uppercase($scope.keyword);
  297. // 如果按关键字进行搜索,则暂时置为全部状态
  298. /*if ($scope.keyword) {
  299. $scope.setActive('all');
  300. } else {*/
  301. if ($scope.ordertodoTableParams.page() != 1) {
  302. $scope.ordertodoTableParams.page(1);
  303. }
  304. $scope.ordertodoTableParams.reload();
  305. /*}*/
  306. };
  307. // 将数据清零
  308. var clearchecked = function () {
  309. $scope.canDo = false;
  310. $scope.checks = {
  311. checked : false
  312. };
  313. $scope.checkCodes = [];
  314. $scope.store ={};
  315. };
  316. // 多选操作
  317. $scope.checks = {
  318. checked : false
  319. };
  320. // 点击多选框进行单选操作
  321. $scope.checkCodes = [];
  322. $scope.checkOne = function(index) {
  323. var result = true;
  324. var order = $scope.pageParams.content[index];
  325. // 进行批量填写银行转账信息操作
  326. if ($scope.active == 'tobepaid') {
  327. // 如果是批量填写银行转账信息的第一条有效订单信息,选中当前的币别作为付款币种
  328. if (!$scope.count && order.availabletime >= $scope.nowTime) {
  329. $scope.count = 1;
  330. $scope.store[order.orderid] = true;
  331. $scope.checkCodes[index] = true;
  332. $scope.currentCurrency = order.currency;
  333. $scope.canDo = true;
  334. return ;
  335. }
  336. // 如果当前活动状态为待付款且订单已过期或币种与选中币种不同时,则提示用户
  337. if (order.availabletime < $scope.nowTime || $scope.currentCurrency != order.currency) {
  338. $scope.checkCodes[index] = false;
  339. toaster.pop('info', '当前订单已过期,或者与已选的订单的币别不一致 : ' + $scope.currentCurrency);
  340. return;
  341. }
  342. // 如果订单没有选中过,则添加;否则,删除
  343. if (!$scope.store.hasOwnProperty(order.orderid)) {
  344. $scope.count ++;
  345. $scope.store[order.orderid] = true;
  346. $scope.checkCodes[index] = true;
  347. } else {
  348. $scope.count --;
  349. delete $scope.store[order.orderid];
  350. $scope.checkCodes[index] = false;
  351. if (!$scope.count) {
  352. $scope.canDo = false;
  353. }
  354. }
  355. return;
  356. }
  357. // 批量确认收货
  358. if ($scope.active == 'tobereceive') {
  359. // 如果订单过期或者平台没有发货,则不选中checkbox
  360. if (order.status != 404) {
  361. $scope.checkCodes[index] = false;
  362. toaster.pop('info', '当前订单已过期或平台没有发货');
  363. return;
  364. }
  365. // 如果是第一条有效订单信息,则设置$scope.count为1
  366. if (!$scope.count) {
  367. $scope.count = 1;
  368. $scope.store[order.id] = true;
  369. $scope.checkCodes[index] = true;
  370. $scope.canDo = true;
  371. return;
  372. }
  373. // 如果订单没有选中过,则添加;否则,删除
  374. if (!$scope.store.hasOwnProperty(order.id)) {
  375. $scope.count ++;
  376. $scope.store[order.id] = true;
  377. $scope.checkCodes[index] = true;
  378. } else {
  379. $scope.count --;
  380. delete $scope.store[order.id];
  381. $scope.checkCodes[index] = false;
  382. if (!$scope.count) {
  383. $scope.canDo = false;
  384. }
  385. }
  386. return;
  387. }
  388. // 批量删除订单
  389. if ($scope.active == 'unavailable') {
  390. // 如果是第一条订单信息,则设置$scope.count为1
  391. if (!$scope.count) {
  392. $scope.count = 1;
  393. $scope.store[order.id] = true;
  394. $scope.checkCodes[index] = true;
  395. $scope.canDo = true;
  396. return;
  397. }
  398. // 如果订单没有选中过,则添加;否则,删除
  399. if (!$scope.store.hasOwnProperty(order.id)) {
  400. $scope.count ++;
  401. $scope.store[order.id] = true;
  402. $scope.checkCodes[index] = true;
  403. } else {
  404. $scope.count --;
  405. delete $scope.store[order.id];
  406. $scope.checkCodes[index] = false;
  407. if (!$scope.count) {
  408. $scope.canDo = false;
  409. }
  410. }
  411. }
  412. };
  413. // 获得拼接好的订单号字符串
  414. var getStrOrderids = function(order){
  415. var arr = [];
  416. $scope.total = 0;
  417. var orders = $scope.ordertodoTableParams.data;
  418. if(orders){
  419. for(var i = 0; i < orders.length; i++) {
  420. if($scope.checkCodes[i]) {
  421. arr.push(orders[i].orderid);
  422. }
  423. }
  424. }
  425. return arr.join("-");
  426. };
  427. // 获得拼接好的订单的id字符串
  428. var getStrids = function() {
  429. var arr = [];
  430. var orders = $scope.ordertodoTableParams.data;
  431. if(orders){
  432. for(var i = 0; i < orders.length; i++) {
  433. if($scope.checkCodes[i]) {
  434. arr.push(orders[i].id);
  435. }
  436. }
  437. }
  438. return arr.join("-");
  439. };
  440. // 打开下拉菜单
  441. $scope.showPop = function() {
  442. $scope.isShowPop = !$scope.isShowPop;
  443. };
  444. // 选择下单时间分段
  445. $scope.chooseInternal = function(inType) {
  446. var nowDate = new Date();
  447. // 30天后
  448. nowDate.setDate(nowDate.getDate() - 30);
  449. var startDate = angular.copy(nowDate);
  450. // 90天后
  451. nowDate.setDate(nowDate.getDate() - 30 * 2);
  452. var endDate = angular.copy(nowDate);
  453. switch (inType) {
  454. case 1:
  455. $scope.startDate = startDate.getTime();
  456. $scope.endDate = undefined;
  457. break;
  458. case 2:
  459. $scope.startDate = endDate.getTime();
  460. $scope.endDate = startDate.getTime();
  461. break;
  462. case 3:
  463. $scope.startDate = undefined;
  464. $scope.endDate = endDate.getTime();
  465. break;
  466. }
  467. $scope.ordertodoTableParams.page(1);
  468. $scope.ordertodoTableParams.reload();
  469. $scope.isShowPop = false;
  470. };
  471. //批量确认订单
  472. $scope.ensure = function(orders){
  473. var url = null;
  474. if(orders) {
  475. url = "products/orderEnsure/" + enIdFilter(orders.orderid);
  476. }else {
  477. url = "products/orderEnsure/" + enIdFilter(getStrOrderids());
  478. }
  479. $window.open(url);
  480. };
  481. $scope.comfirmCancle = function(orderDetail) {
  482. //可以处理多张订单明细
  483. Order.comfirmCancle(null, {ids : orderDetail.id}, function(data) {
  484. $scope.ordertodoTableParams.page(1);
  485. $scope.ordertodoTableParams.reload();
  486. toaster.pop('success', '取消成功');
  487. }, function(response) {
  488. toaster.pop('error', '取消失败 ' + response.text);
  489. });
  490. };
  491. // 确认支付(改)
  492. $scope.comfirmPay = function(order) {
  493. window.location.replace("product/orderEnsure/" + enIdFilter(order.orderid));
  494. // 如果订单待确认,跳转到订单确认页面,否则判断订单是否为待付款
  495. /*if (order.status == 501) {
  496. window.location.replace("product#/orderEnsure/" + enIdFilter(order.orderid));
  497. } else if (order.status == 503) {
  498. // 订单处于待付款状态
  499. var orderNum = order.orderid;
  500. if(!orderNum) {
  501. toaster.pop('error', '请指定需要填写账款信息的订单!');
  502. window.event.returnValue=false;
  503. return ;
  504. }
  505. SessionService.set("ids", orderNum);
  506. SessionService.set("page", $scope.ordertodoTableParams.page());
  507. SessionService.set("count", $scope.ordertodoTableParams.count());
  508. $state.go('myOrder_transfer');
  509. }*/
  510. };
  511. // 确认付款
  512. $scope.banktf = function(orders, Nbatch){
  513. var orderids = Object.getOwnPropertyNames($scope.store);
  514. var orderNum = Nbatch ? orders.orderid : orderids.join("-");
  515. if(!orderNum) {
  516. toaster.pop('error', '请指定需要填写账款信息的订单!')
  517. window.event.returnValue=false;
  518. return ;
  519. }
  520. SessionService.set("ids", orderNum);
  521. SessionService.set("page", $scope.ordertodoTableParams.page());
  522. SessionService.set("count", $scope.ordertodoTableParams.count());
  523. $state.go('myOrder_transfer');
  524. };
  525. // 确认收货
  526. $scope.ensureAccept = function(order) {
  527. var orderids = Object.getOwnPropertyNames($scope.store);
  528. var ids = order ? order.id : orderids.join("-");
  529. OrderSimpleInfo.ensureAccept({ids: ids},{},function(data){
  530. $scope.ordertodoTableParams.page(1);
  531. $scope.ordertodoTableParams.reload();
  532. toaster.pop('success', '处理成功');
  533. }, function(res){
  534. console.log(res);
  535. toaster.pop('error', '失败!');
  536. });
  537. };
  538. //【批量】删除订单
  539. $scope.deleteOrder = function(order) {
  540. var orderids = Object.getOwnPropertyNames($scope.store);
  541. var ids = order ? order.id : orderids.join("-");
  542. var flag = window.confirm('删除订单');
  543. if (flag) {
  544. Order.deleteOrder({ids : ids}, function() {
  545. $scope.ordertodoTableParams.page(1);
  546. $scope.ordertodoTableParams.reload();
  547. toaster.pop('success', '删除成功');
  548. }, function() {
  549. toaster.pop('error', '操作失败!');
  550. });
  551. }
  552. };
  553. // 取消订单
  554. $scope.cancel = function(order) {
  555. $modal.open({
  556. animation : true,
  557. templateUrl : 'static/view/usercenter/modal/cancelOrder_modal.html',
  558. controller : 'OrderCancelCtrl',
  559. windowClass : 'modal-normal'
  560. }).result.then(function(data){
  561. // 处理模态框返回的数据
  562. if (order.status == 503 || order.status == 501) {
  563. if (order.status == 503) {
  564. OrderSimpleInfo.releaseOrder({orderid: enIdFilter(order.orderid)},{},function(){
  565. $scope.ordertodoTableParams.reload();
  566. toaster.pop('success', '取消订单成功');
  567. $scope.ordertodoTableParams.reload();
  568. }, function(){
  569. toaster.pop('error', '失败!');
  570. });
  571. }else {
  572. Order.cancle({orderid: enIdFilter(order.orderid)},{},function(){
  573. $scope.ordertodoTableParams.reload();
  574. toaster.pop('success', '取消订单成功');
  575. $scope.ordertodoTableParams.reload();
  576. }, function(){
  577. toaster.pop('error', '失败!');
  578. });
  579. }
  580. }else {
  581. toaster.pop('success', '提示', '此功能还未开放,请耐心等待!');
  582. }
  583. });
  584. };
  585. // 查询数据库统计购物车中的商品数量
  586. var countCarts = function () {
  587. Cart.getCount({}, function(data){
  588. $rootScope.countCart = data.count;
  589. }, function(res){
  590. });
  591. };
  592. // 还订这批
  593. $scope.bookAgain = function(order) {
  594. var carts = [];
  595. angular.forEach(order.orderDetails, function(orderDetail) {
  596. var cart = {
  597. batchCode : orderDetail.batchCode,
  598. number : orderDetail.number
  599. };
  600. carts.push(cart);
  601. });
  602. var json = {
  603. currency : order.currency,
  604. arrOD : carts
  605. };
  606. Order.saveByGroup({}, json, function(data){
  607. window.location.replace('products/orderEnsure/'+ enIdFilter(data.orderid));
  608. }, function(){
  609. toaster.pop('warnning', '警告', "商品的库存不足无法下单");
  610. });
  611. };
  612. $scope.urgeDelivery = function (order) {
  613. toaster.pop('warnning', '提示', '此功能还未开放,请耐心等待!');
  614. };
  615. if($stateParams.state) {
  616. $scope.setActive($stateParams.state);
  617. }
  618. /**
  619. * 获取异常消息状态
  620. */
  621. var getExMsgState = function () {
  622. var applyIds = [], notifyIds = [];
  623. angular.forEach($scope.orders, function (order) {
  624. if(order.launchOrExApplyId) {
  625. applyIds.push(order.launchOrExApplyId);
  626. }
  627. if(order.puExInfoJson) {
  628. angular.forEach(order.puExInfoJson, function (puEx) {
  629. notifyIds.push(puEx.puExApplyId);
  630. })
  631. }
  632. })
  633. buyerGetApplyMsgState(applyIds);
  634. buyerGetNotifyMsgState(notifyIds);
  635. }
  636. /**
  637. * 买家获取异常申请消息状态
  638. */
  639. var buyerGetApplyMsgState = function (applyIds) {
  640. AfterSale.buyerGetApplyMsgState({applyIds: applyIds}, function (data) {
  641. $scope.applyMsgState = data;
  642. }, function (error) {
  643. toaster.pop('error', '获取异常申请消息状态失败');
  644. })
  645. };
  646. /**
  647. * 买家获取异常通知消息状态
  648. */
  649. var buyerGetNotifyMsgState = function (notifyIds) {
  650. AfterSale.buyerGetNotifyMsgState({notifyIds: notifyIds}, null, function (data) {
  651. $scope.notifyMsgState = data;
  652. }, function (error) {
  653. toaster.pop('error', '获取异常通知消息状态失败');
  654. })
  655. };
  656. //查看物流详情
  657. $scope.listLogistics = function(lgtId){
  658. $modal.open({
  659. animation: true,
  660. templateUrl: 'static/view/usercenter/listLogistics.html',
  661. controller: 'listLogisticsCtrl',
  662. resolve: {
  663. lgtid: function() {
  664. return lgtId;
  665. }
  666. }
  667. }).result.then(function () {
  668. }, function () {
  669. });
  670. }
  671. }]);
  672. // 取消订单模态框用到的Ctrl
  673. app.register.controller('OrderCancelCtrl', ['$scope', 'toaster', '$modalInstance', function($scope, toaster, $modalInstance) {
  674. $scope.cancel = function () {
  675. $modalInstance.dismiss();
  676. };
  677. $scope.confirm = function() {
  678. $modalInstance.close('CONFIRM');
  679. return true;
  680. };
  681. }]);
  682. });