def info(): resp_data = {} req = request.args id = int(req.get('id', 0)) if id < 1: return redirect(UrlManager.buildUrl("/food/index")) info = Food.query.filter_by(id=id).first() if not info: return redirect(UrlManager.buildUrl("/food/index")) ids = [id] order_item_map = getDictList(PayOrderItem, PayOrderItem.food_id, "food_id", ids) order_item_list = [] if order_item_map: order_item_list = order_item_map[id] count = 0 for item in order_item_list: count += item.quantity info.total_count = count cat_mapping = getDict(FoodCat, 'id', 'id', []) member_mapping = getDict(Member, 'id', 'id', []) resp_data['cat_mapping'] = cat_mapping resp_data['member_mapping'] = member_mapping resp_data['info'] = info resp_data['order_item_list'] = order_item_list return ops_render("food/info.html", resp_data)
def index(): resp_data = {} req = request.values query = Food.query if 'mix_kw' in req: rule = or_(Food.name.ilike("%{0}%".format(req['mix_kw']))) query = query.filter(rule) if 'status' in req and int(req['status']) > -1: query = query.filter(Food.status == int(req['status'])) if 'cat_id' in req and int(req['cat_id']) > -1: query = query.filter(Food.cat_id == int(req['cat_id'])) if 'member_id' in req and int(req['member_id']) > -1: query = query.filter(Food.member_id == int(req['member_id'])) list = query.order_by(Food.status.desc(), Food.id.asc()).all() cat_mapping = getDict(FoodCat, 'id', 'id', []) member_mapping = getDict(Member, 'id', 'id', []) resp_data['list'] = list resp_data['search_con'] = req resp_data['status_mapping'] = app.config['STATUS_MAPPING'] resp_data['cat_mapping'] = cat_mapping resp_data['member_mapping'] = member_mapping return ops_render("food/index.html", resp_data)
def cartIndex(): prompt = {'code': 200, "msg": "操作成功!", "data": {}} member_info = memberInfo() if not member_info: prompt['code'] = -1 prompt['msg'] = "操作失败!" return jsonify(prompt) cart_list = MemberCart.query.filter_by(member_id=member_info.id).all() cart_info = [] sum_price = 0 if cart_list: food_map = getDict(Food,Food.id,'id',[]) for item in cart_list: sum_price += food_map[item.food_id].price * item.quantity cart_info.append({ 'id':item.id, 'food_id':item.food_id, 'name':food_map[item.food_id].name, 'price':str(food_map[item.food_id].price), 'number':item.quantity, 'pic_url':food_map[item.food_id].image, 'active':True }) prompt['data']['list'] = cart_info prompt['data']['sum_price'] = str(sum_price) return jsonify(prompt)
def dataList(pay_list): data_list = [] if pay_list: pay_order_ids = selectFilter(pay_list, "id") pay_order_item_map = getDictList(PayOrderItem, PayOrderItem.pay_order_id, "pay_order_id", pay_order_ids) food_mapping = {} if pay_order_item_map: food_ids = [] for item in pay_order_item_map: food_id = selectFilter(pay_order_item_map[item], "food_id") # food_ids_tmp = {}.fromkeys(food_ids_tmp).values() food_ids += food_id food_mapping = getDict(Food, Food.id, "id", food_ids) for item in pay_list: member_info = Member.query.filter_by(id=item.member_id).first() data_tmp = { "id": item.id, "nickname": member_info.nickname, "status_desc": item.status_desc, "order_number": item.order_sn, "price": item.total_price } food_tmp = [] pay_order_item = pay_order_item_map[item.id] for tmp in pay_order_item: food_info = food_mapping[tmp.food_id] member_info = Member.query.filter_by( id=food_info.member_id).first() food_tmp.append({ "name": food_info.name, "quantity": tmp.quantity, "merchants": member_info.nickname }) data_tmp['foods'] = food_tmp data_list.append(data_tmp) return data_list
def payInfo(): resp_data = {} req = request.args id = int(req.get('id', 0)) if id < 1: return redirect(UrlManager.buildUrl("/finance/index")) pay_info = PayOrder.query.filter_by(id=id).first() member_info = Member.query.filter_by(id=pay_info.member_id).first() pay_item_info = PayOrderItem.query.filter_by(pay_order_id=id).first() address_info = MemberAddres.query.filter_by( member_id=member_info.id).first() if not pay_info: return redirect(UrlManager.buildUrl("/finance/index")) if not member_info: return redirect(UrlManager.buildUrl("/finance/index")) if not pay_item_info: return redirect(UrlManager.buildUrl("/finance/index")) ids = [id] pay_item_map = getDictList(PayOrderItem, PayOrderItem.pay_order_id, "pay_order_id", ids) pay_item_list = [] if pay_item_map: pay_item_list = pay_item_map[id] food_mapping = getDict(Food, Food.id, "id", []) resp_data['pay_info'] = pay_info resp_data['pay_item_list'] = pay_item_list resp_data['food_mapping'] = food_mapping resp_data['member_info'] = member_info resp_data['address_info'] = address_info resp_data['current'] = 'index' return ops_render("finance/pay_info.html", resp_data)
def myOrderList(): prompt = {'code': 200, "msg": "操作成功!", "data": {}} req = request.values member_info = memberInfo() if not member_info: prompt['code'] = -1 prompt['msg'] = "操作失败!" return jsonify(prompt) status = int(req['status']) if 'status' in req else 0 query = PayOrder.query.filter_by(member_id=member_info.id) if status == 0: # 已完成 query = query.filter(PayOrder.status == 0) elif status == 1: # 已支付 query = query.filter(PayOrder.status == 1) elif status == 2: # 待支付 query = query.filter(PayOrder.status == 2) elif status == 3: # 待确认 query = query.filter(PayOrder.status == 3) else: query = query.filter(PayOrder.status == 4) pay_order_list = query.order_by(PayOrder.id.desc()).all() data_order_list = [] if pay_order_list: order_ids = getfilter(pay_order_list, 'id') order_item = PayOrderItem.query.filter( PayOrderItem.pay_order_id.in_(order_ids)).all() food_ids = getfilter(order_item, 'food_id') food_map = getDict(Food, Food.id, "id", food_ids) order_item_map = {} if order_item: for item in order_item: if item.pay_order_id not in order_item_map: order_item_map[item.pay_order_id] = [] food_info = food_map[item.food_id] order_item_map[item.pay_order_id].append({ 'id': item.id, 'food_id': item.food_id, 'quantity': item.quantity, 'pic_url': food_info.image, 'name': food_info.name, }) for item in pay_order_list: tmp_data = { 'status': item.status, 'status_desc': item.status_desc, 'date': item.pay_time.strftime("%Y-%m-%d %H:%M:%S"), 'order_number': item.order_sn, 'note': item.note, 'total_price': str(item.total_price), 'goods_list': order_item_map[item.id] } data_order_list.append(tmp_data) prompt['data']['pay_order_list'] = data_order_list return jsonify(prompt)