Beispiel #1
0
 def edit(cls, member_id, product_id, count, selected):
     models = cls.query.filter_by(member_id=member_id, soft=True).all()
     ids = [item.product_id for item in models]
     if len(models) >= 10 and product_id not in ids:
         raise ParameterException(msg='购物车最多放10种商品')
     Product.check_stock(product_id, count, throw=True)
     model = cls.query.filter_by(product_id=product_id, member_id=member_id, soft=True).first()
     if model:
         model.update(count=count, selected=selected, commit=True)
         return True
     cls.create(member_id=member_id, product_id=product_id, count=count, selected=selected, commit=True)
     return True
Beispiel #2
0
def place_order():
    uid = g.user.uid
    form = OrderForm().validate_for_api()
    products = form.products.data
    # 订单商品参数字段校验
    products = OrderForm.check_products(products)
    # 库存量检测
    order_info = Product.check_stock(products)
    if order_info['pass']:
        # 生成订单,写入数据库
        order_info = Order.generator_order(uid, order_info)
        res = OrderProduct.mark_order(order_info, products)
        return jsonify(res)
    else:
        return jsonify(order_info)
Beispiel #3
0
def check_stock():
    form = ProductIdAndCount().validate_for_api()
    has_stock = Product.check_stock(form.product_id.data, form.count.data)
    return {'product_id': form.product_id.data, 'has_stock': has_stock}