Example #1
0
router.post('/transaction/refund', function(req, res) {
  var refundObj = req.body.data.object;
  var chargeId = refundObj.charge;
  console.log('退款请求:');
  console.log('chargeId :' + chargeId);
  if (refundObj.status == 'pending') {
    console.log('等待ping++处理结果');
    if (refundObj.failure_msg != null) {
      var query = new AV.Query(TransactionQuery);
      query.equalTo('chargeId', chargeId);
      query.equalTo('state', 'pending');
      query.find().then(function(trQuery) {
        if (trQuery.length == 0) {
          console.error('未查找到对应的transaction query');
          return;
        }
        if (typeof refundObj.failure_msg === 'string') {
          trQuery[0].set('extra', refundObj.failure_msg);
        } else {
          trQuery[0].set('extra', JSON.stringify(refundObj.failure_msg));
        }
        trQuery[0].save();
      }, function(error) {
        console.error(error);
      });
    }
  } else if (refundObj.succeed) {

    var query = new AV.Query(TransactionQuery);
    query.equalTo('chargeId', chargeId);
    query.equalTo('state', 'pending');
    query.find().then(function(trQuery) {
      if (trQuery.length == 0) {
        console.error('未查找到对应的transaction query');
        return;
      }
      console.log('ping++已处理');
      trQuery[0].set('state', 'finished');
      transactionMethod.logOrderRefundTransactionP(trQuery[0], refundObj).then(function() {
        return trQuery[0].get('order').fetch();
      }).then(function(order) {
        order.set('state', 'cancelled');
        return order.save();
      }).catch(function(error) {
        console.error(error);
      });
    }, function(error) {
      console.error(error);
    })
  }
  res.sendStatus(200);
});
Example #2
0
AV.Cloud.define('createUserDynamicData', function(request, response) {
	var userId = request.params.userId;
	if(!userId || userId === ''){
		response.error({"code":500, "result":"参数userId不为空"});
	}else{
		var user = new User();
		user.id = userId;
		var userDynamicQuery  = new AV.Query(UserDynamicData);
		userDynamicQuery.equalTo('userId',user);
		userDynamicQuery.find().then(function(results){
			if(results.length > 0){
				//已经存在则更新坐标和状态
				response.success({"code":200, "result":results[0]});
			}else{
				var userDynamicData = new UserDynamicData();
				userDynamicData.set('userId', user);
				userDynamicData.set('datingStatus', 1);
				userDynamicData.set('onlineStatus', true);
				userDynamicData.save().then(function(userDynamicData){
					response.success({"code":200, "result":userDynamicData})
				},
				function(error){
					response.error({"code":500, "result":"保存用户DynamicData异常"});
				});
			}
		},
		function(error){
			response.error({"code":500, "result":"查询用户DynamicData异常,userId=" + userId});
		});
	}
});
Example #3
0
		reportQuery.find().then(function(results){
			if(results.length == 0){
				//需要扣减分数
				var user = new User();
				user.id = reportedUserId;
				var userDynamicQuery = new AV.Query(UserDynamicData);
				userDynamicQuery.equalTo('userId', user);
				userDynamicQuery.find().then(function(results){
					if(results.length > 0){
						var userDynamicData = results[0];
						var reportedScore = userDynamicData.get('reportedScore');
						if(reportedScore > 0){
							reportedScore=reportedScore -1*2;
							userDynamicData.set('reportedScore', reportedScore);
							userDynamicData.save();
						}
						report.save();
						response.success({"code":200, "result":"举报成功"});
					}else{
						response.error({"code":500, "result":"dynamicData不存在"});
					}
				},
				function(error){
					response.error({"code":500, result:"被举报人不存在"});
				});
			}else{
				report.save();
				response.success({"code":200, "result":"举报成功"});
			}
		},
Example #4
0
router.get('/', function(req, res, next) {
  var status = 0;
  var errMsg = null;
  if (req.query) {
    status = req.query.status || 0;
    errMsg = req.query.errMsg;
  }
  var query = new AV.Query(Record);
  query.equalTo('status', parseInt(status));
  query.include('author');
  query.descending('updatedAt');
  query.limit(50);
  query.find({
    success: function(results) {
      res.render('records', {
        title: 'Record 列表',
        user: AV.User.current(),
        records: results, 
        status: status,
        errMsg: errMsg
      });
    },
    error: function(err) {
      next(err);
    }
  })
});
Example #5
0
  const queryTagList = (tagId) => {
    const targetTag = AV.Object.createWithoutData('Tags', tagId)
    const query = new AV.Query('ContentList')
    query.equalTo('relationTags', targetTag)
    return query.find()

  }
      AV.Object.destroyAll(rejectList).then(function(success) {
        // All the objects were deleted
        queryApprovedPayment.find(
          {
            success: function(approveList)
            {
              for(var i = 0 ; i < approveList.length ; i++)
              {
                approveList[i].set('isApproved', true);
              }

              AV.Object.saveAll(approveList, {
                success: function (list) {
                  respond.success();
                },
                error: function (error) {
                  respond.error(error.message);
                }
              });

            },
            error: function(error)
            {
              respond.error(error.message);
            }
          });


      }, function(error) {
Example #7
0
/*记录订单支付的交易信息
params	:order(object)[DBdoc中的格式], charge(object)[ping++返回的charge对象], isFinished(boolean)
在数据库里创建一个新的transaction
*/
function logOrderPayTransactionP(order, charge, isFinished) {
	var query = new AV.Query(Transaction);
	query.equalTo('order', order);
	query.equalTo('chargeId', charge.id);
	return query.find().then(function (results) {
		if (results.length == 0) {
			var transaction = new Transaction();
			transaction.set('chargeId', charge.id);
			transaction.set('order', order);
			transaction.set('user', order.get('user'));
			transaction.set('channel', charge.channel);
			transaction.set('amount', charge.amount);
			transaction.set('currency', charge.currency);
			transaction.set('type', 'pay');
			transaction.set('paid', charge.paid);
			transaction.set('extra',JSON.stringify(charge.extra));
			transaction.set('isFinished', isFinished);
			transaction.set('isDeleted', false);
			return transaction.save();
		} else {
			results[0].set('paid', charge.paid);
			results[0].set('isFinished', isFinished);
			results[0].set('extra',JSON.stringify(charge.extra));
			return results[0].save();
		}
	});
}
Example #8
0
	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
				});
			});
		});
	});
Example #9
0
		coupons.forEach(function (coupon) {
			if (coupon.get('type') == 'user') {
				var code = coupon.get('codeNumber');
				var query = new AV.Query(AV.User);
				query.equalTo('myDiscountCode', code);
				query.find().then(function (srcUser) {
					if (srcUser.length == 0) {
						return;
					}
					if (srcUser[0].id == coupon.get('user').id) {
						return;
					}
					var newCoupon = new Coupon();
					newCoupon.set('user', srcUser[0]);
					newCoupon.set('discountRule', coupon.get('discountRule'));
					newCoupon.set('validSource', coupon.get('validSource'));
					newCoupon.set('validDest', coupon.get('validDest'));
					newCoupon.set('validStartTime', coupon.get('validStartTime'));
					newCoupon.set('validEndTime', coupon.get('validEndTime'));
					newCoupon.set('validPrice', coupon.get('validPrice'));
					newCoupon.set('discountPrice', coupon.get('discountPrice'));
					newCoupon.set('codeNumber', code);
					newCoupon.set('show', coupon.get('show'));
					newCoupon.set('type', 'user');
					newCoupon.set('isValid', true);
					newCoupon.set('isUsed', false);
					newCoupon.set('isDeleted', false);
					newCoupon.save();
				});
			}
			coupon.set('isUsed', true);
			coupon.set('isValid', false);
			coupon.save();
		});
Example #10
0
AV.Cloud.define('updateUserDynamicData', function(request, response) {
	var userId = request.params.userId;
	if(!userId || userId === ''){
		response.error({"code":500, "result":"参数userId不为空"});
	}else{
		var userDynamicQuery  = new AV.Query(UserDynamicData);
		var user = new User();
		user.id = userId;
		userDynamicQuery.equalTo('userId',user);
		userDynamicQuery.find().then(function(results){
			if(results.length > 0){
				var latitude = request.params.latitude;
				var longitude = request.params.longitude;
				if(latitude && latitude != '' && longitude && longitude != ''){
					var location = new AV.GeoPoint({"latitude": latitude, "longitude": longitude});
					results[0].set('location',location);
				}
				
				results[0].set('onlineStatus', true);
				results[0].save();
				response.success({"code":200, "result":results[0]});
			}else{
				response.error({"code":500, "result":"用户DynamicData不存在, userId=" + userId});
			}
		},function(error){
			response.error({"code":500, "result":"查询用户DynamicData异常,userId=" + userId});
		});
	}
});
Example #11
0
 const queryComments = () => {
   const targetArticle = AV.Object.createWithoutData('ContentList', articleId)
   const query = new AV.Query('Comments')
   query.ascending('createdAt')
   query.equalTo('pointerArticle', targetArticle)
   return query.find()
 }
Example #12
0
  param.targets.forEach(function(target) {
    var query = new AV.Query(target.leancloudClass);
    query.equalTo('size', model.modelSize);
    query.equalTo('loadGrade', model.loadGrade);
    query.equalTo(param.leancloudName, param.roundedValue);

    query.find().then(function(results) {
      queryCount += 1;
      if (results.length == 1) {
        console.log(target.name + '查找成功');
        target.value = results[0].get('value');
      } else if (results.length > 1) {
        console.log('***' + target.name +'结果不唯一');
      } else {
        console.log('***' + target.name + '无匹配结果');
      }
    },
    function(error) {
      console.log('Error: ' + error.code + ' ' + error.message);
    })
    .then(function(results) {
      if (queryCount === 8) {
        queryCount = 0;
        callback();
      }
    });
  });
Example #13
0
 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();
 });
Example #14
0
router.get('/getpointimage/:id', function (req, res) {


    //var imgid=req.params.id;
    var pointimgs = new Array();
    var query = new AV.Query(Point_Image);
    query.equalTo("PointId", req.params.id);
    query.find({
        success: function (results) {
            //console.log("Successfully retrieved " + results.length + " scores.");
            // Do something with the returned AV.Object values
            for (var i = 0; i < results.length; i++) {
                var object = results[i];

                var pointimage = new Object();
                pointimage.id = object.id;
                pointimage.image = object.get('Image');
                pointimgs.push(pointimage);


                console.log(pointimage.image.url())

            }

        },
        error: function (error) {
            console.log("Error: " + error.code + " " + error.message);
        }
    });

});
Example #15
0
 new AV.Promise(resolve => {
     let query = new AV.Query(Banner);
     return query.find().then(banner => {
         data = extend(data, {banner});
         resolve();
     });
 }),
Example #16
0
router.get('/getallimages',function (req,res){


    var args = url.parse(req.url, true).query;

    var query = new AV.Query(Road_Image);
    query.equalTo("RoadId", args.RoadID);
    query.ascending("createdAt");
    query.find({
        success: function (results) {
            //alert("Successfully retrieved " + results.length + " scores.");
            // Do something with the returned AV.Object values

            var imgs=new Array();

            for (var i = 0; i < results.length; i++) {
                var object = results[i];
                var img = new Object();
                img.id = object.id;
                img.imageurl = object.get('Image').thumbnailURL(150, 150);

                imgs.push(img);
                //console.log(points);
            }
            res.send(imgs);
        },
        error: function (error) {
            // alert("Error: " + error.code + " " + error.message);
            res.send('false');

        }
    });
});
Example #17
0
        success: function (pointresults) {
            for (var i = 0; i < pointresults.length; i++) {
                var point = pointresults[i];
                var pointid = point.id;


                var querypimg = new AV.Query(Point_Image);
                querypimg.equalTo("PointId", pointid);
                querypimg.find({
                    success: function (pimgresults) {
                        for (var i = 0; i < pimgresults.length; i++) {
                            var pimg = pimgresults[i];
                            var imgfile = pimg.get('Image');
                            imgfile.destroy();
                        }

                        AV.Object.destroyAll(pimgresults);

                    },
                    error: function (error) {
                        console.log("Error: " + error.code + " " + error.message);
                    }
                });

                point.destroy();
            }
            AV.Object.destroyAll(pointresults);
        },
Example #18
0
router.get('/getinfo', function(req, res, next) {
    var date = req.query.date == null ? null : req.query.date;
    var post = req.query.post == null ? null : req.query.post;

    var query = new AV.Query('TempInfo');
    query.addDescending('updatedAt');
    if (post != null) {
        query.equalTo('post', post);
    }
    if (date != null) {
        console.log(date);
        query.greaterThan('updatedAt', new Date(date + ' 00:00:00'));
        query.lessThan('updatedAt', new Date(date + ' 23:59:59'));
    }
    query.limit(1000);
    query.addAscending('updatedAt');
    query.find().then(function (resultes) {
        console.log();
        for (var i = 0 ; i < resultes.length; i++) {
            resultes[i].updatedAt = moment(resultes[i].updatedAt).format("YYYY-MM-DD HH:mm:ss");
            resultes[i].createdAt = moment(resultes[i].createdAt).format("YYYY-MM-DD HH:mm:ss");
        }
        var data = {
            code : 200,
            data : resultes,
            message : '操作成功'
        }
        res.send(data);
    });

});
Example #19
0
File: app.js Project: xzhuah/Forest
app.get('/beststory/:topnum',function(req,res){//OK 2016/4/16
  var topnum = req.params.topnum;
  var findStorybylikerank = new AV.Query('Story');
  var creators = [];
  findStorybylikerank.include('creator');
  findStorybylikerank.find().then(function(results) {
    results.sort(function(x, y) {
      if (x.get('followUser') != undefined && y.get('followUser') != undefined && x.get('followUser').length > y.get('followUser').length) {
        return -1;
      }
      if (x.get('followUser') != undefined && y.get('followUser') != undefined && x.get('followUser').length < y.get('followUser').length) {
        return 1;
      }
      return 0;
    });
    if (topnum > results.length) {
      res.json({success: false, error: "topnum too large"});
    }
    var bestStory = results.slice(0, topnum);
    bestStory.map(function(story) {
      creators.push(
        {
          id: story.get('creator').id,
          username: story.get('creator').get('username')
        }
    );
    });
    res.json({success: true, bestStory: bestStory, creators: creators});
  }).catch(function(error) {
    res.json({success: false, error: error});
  });
});
Example #20
0
/*
**保存公告数据
** data:一个保存了表单信息的json。find:需要查找是否存在相同的元素。callback:回调函数;成功返回“success”,失败返回“error”;
 */
function saveAnnounceData(data,find,callback){
	var post = AV.Object.new('Announce');
	console.log(data);
	var query = new AV.Query('Announce');
	query.equalTo(find, data[find]);
	query.find().then(function(results) {
	  console.log('Successfully retrieved ' + results.length + ' posts.');
	  // 处理返回的结果数据
	  console.log(results.length);
		if(results.length=="0"){
			for(var key in data){
				post.set(key, data[key]);
			}
			post.save().then(function(post) {
			  // 成功保存之后,执行其他逻辑.
			  console.log('New object created with objectId: ' + post.id);
				callback.success("success");
			}, function(err) {
			  // 失败之后执行其他逻辑
			  // error 是 AV.Error 的实例,包含有错误码和描述信息.
			  console.log('Failed to create new object, with error message: ' + err.message);
				callback.error(err);
			});
		}
	}, function(error) {
	  console.log('Error: ' + error.code + ' ' + error.message);
	});
}
			store.getClass(function (er, classObj) {
				if(er) return fn(er);
				store.emit('lock');

				debug('SET "%s" %s', sid, jsess);
				var query = new AV.Query(classObj);
				query.equalTo('sid', psid);
				query.find().then(function (result) {

					if (result.length > 0) {
						result[0].set('value', jsess);
						result[0].save();
					} else {
						var AVSession = new classObj();
						AVSession.set('sid', psid);
						AVSession.set('value', jsess);
						AVSession.save();
						debug('SET NEW SESSION "%s" %s', sid, jsess);
					}
					debug('SET complete');
					fn.apply(null);

					store.emit('unlock');
				});
			});
Example #22
0
                success: function (myObject) {

                    var roadid = myObject.get("RoadId");
                    var order = parseInt(myObject.get("Order"));
                    var querypoint = new AV.Query(Point);
                    querypoint.equalTo("RoadId", roadid);
                    querypoint.greaterThan("Order", order);
                    querypoint.find({
                        success: function (results) {

                            for (var i = 0; i < results.length; i++) {
                                var object = results[i];

                                var neworder = parseInt(object.get("Order")) - 1;
                                object.set('Order', neworder);
                                object.save;
                                //console.log(points);
                            }

                        },
                        error: function (error) {
                            console.log("Error: " + error.code + " " + error.message);


                        }
                    });


                    res.send('true');
                },
Example #23
0
router.get('/addinfo', function(req, res, next) {
    var post = req.query.post;
    var temp = req.query.temp;
    if (temp == '' || temp == null) {
        var result = {
            code : 400,
            message : '缺少参数temp'
        };
        res.send(result);
        return;
    }
    if (post == '' || post == null) {
        var result = {
            code : 400,
            message : '缺少参数post'
        };
        res.send(result);
        return;
    }
    var query = new AV.Query('Port');
    query.find().then(function (list) {
        var flag = 0;
        for (var i = 0; i < list.length; i++) {
            if (list[i].get('portName') == post) {
                flag++;
            }
        }
        if (flag == 0) {
            var port = new Port();
            port.set('portName', post);
            port.save().then(function (port) {
                var tempInfo = new TempInfo();
                tempInfo.set('post', post);
                tempInfo.set('temp', temp);
                tempInfo.save().then(function () {
                    var result = {
                        code : 200,
                        message : '操作成功'
                    };
                    res.send(result);
                });
            });
        }
        else {
            var tempInfo = new TempInfo();
            tempInfo.set('post', post);
            tempInfo.set('temp', temp);
            tempInfo.save().then(function () {
                var result = {
                    code : 200,
                    message : '操作成功'
                };
                res.send(result);
            });
        }
    });


});
Example #24
0
 new AV.Promise(resolve => {
     let query = new AV.Query(ProductMethod);
     query.ascending('index');
     query.find().then(productMethod => {
         data = extend(data,{productMethod});
         resolve();
     });
 }),
Example #25
0
	.then(function(result) {
		var src = new Location();
		src.id = result.get('source').id;
		var agentInfoQuery = new AV.Query('AgentInfo');
		agentInfoQuery.equalTo('agentSource', src);
		agentInfoQuery.equalTo('isDeleted', false);
		return agentInfoQuery.find();
	})
Example #26
0
        item.destroy().done(()=> {

            let query = new AV.Query(ProductCategory1);
            query.equalTo('productMethodId',productMethodId);
            query.ascending('index');
            return query.find();

        }).done(items=> {
Example #27
0
router.get('/index',function (req, res) {
    var currentUser = AV.User.current();
    var username;
    if (currentUser) {
        username = currentUser.getUsername();
        var isedit = false;
        if (currentUser.attributes.UserRoleId != "551163fde4b0dbfd5ebdaa23")//普通用户
        {
            isedit = true;
        }


        var nowdatetime = new Date();
        //dateFormat(nowdatetime, "dddd, mmmm dS, yyyy, h:MM:ss TT");
        var aaa = dateFormat(nowdatetime, "yyyymmddHHMMss");


        //得到自己所有邀请码


        var invitationcodes = new Array();

        var InvitationCode = AV.Object.extend("InvitationCode");
        var query = new AV.Query(InvitationCode);
        query.equalTo("CreateUserId", currentUser.id);
        query.find({
            success: function (results) {
                //alert("Successfully retrieved " + results.length + " scores.");
                // Do something with the returned AV.Object values
                for (var i = 0; i < results.length; i++) {
                    var object = results[i];

                    var invitationcode = new Object();
                    invitationcode.id = object.id;
                    invitationcode.code = object.get('Code');
                    invitationcode.isused = object.get('IsUsed');
                    invitationcodes.push(invitationcode);

                }
                res.render('invitation/index', {
                    datetime: aaa,
                    user: username,
                    isedit: isedit,
                    invitationcodes: invitationcodes,

                    layout: 'share/layout'
                });

            },
            error: function (error) {
                alert("Error: " + error.code + " " + error.message);
            }
        });
    }
    else {
        res.redirect('/users/login');
    }
});
Example #28
0
AV.Cloud.define('feedbackTypeList', function(request, response){
	var feedbackTypeQuery = new AV.Query(FeedbackType);
	feedbackTypeQuery.find().then(function(results){
		return response.success({"code":200, "results":results});
	},
	function(error){
		return response.error({"code":500, "result":"查询反馈类型列表异常."});
	});
});
Example #29
0
File: app.js Project: xzhuah/Forest
app.get('/theme',function(req,res){//OK 2016/4/16
   var findAllTheme=new AV.Query('Theme');
   findAllTheme.find().then(function(obj){
    res.json({success: true, theme: obj});
   },function(error){
     res.json({success: false, error: error});
   });

});
Example #30
0
 async.forEachSeries(data.product.get('productMethod'), function(productMethodId,cb) {
     let query = new AV.Query(ProductCategory1);
     query.equalTo('productMethodId',productMethodId);
     query.ascending('index');
     query.find().then(results => {
         category1.push(results);
         cb();
     });
 },err => {