Exemplo n.º 1
0
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)
Exemplo n.º 2
0
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)
Exemplo n.º 3
0
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)
Exemplo n.º 4
0
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
Exemplo n.º 5
0
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)
Exemplo n.º 6
0
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)