"""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