refactor: 清理废弃模块并重构管理端与全端代码
- 移除所有废弃的旧首页配置模块,包括destinationHero、demand相关、HomeExperience、vehicleService等表结构与代码,新增数据库迁移删除遗留表 - 重构管理端后台布局为标准RuoYi风格,新增Sidebar、Navbar、SettingsDrawer等组件,替换旧的过渡菜单实现 - 调整移动端响应断点为768px,更新布局相关测试用例,新增布局组件测试 - 删除OperationsTools发布/重置页面,移除/tools菜单入口,清理对应的API调用与测试代码 - 重构玩法模块编辑器:替换旧的图片手动输入框为图片上传组件,移除冗余的取消按钮 - 新增线索查询offset参数支持,完善查询参数处理逻辑 - 优化rbac菜单构建逻辑,新增可见性控制参数 - 修正管家编辑器提示文案,优化系统资源编辑器表单初始化逻辑 - 清理小程序端废弃的体验推荐组件与相关测试代码 - 更新文档与种子脚本,匹配新的API契约与使用说明
This commit is contained in:
1 parent
f6c5ad589f
commit
fbf2c772a8
63 files changed
+2272
-1991
No files matched your search
@@ -202,6 +202,27 @@ def update_user(
|
||||
return {"code": 200, "msg": "success", "data": {"id": user.id}}
|
||||
|
||||
|
||||
@router.delete("/users/{user_id}")
|
||||
def delete_user(
|
||||
user_id: str,
|
||||
request: Request,
|
||||
current_user: AdminUser = Depends(require_permission("system:user:delete")),
|
||||
db: Session = Depends(get_db),
|
||||
store: AdminSessionStore = Depends(get_admin_session_store),
|
||||
):
|
||||
user = db.get(AdminUser, user_id)
|
||||
if not user:
|
||||
raise HTTPException(status_code=404, detail="管理员不存在")
|
||||
if user.id == current_user.id:
|
||||
raise HTTPException(status_code=400, detail="不能删除当前登录账号")
|
||||
before = model_dict(user)
|
||||
db.delete(user)
|
||||
_audit(db, request, "delete", "admin_user", user.id, before=before, after={"id": user.id})
|
||||
db.commit()
|
||||
_invalidate_permissions(store, [user.id])
|
||||
return {"code": 200, "msg": "success", "data": {"id": user.id}}
|
||||
|
||||
|
||||
@router.get("/roles")
|
||||
def list_roles(_user: AdminUser = Depends(require_permission("system:role:read")), db: Session = Depends(get_db)):
|
||||
roles = list(db.scalars(select(AdminRole).order_by(AdminRole.createdAt.asc())).all())
|
||||
@@ -219,7 +240,7 @@ def list_roles(_user: AdminUser = Depends(require_permission("system:role:read")
|
||||
@router.get("/menus")
|
||||
def list_menus(_user: AdminUser = Depends(require_permission("system:menu:read")), db: Session = Depends(get_db)):
|
||||
menus = list(db.scalars(select(AdminMenu).order_by(AdminMenu.sortOrder.asc(), AdminMenu.id.asc())).all())
|
||||
return {"code": 200, "msg": "success", "data": {"items": [_menu_dict(menu) for menu in menus], "tree": build_menu_tree(menus)}}
|
||||
return {"code": 200, "msg": "success", "data": {"items": [_menu_dict(menu) for menu in menus], "tree": build_menu_tree(menus, visible_only=False)}}
|
||||
|
||||
|
||||
@router.get("/depts")
|
||||
@@ -279,6 +300,28 @@ def update_role(role_id: str, body: AdminRolePatch, request: Request, _user: Adm
|
||||
return {"code": 200, "msg": "success", "data": {"id": role.id}}
|
||||
|
||||
|
||||
@router.delete("/roles/{role_id}")
|
||||
def delete_role(
|
||||
role_id: str,
|
||||
request: Request,
|
||||
_user: AdminUser = Depends(require_permission("system:role:delete")),
|
||||
db: Session = Depends(get_db),
|
||||
store: AdminSessionStore = Depends(get_admin_session_store),
|
||||
):
|
||||
role = db.get(AdminRole, role_id)
|
||||
if not role:
|
||||
raise HTTPException(status_code=404, detail="角色不存在")
|
||||
if role.code == "super_admin":
|
||||
raise HTTPException(status_code=400, detail="系统内置角色不能删除")
|
||||
before = _role_dict(role)
|
||||
affected_user_ids = list(db.scalars(select(AdminUserRole.userId).where(AdminUserRole.roleId == role.id)).all())
|
||||
db.delete(role)
|
||||
_audit(db, request, "delete", "admin_role", role.id, before=before, after={"id": role.id})
|
||||
db.commit()
|
||||
_invalidate_permissions(store, affected_user_ids)
|
||||
return {"code": 200, "msg": "success", "data": {"id": role.id}}
|
||||
|
||||
|
||||
@router.post("/menus", status_code=status.HTTP_201_CREATED)
|
||||
def create_menu(body: AdminMenuCreate, request: Request, _user: AdminUser = Depends(require_permission("system:menu:create")), db: Session = Depends(get_db)):
|
||||
if body.parentId and not db.get(AdminMenu, body.parentId):
|
||||
@@ -311,6 +354,27 @@ def update_menu(menu_id: str, body: AdminMenuPatch, request: Request, _user: Adm
|
||||
return {"code": 200, "msg": "success", "data": {"id": menu.id}}
|
||||
|
||||
|
||||
@router.delete("/menus/{menu_id}")
|
||||
def delete_menu(
|
||||
menu_id: str,
|
||||
request: Request,
|
||||
_user: AdminUser = Depends(require_permission("system:menu:delete")),
|
||||
db: Session = Depends(get_db),
|
||||
store: AdminSessionStore = Depends(get_admin_session_store),
|
||||
):
|
||||
menu = db.get(AdminMenu, menu_id)
|
||||
if not menu:
|
||||
raise HTTPException(status_code=404, detail="菜单不存在")
|
||||
if db.scalar(select(AdminMenu.id).where(AdminMenu.parentId == menu.id).limit(1)):
|
||||
raise HTTPException(status_code=409, detail="该菜单存在子菜单,请先删除或移动子菜单")
|
||||
before = _menu_dict(menu)
|
||||
db.delete(menu)
|
||||
_audit(db, request, "delete", "admin_menu", menu.id, before=before, after={"id": menu.id})
|
||||
db.commit()
|
||||
_invalidate_permissions(store)
|
||||
return {"code": 200, "msg": "success", "data": {"id": menu.id}}
|
||||
|
||||
|
||||
@router.post("/depts", status_code=status.HTTP_201_CREATED)
|
||||
def create_dept(body: AdminDepartmentCreate, request: Request, _user: AdminUser = Depends(require_permission("system:dept:create")), db: Session = Depends(get_db)):
|
||||
if body.parentId and not db.get(AdminDepartment, body.parentId):
|
||||
@@ -337,3 +401,24 @@ def update_dept(dept_id: str, body: AdminDepartmentPatch, request: Request, _use
|
||||
db.commit()
|
||||
_invalidate_permissions(store)
|
||||
return {"code": 200, "msg": "success", "data": {"id": dept.id}}
|
||||
|
||||
|
||||
@router.delete("/depts/{dept_id}")
|
||||
def delete_dept(
|
||||
dept_id: str,
|
||||
request: Request,
|
||||
_user: AdminUser = Depends(require_permission("system:dept:delete")),
|
||||
db: Session = Depends(get_db),
|
||||
store: AdminSessionStore = Depends(get_admin_session_store),
|
||||
):
|
||||
dept = db.get(AdminDepartment, dept_id)
|
||||
if not dept:
|
||||
raise HTTPException(status_code=404, detail="部门不存在")
|
||||
if db.scalar(select(AdminDepartment.id).where(AdminDepartment.parentId == dept.id).limit(1)):
|
||||
raise HTTPException(status_code=409, detail="该部门存在子部门,请先删除或移动子部门")
|
||||
before = _dept_dict(dept)
|
||||
db.delete(dept)
|
||||
_audit(db, request, "delete", "admin_department", dept.id, before=before, after={"id": dept.id})
|
||||
db.commit()
|
||||
_invalidate_permissions(store)
|
||||
return {"code": 200, "msg": "success", "data": {"id": dept.id}}
|
||||
Reference in new issue
Block a user