feat: 使用redis来缓存用户信息

This commit is contained in:
martsforever
2025-09-27 21:06:15 +08:00
parent 97515ecfe7
commit 4311f521a7
3 changed files with 63 additions and 15 deletions
+19 -5
View File
@@ -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
)