调整部门信息

master
masong 5 months ago
parent 92267bcd16
commit 4415e3f1ea
  1. 2
      packages/dbgpt-serve/src/dbgpt_serve/utils/auth.py
  2. 1
      packages/dbgpt-system/src/dbgpt_system/dept/dept_controller.py
  3. 32
      packages/dbgpt-system/src/dbgpt_system/dept/dept_db.py
  4. 2
      packages/dbgpt-system/src/dbgpt_system/login.py

@ -20,7 +20,7 @@ class UserRequest(BaseModel):
email: Optional[str] = None
avatar_url: Optional[str] = None
nick_name_like: Optional[str] = None
dept_id: Optional[int] = None
@dataclass
class User:

@ -12,6 +12,7 @@ async def select_dept_list(
user_info: UserRequest = Depends(get_user_from_headers)
):
try:
dept.id = user_info.dept_id
res = deptDao.select_dept_list(dept)
return Result.succ(res)
except Exception as ex:

@ -7,10 +7,11 @@ from datetime import datetime
deptEntity = DeptEntity
userDao = UserDao
class DeptDao(BaseDao):
def select_dept_list( self,dept: Dept):
def select_dept_list(self, dept: Dept):
session = self.get_raw_session()
try:
dept_qry = session.query(DeptEntity).filter(DeptEntity.deleted == 0)
# 查询本级单位
dept_qry = session.query(DeptEntity).filter(DeptEntity.deleted == 0, DeptEntity.id == dept.id,)
if dept.name:
dept_qry = dept_qry.filter(
DeptEntity.name.like(f"%{dept.name}%")
@ -19,14 +20,35 @@ class DeptDao(BaseDao):
dept_qry = dept_qry.filter(
DeptEntity.status == dept.status
)
results = dept_qry.all()
parent_results = dept_qry.all()
# 初始化结果列表
all_depts = []
# 定义递归函数来查找子部门
def find_subdepartments(parent_id):
subdept_qry = session.query(DeptEntity).filter(
DeptEntity.parent_id == parent_id,
DeptEntity.deleted == 0
)
subdepts = subdept_qry.all()
for subdept in subdepts:
all_depts.append(subdept)
find_subdepartments(subdept.id)
# 遍历父部门并查找其子部门
for parent_dept in parent_results:
all_depts.append(parent_dept)
find_subdepartments(parent_dept.id)
finally:
session.close()
if results is not None:
if all_depts:
depts = []
dept_resp = DeptResponse()
for dept in results:
for dept in all_depts:
depts.append(
Dept.from_dict({
"id": dept.id,

@ -50,6 +50,8 @@ async def dologin( authLogin :AuthLogin):
# 验证密码
if not bcrypt.checkpw(authLogin.password.encode('utf-8'), rt.password.encode('utf-8')):
return Result.failed(code="301", msg=f"账号或密码错误,请重新输入")
# 获取用户权限
loginUser = {
"id": rt.id,
"username": rt.username,

Loading…
Cancel
Save