python学习
This commit is contained in:
99
web/controllers/api/Cart.py
Normal file
99
web/controllers/api/Cart.py
Normal file
@@ -0,0 +1,99 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
from web.controllers.api import route_api
|
||||
from flask import request,jsonify,g
|
||||
from common.models.food.Food import Food
|
||||
from common.models.member.MemberCart import MemberCart
|
||||
from common.libs.member.CartService import CartService
|
||||
from common.libs.Helper import selectFilterObj,getDictFilterField
|
||||
from common.libs.UrlManager import UrlManager
|
||||
from application import app,db
|
||||
import json
|
||||
|
||||
@route_api.route("/cart/index")
|
||||
def cartIndex():
|
||||
resp = {'code': 200, 'msg': '添加购物车成功~', 'data': {}}
|
||||
member_info = g.member_info
|
||||
if not member_info:
|
||||
resp['code'] = -1
|
||||
resp['msg'] = "获取失败,伪登录~~"
|
||||
return jsonify(resp)
|
||||
cart_list = MemberCart.query.filter_by( member_id=member_info.id).all()
|
||||
data_cart_list = []
|
||||
if cart_list:
|
||||
food_ids = selectFilterObj( cart_list,"food_id" )
|
||||
food_map = getDictFilterField( Food,Food.id,"id",food_ids )
|
||||
for item in cart_list:
|
||||
tmp_food_info = food_map[ item.food_id ]
|
||||
tmp_data = {
|
||||
"id":item.id,
|
||||
"number":item.quantity,
|
||||
"food_id": item.food_id,
|
||||
"name":tmp_food_info.name,
|
||||
"price":str( tmp_food_info.price ),
|
||||
"pic_url": UrlManager.buildImageUrl( tmp_food_info.main_image ),
|
||||
"active":True
|
||||
}
|
||||
data_cart_list.append( tmp_data )
|
||||
|
||||
resp['data']['list'] = data_cart_list
|
||||
return jsonify(resp)
|
||||
|
||||
@route_api.route("/cart/set", methods=["POST"])
|
||||
def setCart():
|
||||
resp = {'code': 200, 'msg': '添加购物车成功~', 'data': {}}
|
||||
req = request.values
|
||||
food_id = int(req['id']) if 'id' in req else 0
|
||||
number = int(req['number']) if 'number' in req else 0
|
||||
if food_id < 1 or number < 1:
|
||||
resp['code'] = -1
|
||||
resp['msg'] = "添加购物车失败-1~~"
|
||||
return jsonify(resp)
|
||||
|
||||
member_info = g.member_info
|
||||
if not member_info:
|
||||
resp['code'] = -1
|
||||
resp['msg'] = "添加购物车失败-2~~"
|
||||
return jsonify(resp)
|
||||
|
||||
food_info = Food.query.filter_by( id = food_id ).first()
|
||||
if not food_info:
|
||||
resp['code'] = -1
|
||||
resp['msg'] = "添加购物车失败-3~~"
|
||||
return jsonify(resp)
|
||||
|
||||
if food_info.stock < number:
|
||||
resp['code'] = -1
|
||||
resp['msg'] = "添加购物车失败,库存不足~~"
|
||||
return jsonify(resp)
|
||||
|
||||
ret = CartService.setItems( member_id=member_info.id,food_id = food_info.id,number = number )
|
||||
if not ret:
|
||||
resp['code'] = -1
|
||||
resp['msg'] = "添加购物车失败-4~~"
|
||||
return jsonify(resp)
|
||||
return jsonify(resp)
|
||||
|
||||
@route_api.route("/cart/del", methods=["POST"])
|
||||
def delCart():
|
||||
resp = {'code': 200, 'msg': '添加购物车成功~', 'data': {}}
|
||||
req = request.values
|
||||
params_goods = req['goods'] if 'goods' in req else None
|
||||
|
||||
items = []
|
||||
if params_goods:
|
||||
items = json.loads(params_goods)
|
||||
if not items or len( items ) < 1:
|
||||
return jsonify(resp)
|
||||
|
||||
member_info = g.member_info
|
||||
if not member_info:
|
||||
resp['code'] = -1
|
||||
resp['msg'] = "删除购物车失败-1~~"
|
||||
return jsonify(resp)
|
||||
|
||||
ret = CartService.deleteItem( member_id = member_info.id, items = items )
|
||||
if not ret:
|
||||
resp['code'] = -1
|
||||
resp['msg'] = "删除购物车失败-2~~"
|
||||
return jsonify(resp)
|
||||
return jsonify(resp)
|
||||
Reference in New Issue
Block a user