Esempio n. 1
0
def list_order_service(data):
    """
    查询订单
    :param data: {
        "cond":{
            "type":"buy", # buy 购买 sell 出售
            "product_name": "sd", #书籍名称
            "status":0  #订单状态
        },
        "limit":8,
        "page":0
    }
    :return:
    """
    session = g.session
    buy_id = None
    sell_id = None
    if data["cond"]["type"] == "buy":
        buy_id = get_user_info()["user_id"]
    else:
        sell_id = get_user_info()["user_id"]
    # 分页
    limit = data['limit']
    offset = (data['page'] - 1) * data['limit']

    cond = data["cond"]

    result_sql = session.query(Order, Product).filter(
        Order.status.like('%' + str(cond['status']) +
                          '%') if cond['status'] is not None else "").join(
                              Product,
                              and_(
                                  Order.product_id == Product.id,
                                  Order.buyer_id == buy_id
                                  if buy_id is not None else "",
                                  Order.seller_id == sell_id
                                  if sell_id is not None else "",
                                  Product.name.like('%' +
                                                    str(cond['product_name']) +
                                                    '%')
                                  if cond['product_name'] is not None else ""))
    total = result_sql.count()
    sql_content = result_sql.order_by(
        Order.create_time.desc()).limit(limit).offset(offset)
    items = []
    for i in sql_content:
        c = dict()
        c["order"] = i[0].to_json()
        c["product"] = i[1].to_json()
        sql_seller = session.query(User).filter(
            User.id == i[0].seller_id).one()
        sql_buyer = session.query(User).filter(User.id == i[0].buyer_id).one()
        c["seller"] = sql_seller.to_json()
        c["buyer"] = sql_buyer.to_json()
        items.append(c)
    return True, items, total
Esempio n. 2
0
def add_question_service(data):
    """
    提问
    :param data:{
        "name": "",
        "detail": "",
        # "publisher_id": self.publisher_id,
        "category": "",
        "price": 15212
    }
    :return:
    """
    session = g.session
    data["publisher_id"] = get_user_info()["user_id"]
    # 扣钱
    user_sql = session.query(User).filter(
        User.id == data["publisher_id"]).one()
    if user_sql.balance < int(data["price"]):
        return False
    user_sql.balance = user_sql.balance - int(data["price"])
    question = Question()
    for key, value in data.items():
        setattr(question, key, value)
    session.add(question)
    session.commit()
    return True
Esempio n. 3
0
def add_order_service(data):
    """
    生成订单
    :param data:[
        {
            "product_id": 78, # 产品id
            "product_num": 2, # 产品数量
        }
    ]
    :return:
    """
    session = g.session
    user_id = get_user_info()["user_id"]
    for item in to_list(data):
        result = session.query(Product).filter(
            Product.id == item["product_id"]).one()
        order = Order()
        order.order_num = date_time(fmt="%Y%m%d%H%M%S") + str(user_id) + str(
            item["product_id"])
        order.product_id = item["product_id"]
        order.buyer_id = user_id
        order.seller_id = result.publisher_id
        order.product_num = item["product_num"]
        order.product_amount = item["product_num"] * result.price
        order.logistics_amount = result.logistics_price
        session.add(order)

    session.commit()
    return True
Esempio n. 4
0
def status_chat_service(data):
    """
    有无新消息
    :param data:{
        # "user_id":451
        "limit": 8,
        "page": 1
    }
    :return:
    """
    session = g.session
    user_id = get_user_info()["user_id"]
    # 分页
    limit = data['limit']
    offset = (data['page'] - 1) * data['limit']

    sql_result = session.query(ChatList).filter(ChatList.get_id == user_id)
    total = sql_result.count()
    sql_content = sql_result.order_by(ChatList.create_time.desc()).limit(limit).offset(offset)
    result = []
    for i in sql_content:
        c = i.to_json()
        sql_send = session.query(User).filter(User.id == i.send_id).one()
        sql_get = session.query(User).filter(User.id == i.get_id).one()
        c["send_user"] = sql_send.to_json()
        c["get_user"] = sql_get.to_json()
        result.append(c)

    return True, result, total
Esempio n. 5
0
def commit_delete():
    state = delete_comment_service(get_params()["id"],
                                   get_user_info()["user_id"])
    if state:
        return success_ret(msg.SUCCESS)
    else:
        return err_ret(msg.ERROR(1, "删除失败!"))
Esempio n. 6
0
def product_list():
    params = get_params()
    params["user_id"] = get_user_info()["user_id"]
    state, result, total = list_product_service(params)
    if state:
        return build_ret(success=state, msg='操作成功', total=total, data=result)
    else:
        return err_ret(msg.ERROR(1, "查询失败!"))
Esempio n. 7
0
def product_add():
    params = get_params()
    params["publisher_id"] = get_user_info()["user_id"]
    state = add_product_service(get_params())
    if state:
        return success_ret(msg.SUCCESS)
    else:
        return err_ret(msg.ERROR(1, "添加失败!"))
Esempio n. 8
0
def commit_add():
    params = get_params()
    params["user_id"] = get_user_info()["user_id"]
    state = add_comment_service(get_params())
    if state:
        return success_ret(msg.SUCCESS)
    else:
        return err_ret(msg.ERROR(1, "添加失败!"))
Esempio n. 9
0
def user_modify():
    """
    用户编辑
    :return:
    """
    params = get_params()
    telephone = get_user_info()["telephone"]
    return modify_service(telephone, params)
Esempio n. 10
0
def password_modify():
    """
    密码修改
    :return:
    """
    params = get_params()
    telephone = get_user_info()["telephone"]
    return modify_password_service(telephone, params["password"],
                                   params["old_password"])
Esempio n. 11
0
def logout_pretreat(token):
    """
    登出
    :param token:
    :return:
    """
    redis_server.delete(token)
    telephone = get_user_info()['telephone']
    redis_server.delete(redis_pre['token_pix'] + telephone)

    return True
Esempio n. 12
0
def payword_forget():
    """
    忘记支付密码
    :return:
    """
    params = get_params()
    telephone = get_user_info()["telephone"]
    # redis验证码和前端验证码比较
    code = redis_server.get(redis_pre['register_sms'] + str(telephone))
    if code and int(params["code"]) == int(code):
        redis_server.delete(redis_pre['register_sms'] + str(telephone))
        return forget_payword_service(telephone, params["pay_password"])
    return False, msg.A_CODE_TIMEOUT
Esempio n. 13
0
def add_reply_service(data):
    """
    回答提问
    :param data:{
        "content": self.content,
        "question_id": self.question_id
    }
    :return:
    """
    session = g.session
    data["reply_id"] = get_user_info()["user_id"]
    reply = Reply()
    for key, value in data.items():
        setattr(reply, key, value)
    session.add(reply)
    session.commit()
    return True
Esempio n. 14
0
def thumb_reply_service(data):
    """
    点赞
    :param data:{
        "id":465464
    }
    :return:
    """
    session = g.session
    user_id = get_user_info()["user_id"]
    question_sql = session.query(Reply).filter(
        Reply.id == data.pop("id")).one()
    question_sql.thumbs_num += 1
    if user_id in question_sql.thumbs_user.split(","):
        return False, msg.ERROR(1, "已点赞!")
    question_sql.thumbs_user = question_sql.thumbs_user + "," + str(user_id)
    session.commit()

    return True, msg.SUCCESS
Esempio n. 15
0
def agree_reply_service(data):
    """
    采纳回复
    :param data:{
        "id":465464
    }
    :return:
    """
    session = g.session
    user_id = get_user_info()["user_id"]
    reply_sql = session.query(Reply).filter(Reply.id == data.pop("id")).one()
    question_sql = session.query(Question).filter(
        Question.id == reply_sql.question_id).one()
    if question_sql.status is not 0:
        return False, msg.ERROR(1, "该问题已采纳!")
    question_sql.status = 1
    reply_sql.status = 1
    # 加钱
    user_sql = session.query(User).filter(User.id == user_id).one()
    user_sql.balance = user_sql.balance + question_sql.price
    session.commit()
    return True, msg.SUCCESS
Esempio n. 16
0
def add_chat_service(data):
    """
    发消息
    :param data:{
        # "send_id": "",
        "get_id": "",
        "content": ""
    }
    :return:
    """
    session = g.session
    data["send_id"] = get_user_info()["user_id"]
    if int(data["send_id"]) == int(data["get_id"]):
        return 2
    chat = Chat()
    for key, value in data.items():
        setattr(chat, key, value)
    # 标记接受者新消息
    sql_result = session.query(ChatList).filter(
        and_(
            ChatList.get_id == data["get_id"],
            ChatList.send_id == data["send_id"]
        )

    ).one_or_none()
    if sql_result:
        sql_result.status = 0
    else:
        chat_list = ChatList()
        chat_list.send_id = data["send_id"]
        chat_list.get_id = data["get_id"]
        chat_list.status = 0
        session.add(chat_list)
    session.add(chat)
    session.commit()
    return True
Esempio n. 17
0
def admin_user_list_():
    user_id = get_user_info()["user_id"]
    result = user_info(user_id)
    return build_ret(success=True, msg='操作成功', data=result)