removeCustomer备份

var common = require('../../lib/common');
var args = process.argv.slice(2);
var pFilter = {};
var conditionsArray = [];
var pIndex = args.indexOf("-p"); //指定project_id -p 58afa2554e6b565b30997032
var projectModel = common.helper.modelLoader('projects');
console.log('===========',args[pIndex + 1]);
if(pIndex != '-1') {
var ids = args[pIndex + 1];
if(ids.indexOf(",") >= 0) {
var idsArray = ids.split(",");
for(var i = 0; i < idsArray.length; i++) {
conditions = {$and: [{state:{$ne:"closed"}},{_id: projectModel.toObjectID(idsArray[i])}]};
conditionsArray.push(conditions);
}
}else{
conditions = {$and: [{state:{$ne:"closed"}},{_id: projectModel.toObjectID(args[pIndex + 1])}]};
conditionsArray.push(conditions);
}
} else{
conditions = {state:{$ne:"closed"}};
conditionsArray.push(conditions);
}
/*

  • function: 传入项目id按id查询,否则查询全部
  • author : Alex
  • time : 2018-03-23

/
return new common.promise(function(resolve, reject) {
for(var i = 0; i < conditionsArray.length; i++) {
projectModel.QfindByCondition(conditionsArray[i], {_id:1}, 'default').then(function(id_arrray) {
if(id_arrray) {removeCustomer(id_arrray) };
}).catch(function(e) {
reject(e);
});
}
});
/

  • function: 删除7天未接通的客户数据
  • author : Alex
  • time : 2018-03-23 11:29

/
function removeCustomer(id_arrray) {
return new common.promise(function(resolve, reject) {
common.async.mapLimit(id_arrray, 1, function (data, cb) {
var projecthisM = common.helper.modelLoader('project_customers_his',{collection:"project_customers_his"});
let projectCustomersModel = common.helper.modelLoader("customers", {project_id: data._id.toString()});
let theLastWeek = common.moment().subtract(1, "weeks").format("YYYY-MM-DD HH:mm:ss");
var conditions = {
$and: [{ $or:[{"callStat.answered":0},{"callStat.answered":{$exists:false}}]},
{"comments.remoteUrl":{$exists:false}},
{$and: [{"_storage.create_time" :{$lte: theLastWeek}},{"_storage.create_time":{$exists:true}}]}
]
};
projectCustomersModel.QfindByCondition(conditions,{}, 'default',400000).then(function(datas) {
let ids_arr =[];
if(common.u.isArray(datas) && datas.length > 0) {
debugger;
let step = 500;
var times = Math.ceil(datas.length / step); //200
for(var i=0; i ids_arr.push(datas.slice(i
step, (i+1)*step)); // slice(0, 500), slice(500, 1000), slice(1000, 1500)
}
common.async.mapLimit(ids_arr, 1, function (data1, callback) {
var customer_without_id_arr = common.u.map(data1, function(item) { return common.u.omit(item, "_id") });
projecthisM.batchCreate(customer_without_id_arr, 'default', (err1,result1)=> {
if(err1) {
reject(err1);
} else {
var customer_id_arr = common.u.map(data1, function(item) { return item._id.valueOf() });
setTimeout(function() {
projectCustomersModel.removeByIds(customer_id_arr, 'default', function(err, results) {
if(err) {
console.log('err');
}else{
console.log('Results:', results);
}
});
}, 0)
}
},function(e1,r1){
cb(null,null);
});
}, function (e, r) {
cb(null,null);
});
} else {
cb(null,null);
}
});
}, function(err, results) {
resolve("succcess");
})
});
}

你可能感兴趣的:(removeCustomer备份)