def get(eid=None): if not check_utils.check_param_format( request.path, [r"^/v1/bms/essay/([1-9][0-9]*)/$", r"^/v1/bms/essay/$"]): return status_code.URL_ERROR try: essay_service = EssayService() if eid: essay = essay_service.get_essay_by_id(essay_id=eid) if not essay: return status_code.ESSAY_NOT_EXIST result = status_code.SUCCESS result["data"] = essay return result else: data = request.args if not data: essay_list = essay_service.get_all_essay() result = status_code.SUCCESS result["data"] = essay_list return result elif isinstance(data, dict) and data.get("title"): essay_list = essay_service.get_essay_by_title( title=data.get("title")) result = status_code.SUCCESS result["data"] = essay_list return result else: return status_code.ARGS_PARAMS_ERROR except Exception as ex: print(ex) logger.error("获取随笔失败,{}".format(ex)) return status_code.FAIL
def post(eid=None): if not check_utils.check_param_format(request.path, [r"^/v1/bms/essay/$"]): return status_code.URL_ERROR user_id = session.get("user_id") data = request.json if not (data and isinstance(data, dict)): return status_code.JSON_PARAMS_ERROR for k, v in ESSAY_REQUIRED_FIELD.items(): if not data.get(k): return { "code": status_code.REQUIRED_PARAM_CODE, "msg_cn": status_code.REQUIRED_PARAM_MSG_CN.format(v), "msg_en": status_code.REQUIRED_PARAM_MSG_EN.format(k) } if not isinstance(data.get("status"), int): return status_code.ESSAY_STATUS_NOT_INT if data.get("status") not in ESSAY_STATUS.values(): return status_code.ESSAY_STATUS_OUT_RANGE # 正则验证 try: essay_service = EssayService() essay_service.create_essay(user_id=user_id, title=data.get("title"), abstract=data.get("abstract"), content=data.get("content"), status=data.get("status")) return status_code.SUCCESS except Exception as ex: print(ex) logger.error("创建随笔失败,{}".format(ex)) return status_code.FAIL
def post(): data = request.json if not (data and isinstance(data, dict)): return status_code.JSON_PARAMS_ERROR for k, v in USER_REQUIRED_FIELD.items(): if not data.get(k): return { "code": status_code.REQUIRED_PARAM_CODE, "msg_cn": status_code.REQUIRED_PARAM_MSG_CN.format(v), "msg_en": status_code.REQUIRED_PARAM_MSG_EN.format(k) } # 正则验证 account = data.get("account") password = data.get("password") phone = data.get("phone") try: user_service = UserService() user = user_service.get_user_by_account(account=account) if user: return status_code.USER_ACCOUNT_EXIST user_service.create_user(account=account, password=password, phone=phone) return status_code.SUCCESS except Exception as ex: print(ex) logger.error("用户注册失败,{}".format(ex)) return status_code.FAIL
def put(uid=None): if not check_utils.check_param_format( request.path, [r"^/v1/bms/user/([1-9][0-9]*)/$"]): return status_code.URL_ERROR data = request.json if not (data and isinstance(data, dict)): return status_code.JSON_PARAMS_ERROR if not data.get("phone"): return { "code": status_code.REQUIRED_PARAM_CODE, "msg_cn": status_code.REQUIRED_PARAM_MSG_CN.format("电话号码"), "msg_en": status_code.REQUIRED_PARAM_MSG_EN.format("phone") } try: user_service = UserService() user = user_service.get_user_by_id(user_id=uid) if not user: return status_code.USER_NOT_EXIST user_service.update_user_basic(user_id=uid, phone=data.get("phone"), username=data.get("username"), gender=data.get("gender"), email=data.get("email"), birth=data.get("birth")) return status_code.SUCCESS except Exception as ex: print(ex) logger.error("修改用户基础信息失败,{}".format(ex)) return status_code.FAIL
def put(eid=None): if not check_utils.check_param_format( request.path, [r"^/v1/bms/essay/([1-9][0-9]*)/$"]): return status_code.URL_ERROR data = request.json if not (data and isinstance(data, dict)): return status_code.JSON_PARAMS_ERROR for k, v in ESSAY_REQUIRED_FIELD.items(): if not data.get(k): return { "code": status_code.REQUIRED_PARAM_CODE, "msg_cn": status_code.REQUIRED_PARAM_MSG_CN.format(v), "msg_en": status_code.REQUIRED_PARAM_MSG_EN.format(k) } try: essay_service = EssayService() essay = essay_service.get_essay_by_id(essay_id=eid) if not essay: return status_code.ESSAY_NOT_EXIST essay_service.update_essay(essay_id=eid, title=data.get("title"), abstract=data.get("abstract"), content=data.get("content"), status=data.get("status")) return status_code.SUCCESS except Exception as ex: print(ex) logger.error("修改随笔失败,{}".format(ex)) return status_code.FAIL
def delete(imid=None): if not check_utils.check_param_format(request.path, [r"^/v1/bms/impression/$"]): return status_code.URL_ERROR data = request.json if not (data and isinstance(data, dict)) or not isinstance( data.get("ids"), list): return status_code.JSON_PARAMS_ERROR if not data.get("ids"): return { "code": status_code.REQUIRED_PARAM_CODE, "msg_cn": status_code.REQUIRED_PARAM_MSG_CN.format("读后感id"), "msg_en": status_code.REQUIRED_PARAM_MSG_EN.format("impression ids") } try: impression_service = ImpressionService() impression_service.delete_impression( impression_id_list=data.get("ids")) return status_code.SUCCESS except Exception as ex: print(ex) logger.error("删除读后感失败,{}".format(ex)) return status_code.FAIL
def inner(*args, **kwargs): ip = request.remote_addr result = func(*args, **kwargs) if session and session.get("user_id"): user_id = session.get("user_id") else: user_id = None if result.get("code") == status_code.SUCCESS_CODE: result_cn = "成功" result_en = "SUCCESS" else: result_cn = "失败" result_en = "FAIL" # 在这里写操作日志 try: LogService().write_log(client_ip=ip, action_cn=action_cn, action_en=action_en, result_cn=result_cn, result_en=result_en, reason_cn=result.get("msg_cn"), reason_en=result.get("msg_en"), user_id=user_id) except Exception as ex: print(ex) logger.error("写操作日志失败,{}".format(ex)) return jsonify(result)
def patch(uid=None): if not check_utils.check_param_format(request.path, [r"^/v1/bms/user/$"]): return status_code.URL_ERROR data = request.json if not (data and isinstance(data, dict)) or not isinstance( data.get("ids"), list): return status_code.JSON_PARAMS_ERROR if not data.get("ids"): return { "code": status_code.REQUIRED_PARAM_CODE, "msg_cn": status_code.REQUIRED_PARAM_MSG_CN.format("用户id"), "msg_en": status_code.REQUIRED_PARAM_MSG_EN.format("user ids") } # if data.get("is_active") == None or data.get("is_active") == "": # return {"code": status_code.REQUIRED_PARAM_CODE, # "msg_cn": status_code.REQUIRED_PARAM_MSG_CN.format("激活状态"), # "msg_en": status_code.REQUIRED_PARAM_MSG_EN.format("active status")} if not isinstance(data.get("is_active"), bool): return status_code.ACTIVE_NOT_BOOL try: user_service = UserService() user_service.change_user_status(is_active=data.get("is_active"), user_id_list=data.get("ids")) return status_code.SUCCESS except Exception as ex: print(ex) logger.error("修改用户状态失败,{}".format(ex)) return status_code.FAIL
def post(uid=None): if not check_utils.check_param_format(request.path, [r"^/v1/bms/user/$"]): return status_code.URL_ERROR data = request.json if not (data and isinstance(data, dict)): return status_code.JSON_PARAMS_ERROR for k, v in USER_REQUIRED_FIELD.items(): if not data.get(k): return { "code": status_code.REQUIRED_PARAM_CODE, "msg_cn": status_code.REQUIRED_PARAM_MSG_CN.format(v), "msg_en": status_code.REQUIRED_PARAM_MSG_EN.format(k) } # 正则验证 try: user_service = UserService() user = user_service.get_user_by_account( account=data.get("account")) if user: return status_code.USER_ACCOUNT_EXIST user_service.create_user(account=data.get("account"), password=data.get("password"), phone=data.get("phone"), username=data.get("username"), gender=data.get("gender"), email=data.get("email"), birth=data.get("birth"), is_active=data.get("is_active")) return status_code.SUCCESS except Exception as ex: print(ex) logger.error("创建用户失败,{}".format(ex)) return status_code.FAIL
def get(imid=None): if not check_utils.check_param_format( request.path, [r"^/v1/bms/impression/([1-9][0-9]*)/$", r"^/v1/bms/impression/$" ]): return status_code.URL_ERROR try: impression_service = ImpressionService() if imid: impression = impression_service.get_impression_by_id( impression_id=imid) if not impression: return status_code.IMPRESSION_NOT_EXIST result = status_code.SUCCESS # impression["cover"] = os.path.join(ROOT_DIR, "Web/static/" + impression["cover"]) impression["cover"] = "".join([ "http://", "127.0.0.1:5001", "/static/", impression["cover"] ]) result["data"] = impression return result else: data = request.args if not (isinstance(data, dict) and data.get("pn") and data.get("ps")): return status_code.ARGS_PARAMS_ERROR if not (data.get("pn").isdigit() and data.get("pn").isdigit()): raise Exception("请求参数pn和ps必须是整数") page_size = int(data.get("ps")) page_now = int(data.get("pn")) user_id = request.form.get('user_id') if not data.get("title"): impression_list = impression_service.get_all_impression_by_page( user_id=user_id, page_now=page_now, page_size=page_size) else: impression_list = impression_service.get_impression_by_title_page( title=data.get("title"), page_now=page_now, page_size=page_size) result = status_code.SUCCESS for impression in impression_list: # impression["cover"] = os.path.join(ROOT_DIR, "Web/static/" + impression["cover"]) impression[ "cover"] = "http://127.0.0.1:5001/static/" + impression[ "cover"] result["data"] = impression_list return result except Exception as ex: print(ex) logger.error("获取读后感失败,{}".format(ex)) return status_code.FAIL
def get(cid=None): if not check_utils.check_param_format( request.path, [r"^/v1/bms/capriccio/([1-9][0-9]*)/$", r"^/v1/bms/capriccio/$"]): return status_code.URL_ERROR try: capriccio_service = CapriccioService() if cid: capriccio = capriccio_service.get_capriccio_by_id( capriccio_id=cid) if not capriccio: return status_code.CAPRICCIO_NOT_EXIST result = status_code.SUCCESS # capriccio["cover"] = os.path.join(ROOT_DIR, "Web/static/" + capriccio["cover"]) capriccio["cover"] = "".join([ "http://", "127.0.0.1:5001", "/static/", capriccio["cover"] ]) result["data"] = capriccio return result else: data = request.args if not (isinstance(data, dict) and data.get("pn") and data.get("ps")): return status_code.ARGS_PARAMS_ERROR if not (data.get("pn").isdigit() and data.get("pn").isdigit()): raise Exception("请求参数pn和ps必须是整数") page_size = int(data.get("ps")) page_now = int(data.get("pn")) user_id = request.form.get('user_id') if not data.get("title"): capriccio_list = capriccio_service.get_all_capriccio_by_page( user_id=user_id, page_now=page_now, page_size=page_size) else: capriccio_list = capriccio_service.get_capriccio_by_title_page( title=data.get("title"), page_now=page_now, page_size=page_size) result = status_code.SUCCESS for capriccio in capriccio_list: # capriccio["cover"] = os.path.join(ROOT_DIR, "Web/static/" + capriccio["cover"]) capriccio[ "cover"] = "http://127.0.0.1:5001/static/" + capriccio[ "cover"] result["data"] = capriccio_list return result except Exception as ex: print(ex) logger.error("获取随想失败,{}".format(ex)) return status_code.FAIL
def get(eid=None): if not check_utils.check_param_format( request.path, [r"^/v1/bms/essay/([1-9][0-9]*)/$", r"^/v1/bms/essay/$"]): return status_code.URL_ERROR try: essay_service = EssayService() if eid: essay = essay_service.get_essay_by_id(essay_id=eid) if not essay: return status_code.ESSAY_NOT_EXIST result = status_code.SUCCESS # essay["cover"] = os.path.join(ROOT_DIR, "Web/static/" + essay["cover"]) essay["cover"] = "".join( [HOST_NAME, UPLOAD_FILE_PATH, essay["cover"]]) result["data"] = essay return result else: data = request.args if not (isinstance(data, dict) and data.get("pn") and data.get("ps")): return status_code.ARGS_PARAMS_ERROR if not (data.get("pn").isdigit() and data.get("pn").isdigit()): raise Exception("请求参数PN和PS必须是整数") page_size = int(data.get("ps")) page_now = int(data.get("pn")) user_id = request.form.get('user_id') if not data.get("title"): essay_list = essay_service.get_all_essay_by_page( user_id=user_id, page_now=page_now, page_size=page_size) else: essay_list = essay_service.get_essay_by_title_page( title=data.get("title"), page_now=page_now, page_size=page_size) result = status_code.SUCCESS for essay in essay_list: # essay["cover"] = os.path.join(ROOT_DIR, "Web/static/" + essay["cover"]) essay["cover"] = "".join([ HOST_NAME, UPLOAD_FILE_PATH, essay["cover"] ]) # "http://127.0.0.1:5001/static/" + essay["cover"] result["data"] = essay_list return result except Exception as ex: print(ex) logger.error("获取随笔失败,{}".format(ex)) return status_code.FAIL
def delete(cid=None): if not check_utils.check_param_format(request.path, [r"^/v1/bms/comment/([1-9][0-9]*)/$"]): return status_code.URL_ERROR user_id = session.get("user_id") try: comment_service = CommentService() comment = comment_service.get_comment_by_id(comment_id=cid) if user_id != comment.get("comment_user"): return status_code.COMMENT_NOT_BELONG_USER comment_service.delete_comment(comment_id_list=[cid]) return status_code.SUCCESS except Exception as ex: print(ex) logger.error("修改评论失败,{}".format(ex)) return status_code.FAIL
def patch(uid=None): if not check_utils.check_param_format( request.path, [r"^/v1/bms/user/([1-9][0-9]*)/password/$"]): return status_code.URL_ERROR try: user_service = UserService() new_password = get_reset_password() user_service.update_user_password(user_id=uid, new_password=new_password) result = status_code.SUCCESS result["new_password"] = new_password return result except Exception as ex: print(ex) logger.error("重置用户密码失败,{}".format(ex)) return status_code.FAIL
def wrapper(*args, **kwargs): if not (session and session.get("user_id") and session.get("token")): return status_code.USER_NO_LOGIN try: user_service = UserService() user = user_service.get_user_by_id(session.get("user_id")) if not user: return status_code.USER_NOT_EXIST if not user.get("is_active"): return status_code.USER_IS_NOT_ACTIVE if user.get("token") != session.get("token"): return status_code.PLEASE_LOGIN except Exception as ex: print(ex) logger.error("认证失败,{}".format(ex)) return status_code.FAIL return func(*args, **kwargs)
def get(did=None): if not check_utils.check_param_format(request.path, [r"^/v1/bms/diary/([1-9][0-9]*)/$", r"^/v1/bms/diary/$"]): return status_code.URL_ERROR try: diary_service = DiaryService() if did: diary = diary_service.get_diary_by_id(diary_id=did) if not diary: return status_code.DIARY_NOT_EXIST result = status_code.SUCCESS # essay["cover"] = os.path.join(ROOT_DIR, "Web/static/" + essay["cover"]) diary["cover"] = "".join(["http://", "127.0.0.1:5001", "/static/", diary["cover"]]) result["data"] = diary return result else: data = request.args if not (isinstance(data, dict) and data.get("pn") and data.get("ps")): return status_code.ARGS_PARAMS_ERROR if not (data.get("pn").isdigit() and data.get("pn").isdigit()): raise Exception("请求参数pn和ps必须是整数") page_size = int(data.get("ps")) page_now = int(data.get("pn")) user_id = request.form.get('user_id') if not data.get("title"): diary_list = diary_service.get_all_diary_by_page(user_id=user_id, page_now=page_now, page_size=page_size) else: diary_list = diary_service.get_diary_by_title_page(title=data.get("title"), page_now=page_now, page_size=page_size) result = status_code.SUCCESS for diary in diary_list: # diary["cover"] = os.path.join(ROOT_DIR, "Web/static/" + essay["cover"]) diary["cover"] = "http://127.0.0.1:5001/static/" + diary["cover"] result["data"] = diary_list return result except Exception as ex: print(ex) logger.error("获取日记失败,{}".format(ex)) return status_code.FAIL
def get(cid=None): if not check_utils.check_param_format(request.path, [r"^/v1/bms/comment/$", r"^/v1/bms/comment/([1-9][0-9]*)/$"]): return status_code.URL_ERROR data = request.json if not (data and isinstance(data, dict)): return status_code.JSON_PARAMS_ERROR if not data.get("article_id"): return {"code": status_code.REQUIRED_PARAM_CODE, "msg_cn": status_code.REQUIRED_PARAM_MSG_CN.format("评论文章"), "msg_en": status_code.REQUIRED_PARAM_MSG_EN.format("comment article")} try: comment_service = CommentService() result = [] comment_list = comment_service.get_comment_by_article(article_id=data.get("article_id")) for comment in comment_list: sub_comment_list = comment_service.get_reply_by_comment(comment_id=comment.get("id")) result.append(comment) except Exception as ex: print(ex) logger.error("获取评论失败,{}".format(ex)) return status_code.FAIL
def post(cid=None): if not check_utils.check_param_format(request.path, [r"^/v1/bms/comment/$"]): return status_code.URL_ERROR user_id = session.get("user_id") data = request.json if not (data and isinstance(data, dict)): return status_code.JSON_PARAMS_ERROR for k, v in COMMENT_REQUIRED_FIELD.items(): if not data.get(k): return {"code": status_code.REQUIRED_PARAM_CODE, "msg_cn": status_code.REQUIRED_PARAM_MSG_CN.format(v), "msg_en": status_code.REQUIRED_PARAM_MSG_EN.format(k)} try: comment_service = CommentService() comment_service.create_comment(article_id=data.get("article_id"), article_type=data.get("article_type"), comment_con=data.get("comment_con"), comment_user=user_id, comment_id=data.get("comment_id")) return status_code.SUCCESS except Exception as ex: print(ex) logger.error("创建评论失败,{}".format(ex)) return status_code.FAIL
def patch(cid=None): if not check_utils.check_param_format(request.path, [r"^/v1/bms/comment/([1-9][0-9]*)/$"]): return status_code.URL_ERROR user_id = session.get("user_id") data = request.json if not (data and isinstance(data, dict)): return status_code.JSON_PARAMS_ERROR if not data.get("comment_con"): return {"code": status_code.REQUIRED_PARAM_CODE, "msg_cn": status_code.REQUIRED_PARAM_MSG_CN.format("评论内容"), "msg_en": status_code.REQUIRED_PARAM_MSG_EN.format("comment content")} try: comment_service = CommentService() comment = comment_service.get_comment_by_id(comment_id=cid) if user_id != comment.get("comment_user"): return status_code.COMMENT_NOT_BELONG_USER comment_service.update_comment(comment_id=cid, comment_con=data.get("comment_con")) return status_code.SUCCESS except Exception as ex: print(ex) logger.error("修改评论失败,{}".format(ex)) return status_code.FAIL
def post(): data = request.json session.clear() if not (data and isinstance(data, dict)): return status_code.JSON_PARAMS_ERROR account = data.get("account") password = data.get("password") if not account: return { "code": status_code.REQUIRED_PARAM_CODE, "msg_cn": status_code.REQUIRED_PARAM_MSG_CN.format("帐号"), "msg_en": status_code.REQUIRED_PARAM_MSG_EN.format("account") } if not password: return { "code": status_code.REQUIRED_PARAM_CODE, "msg_cn": status_code.REQUIRED_PARAM_MSG_CN.format("密码"), "msg_en": status_code.REQUIRED_PARAM_MSG_EN.format("password") } try: user_service = UserService() user = user_service.get_user_by_account(account=account) if not user: return status_code.USER_NOT_EXIST if not user.get("is_active"): return status_code.USER_IS_NOT_ACTIVE if not user_service.check_user_password(user_id=user.get("id"), password=password): return status_code.PASSWORD_ERROR token = user_service.change_user_token(user_id=user.get("id")) session["user_id"] = user.get("id") session["token"] = token result = status_code.SUCCESS result["token"] = token return result except Exception as ex: print(ex) logger.error("用户登录失败,{}".format(ex)) return status_code.FAIL
def get(uid=None): if not check_utils.check_param_format( request.path, [r"^/v1/bms/user/([1-9][0-9]*)/$", r"^/v1/bms/user/$"]): return status_code.URL_ERROR try: user_service = UserService() if uid: user = user_service.get_user_by_id(user_id=uid) if not user: return status_code.USER_NOT_EXIST result = status_code.SUCCESS result["data"] = user return result else: users = user_service.get_users() result = status_code.SUCCESS result["data"] = users return result except Exception as ex: print(ex) logger.error("获取用户失败,{}".format(ex)) return status_code.FAIL
def patch(): if not check_utils.check_param_format(request.path, [r"^/v1/bms/user/password/$"]): return status_code.URL_ERROR user_id = session.get("user_id") data = request.json if not (data and isinstance(data, dict)): return status_code.JSON_PARAMS_ERROR if not data.get("old_password"): return { "code": status_code.REQUIRED_PARAM_CODE, "msg_cn": status_code.REQUIRED_PARAM_MSG_CN.format("原密码"), "msg_en": status_code.REQUIRED_PARAM_MSG_EN.format("old password") } if not data.get("new_password"): return { "code": status_code.REQUIRED_PARAM_CODE, "msg_cn": status_code.REQUIRED_PARAM_MSG_CN.format("新密码"), "msg_en": status_code.REQUIRED_PARAM_MSG_EN.format("new password") } try: user_service = UserService() user = user_service.get_user_by_id(user_id=user_id) if not user: return status_code.USER_NOT_EXIST if not user_service.check_user_password( user_id=user_id, password=data.get("old_password")): return status_code.PASSWORD_ERROR user_service.update_user_password( user_id=user_id, new_password=data.get("new_password")) return status_code.SUCCESS except Exception as ex: print(ex) logger.error("修改用户密码失败,{}".format(ex)) return status_code.FAIL
def delete(cid=None): if not check_utils.check_param_format(request.path, [r"^/v1/bms/capriccio/$"]): return status_code.URL_ERROR data = request.json if not (data and isinstance(data, dict)) or not isinstance( data.get("ids"), list): return status_code.JSON_PARAMS_ERROR if not data.get("ids"): return { "code": status_code.REQUIRED_PARAM_CODE, "msg_cn": status_code.REQUIRED_PARAM_MSG_CN.format("随想id"), "msg_en": status_code.REQUIRED_PARAM_MSG_EN.format("capriccio ids") } try: capriccio_service = CapriccioService() capriccio_service.delete_capriccio( capriccio_id_list=data.get("ids")) return status_code.SUCCESS except Exception as ex: print(ex) logger.error("删除随想失败,{}".format(ex)) return status_code.FAIL