Example #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)
Example #2
0
def get_groupon_customer_reviews():
    groupon_id = request.args.get("groupon_id")
    if not groupon_id:
        ret = ret_dict("3000")
        return jsonify(ret)
    page_count = request.args.get("page_count", 20)
    page_num = request.args.get("page", 1)
    index_start = (page_num - 1) * 20
    index_end = index_start + page_count
    statics_data = CustomerReviews.get_statics_data(groupon_id)
    groupon = Groupon.get_groupon(groupon_id)
    reviews = groupon.customer_reviews[index_start:index_end]
    ret = ret_dict("0000")
    data = {
        "vagScore": statics_data["avg_score"],
        "reviewsCount": statics_data["reviews_count"],
        "pageCount": page_count,
        "page": page_num,
        "sum": len(reviews),
        "reviewList": [
            {
                "userID": review.user.id,
                "nickname": review.user.wechat_nickname,
                "score": review.score,
                "content": review.content,
                "uuid": review.user.headimg_url,
            }
            for review in reviews
        ],
    }

    return jsonify(dict(ret, **data))
Example #3
0
def get_groupon_detail():
    """
    获取团购详情
    :return:
    """
    groupon_id = request.args.get("groupon_id")
    groupon = Groupon.get_groupon(groupon_id)
    product = groupon.product
    product_imgas = product.images
    ret = ret_dict()
    if not groupon:
        ret = ret_dict("3000")
        ret["retMsg"] = "找不到团购详情"
    else:
        info = {
            "status": groupon.groupon_status,
            "title": groupon.title,
            "price": groupon.groupon_price,
            "originPrice": product.orginal_price,
            "endTime": groupon.end_time,
            "shipWay": groupon.ship_way,
            "shipping_fee": groupon.shipping_fee,
            "count": groupon.sold_count,
            "product_content": product.content,
            "product_imgs": [{"img_url": img.img_url, "img_order": img.order} for img in product.images],
            "uuid": groupon.profile_img,
        }
    ret = dict(ret, **info)
    return jsonify(ret)
Example #4
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)
Example #5
0
def delete_fix_order():
    # TODO:to fix
    fix_order_id = request.args.get("fix_order_id")
    if not fix_order_id:
        return jsonify(ret_dict("3000"))

    try:
        db.session.commit()
    except Exception, e:
        db.session.rollback()
        raise e
Example #6
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"))
Example #7
0
def get_fix_order_profile(fix_order_id):
    # 获取基本信息
    fix_order = FixOrder.get_by_id(fix_order_id)
    if fix_order is None:
        return ret_dict("3000")
    house = fix_order.house_info
    data = {
        "houseCode": fix_order.house_info_id,
        "content": fix_order.problem,
        "timeStr": fix_order.time,
        "addr": house.building.cell.cell_name + house.building.building_name + house.room_number,
        "status": fix_order.status,
    }

    # 获取图片列表,返回图片的url
    imgs = fix_order.imgs
    imgURLs = []
    for img in imgs:
        img_name = get_fix_order_img_url(img.img_name)
        imgURLs.append(img_name)
    data["imgURLs"] = imgURLs
    ret = ret_dict()
    ret["fixOrder"] = data
    return jsonify(ret)
Example #8
0
def get_groupon_order_by_id():
    order_id = request.args.get("order_id")
    order = GrouponOrder.get_groupon_order_by_id(order_id)
    ret = ret_dict("0000")
    if not order:
        ret["orderDetail"] = None
        return jsonify(ret)
    ret["orderDetail"] = {
        "title": order.groupon_title,
        "count": order.count,
        "totalFee": order.total_fee,
        "shippingFee": order.groupon.shipping_fee,
        "status": order.order_status,
        "orderID": order.id,
    }
    return jsonify(ret)
Example #9
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)
Example #10
0
        db.session.add(fix_order_img)


@wechat_front.route("/delete_fix_order", methods=["GET", "POST"])
def delete_fix_order():
    # TODO:to fix
    fix_order_id = request.args.get("fix_order_id")
    if not fix_order_id:
        return jsonify(ret_dict("3000"))

    try:
        db.session.commit()
    except Exception, e:
        db.session.rollback()
        raise e
    return jsonify(ret_dict("0000"))


@wechat_front.route("/fix_order_list", methods=["GET", "POST"])
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)