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
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
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)
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)
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)
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()
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)
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()
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)
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()
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()
def load_user(id): from bookStore.service.user.user import UserService return UserService.get(id)
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()