分类模块接口

master
zc 5 months ago
parent 810e28ecba
commit 80d0d7d353
  1. 2
      packages/dbgpt-app/src/dbgpt_app/dbgpt_server.py
  2. 2
      packages/dbgpt-system/src/dbgpt_system/sys_role/controller.py
  3. 84
      packages/dbgpt-system/src/dbgpt_system/sys_type/controller.py
  4. 6
      packages/dbgpt-system/src/dbgpt_system/sys_type/type.py
  5. 9
      packages/dbgpt-system/src/dbgpt_system/sys_type/type_db.py

@ -67,6 +67,7 @@ def mount_routers(app: FastAPI):
from dbgpt_system.dept.dept_controller import router as dept_v1
from dbgpt_system.sys_role.controller import router as role_v1
from dbgpt_system.sys_menu.controller import router as menu_v1
from dbgpt_system.sys_type.controller import router as type_v1
app.include_router(api_v1, prefix="/api", tags=["Chat"])
app.include_router(api_v2, prefix="/api", tags=["ChatV2"])
app.include_router(api_editor_route_v1, prefix="/api", tags=["Editor"])
@ -78,6 +79,7 @@ def mount_routers(app: FastAPI):
app.include_router(dept_v1,prefix = "/api/dept",tags=["Dept"])
app.include_router(role_v1,prefix = "/api/role",tags=["Role"])
app.include_router(menu_v1,prefix = "/api/menu",tags=["Menu"])
app.include_router(type_v1,prefix = "/api/sys_type",tags=["sys_type"])
app.include_router(knowledge_router, tags=["Knowledge"])
from dbgpt_serve.agent.app.recommend_question.controller import (

@ -30,7 +30,7 @@ async def select_role_list(
查询角色列表-用户绑定角色页面使用
"""
@router.get("/list_auth",response_model=Result)
async def select_role_list(user_info: UserRequest = Depends(get_user_from_headers)):
async def select_role_list_auth(user_info: UserRequest = Depends(get_user_from_headers)):
res = roleDao.select_role_list_auth()
return Result.succ(res)

@ -0,0 +1,84 @@
from dbgpt_app.openapi.api_view_model import Result
from fastapi import APIRouter, Depends,Header
from dbgpt_system.sys_type.type_db import TypeDao
from dbgpt_system.sys_type.type import TypeQuery, TypeCreate, TypeUpdate
from dbgpt_serve.utils.auth import UserRequest, get_user_from_headers
from dbgpt_system.sys_user.user_role import UserRoleRequest
router = APIRouter()
typeDao = TypeDao()
"""
查询分类列表-分页
"""
@router.get("/list",response_model=Result)
async def select_type_list(
type_query: TypeQuery = Depends(),
user_info: UserRequest = Depends(get_user_from_headers)
):
res = typeDao.select_type_page(type_query)
return Result.succ(res)
"""
查询分类列表-用于新建应用下拉及分类查询应用
"""
@router.get("/list_front",response_model=Result)
async def select_role_list_front(user_info: UserRequest = Depends(get_user_from_headers)):
res = typeDao.select_type_list()
return Result.succ(res)
"""
获取分类详情
"""
@router.get("/type_detail/{type_id}")
async def select_type_details(type_id: int,user_info: UserRequest = Depends(get_user_from_headers)):
try:
return Result.succ(typeDao.select_type_details(type_id))
except Exception as ex:
return Result.failed( msg=f"query sys_type error: {ex}")
@router.post("/create")
async def create_role( type_obj:TypeCreate,
user_info: UserRequest = Depends(get_user_from_headers)
):
try:
# 验证分类名称是否已存在
is_name = typeDao.check_type_name_exists(type_obj.type_label)
if is_name:
return Result.failed( msg="分类名称已存在")
type_obj.creator = user_info.user_id
type_obj.updater = user_info.user_id
return Result.succ(typeDao.create(type_obj))
except Exception as ex:
print(ex)
return Result.failed(msg=f"create sys_type error: {ex}")
@router.put("/update")
async def update_role(type_obj:TypeUpdate,
user_info: UserRequest = Depends(get_user_from_headers)
):
try:
# 验证分类名称是否已存在
is_name = typeDao.check_type_name_exists(type_obj.type_label, type_obj.id)
if is_name:
return Result.failed(msg="分类名称已存在")
type_obj.updater = user_info.user_id
return Result.succ( typeDao.update(type_obj))
except Exception as ex:
print(ex)
return Result.failed(msg=f"update sys_type error: {ex}")
@router.delete("/delete/{type_id}")
async def delete_role(type_id:int, user_info: UserRequest = Depends(get_user_from_headers)):
try:
return Result.succ(typeDao.delete_type(type_id,int(user_info.user_id)))
except Exception as ex:
print(ex)
return Result.failed(msg=f"delete sys_type error: {ex}")

@ -47,8 +47,6 @@ class TypeCreate(TypeBase):
def validate_type_value(cls, v):
if not v:
raise ValueError("分类键值不能为空")
if not v or len(v.strip()) < 2:
raise ValueError("分类键值至少需要2个字符")
return v
@ -94,12 +92,12 @@ class TypeEntity(Model):
autoincrement=True,
comment="主键ID"
)
name = Column(
type_label = Column(
String(100),
nullable=False,
comment="分类标签"
)
code = Column(
type_value = Column(
String(100),
nullable=False,
comment="分类键值"

@ -63,7 +63,7 @@ class TypeDao(BaseDao):
})
)
type_resp.total_count = total_count
type_resp.roles = types
type_resp.types = types
type_resp.current_page = type_query.page
type_resp.total_page = (total_count + type_query.page_size - 1) // type_query.page_size
@ -77,13 +77,14 @@ class TypeDao(BaseDao):
# 固定查询条件:未删除的分类
types = session.query(
TypeEntity.id,
TypeEntity.type_label
TypeEntity.type_label,
TypeEntity.type_value
).filter(
TypeEntity.deleted == 0
).all()
# 直接构建字典列表返回
return [{"id": r.id, "type_label": r.name} for r in types]
return [{"id": r.id, "type_label": r.type_label, "type_value": r.type_value} for r in types]
finally:
session.close()
@ -121,7 +122,7 @@ class TypeDao(BaseDao):
# 只更新非None字段
if type_obj.type_label is not None:
type_entity.name = type_obj.type_label
type_entity.type_label = type_obj.type_label
if type_obj.type_value is not None:
type_entity.type_value = type_obj.type_value
if type_obj.remark is not None:

Loading…
Cancel
Save