feat: 使用redis来缓存用户信息
This commit is contained in:
+19
-5
@@ -8,6 +8,7 @@ from sqlmodel import Field, Relationship, select
|
||||
from app.model.BasicModel import BasicModel
|
||||
from app.model.PosModel import PosModel
|
||||
from app.utils.create_module_service import create_model_service
|
||||
from app.utils.redis_utils import remove_redis_cache
|
||||
|
||||
|
||||
class UserValidate(str, Enum):
|
||||
@@ -93,11 +94,24 @@ class UserServiceModel(PublicUser, table=True):
|
||||
pass
|
||||
|
||||
|
||||
async def before_update(row_dict, session):
|
||||
user_cls: UserServiceModel = await UserService.query_item(session, {"id": row_dict["id"]})
|
||||
await remove_redis_cache(f"access_token_username_{user_cls.username}")
|
||||
|
||||
|
||||
async def before_delete(row_dict, session):
|
||||
user_cls: UserServiceModel = await UserService.query_item(session, {"id": row_dict["id"]})
|
||||
await remove_redis_cache(f"access_token_username_{user_cls.username}")
|
||||
|
||||
|
||||
UserService = create_model_service(
|
||||
Cls=UserServiceModel,
|
||||
custom_query=(lambda: select(UserServiceModel)
|
||||
.options(
|
||||
selectinload(UserServiceModel.position).
|
||||
selectinload(PosModel.organization)
|
||||
))
|
||||
custom_query=(
|
||||
lambda: select(UserServiceModel)
|
||||
.options(
|
||||
selectinload(UserServiceModel.position).
|
||||
selectinload(PosModel.organization)
|
||||
)),
|
||||
before_update=before_update,
|
||||
before_delete=before_delete
|
||||
)
|
||||
|
||||
Reference in New Issue
Block a user