7.7 对账单
最后更新于:2022-04-01 23:34:48
# 对账单
防漏单
## 下载对账单
[https://pay.weixin.qq.com/index.php/settle/state_account](https://pay.weixin.qq.com/index.php/settle/state_account)
![](https://i5ting.github.io/wechat-dev-with-nodejs/pay/8.png)
## 对账
~~~
var csv = require('csv');
var import_csv = require('import-csv');
var parse = csv.parse;
var fs = require('fs');
var Promise = require('bluebird');
var iconv = require('iconv-lite');
var Order = require('../app/models/order');
var Activity = require('../app/models/activity');
var Wechat = require('../app/models/wechat');
var Contact = require('../app/models/contact');
var DELIVERY = require('../config/delivery_company');
require("../db");
var import_csv = require('import-csv')
var array = [];
import_csv('./1229.csv',function(err, data){
array.push(data);
array[0].shift();
Promise.all(array).then(_for);
}, 'utf-8')
function _for () {
if(array[0].length > 0) {
var data = array[0].shift();
var pay_num = data[0].split('#')[0];
var type = data[24];
var deliver_number = data[2].split('`')[0];
var _company = data[1];
var company;
if (_company.indexOf('圆通速递') !=-1){
company = DELIVERY.Y_T_S_D;
}if (_company.indexOf('百世汇通') !=-1){
company = DELIVERY.B_S_H_T;
}
if(pay_num&&type&&deliver_number){
var obj = {
pay_num : pay_num,
type : type ,
deliver_number : deliver_number,
company : company
}
Promise.resolve(obj).then(function (obj) {
find_order(obj);
});
}
}
}
function find_order (obj) {
console.log(obj.pay_num + obj.type + obj.deliver_number + 'zzzzzzzzzzzzs');
Order.oneAsync({pay_num : obj.pay_num}
).then(function (order) {
var d_num = order.delivery_num;
console.log(d_num + 'dddddddddddddd');
if (d_num) {
if (d_num.indexOf(obj.deliver_number) != -1) {
var d = obj.type + ':' + obj.deliver_number + ';';
console.log("这个单已经有了,不处理 " + d_num);
}else {
var d = d_num + obj.type + ':' + obj.deliver_number + ';';
console.log("这个单还没有,拼接插入" + d);
update_order(obj.pay_num, d, obj.company)
}
}else{
console.log("运单号是空的,直接插入");
var d = obj.type + ':' + obj.deliver_number + ';';
update_order(obj.pay_num, d, obj.company)
}
}).then(function () {
_for();
});
}
function update_order (pay_num, d, company) {
console.log(company);
return Order.updateAsync({pay_num : pay_num}, {status : "1", delivery_num : d, delivery_company : company}, function (err, result) {
console.log('-ok=' +result.ok + '-nModified=' +result.nModified + '- n=' +result.n + '原有单号+拼接');
})
}
~~~
';