对账单

防漏单

下载对账单

https://pay.weixin.qq.com/index.php/settle/state_account

对账单 - 图1

对账

  1. var csv = require('csv');
  2. var import_csv = require('import-csv');
  3. var parse = csv.parse;
  4. var fs = require('fs');
  5. var Promise = require('bluebird');
  6. var iconv = require('iconv-lite');
  7. var Order = require('../app/models/order');
  8. var Activity = require('../app/models/activity');
  9. var Wechat = require('../app/models/wechat');
  10. var Contact = require('../app/models/contact');
  11. var DELIVERY = require('../config/delivery_company');
  12. require("../db");
  13. var import_csv = require('import-csv')
  14. var array = [];
  15. import_csv('./1229.csv',function(err, data){
  16. array.push(data);
  17. array[0].shift();
  18. Promise.all(array).then(_for);
  19. }, 'utf-8')
  20. function _for () {
  21. if(array[0].length > 0) {
  22. var data = array[0].shift();
  23. var pay_num = data[0].split('#')[0];
  24. var type = data[24];
  25. var deliver_number = data[2].split('`')[0];
  26. var _company = data[1];
  27. var company;
  28. if (_company.indexOf('圆通速递') !=-1){
  29. company = DELIVERY.Y_T_S_D;
  30. }if (_company.indexOf('百世汇通') !=-1){
  31. company = DELIVERY.B_S_H_T;
  32. }
  33. if(pay_num&&type&&deliver_number){
  34. var obj = {
  35. pay_num : pay_num,
  36. type : type ,
  37. deliver_number : deliver_number,
  38. company : company
  39. }
  40. Promise.resolve(obj).then(function (obj) {
  41. find_order(obj);
  42. });
  43. }
  44. }
  45. }
  46. function find_order (obj) {
  47. console.log(obj.pay_num + obj.type + obj.deliver_number + 'zzzzzzzzzzzzs');
  48. Order.oneAsync({pay_num : obj.pay_num}
  49. ).then(function (order) {
  50. var d_num = order.delivery_num;
  51. console.log(d_num + 'dddddddddddddd');
  52. if (d_num) {
  53. if (d_num.indexOf(obj.deliver_number) != -1) {
  54. var d = obj.type + ':' + obj.deliver_number + ';';
  55. console.log("这个单已经有了,不处理 " + d_num);
  56. }else {
  57. var d = d_num + obj.type + ':' + obj.deliver_number + ';';
  58. console.log("这个单还没有,拼接插入" + d);
  59. update_order(obj.pay_num, d, obj.company)
  60. }
  61. }else{
  62. console.log("运单号是空的,直接插入");
  63. var d = obj.type + ':' + obj.deliver_number + ';';
  64. update_order(obj.pay_num, d, obj.company)
  65. }
  66. }).then(function () {
  67. _for();
  68. });
  69. }
  70. function update_order (pay_num, d, company) {
  71. console.log(company);
  72. return Order.updateAsync({pay_num : pay_num}, {status : "1", delivery_num : d, delivery_company : company}, function (err, result) {
  73. console.log('-ok=' +result.ok + '-nModified=' +result.nModified + '- n=' +result.n + '原有单号+拼接');
  74. })
  75. }