25 lines
948 B
Python
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
|