Example #1
0
AV.Cloud.define('querySpeedDate', function(request, response) {
	var userId = request.params.userId;
	if(!userId || userId === ''){
		response.error({"code":500, "result":"参数userId不能为空"});
	}else{
		var fromUserQuery = new AV.Query(SpeedDate);
		fromUserQuery.equalTo('fromUser',userId);
		fromUserQuery.containedIn('status',[2,3,4]);
		fromUserQuery.equalTo('fromUserEvaStatus',false);
		fromUserQuery.equalTo('isValid',true);

		var toUserQuery = new AV.Query(SpeedDate);
		toUserQuery.equalTo('toUser',userId);
		toUserQuery.containedIn('status',[2,3,4]);
		toUserQuery.equalTo('toUserEvaStatus',false);
		toUserQuery.equalTo('isValid',true);
		var query = AV.Query.or(fromUserQuery, toUserQuery);
		query.find().then(function(results){
			response.success({"code":200, "results":results[0]});
		},
		function(error){
			response.error({"code":500, "result":"查询用户邀约记录异常(step=1), errormsg:" + error.message});
		});
	}
});
AV.Cloud.define("approvePayment", function(request, respond) {
  var approveIDList = request.params.approveList;
  var rejectIDList = request.params.rejectList;

  var PaymentClass = AV.Object.extend("Payment");
  var queryApprovedPayment = new AV.Query(PaymentClass);
  queryApprovedPayment.equalTo("isApproved", false);
  queryApprovedPayment.containedIn("objectId", approveIDList );

  var queryRejectedPayment = new AV.Query(PaymentClass);
  queryRejectedPayment.equalTo("isApproved", false);
  queryRejectedPayment.containedIn("objectId", rejectIDList);

  queryRejectedPayment.find({
    success: function(rejectList)
    {
      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) {
        respond.error(error.message);
      });
    },
    error: function(error)
    {
      respond.error(error.message);
    }
  });

});
Example #3
0
        new AV.Promise(resolve => {

            let query = new AV.Query(Product);
            query.containedIn('category2',category2);
            query.count().then(count => {
                resolve(count);
            });
            
        })
Example #4
0
router.get('/list-data',(req,res) => {

    let productListId = req.query.productListId;
    productListId = productListId.map(item => parseInt(item));
    
    let query = new AV.Query(Product);
    query.containedIn('productId',productListId);
    query.select('productId','purchaseLink','shopLink','stock');
    
    query.find().then(products => {
        res.send({
            success:1,
            products
        });
    });

});
Example #5
0
			    				speedDatingQuery.find().then(function(results){
									if(results.length > 0){
		    				    		//存在记录,则修改状态
		    				    		results[0].set('status', 2);
		    				    		results[0].save();
		    				    		fromUserDynamic.set('datingStatus',2);
		    				    		fromUserDynamic.save();
		    				    		toUserDynamic.set("datingStatus", 2);
		    				    		toUserDynamic.save();
		    				    		response.success({"code":200, "results":results[0]});
		    				    	}else{
		    				    		//避免重复创建记录,先查询是否已经有喜欢对方的记录存在
		    				    		speedDatingQuery = new AV.Query(SpeedDate);
		    				    		speedDatingQuery.equalTo('fromUser',fromUserId);
		    							speedDatingQuery.equalTo('toUser',toUserId);
		    							speedDatingQuery.containedIn('status',[1,2,3,4]);
		    							speedDatingQuery.equalTo('isValid',true);
		    							speedDatingQuery.find().then(function(results){
											if(results.length > 0){
											    //返回当前记录
												response.success({"code":200, "results":results[0]});
											}else{
											    //不存在,则创建记录
									    		var speedDate = new SpeedDate();
									    		speedDate.set('fromUser',fromUserId);
									    		speedDate.set('toUser',toUserId);
									    		speedDate.set('fromUserEvaStatus',false);
									    		speedDate.set('toUserEvaStatus',false);
									    		speedDate.set('status',1);
									    		speedDate.set('isValid', true);
									    		speedDate.save().then(function(speedDate){
									    			response.success({"code":200, "results":speedDate});
									    		},
									    		function(error){
													response.error({"code":500, "result":"创建speeddate异常(setep=5) ,message=" + error.message});
									    		});
											}
		    							},
		    							function(error){
		    								response.error({"code":500, "result":"查询speeddate异常(setep=4) ,message=" + error.message});
		    							});
		    				    	}
			    				},
Example #6
0
router.get('/create', function (req, res) {
    //首先判断库存
    var cart = req.session.cart;
    var query = new AV.Query(Item);
    var objectIds = [];
    cart.forEach(function (item) {
        objectIds.push(item.id)
    });
    query.containedIn('objectId', objectIds);
    query.find()
        .then(function (results) {
            debug(results.length);
            var flag = true; //可生成订单标识
            var message = ''; //如不能生成订单,提示信息
            var totalAmount = 0;
            cart.forEach(function (item) { //检查库存
                var _index = _.findIndex(results, {
                    id: item.id
                });

                debug(_index);
                var _item = results[_index];
                debug(_item);
                if (item.count > _item.attributes.count) {
                    flag = false;
                    message += '抱歉,您购买的' + _item.attributes.name + '库存不足,请稍后再试.';
                }
                totalAmount += (item.count * _item.attributes.price);
                debug(item.count);
                debug(_item.attributes.price);
                debug(item.count * _item.attributes.price);
                debug(totalAmount);
                // _item.attributes.count -= item.count;
                _item.set('count', _item.attributes.count - item.count);
            });


            if (!flag) return res.render('cart', { //返回购物车界面
                cart: cart,
                location: 'cart',
                user: req.AV.user,
                message: message
            });

            debug('begin to create order');
            //创建订单
            var order = new Order();

            order.set('owner', req.AV.user);
            order.set('totalAmount', totalAmount);
            // order.set('items', req.session.cart);
            order.set('status', 0);


            results.forEach(function (item) { //保存库存信息
                item.save();
            });

            query = new AV.Query(User);
            debug(results[0].attributes.owner);
            query.get(results[0].attributes.owner.id)
                .then(function (owner) {
                    order.set('shop', owner);
                    var orderACL = new AV.ACL(AV.User.current());
                    orderACL.setReadAccess(AV.User.current(),true);
                    orderACL.setReadAccess(owner,true);
                    orderACL.setWriteAccess(owner,true);
                    orderACL.setWriteAccess(AV.User.current(),true);
                    order.setACL(orderACL);

                    debug('prepare to save order');
                    order.save()
                        .then(function (_order) {
                            //建立商品快照
                            req.session.cart.forEach(function(item){
                                var itemSnapshot = new ItemSnapshot();
                                var itemSnapshotACL = new AV.ACL(AV.User.current());
                                itemSnapshotACL.setReadAccess(AV.User.current(),true);
                                itemSnapshotACL.setReadAccess(owner,true);
                                itemSnapshot.setACL(orderACL);

                                itemSnapshot.set('name',item.name);
                                itemSnapshot.set('productId',item.id);
                                itemSnapshot.set('price',item.price);
                                itemSnapshot.set('count',item.count);
                                itemSnapshot.set('order',_order);

                                itemSnapshot.save();

                            });
                            debug('order save success');
                            _order.ownerName = req.AV.user.name;
                            _order.shopName = owner.attributes.name;
                            var _cart = req.session.cart;
                            delete req.session.cart;//清空购物车
                            return res.render('order', { //返回购物车界面
                                order: _order,
                                cart:_cart,
                                location: 'order',
                                user: req.AV.user,
                                message:false
                            });
                        })
                })


        })
        .catch(function (err) {
            debug(err);
        })
});