def upload_post(): """ 上传头像 :return: """ f = request.files.get('avatar') # 校验存在性 if f is None: current_app.logger.error('params error') return fail_warp(errors['101']), 400 if not allowed_file(f.filename): current_app.logger.error('file error') return fail_warp(errors['102']), 400 name = deal_img('avatar', f) try: avatar = save_avatar(name) current_app.logger.info('delete user success %s', str({ 'avatar_id': avatar.id, })) return success_warp({'avatar_id': avatar.id}) except SQLAlchemyError as e: current_app.logger.error(e) return fail_warp(errors['501']), 500
def recommend_get(): """ 获得推荐消息 :return: """ user_id = session['user_id'] role = session['type'] data = request.args limit = int(data.get('limit')) if data.get('limit') is not None else 20 page = int(data.get('page')) if data.get('page') is not None else 0 start_time = data.get('start_time') end_time = data.get('end_time') nickname = data.get('nick_time') content = data.get('content') try: count, res = GetRecommend(role).get_recommend(limit, page, start_time, end_time, nickname, content, user_id) current_app.logger.info({ 'count': count, 'res': res }) return success_warp({ 'count': count, 'res': res }) except SQLAlchemyError as e: current_app.logger.error(e) return fail_warp(e.args[0]), 500 except RuntimeError as e: current_app.logger.error(e) return fail_warp(e.args[0]), 500
def post_gallery(): """ 添加分类 """ user_id = session['user_id'] data = request.json name = data.get('name') if name is None or name == '': current_app.logger.error('gallery info %s', str({ 'name': name, })) return fail_warp(errors['101']), 400 try: id = post_dir(name, user_id) current_app.logger.info('gallery post %s', str({ 'name': name, 'id': id })) return success_warp({'id': id}) except SQLAlchemyError as e: current_app.logger.error(e) return fail_warp(e.args[0]), 500 except RuntimeError as e: current_app.logger.error(e) return fail_warp(e.args[0]), 500
def recommend_put(recommend_id): user_id = session['user_id'] role = session['type'] data = request.json content = data.get('content') new_img_id = data.get('new_img_id') old_img_id = data.get('old_img_id') if new_img_id is None or type(new_img_id) != list or \ old_img_id is None or type(old_img_id) != list: current_app.logger.error('put recommend info %s', str({ 'content': content, 'new_img': new_img_id, 'old_img': old_img_id })) return fail_warp(errors['101']), 400 try: recommend_id = GetRecommend(role).put_recommend(content, new_img_id, old_img_id, user_id, recommend_id) executor.submit(label_recommend, recommend_id, current_app._get_current_object()) current_app.logger.info('put recommend %s', str({ 'content': content, 'new_img': new_img_id, 'old_img': old_img_id, 'recommend': recommend_id })) return success_warp('put recommend success') except SQLAlchemyError as e: current_app.logger.error(e) return fail_warp(e.args[0]), 500 except RuntimeError as e: current_app.logger.error(e) return fail_warp(e.args[0]), 500
def user_delete(): """ 删除用户 :return: """ user_id = session['user_id'] data = request.json.get('user_id') if type(data) != list: current_app.logger.error('params error %s', str({'body': data})) return fail_warp(errors['101']), 400 try: delete_user(data, user_id) current_app.logger.info('delete user success %s', str({ 'parent': user_id, 'username': data })) return success_warp('delete success') except SQLAlchemyError as e: current_app.logger.error(e) return fail_warp(errors['501']), 500 except RuntimeError as e: current_app.logger.error(e) return fail_warp(e.args[0]), 500
def put_gallery(dir_id: int): """ 修改分类名称 """ user_id = session['user_id'] data = request.json new_name = data.get('name') if new_name is None or new_name == '': current_app.logger.error('gallery info %s', str({ 'name': new_name, })) return fail_warp(errors['101']), 400 try: put_dir(dir_id, new_name, user_id) current_app.logger.info('gallery put %s', str({ 'id': dir_id, 'new_name': new_name })) return success_warp('修改成功') except SQLAlchemyError as e: current_app.logger.error(e) return fail_warp(e.args[0]), 500 except RuntimeError as e: current_app.logger.error(e) return fail_warp(e.args[0]), 500
def put_move_img(): user_id = session['user_id'] data = request.json img_id = data.get('img_id') file_id = data.get('file_id') if type(img_id) != int or type(file_id) != int: current_app.logger.error('img move %s', str({ 'img_id': img_id, 'file_id': file_id })) return fail_warp(errors['101']), 400 try: put_dir_img_move(img_id, file_id, user_id) current_app.logger.info( 'img delete %s', str({ 'id': img_id, 'file_id': file_id, 'user': user_id })) return success_warp('移动成功') except SQLAlchemyError as e: current_app.logger.error(e) return fail_warp(e.args[0]), 500 except RuntimeError as e: current_app.logger.error(e) return fail_warp(e.args[0]), 500
def recommend_post(): """ 发送推荐消息 :return: """ user_id = session['user_id'] role = session['type'] data = request.json content = data.get('content') img = data.get('img') if img is None or type(img) != list: current_app.logger.error('recommend info %s', str({ 'content': content, 'img': img })) return fail_warp(errors['101']), 400 try: recommend_id = GetRecommend(role).post_recommend(content, img, user_id) executor.submit(label_recommend, recommend_id, current_app._get_current_object()) current_app.logger.info('recommend info %s', str({ 'content': content, 'img': img, 'user_id': user_id })) return success_warp('add recommend success') except SQLAlchemyError as e: current_app.logger.error(e) return fail_warp(e.args[0]), 500 except RuntimeError as e: current_app.logger.error(e) return fail_warp(e.args[0]), 500
def upload_img(): """ 上传推荐消息图片 :return: """ user_id = session['user_id'] f = request.files.get('img') # 校验存在性 if f is None: current_app.logger.error('params error') return fail_warp(errors['101']), 400 if not allowed_file(f.filename): current_app.logger.error('file error') return fail_warp(errors['102']), 400 name = deal_img('img', f) try: img = save_img(name, user_id) current_app.logger.info('delete user success %s', str({ 'avatar_id': img.id, })) return success_warp({ 'img_id': img.id }) except SQLAlchemyError as e: current_app.logger.error(e) return fail_warp(errors['501']), 500
def delete_comment(): user_id = session['user_id'] role = session['type'] data = request.json level = data.get('level') comment_id = data.get('comment_id') if (level != 1 and level != 2) or type(comment_id) != int: current_app.logger.error( 'params error %s', str({ 'comment_id': comment_id, 'level': level, 'user_id': user_id })) return fail_warp(errors['101']), 400 try: CommentFactory(role, level).delete_item(comment_id, user_id) current_app.logger.info({ 'comment_id': comment_id, 'level': level, 'user_id': user_id }) return success_warp('删除成功') except SQLAlchemyError as e: current_app.logger.error(e) return fail_warp(e.args[0]), 500 except RuntimeError as e: current_app.logger.error(e) return fail_warp(e.args[0]), 500
def record_get(): data = request.args start = data.get('start') end = data.get('end') if start is None or re.match('^[0-9]{4}-[0-9]{2}-[0-9]{2}', start) is None or \ end is None or re.match('^[0-9]{4}-[0-9]{2}-[0-9]{2}', end) is None: current_app.logger.error('record error %s', str({ 'start': start, 'end': end })) return fail_warp(errors['101']) start = datetime.datetime.strptime(start, '%Y-%m-%d') end = datetime.datetime.strptime(end, '%Y-%m-%d') try: temp = RecordBuild(start, end).get_res() current_app.logger.info('record info %s', str({'data': temp})) return success_warp(temp) except SQLAlchemyError as e: current_app.logger.error(e) return fail_warp(e.args[0]), 500 except RuntimeError as e: current_app.logger.error(e) return fail_warp(e.args[0]), 500
def notice_delete(): """ 删除通知接口 :return: """ user_id = session['user_id'] role = session['type'] data = request.json notice_id = data.get('notice_id') if notice_id is None or type(notice_id) != list: current_app.logger.error('params error %s', str({ 'notice_id': notice_id })) return fail_warp(errors['101']), 400 try: GetNotice(role).delete_notice(user_id, notice_id) current_app.logger.info('delete notice success %s', str({ 'notice_id': notice_id, 'user_id': user_id })) return success_warp('delete notice success') except SQLAlchemyError as e: current_app.logger.error(e) return fail_warp(e.args[0]), 500 except RuntimeError as e: current_app.logger.error(e) return fail_warp(e.args[0]), 500
def notice_get(): """ 获取通知 :return: """ user_id = session['user_id'] role = session['type'] limit = int(request.args.get('limit')) if request.args.get('limit') is not None else 20 page = int(request.args.get('page')) if request.args.get('page') is not None else 0 start_time = request.args.get('start_time') end_time = request.args.get('end_time') notice_type = request.args.get('type') title = request.args.get('title') try: count, res = GetNotice(role). \ get_all_res(user_id, limit, page, start_time, end_time, notice_type, title) current_app.logger.info({ 'count': count, 'notice': res }) return success_warp({ 'count': count, 'notice': res }) except SQLAlchemyError as e: current_app.logger.error(e) return fail_warp(e.args[0]), 500 except RuntimeError as e: current_app.logger.error(e) return fail_warp(e.args[0]), 500
def style_get(): try: data = get_tags() current_app.logger.info('return style success') return success_warp(data) except SQLAlchemyError as e: current_app.logger.error(e) return fail_warp(e.args[0]), 500
def login_delete(): """ 退出登陆 :return: """ user_id = session.get('user_id') session.clear() current_app.logger.info('logout success %s', str({'user_id': user_id})) return success_warp('logout success')
def user_put(this_user): """ 修改用户信息 :param this_user: :return: """ user_id = session['user_id'] nickname = request.json.get('nickname') sex = request.json.get('sex') email = request.json.get('email') phone = request.json.get('phone') avatar = request.json.get('avatar') # 一级参数检验 if nickname is None or nickname == '' or \ sex is None or sex == '' or \ email is None or phone is None or \ type(avatar) != dict or this_user is None: current_app.logger.error( 'params error %s', str({ 'nickname': nickname, 'sex': sex, 'email': email, 'phone': phone, 'avatar': avatar })) return fail_warp(errors['101']), 400 old_avatar, new_avatar = avatar.get('old_id'), avatar.get('new_id') if old_avatar is None or new_avatar is None: current_app.logger.error('params error %s', str({'avatar': avatar})) return fail_warp(errors['101']), 400 try: change_user_info(user_id, this_user, nickname, sex, email, phone, avatar) current_app.logger.info( 'change user info success %s', str({ 'nickname': nickname, 'sex': sex, 'email': email, 'phone': phone, 'avatar': avatar })) return success_warp('update success') except SQLAlchemyError as e: current_app.logger.error(e) return fail_warp(e.args[0]), 500 except RuntimeError as e: current_app.logger.error(e) return fail_warp(e.args[0]), 500
def delete_gallery(dir_id: int): """ 删除分类 """ user_id = session['user_id'] try: delete_dir(dir_id, user_id) current_app.logger.info('gallery delete %s', str({'id': dir_id})) return success_warp('删除成功') except SQLAlchemyError as e: current_app.logger.error(e) return fail_warp(e.args[0]), 500 except RuntimeError as e: current_app.logger.error(e) return fail_warp(e.args[0]), 500
def user_get_detail(this_user): """ 得到某一用户的信息 :param this_user: :return: """ user_id = session['user_id'] role = session['type'] try: user = get_user_detail(user_id, this_user, role) current_app.logger.info('user detail %s', str(user)) return success_warp(user) except SQLAlchemyError as e: current_app.logger.error(e) return fail_warp(errors['501']), 500 except RuntimeError as e: current_app.logger.error(e) return fail_warp(e.args[0]), 500
def user_get_all_user(): """ 得到所有用户信息 :return: """ user_id = session['user_id'] username = request.args.get('username') try: user, count = get_user(user_id, username) current_app.logger.info('user info %s', str({ 'user': user, 'total': count })) return success_warp({'user': user, 'total': count}) except SQLAlchemyError as e: current_app.logger.error(e) return fail_warp(errors['501']), 500
def password_put(this_user): """ 修改密码 :param this_user: :return: """ user_id = session['user_id'] data = request.json new_password = data.get('new_password') old_password = data.get('old_password') if user_id == this_user: if new_password is None or new_password == '' or \ old_password is None or old_password == '': current_app.logger.error( 'params error %s', str({ 'new_password': new_password, 'old_password': old_password })) return fail_warp(errors['101']), 400 else: if new_password is None or new_password == '': current_app.logger.error( 'params error %s', str({ 'new_password': new_password, 'old_password': old_password })) return fail_warp(errors['101']), 400 try: change_password(user_id, this_user, encode_md5(new_password), encode_md5(old_password)) current_app.logger.info('change password success %s', str({'this_user': this_user})) return success_warp('update success') except SQLAlchemyError as e: current_app.logger.error(e) return fail_warp(e.args[0]), 500 except RuntimeError as e: current_app.logger.error(e) return fail_warp(e.args[0]), 500
def notice_get_detail(notice_id: int): """ 获取通知详情 :param notice_id: :return: """ user_id = session['user_id'] role = session['type'] try: res = GetNotice(role).get_detail_res(user_id, notice_id) current_app.logger.info({ 'notice': res }) return success_warp(res) except SQLAlchemyError as e: current_app.logger.error(e) return fail_warp(e.args[0]), 500 except RuntimeError as e: current_app.logger.error(e) return fail_warp(e.args[0]), 500
def login_post(): """ 用户登陆 :return: """ data = request.json username = data.get('username') password = data.get('password') if username is None or username == '' or \ password is None or password == '': current_app.logger.error( 'params error %s', str({ 'username': username, 'password': password })) return fail_warp(errors['101']), 400 try: res = confirm_user(username, encode_md5(password)) if res is not None: session['user_id'] = res.id session['type'] = res.role current_app.logger.info( 'login success %s', str({ 'username': username, 'type': res.role })) return success_warp({'type': res.role, 'user_id': res.id}) else: current_app.logger.error( 'login fail %s', str({ 'username': username, 'password': password })) return fail_warp(errors['401']), 400 except SQLAlchemyError as e: current_app.logger.error(e) return fail_warp(errors['501']), 500
def notice_post(): """ 添加通知 :return: """ user_id = session['user_id'] role = session['type'] data = request.json title = data.get('title') content = data.get('content') notice_type = data.get('type') is_top = data.get('is_top') if title is None or title == '' or \ notice_type is None or is_top is None: current_app.logger.error('params error %s', str({ 'title': title, 'content': content, 'type': notice_type, 'is_top': is_top, 'user_id': user_id })) return fail_warp(errors['101']), 400 try: GetNotice(role).post_notice(title, content, is_top, notice_type, user_id) current_app.logger.info({ 'title': title, 'content': content, 'type': notice_type, 'is_top': is_top, 'user_id': user_id }) return success_warp('add notice success') except SQLAlchemyError as e: current_app.logger.error(e) return fail_warp(e.args[0]), 500 except RuntimeError as e: current_app.logger.error(e) return fail_warp(e.args[0]), 500
def recommend_get_detail(recommend_id: int): """ 获取评论详情 :param recommend_id: :return: """ user_id = session['user_id'] role = session['type'] try: res = GetRecommend(role).get_recommend_detail(user_id, recommend_id) current_app.logger.info({ 'recommend': res }) return success_warp(res) except SQLAlchemyError as e: current_app.logger.error(e) return fail_warp(e.args[0]), 500 except RuntimeError as e: current_app.logger.error(e) return fail_warp(e.args[0]), 500
def delete_img(): user_id = session['user_id'] img_id = request.json.get('img_id') if img_id is None or img_id == '': current_app.logger.error('img delete %s', str({'img_id': img_id})) return fail_warp(errors['101']), 400 try: delete_dir_img(img_id, user_id) current_app.logger.info('img delete %s', str({ 'id': img_id, 'user': user_id })) return success_warp('删除成功') except SQLAlchemyError as e: current_app.logger.error(e) return fail_warp(e.args[0]), 500 except RuntimeError as e: current_app.logger.error(e) return fail_warp(e.args[0]), 500
def get_gallery_detail(gallery_id): """ 获取分类详情 """ user_id = session['user_id'] data = request.args limit = int(data.get('limit')) if data.get('limit') is not None else 20 page = int(data.get('page')) if data.get('page') is not None else 0 try: count, images = get_dir_detail(gallery_id, limit, page, user_id) current_app.logger.info('gallery detail info %s', str({ 'count': count, 'images': images })) return success_warp({'count': count, 'images': images}) except SQLAlchemyError as e: current_app.logger.error(e) return fail_warp(e.args[0]), 500 except RuntimeError as e: current_app.logger.error(e)
def recommend_delete(): user_id = session['user_id'] role = session['type'] recommend_ids = request.json.get('recommend_id') if recommend_ids is None or type(recommend_ids) != list: current_app.logger.error('recommend id %s', str({ 'id': recommend_ids })) return fail_warp(errors['101']), 400 try: GetRecommend(role).delete_recommend(user_id, recommend_ids) current_app.logger.info('recommend info %s', str({ 'user_id': user_id, 'recommend_ids': recommend_ids })) return success_warp('delete recommend success') except SQLAlchemyError as e: current_app.logger.error(e) return fail_warp(e.args[0]), 500 except RuntimeError as e: current_app.logger.error(e) return fail_warp(e.args[0]), 500
def get_gallery(): """ 获取分类列表 """ user_id = session['user_id'] data = request.args limit = int(data.get('limit')) if data.get('limit') is not None else 20 page = int(data.get('page')) if data.get('page') is not None else 0 try: count, dirs = get_dir(user_id, limit, page) current_app.logger.info('gallery info %s', str({ 'dirs': dirs, 'count': count })) return success_warp({'count': count, 'dirs': dirs}) except SQLAlchemyError as e: current_app.logger.error(e) return fail_warp(e.args[0]), 500 except RuntimeError as e: current_app.logger.error(e) return fail_warp(e.args[0]), 500
def user_post(): """ 添加用户 :return: """ user_id = session['user_id'] user_type = session['type'] data = request.json username = data.get('username') password = data.get('password') if username is None or username == '' or \ password is None or password == '': current_app.logger.error( 'params error %s', str({ 'username': username, 'password': password, 'parent_id': user_id })) return fail_warp(errors['101']), 400 try: check_user(username) add_user(username, encode_md5(password), user_id, user_type + 1) current_app.logger.info('add user success %s', str({ 'parent': user_id, 'username': username })) return success_warp('add success') except SQLAlchemyError as e: current_app.logger.error(e) return fail_warp(errors['501']), 500 except RuntimeError as e: current_app.logger.error(e) return fail_warp(e.args[0]), 500