Example #1
0
    def add_books_by_excel(self, user_id, file):
        """
        根据上传的 excel 更新书目库
        """
        user_service = UserService()
        user = user_service.query_user_by_id(user_id)
        try:
            df = pd.read_excel(file)
            for ix, row in df.iterrows():
                book = {}
                book['isbn'] = int(row.get('ISBN', ''))
                book['name'] = str(row.get('书名', ''))
                book['author'] = str(row.get('作者', '无'))
                book['press'] = str(row.get('出版社', ''))
                book['quantity'] = int(row.get('数量', ''))
                book['description'] = str(row.get('描述', '无'))
                book['price'] = float(row.get('定价', ''))
                book['supplier_id'] = str(user_id)
                book['supplier'] = str(user.get('区域', ''))
                book['discount'] = float(row.get('折扣', ''))

                self.book_update(book)

            return True

        except Exception as e:
            app.logger.error(e)
            return False
Example #2
0
    def book_add(self, user_id, book_info):
        """
        新增书目
        """
        if book_info:
            book = Book()
            book.isbn = book_info.get('isbn')
            book.name = book_info.get('name')
            book.author = book_info.get('author')
            book.press = book_info.get('press')
            book.quantity = book_info.get('quantity')
            book.description = book_info.get('description')
            book.price = book_info.get('price')
            book.discount = book_info.get('discount')
            book.supplier_id = user_id

            user_service = UserService()
            user_name = user_service.query_user_by_id(user_id).get('username')
            book.supplier = user_name
            book.is_active = 1

            db.session.add(book)
            db.session.flush()
            db.session.commit()

            return True

        return False
Example #3
0
def query_user_all():
    """
    @api {GET} /user/query/all 查询系统中所有的卖家
    @apiGroup Users
    @apiVersion 0.0.1
    @apiDescription 查询系统中所有的卖家
    @apiSuccess (200) {String} msg 信息
    @apiSuccess (200) {int} code 0 代表无错误 1代表有错误
    @apiSuccessExample {json} 返回样例:
                   {
                        "status": "ok",
                        "payload":{
                            "user_id": 123,
                            "nickname": "guest"
                        }
                    }
    @apiError (400) {String} msg 信息
    @apiErrorExample {json} 返回样例:
                   {"status": "fail", "message": "用户不存在"}
    """
    user_id = current_user.id
    users = UserService.query_user_all()

    # 过滤自己
    if users.get(user_id, None):
        users.pop(user_id)

    return make_api_response(payload=users)
Example #4
0
def query_user_info(username):
    """
    @api {GET} /user/query/<username> 根据用户名查询用户信息
    @apiGroup Users
    @apiVersion 0.0.1
    @apiDescription 根据用户名查询用户信息
    @apiSuccess (200) {String} msg 信息
    @apiSuccess (200) {int} code 0 代表无错误 1代表有错误
    @apiParam {String} username 用户账户名
    @apiSuccessExample {json} 返回样例:
                   {
                        "status": "ok",
                        "payload":{
                            "id": 123,
                            "realname": "132",
                            "username": "******",
                            "phone": "pwd",
                            "mail": "*****@*****.**",
                            "nickname": "guest",
                            "gender": "23",
                            "password": "******",
                            "qq": "12312"
                        }
                    }
    @apiError (400) {String} msg 信息
    @apiErrorExample {json} 返回样例:
                   {"status": "fail", "message": "用户不存在"}
    """
    user_id = current_user.id
    userinfo = UserService.query_user_by_name(username=username)

    if userinfo:
        return make_api_response(payload=userinfo)
    else:
        return make_api_response(message="用户不存在", statusCode=400)
Example #5
0
def query_account_info_by_name(name):
    """
    @api {GET} /account/query_by_name/<name> 根据用户名查询用户账户信息
    @apiGroup Users
    @apiVersion 0.0.1
    @apiDescription 根据用户名查询用户账户信息
    @apiSuccess (200) {String} msg 信息
    @apiSuccess (200) {int} code 0 代表无错误 1代表有错误
    @apiSuccessExample {json} 返回样例:
                   {
                        "status": "ok",
                        "payload":{
                            "user_id": "132",
                            "balance": "1283.23",
                            "bonus_point": "3000",
                            "discount": "0.75"
                        }
                    }
    @apiError (400) {String} msg 信息
    @apiErrorExample {json} 返回样例:
                   {"status": "fail", "message": "用户不存在"}
    """
    user = UserService.query_user_by_name(username=name)
    if user is None:
        return make_api_response(message="用户不存在", statusCode=400)

    user_id = user.get('id', 0)
    account_info = AccountService.account_query(user_id=user_id)

    if account_info:
        return make_api_response(payload=account_info)
    else:
        return make_api_response(message="用户不存在", statusCode=400)
Example #6
0
def update_user_info():
    """
    @api {POST} /profile/query 查询用户信息
    @apiGroup Users
    @apiVersion 0.0.1
    @apiDescription 用于更新用户资料
    @apiParam {String} username 用户账户名
    @apiParamExample {json} 请求样例:
                    {
                        "realname": "132",
                        "username": "******",
                        "phone": "1312312312",
                        "mail": "*****@*****.**",
                        "nickname": "guest",
                        "gender": "23",
                        "qq": "123122"
                    }
    @apiSuccess (200) {String} msg 信息
    @apiSuccess (200) {int} code 0 代表无错误 1代表有错误
    """
    # 获取参数
    user_name = request.json['username']
    display_name = request.json['nickname']
    real_name = request.json['realname']
    gender = request.json['gender']
    mail = request.json['mail']
    phone = request.json['phone']
    qq = request.json['qq']

    userinfo = {
        'username': user_name,
        'nickname': display_name,
        'realname': real_name,
        'gender': gender,
        'mail': mail,
        'phone': phone,
        'qq': qq
    }
    # 创建用户的操作
    UserService.update_userinfo(userinfo)

    return make_api_response()
Example #7
0
def query_user_info():
    """
    @api {GET} /profile/query 查询用户信息
    @apiGroup Users
    @apiVersion 0.0.1
    @apiDescription 用于查询用户资料
    @apiSuccess (200) {String} msg 信息
    @apiSuccess (200) {int} code 0 代表无错误 1代表有错误
    @apiSuccessExample {json} 返回样例:
                   {
                        "status": "ok",
                        "payload":{
                            "realname": "132",
                            "username": "******",
                            "phone": "pwd",
                            "mail": "*****@*****.**",
                            "nickname": "guest",
                            "gender": "23",
                            "password": "******",
                            "qq": "12312",
                            "is_admin": True
                        }
                    }
    @apiError (400) {String} msg 信息
    @apiErrorExample {json} 返回样例:
                   {"status": "fail", "message": "用户不存在"}
    """
    user_id = current_user.id
    userinfo = UserService.query_user_by_id(userid=user_id)

    if userinfo:
        is_admin = UserService.is_admin(user_id=user_id)
        if is_admin and is_admin == 1:
            is_admin = True
        else:
            is_admin = False
        userinfo['is_admin'] = is_admin

        return make_api_response(payload=userinfo)
    else:
        return make_api_response(message="用户不存在", statusCode=400)
Example #8
0
def update_user_password_by_id():
    """
    @api {POST} /user/password/update_by_id 修改用户密码
    @apiGroup Users
    @apiVersion 0.0.1
    @apiDescription 用于用户更新自己的密码
    @apiParam {String} password 密码
    @apiParamExample {json} 请求样例:
                    {
                        "password": "******"
                    }
    @apiSuccess (200) {String} msg 信息
    @apiSuccess (200) {int} code 0 代表无错误 1代表有错误
    """

    userid = current_user.id
    password = request.json['password']

    UserService.update_user_password_by_name(userid, password)

    return make_api_response()
Example #9
0
def admin_query_ongoing_orders():
    """
    @api {POST} /order/admin/query/ongoing 管理员查询用户对应的进行中的购货订单信息
    @apiGroup Order
    @apiVersion 0.0.1
    @apiDescription 用于查询用户进行中的购货订单信息
    @apiParamExample {json} 请求样例:
                    {
                        ["nickName": "guest"],
                        ["orderId": "123"],
                        ["fromDate": "2018-02-01"],
                        ["toDate": "2018-03-01"]
                    }
    @apiSuccess (200) {String} msg 信息
    @apiSuccess (200) {int} code 0 代表无错误 1代表有错误
    @apiSuccessExample {json} 返回样例:
                        {
                            "payload": {
                                "12": {
                                "user_id": 123,
                                "order_id": 12,
                                "quantity": 1,
                                "origin_cost": 22.0,
                                "pay_status": 1,
                                "order_status": 1,
                                "actual_cost": 22.0,
                                "delivery_status": 1
                                }
                            },
                            "status": "ok"
                        }

    @apiError (400) {String} msg 信息
    @apiErrorExample {json} 返回样例:
                   {"status": "fail", "message": "用户不存在"}
    """
    from_date = request.json.get('fromDate')
    to_date = request.json.get('toDate')
    order_id = request.json.get('orderId')
    nick_name = request.json.get('nickName')
    user_id = None

    if nick_name:
        user_id = UserService.get_id_by_nickname(nick_name)

        if not user_id:
            return make_api_response(message="用户不存在", statusCode=400)

    orders = OrderService.admin_order_query_by_uid_date(
        user_id, order_id, 1, from_date, to_date, 2)

    return make_api_response(payload=orders)
Example #10
0
def update_user_password_by_name():
    """
    @api {POST} /user/password/update_by_name 修改用户密码
    @apiGroup Users
    @apiVersion 0.0.1
    @apiDescription 用于管理员更新用户密码
    @apiParam {String} username 用户账户名
    @apiParam {String} password 密码
    @apiParamExample {json} 请求样例:
                    {
                        "username": "******"
                        "password": "******"
                    }
    @apiSuccess (200) {String} msg 信息
    @apiSuccess (200) {int} code 0 代表无错误 1代表有错误
    """

    username = request.json['username']
    password = request.json['password']

    UserService.update_user_password_by_name(username, password)

    return make_api_response()
Example #11
0
def login():
    """
    @api {POST} /login 登录
    @apiGroup Users
    @apiVersion 0.0.1
    @apiDescription 用于用户登录
    @apiParam {String} username 用户账户名
    @apiParam {String} password 密码
    @apiParamExample {json} 请求样例:
                    {
                        "username": "******",
                        "password": "******"
                    }
    @apiSuccess (200) {String} msg 信息
    @apiSuccess (200) {int} code 0 代表无错误 1代表有错误
    @apiSuccessExample {json} 返回样例:
                   {"status":"ok", "message": ""}
    @apiError (400) {String} msg 信息
    @apiErrorExample {json} 返回样例:
                   {"status": "fail", "message": "参数错误:缺少用户名或密码"}
                   {"status": "fail", "message": "参数错误:用户名或密码错误"}
    """
    username = request.json['username']
    password = request.json['password']
    app.logger.error(username)
    app.logger.error(password)
    if not username or not password:
        return make_api_response(message='参数错误:缺少用户名或密码', statusCode=400)

    (result, user) = UserService.login(username, password)

    if not result:
        return make_api_response(message='用户名或密码错误', statusCode=400)

    login_user(user)
    app.logger.info('%s Login' % user.username)

    return make_api_response()
Example #12
0
 def load_user(id):
     from bookStore.service.user.user import UserService
     return UserService.get(id)
Example #13
0
def register():
    """
    @api {POST} /register 注册用户
    @apiGroup Users
    @apiVersion 0.0.1
    @apiDescription 用于注册用户
    @apiParam {String} username 用户账户名
    @apiParam {String} nickname 昵称
    @apiParam {String} realname 真实姓名
    @apiParam {String} password 密码
    @apiParam {String} pwdquestion 密码提示问题
    @apiParam {String} pwdanswer 密码提示问题答案
    @apiParam {String} gender 性别
    @apiParam {String} mail 邮箱
    @apiParam {String} phone 联系电话
    @apiParam {String} qq QQ
    @apiParamExample {json} 请求样例:
                    {
                        "username": "******",
                        "nickname": "guest",
                        "realname": "132",
                        "password": "******",
                        "pwdquestion": "none",
                        "pwdanswer": "none",
                        "gender": "23",
                        "mail": "*****@*****.**",
                        "phone": 1231232,
                        "qq":12312
                    }
    @apiSuccess (200) {String} msg 信息
    @apiSuccess (200) {int} code 0 代表无错误 1代表有错误
    @apiSuccessExample {json} 返回样例:
                   {"status":"ok", "message": ""}

    @apiError (400) {String} msg 信息
    @apiErrorExample {json} 返回样例:
                   {"status": "fail", "message": "参数错误:缺少用户名或密码"}
                   {"status": "fail", "message": "参数错误:用户名已存在"}
    """
    # 获取参数
    user_name = request.json['username']
    display_name = request.json['nickname']
    real_name = request.json['realname']
    password = request.json['password']
    pwd_question = request.json['pwdquestion']
    pwd_answer = request.json['pwdanswer']
    gender = request.json['gender']
    mail = request.json['mail']
    phone = request.json['phone']
    qq = request.json['qq']

    if not user_name or not password:
        return make_api_response(message='参数错误:缺少用户名或密码', statusCode=400)

    user = UserService.query_user_by_name(username=user_name)
    logger.debug(user)
    if user is not None:
        return make_api_response(message='用户名已存在', statusCode=400)

    userinfo = {
        'username': user_name,
        'nickname': display_name,
        'realname': real_name,
        'password': password,
        'question': pwd_question,
        'answer': pwd_answer,
        'gender': gender,
        'mail': mail,
        'phone': phone,
        'qq': qq
    }
    # 创建用户的操作
    ok = UserService.create_user(userinfo)
    db.session.commit()

    return make_api_response()