diff --git a/Context/common.py b/Context/common.py index eb35080..6c57712 100644 --- a/Context/common.py +++ b/Context/common.py @@ -12,6 +12,15 @@ from Utils.VerifyCodeUtils import EmailCodeVerify, ImageCaptchaVerify, PhoneVeri from pydantic import BaseModel from typing import Optional +# 权限验证工具类 + +# 日志 +uvicorn_log = getLogger('uvicorn') + +# 配置数据 +conf = ConfigParser() +conf.read("Config/common.ini", encoding='utf-8-sig') + class CompanyUserTokenDataModel(BaseModel): id: Optional[str] @@ -33,12 +42,20 @@ class AdminUserTokenDataModel(BaseModel): phone: Optional[str] -# 日志 -uvicorn_log = getLogger('uvicorn') +auth_util = AuthUtil[TokenDataModel](secret_key=conf['auth']['jwt_key'], tokenDataModel=TokenDataModel) +# 管理端用户权限 +admin_user_auth_util = AuthUtil[AdminUserTokenDataModel](secret_key=conf['auth']['admin_user_jwt_key'], + tokenDataModel=AdminUserTokenDataModel) +# 企业用户权限 +company_user_auth_util = AuthUtil[CompanyUserTokenDataModel](secret_key=conf['auth']['company_user_jwt_key'], + tokenDataModel=CompanyUserTokenDataModel) +# 协会用户权限 +institution_user_auth_util = AuthUtil[InstitutionUserTokenDataModel]( + secret_key=conf['auth']['institution_user_jwt_key'], + tokenDataModel=InstitutionUserTokenDataModel) + +############################################################## -# 配置数据 -conf = ConfigParser() -conf.read("Config/common.ini", encoding='utf-8-sig') # redis连接池 redis_pool = RedisPool(host=conf['redis']['host'], port=int(conf['redis']['port'])) @@ -51,8 +68,6 @@ common_db = SqlalchemyConnect(common_db_base, host=conf['mysql']['host'], password=conf['mysql']['password'], db=conf['mysql']['db']) -# mongo db -# mg_db = MongoConnect(conf["mongo"]["host"], int(conf["mongo"]["port"]), conf["mongo"]["db"]) # mongo db mg_db = MongoConnect(conf["mongo"]["host"], int(conf["mongo"]["port"]), conf["mongo"]["db"], @@ -64,15 +79,7 @@ email_code_verify = EmailCodeVerify(redis_pool, conf['email']['api'], conf['emai # 图片验证码工具类 image_captcha_verify = ImageCaptchaVerify(redis_pool) -# 权限验证工具类 -auth_util = AuthUtil[TokenDataModel](secret_key=conf['auth']['jwt_key'], tokenDataModel=TokenDataModel) -admin_user_auth_util = AuthUtil[AdminUserTokenDataModel](secret_key=conf['auth']['admin_user_jwt_key'], tokenDataModel=AdminUserTokenDataModel) -company_user_auth_util = AuthUtil[CompanyUserTokenDataModel](secret_key=conf['auth']['company_user_jwt_key'], - tokenDataModel=CompanyUserTokenDataModel) -institution_user_auth_util = AuthUtil[InstitutionUserTokenDataModel]( - secret_key=conf['auth']['institution_user_jwt_key'], - tokenDataModel=InstitutionUserTokenDataModel) - +# 短信发送工具 phone_msg_send = PhoneMsgSend(conf['hw_msg']['url'], conf['hw_msg']['app_key'], conf['hw_msg']['app_secret'], @@ -80,8 +87,11 @@ phone_msg_send = PhoneMsgSend(conf['hw_msg']['url'], conf['hw_msg']['template_id'], conf['hw_msg']['signature'] ) -# 天眼查接口 -tianyancha_api = TianyanchaApi(conf['tianyancha']['token'], mongo_connect=mg_db) + +# 短信验证码工具 phone_verify_code = PhoneVerifyCode(redis_pool, phone_msg_send) +# 天眼查接口 +tianyancha_api = TianyanchaApi(conf['tianyancha']['token'], mongo_connect=mg_db) + # 全局配置 diff --git a/ThirdPartyApi/Tianyancha/Apis.py b/ThirdPartyApi/Tianyancha/Apis.py index e23c1d4..88747f1 100644 --- a/ThirdPartyApi/Tianyancha/Apis.py +++ b/ThirdPartyApi/Tianyancha/Apis.py @@ -39,7 +39,6 @@ class TianyanchaApi: """ 天眼查接口 """ - def __init__(self, token: str, mongo_connect: MongoConnect = None, list_max_count=500, diff --git a/Utils/SqlAlchemyUtils.py b/Utils/SqlAlchemyUtils.py index 2b8a2aa..c69e9a3 100644 --- a/Utils/SqlAlchemyUtils.py +++ b/Utils/SqlAlchemyUtils.py @@ -5,7 +5,7 @@ from sqlalchemy import create_engine, Column, and_, asc, desc, func from sqlalchemy.ext.asyncio import create_async_engine, async_sessionmaker from sqlalchemy.ext.declarative import declarative_base from sqlalchemy.orm import sessionmaker, Session, Query -from sqlalchemy_utils import database_exists, create_database +from sqlalchemy_utils import database_exists, create_database, get_columns, get_column_key class SqlalchemyConnect: @@ -68,6 +68,10 @@ class SqlalchemyConnect: yield db +def get_model_column_keys(model): + return [get_column_key(model, item) for item in get_columns(model)] + + # 通用查询接口 QueryType = Literal['=', '==', '>', '>=', '<', '<=', 'in', 'like', 'range', "find_in_set"] @@ -87,6 +91,7 @@ class OrderParam(BaseModel): class QueryParams(BaseModel): param_list: Optional[List[QueryParam]] order: Optional[OrderParam] + ex_include: Optional[List[str]] page: int page_size: int