示例#1
0
def get_groupon_orders():
    args = request.args
    status = args.get("status")
    page = args.get("page", 1)
    page_count = args.get("page_count", 20)

    openid = get_current_user_openid()
    current_user = User.get_user_by_openid(openid)
    if not current_user:
        ret = ret_dict("3000")
        return jsonify(ret)
    orders = GrouponOrder.get_orders_by_status_user(status, current_user.id, page, page_count)
    ret = ret_dict("0000")
    ret["orderList"] = [
        {
            "title": order.groupon_title,
            "count": order.count,
            "totalFee": order.total_fee,
            "shippingFee": order.groupon.shipping_fee,
            "status": order.order_status,
            "orderID": order.id,
        }
        for order in orders
    ]
    return jsonify(ret)
示例#2
0
def get_user_house_info():
    # TODO: 通过opneid获取用户信息
    openid = get_current_user_openid()
    user = User.get_user_by_openid(openid)
    info_list = []
    ret = {}
    if user:
        for accocs in user.house_accocs:
            house = accocs.house
            if house:
                info = {}
                info["houseCode"] = house.id
                info["address"] = (
                    house.building.cell.cell_name + house.building.building_name + house.room_number
                )  # 小区 + 楼栋 + 门牌号
                info["userType"] = accocs.user_type
                info["userPhone"] = accocs.user_phone
                info_list.append(info)

                ret = {"retCode": "0000", "retMsg": "success", "houseInfoList": info_list}
            else:
                ret = {"retCode": "3000", "retMsg": "该用户没有对应房产信息"}
    else:
        ret = {"retCode": "3000", "retMsg": "没有对应用户"}

    return jsonify(ret)
示例#3
0
def commit_groupon_order():
    """
    穿件团购订单
    :return:
    """
    args = request.args
    groupon_id = args.get("groupon_id")
    count = args.get("count")
    address = args.get("address")
    name = args.get("name")
    phone = args.get("phone")
    openid = get_current_user_openid()
    current_user = User.get_user_by_openid(openid)
    user_area = current_user.residential_area
    groupon = Groupon.get_groupon(groupon_id=groupon_id)
    product = groupon.product
    if not current_user:
        return jsonify(ret_dict("1000"))
    if not groupon:
        return jsonify(ret_dict("3000"))
    if not user_area:
        ret = {"retCode": "3000", "retMsg": "无法确定用户在哪个地区:用户id:" + str(current_user.id)}
        return jsonify(ret)
    if not product:
        ret = {"retCode": "5000", "retMsg": "没有关联的产品,请确认团购信息正确,groupon_id" + str(groupon.id)}
        return jsonify(ret)
    groupon_order = GrouponOrder()
    groupon_order.groupon_id = groupon_id
    groupon_order.user_id = current_user.id
    groupon_order.residential_area_id = user_area.id
    groupon_order.create_time = time.time()
    groupon_order.order_status = DefaultConfig.GROUPON_ORDER_STATUS_NEW
    groupon_order.user_phone = phone
    groupon_order.user_name = name
    groupon_order.groupon_title = groupon.title
    groupon_order.groupon_price = groupon.groupon_price
    groupon_order.product_title = product.title
    groupon_order.product_type = product.category
    groupon_order.area_name = user_area.area_name
    groupon_order.area_province = user_area.province.area_name
    groupon_order.area_city = user_area.city.area_name
    groupon_order.area_zone = user_area.zone.area_name
    groupon_order.area_stree = user_area.stree
    groupon_order.count = count
    groupon_order.total_fee = count * groupon.groupon_price + groupon.shipping_fee
    db.session.add(groupon_order)
    try:
        db.session.commit()
        order_id = groupon_order.id
        # 更新groupon的sold_count
        groupon.sold_count += 1
    except IntegrityError, ex:
        ret = {"retCode": "5000", "retMsg": "外键依赖错误:" + ex.message}
        return jsonify(ret)
示例#4
0
def delete_house_info():
    if request.method == "POST":
        house_id = request.form.get("house_code")
        if house_id is None:
            return jsonify({"retCode": "3000", "retMsg": "参数错误"})
        # TODO get_current_user_openid()  未实现
        user = User.get_user_by_openid(get_current_user_openid())
        if user:
            user_id = user.id
            user2house = UserHouseTable.get_user_house(user_id, house_id)
            if user2house:
                db.session.delete(user2house)
                db.session.commit()
                return jsonify({"retCode": "0000", "retMsg": "删除成功"})
            else:
                # 不错在用户的对应关系
                return jsonify({"retCode": "3000", "retMsg": "没有对应的关系"})
    return jsonify({"retCode": "5000", "retMsg": "未知错误"})
示例#5
0
def fix_order_list():
    open_id = get_current_user_openid()
    user = User.get_user_by_openid(open_id)
    if user:
        # 获取所有的修理订单
        fix_order_list = []
        for accocs in user.house_accocs:
            house = accocs.house
            if house:
                fix_order_list.append(house.fix_orders)

        fix_order_list = get_all_element_in_list(fix_order_list)
        # 格式化返回数据
        ret = ret_dict()
        data_list = []

        for order in fix_order_list:
            data = {"fixOrderID": order.id, "content": order.problem, "timeStr": order.time, "status": order.status}
            data_list.append(data)
        ret["fixOrderList"] = data_list
        return jsonify(ret)
    else:
        return jsonify(ret_dict("3000"))
示例#6
0
def update_house_info():
    """
    更新房产信息,TODO:也许需要在用户和房屋关联表中添加phone和name
    :return:
    """
    openid = get_current_user_openid()
    user = User.get_user_by_openid(openid)
    args = request.args
    house_id = args.get("code")
    user_house = UserHouseTable.get_user_house(user.id, house_id)
    ret = {"retCode": "0000", "retMsg": ""}
    if user_house:
        user_house.user_type = args.get("type")
    user.phone = args.get("phone")
    user.login_name = args.get("name")

    try:
        if user_house:
            user_house.save()
        user.save()
    except Exception:
        ret = {"retCode": "5000", "retMsg": Exception.message}
    return jsonify(ret)
示例#7
0
def commit_customer_review():
    args = request.args
    openid = get_current_user_openid()
    current_user = User.get_user_by_openid(openid)
    if not current_user:
        ret = ret_dict("3000")
        return jsonify(ret)

    groupon_id = args.get("groupon_id")
    score = args.get("score")
    content = args.get("content")
    customer_review = CustomerReviews()
    customer_review.score = score
    customer_review.user_id = current_user.id
    customer_review.groupon_id = groupon_id
    customer_review.create_time = time.time()
    customer_review.content = content
    db.session.add(customer_review)
    try:
        db.session.flush()
        db.session.commit()
    except IntegrityError, ex:
        ret = {"retCode": "5000", "retMsg": "插入数据外键依赖错误" + ex.message}
        return jsonify(ret)