Files
2026-09-12 20:59:10 +08:00

25 lines
948 B
Python

"""sys_user 仓储:认证用按用户名/主键取用户 + 账号状态更新。"""
from __future__ import annotations
from sqlalchemy import select, update
from model.sys_user import SysUser
from repositories.base import BaseRepository
class SysUserRepo(BaseRepository):
model = SysUser
async def get_by_username(self, username: str) -> SysUser | None:
return await self.db.scalar(select(SysUser).where(SysUser.username == username))
async def get_by_phone(self, phone: str) -> SysUser | None:
return await self.db.scalar(select(SysUser).where(SysUser.phone == phone))
async def update_status(self, user_id: int, status: str) -> int:
"""更新账号状态(如风控冻结客户)。不 commit,由 service 层事务统一提交。"""
result = await self.db.execute(
update(SysUser).where(SysUser.id == user_id).values(status=status)
)
return result.rowcount