APIClient.sendTemplate(receiverOpenId, TemplateId, url, Color_Title, data, function (err, result) { if (err) { rePromise.reject(err); } else { rePromise.resolve(result); } });
OAuthClient_Desktop.getUser(result.data['openid'], function (err, userInfo) { if (err) { rePromise.reject(err); } else { rePromise.resolve(_tranWechatUserInfoToAVOS(userInfo)); } });
}, function (err, data) { if (err) { rePromise.reject(err); } else { rePromise.resolve(data); } });
promise = promise.then(function(results) { if (results.length != 1) { return AV.Promise.error('查找到的订单数为: ' + results.length); } order = results[0]; if (order.get('state') == 'paid') { return AV.Promise.error('订单已支付'); } if (charge.paid) { console.log('pay order :' + order.get('orderNumber')) AV.Cloud.requestSmsCode({ mobilePhoneNumber: order.get('user').get('mobilePhoneNumber'), template: "orderPaySmsV2", orderNumber: order.get('orderNumber') }).then(function() { console.log("发送成功"); }, function(err) { console.log("发送失败" + err); }); return orderMethod.payOrderP(order); } else { if (order.get('state') == 'paying') { order.set('state', 'unpay'); return order.save(); } } });
return query.find().then(function (results) { var totalSeats = 0; for (var i = 0; i < results.length; i++) { totalSeats += results[i].get('totalSeat'); } if (totalSeats < (route.get('passengerNumber') + passengers.length)) { return AV.Promise.error('该路线人数已满'); } var promise = AV.Promise.as(); promise = promise.then(function () { route.increment('passengerNumber', passengers.length); route.fetchWhenSave(true); return route.save(); }); promise = promise.then(function (route) { if (route.get('passengerNumber') > totalSeats) { route.increment('passengerNumber', -passengers.length); route.save(); return AV.Promise.error('该路线人数已满'); } var order = new Order(); order.set('user', user); order.set('route', route); order.relation('passengers').add(passengers); if (coupons.length != 0) { order.relation('coupons').add(coupons); } order.set('orderNumber', genOrderNumber()); order.set('price', price); order.set('isDeleted', false); order.set('state', 'unpay'); order.fetchWhenSave(true); order.set('priceToPay', countFinalPrice(price, coupons)); //计算折扣后的价格 return order.save(); }) promise = promise.then(function (newOrder) { var promises = []; coupons.forEach(function (coupon) { coupon.set('order', newOrder); coupon.set('isUsed', true); promises.push(coupon.save()); }); var promise = AV.Promise.all(promises); return promise.then(function () { return new AV.Promise(function (resolve, reject) { resolve({ order: newOrder, passengers: passengers, coupons: coupons }); }); }); }); return promise; });
.then(function(results) { if (results.length == 0) { return AV.Promise.error("没有找到对应的代理优惠码优惠规则"); } if (results.length > 1) { return AV.Promise.error('有不止一个对应的代理优惠码优惠规则'); } agentCommissionRuleMapQuery.equalTo('source', location); agentCommissionRuleMapQuery.equalTo('isDeleted', false); return agentCommissionRuleMapQuery.find(); })
function addAgentCommissionRule(description, commissionFunction) { var agentCommissionRule = new AgentCommissionRule(); if (description == null) { return AV.Promise.error('未填写描述'); } if (commissionFunction == null) { return AV.Promise.error('函数为空'); } agentCommissionRule.set('description', description); agentCommissionRule.set('commissionFunction', commissionFunction); agentCommissionRule.set('isDeleted', false); return agentCommissionRule.save(); }
exports.sendTemplateMsg = function (title, senderName, msg, url, receiverOpenId) { var TemplateId = 'Gguvq37B78_L8Uv9LZgp0gf8kQ5O8Xmthqttb7IrwVY';//用户咨询提醒 var Color_Title = '#46bfb9'; var Color_Context = '#30bf4c'; var data = { first: {//标题 value: title, color: Color_Title }, keyword1: {//用户名称 value: senderName, color: Color_Context }, keyword2: { value: msg, color: Color_Context }, remark: {//咨询内容 value: '点击回复' + senderName, color: Color_Title } }; var rePromise = new AV.Promise(null); APIClient.sendTemplate(receiverOpenId, TemplateId, url, Color_Title, data, function (err, result) { if (err) { rePromise.reject(err); } else { rePromise.resolve(result); } }); return rePromise; };
function (senz_list_result, behavior_id) { console.log("refined senzes : " + senz_list_result.length); logger.info(config.logEventType.p2m, "receive user<" + user_id + ">'s several observation without probability from " + new Date(start_time) + " to " + new Date(end_time)); var promises = []; senz_list_result.forEach(function (senz_object) { var prob = senz_object["prob"]; var senz_list = senz_object["senzList"]; var es_result = _middlewareExpertsSystem(senz_list); // First of all, A pre-defined experts system would try to give a prediction. if (es_result["assertion"]){ logger.info(config.logEventType.anl, "Experts system predict user<" + user_id + ">'s observation from " + new Date(start_time) + " to " + new Date(end_time)); promises.push(es_result["prediction"]); } // If experts system could not give an answer about prediction. // Then middleware of "Behavior 2 Event" which is made of GMMHMM would solve it. else { logger.info(config.logEventType.anl, "request with user<" + user_id + ">'s a observation from " + new Date(start_time) + " to " + new Date(end_time)); promises.push(algo.middlewareUserBehavior2Event(algo_type, tag, senz_list)); } }); return AV.Promise.when(promises).then( function (predict_result1, predict_result2, predict_result3){ return AV.Promise.as([predict_result1, predict_result2, predict_result3], senz_list_result, behavior_id); }, function (error){ return AV.Promise.error(error); } ); },
var createOnBoot = function(app_list){ var installation_query = new AV.Query(Installation); var installation_promises = []; app_list.forEach(function(appId){ var app = { "__type": "Pointer", "className": "Application", "objectId": appId }; installation_query.equalTo("application", app); installation_query.descending("updatedAt"); installation_promises.push(installation_query.find()); }); return AV.Promise.all(installation_promises) .then(function(installation_lists){ var connection_promises = []; installation_lists.forEach(function(installations){ //every app's installation record var de_weight_installations = DupInstallationFilter(installations); logger.debug("createOnBoot", de_weight_installations.length); de_weight_installations.forEach(function(installation){ //certain app's installations connection_promises.push(createAIConnection(installation)); }) }); return AV.Promise.all(connection_promises); }) .catch(function(e){ return AV.Promise.error(e); }); };
return query.get(orderId).then(function (result) { order = result; var promises = []; promises.push(order.relation('coupons').query().find()); promises.push(order.relation('passengers').query().find()); var ticketQ = order.relation('tickets').query(); ticketQ.include('schedule'); promises.push(ticketQ.find()); var transactionQ = new AV.Query(Transaction); transactionQ.equalTo('order', order); promises.push(transactionQ.find()); return AV.Promise.when(promises).then(function (couponsR, passengersR, ticketsR, transactionsR) { coupons = couponsR; passengers = passengersR; tickets = ticketsR; transactions = transactionsR; return new AV.Promise(function (resolve, reject) { resolve({ order: order, passengers: passengers, coupons: coupons, tickets: tickets, transactions: transactions }); }); }); });
}).then(function (results) { passengers = results; var promise = AV.Promise.as(); if (order.get('state') != 'unpay' && order.get('state') != 'paying') { promise = promise.then(function () { var query = new AV.Query(Transaction); query.equalTo('order', order); return query.find(); }).then(function (results) { transactions = results; }); if (order.get('state') != 'cancelling' && order.get('state') != 'cancelled') { promise = promise.then(function () { var query = order.relation('tickets').query(); query.include('schedule'); return query.find(); }).then(function (results) { tickets = results; }); } } return promise.then(function () { return new AV.Promise(function (resolve, reject) { resolve({ order: order, passengers: passengers, coupons: coupons, tickets: tickets, transactions: transactions }); }); }); });
function (result_in_db){ return AV.Promise.as( result_in_db.id, result_in_db.updatedAt.toString(), result_in_db.get("content") ); },
router.get('/move-category-2-down',(req,res) => { let currentId = parseInt(req.query.currentId); let targetId = parseInt(req.query.targetId); AV.Promise.when( new AV.Promise(resolve => { let query = new AV.Query(ProductCategory2); query.equalTo('category2Id',currentId); query.first().done(item => { item.set('index',item.get('index') + 1); return item.save(); }).done(resolve); }), new AV.Promise(resolve => { let query = new AV.Query(ProductCategory2); query.equalTo('category2Id',targetId); query.first().done(item => { item.set('index',item.get('index') - 1); return item.save(); }).done(resolve); }) ).then(()=> res.send({success:1})); });
.then(function(results) { if (results.length != 0) { return AV.Promise.error('该规则已绑定代理,请先取消绑定'); } agentCommissionRule.set('isDeleted', true); return agentCommissionRule.save(); });
return query.get(orderId).then(function (result) { order = result; if(order.get('isDeleted')){ return AV.Promise.error('该订单已删除'); } return order.relation('coupons').query().find(); }).then(function (results) {
router.get('/get-product', (req, res) => { let page = parseInt(req.query['page']) || 1; let limit = parseInt(req.query['limit']) || 1000; let productMethodId = req.query['product-method-id'] ? parseInt(req.query['product-method-id']) : 3; let category1Id = req.query['category1-id'] ? parseInt(req.query['category1-id']) : 0; let category2Id = req.query['category2-id'] ? parseInt(req.query['category2-id']) : 0; let onsale = req.query.onsale ? parseInt(req.query.onsale) : 0; let select = 'detail, mainImage, name, use, instruction, detailImage'; let options = {page, limit, onsale, productMethodId, category1Id, category2Id, select}; AV.Promise.when( new AV.Promise(resolve => { product.getProducts(options, false).then(items => { if (items) { items.forEach(n => { let mainImage = n.get('mainImage'); if(mainImage) { for(let i in mainImage) { if(!n.mainImage) { n.mainImage = mainImage[i].url.replace('ac-QuiPuWpJ.clouddn.com','lc-QuiPuWpJ.cn-n1.lcfile.com'); } } } }); } data = extend(data, {product: items}); resolve(); }); }), //查询category1 new AV.Promise(resolve => { if(!category1Id) { return resolve(); } let query = new AV.Query(ProductCategory1); query.equalTo('category1Id', category1Id); query.ascending('index'); query.first().then(category1 => { data = extend(data, {category1}); resolve(); }); }), //查询categoty2 new AV.Promise(resolve => { if (!category2Id) { return resolve(); } let query = new AV.Query(ProductCategory2); query.equalTo('category2Id', category2Id); query.ascending('index'); query.first().then(category2 => { data = extend(data, {category2}); resolve(); }); }) ).then(() => res.render('admin/crontab', data)); });
.then(function(results) { if (results.length == 0) { return AV.Promise.error("没有找到对应的提成规则"); } if (results.length > 1) { return AV.Promise.error('有不止一个对应的提成规则'); } agentCommissionRule.id = results[0].get('agentCommissionRule').id; agentInfo.set('agent', user); agentInfo.set('agentSource', location); agentInfo.set('agentCommissionRule', agentCommissionRule); agentInfo.set('preliveConsumer', 0); agentInfo.set('liveConsumer', 0); agentInfo.set('isDeleted', false); return agentInfo.save(); })
function(app){ var cert_url = app.get('cert_url') || ""; var key_url = app.get('key_url') || ""; return AV.Promise.all([ AV.Cloud.httpRequest({ url: cert_url }), AV.Cloud.httpRequest({ url: key_url }), app.get('passphrase') ]); })
.then(function(results) { if (results.length != 0) { return AV.Promise.error('该地点所对应的提成规则已存在'); } agentCommissionRuleMap.set('source', location); agentCommissionRuleMap.set('agentCommissionRule', agentCommissionRule); agentCommissionRuleMap.set('isDeleted', false); return agentCommissionRuleMap.save(); });
function (model){ if (description != undefined){ //logger.info(config.logEventType.upd, "Training is over. Updating model to database."); return Model.updateModel(description); } else{ return AV.Promise.as(model); } },
module.exports = function(params,callback,error) { let promise = new AV.Promise(); let name = params.name; let html = params.html; let htmlHeight = params.htmlHeight; let segmentHeight = params.segmentHeight; let segments = new Array(Math.ceil(htmlHeight / segmentHeight)); html = html.replace(/https/g,'http'); //淘宝发布的Mobile尺寸最大高度为960,故需要分段 let options = { siteType: 'html', shotSize: { width: 750, height: segmentHeight }, quality:80 //渲染质量,默认值75 }; let index = 0; async.forEachSeries(segments,(segment,cb) => { let option = extend(options, { shotOffset: { left: 0, right: 0, top: index * segmentHeight, bottom: 0 } }); if (htmlHeight % segmentHeight !==0 && index === segments.length - 1) { option.shotSize.height = htmlHeight % segmentHeight; } let fileName = name.replace(/\s/g,'').substr(0,20); let indexLen = index < 9 ? 0 : ''; webshot(html,`shot/${fileName}_${indexLen}${index + 1}.jpg`, option, function (err) { if(err) { console.info(err); return false; } index ++; cb(); }); },()=> { promise.resolve(); }); return promise; };
router.post('/transaction/pay', function(req, res) { var charge = req.body.data.object; var order; var promise = AV.Promise.as(); console.log('charge :' + charge.id); if (charge.description != password) { res.status(404); res.sendStatus(404); return; } promise = promise.then(function() { var query = new AV.Query(Order); query.equalTo('orderNumber', charge.order_no); query.include('route'); query.include('user'); return query.find(); }); promise = promise.then(function(results) { if (results.length != 1) { return AV.Promise.error('查找到的订单数为: ' + results.length); } order = results[0]; if (order.get('state') == 'paid') { return AV.Promise.error('订单已支付'); } if (charge.paid) { console.log('pay order :' + order.get('orderNumber')) AV.Cloud.requestSmsCode({ mobilePhoneNumber: order.get('user').get('mobilePhoneNumber'), template: "orderPaySmsV2", orderNumber: order.get('orderNumber') }).then(function() { console.log("发送成功"); }, function(err) { console.log("发送失败" + err); }); return orderMethod.payOrderP(order); } else { if (order.get('state') == 'paying') { order.set('state', 'unpay'); return order.save(); } } }); promise = promise.then(function() { return transactionMethod.logOrderPayTransactionP(order, charge, true); }); promise.then(function() { res.status(200); res.sendStatus(200); }, function(error) { console.log(error.toString()); res.status(200); res.sendStatus(200); }) });
}).done(items => { //批量更新index let promises = []; items.forEach((item, i) => { item.set('index', i); promises.push(item.save()); }); return AV.Promise.when(promises); }).done(()=>res.send({success: 1}));
function (){ if (obs != undefined) { //logger.info(config.logEventType.u2e, "Observation is correct. Start to train."); return Model.train(obs, 50); } else{ //logger.error(config.logEventType.u2e, "Observation is incorrect. Failed to train."); return AV.Promise.error("Obs is undefined."); } },
router.get('/:id/rush', function(req, res, next) { AV.Promise.when([ redisConn.hgetAsync('moneyPackages', req.params.id), new AV.Query(User).find() // 查询 User 只是为了再抢红包时模拟用户身份 ]).then(function(moneyPackage, users) { res.render('money-package/rush', { moneyPackage: JSON.parse(moneyPackage), users: users }); }); });
queryProduct.first().then(item => { if(item) { res.send({success:0,message:'已有产品引用该分类,无法删除'}); return AV.Promise.error(); } queryCategory2.equalTo('category2Id', category2Id); return queryCategory2.first(); }).done(item => {
query2.first().then(item => { if(item) { res.send({success: 0,message:'该分类含有子分类,请先删除所有子分类再进行删除'}); return AV.Promise.error(); } query1.equalTo('category1Id', category1Id); return query1.first(); }).done(item => {
.then(function(installation_lists){ var connection_promises = []; installation_lists.forEach(function(installations){ //every app's installation record var de_weight_installations = DupInstallationFilter(installations); logger.debug("createOnBoot", de_weight_installations.length); de_weight_installations.forEach(function(installation){ //certain app's installations connection_promises.push(createAIConnection(installation)); }) }); return AV.Promise.all(connection_promises); })
.then(function(result) { user = result; if (user.get('isAgent') == true) { return AV.Promise.error('该用户已经是代理'); } discountRuleMapQuery.equalTo('source', location); discountRuleMapQuery.equalTo('type', 'agent'); discountRuleMapQuery.equalTo('isDeleted', false); return discountRuleMapQuery.find(); }, function(result) {