You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
28 lines
799 B
28 lines
799 B
from sqlalchemy import and_, select
|
|
from sqlalchemy.ext.asyncio import AsyncSession
|
|
from module_admin.entity.do.dept_do import SysDept
|
|
from module_admin.entity.do.user_do import SysUser
|
|
|
|
|
|
async def login_by_account(db: AsyncSession, user_name: str):
|
|
"""
|
|
根据用户名查询用户信息
|
|
|
|
:param db: orm对象
|
|
:param user_name: 用户名
|
|
:return: 用户对象
|
|
"""
|
|
user = (
|
|
await db.execute(
|
|
select(SysUser, SysDept)
|
|
.where(SysUser.user_name == user_name, SysUser.del_flag == '0')
|
|
.join(
|
|
SysDept,
|
|
and_(SysUser.dept_id == SysDept.dept_id, SysDept.status == '0', SysDept.del_flag == '0'),
|
|
isouter=True,
|
|
)
|
|
.distinct()
|
|
)
|
|
).first()
|
|
|
|
return user
|
|
|