diff --git a/AGENTS.md b/AGENTS.md index b519e12..b3cf702 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -286,30 +286,30 @@ func BuildXxx(item *models.Xxx) *response.Xxx { ### 8.2 路径分层 -- `/api/console/*`:业务后台接口,默认归属 +- `/api/dashboard/*`:业务后台接口,默认归属 - `/api/admin/*`:平台总后台接口 - `/api/open/*`:开放接口;IM 优先使用 `/api/open/im/*` - `/api/auth/*`:认证接口,可未登录访问 禁止新增 `/api/v1` 这类版本前缀。 -### 8.3 console 接口风格 +### 8.3 dashboard 接口风格 -- 资源路径优先平铺:如 `/api/console/project` +- 资源路径优先平铺:如 `/api/dashboard/project` - 列表、创建、更新、删除优先使用 `/list`、`/create`、`/update`、`/delete` - 查询条件优先通过 `query` 或 `body` 传递 - 除详情接口外,尽量不使用 path param -- 详情接口允许 `GET /api/console/project/{id}` +- 详情接口允许 `GET /api/dashboard/project/{id}` - 从属资源优先通过 `projectId`、`episodeId` 等普通参数过滤,不鼓励深层嵌套路由 ### 8.4 路由注册 -- 业务后台统一在 `internal/bootstrap/server.go` 中通过 `mvc.Configure(app.Party("/api/console"), ...)` 注册 +- 业务后台统一在 `internal/bootstrap/server.go` 中通过 `mvc.Configure(app.Party("/api/dashboard"), ...)` 注册 - 平台接口统一通过 `mvc.Configure(app.Party("/api/admin"), ...)` 注册 - 开放接口按领域归档,如 `mvc.Configure(app.Party("/api/open/im"), ...)` - 在分组内部通过 `m.Party("/xxx").Handle(...)` 挂载资源 -- 不要为每个资源单独再写一层顶级 `mvc.Configure(app.Party("/api/console/xxx"), ...)` -- 认证与鉴权中间件优先挂在 `/api/console` 或 `/api/admin` 这一层 +- 不要为每个资源单独再写一层顶级 `mvc.Configure(app.Party("/api/dashboard/xxx"), ...)` +- 认证与鉴权中间件优先挂在 `/api/dashboard` 或 `/api/admin` 这一层 ### 8.5 Iris MVC 自动路由规则 @@ -318,10 +318,10 @@ func BuildXxx(item *models.Xxx) *response.Xxx { - controller 挂载方式示例: ```go -m.Party("/quick-reply").Handle(new(console.QuickReplyController)) +m.Party("/quick-reply").Handle(new(dashboard.QuickReplyController)) ``` -在上面的注册下,controller 的基础路径就是 `/quick-reply`,最终完整路径再拼上外层分组,如 `/api/console/quick-reply`。 +在上面的注册下,controller 的基础路径就是 `/quick-reply`,最终完整路径再拼上外层分组,如 `/api/dashboard/quick-reply`。 - controller 名称 `QuickReplyController` 不会自动变成路径,路径以 `m.Party("/quick-reply")` 为准 - 方法名前缀决定 HTTP Method: @@ -352,18 +352,18 @@ m.Party("/quick-reply").Handle(new(console.QuickReplyController)) 当前项目常见正确映射示例: -- `m.Party("/user").Handle(new(console.UserController))` - - `AnyList()` -> `ANY /api/console/user/list` - - `GetBy(id int64)` -> `GET /api/console/user/{id}` - - `PostCreate()` -> `POST /api/console/user/create` - - `PostUpdate()` -> `POST /api/console/user/update` - - `PostDelete()` -> `POST /api/console/user/delete` -- `m.Party("/conversation").Handle(new(console.ConversationController))` - - `AnyList()` -> `ANY /api/console/conversation/list` - - `GetBy(id int64)` -> `GET /api/console/conversation/{id}` - - `AnyMessageList()` -> `ANY /api/console/conversation/message/list` - - `PostSendMessage()` -> `POST /api/console/conversation/send/message` - - 如果业务明确要求下划线路径,则方法名写成 `PostSend_message()`,对应 `POST /api/console/conversation/send_message` +- `m.Party("/user").Handle(new(dashboard.UserController))` + - `AnyList()` -> `ANY /api/dashboard/user/list` + - `GetBy(id int64)` -> `GET /api/dashboard/user/{id}` + - `PostCreate()` -> `POST /api/dashboard/user/create` + - `PostUpdate()` -> `POST /api/dashboard/user/update` + - `PostDelete()` -> `POST /api/dashboard/user/delete` +- `m.Party("/conversation").Handle(new(dashboard.ConversationController))` + - `AnyList()` -> `ANY /api/dashboard/conversation/list` + - `GetBy(id int64)` -> `GET /api/dashboard/conversation/{id}` + - `AnyMessageList()` -> `ANY /api/dashboard/conversation/message/list` + - `PostSendMessage()` -> `POST /api/dashboard/conversation/send/message` + - 如果业务明确要求下划线路径,则方法名写成 `PostSend_message()`,对应 `POST /api/dashboard/conversation/send_message` 容易写错的点: diff --git a/README.md b/README.md index 5e5ac89..8d970f7 100644 --- a/README.md +++ b/README.md @@ -181,7 +181,7 @@ flowchart TD │ ├── models/ # GORM models │ ├── migration/ # data migrations │ └── ai/ # LLM / RAG / MCP related logic -├── web/ # admin console (Next.js) +├── dashboard/ # dashboard (Next.js) ├── widget/ # embeddable customer chat widget ├── config/ # config files └── docs/ # project docs diff --git a/internal/bootstrap/server.go b/internal/bootstrap/server.go index ee7b52a..bf6006f 100644 --- a/internal/bootstrap/server.go +++ b/internal/bootstrap/server.go @@ -9,7 +9,7 @@ import ( "cs-agent/internal/ai/mcps" _ "cs-agent/internal/ai/runtime" "cs-agent/internal/controllers/api" - "cs-agent/internal/controllers/console" + "cs-agent/internal/controllers/dashboard" "cs-agent/internal/controllers/open" "cs-agent/internal/controllers/third" "cs-agent/internal/middleware" @@ -99,43 +99,43 @@ func addRouter(app *iris.Application) { mcpHandler.ServeHTTP(w, r) }))) - app.Get("/api/console/ws", middleware.AuthMiddleware, middleware.ConsoleWsMiddleware) + app.Get("/api/dashboard/ws", middleware.AuthMiddleware, middleware.DashboardWsMiddleware) app.Get("/api/open/im/ws", middleware.OpenImWsMiddleware) mvc.Configure(app.Party("/api/auth"), func(m *mvc.Application) { m.Handle(new(api.AuthController)) }) - mvc.Configure(app.Party("/api/console", middleware.AuthMiddleware), func(m *mvc.Application) { - m.Party("/dashboard").Handle(new(console.DashboardController)) - m.Party("/user").Handle(new(console.UserController)) - m.Party("/company").Handle(new(console.CompanyController)) - m.Party("/customer").Handle(new(console.CustomerController)) - m.Party("/customer-contact").Handle(new(console.CustomerContactController)) - m.Party("/role").Handle(new(console.RoleController)) - m.Party("/permission").Handle(new(console.PermissionController)) - m.Party("/session").Handle(new(console.SessionController)) - m.Party("/tag").Handle(new(console.TagController)) - m.Party("/conversation").Handle(new(console.ConversationController)) - m.Party("/ticket").Handle(new(console.TicketController)) - m.Party("/ticket-resolution-code").Handle(new(console.TicketResolutionCodeController)) - m.Party("/ticket-priority-config").Handle(new(console.TicketPriorityConfigController)) - m.Party("/quick-reply").Handle(new(console.QuickReplyController)) - m.Party("/channel").Handle(new(console.ChannelController)) - m.Party("/agent").Handle(new(console.AgentController)) - m.Party("/agent-team").Handle(new(console.AgentTeamController)) - m.Party("/agent-team-schedule").Handle(new(console.AgentTeamScheduleController)) - m.Party("/ai-agent").Handle(new(console.AIAgentController)) - m.Party("/ai-config").Handle(new(console.AIConfigController)) - m.Party("/asset").Handle(new(console.AssetController)) - m.Party("/knowledge-base").Handle(new(console.KnowledgeBaseController)) - m.Party("/knowledge-document").Handle(new(console.KnowledgeDocumentController)) - m.Party("/knowledge-faq").Handle(new(console.KnowledgeFAQController)) - m.Party("/knowledge-retrieve").Handle(new(console.KnowledgeRetrieveController)) - m.Party("/knowledge-retrieve-log").Handle(new(console.KnowledgeRetrieveLogController)) - m.Party("/agent-run-log").Handle(new(console.AgentRunLogController)) - m.Party("/skill-definition").Handle(new(console.SkillDefinitionController)) - m.Party("/mcp").Handle(new(console.MCPController)) + mvc.Configure(app.Party("/api/dashboard", middleware.AuthMiddleware), func(m *mvc.Application) { + m.Party("/dashboard").Handle(new(dashboard.DashboardController)) + m.Party("/user").Handle(new(dashboard.UserController)) + m.Party("/company").Handle(new(dashboard.CompanyController)) + m.Party("/customer").Handle(new(dashboard.CustomerController)) + m.Party("/customer-contact").Handle(new(dashboard.CustomerContactController)) + m.Party("/role").Handle(new(dashboard.RoleController)) + m.Party("/permission").Handle(new(dashboard.PermissionController)) + m.Party("/session").Handle(new(dashboard.SessionController)) + m.Party("/tag").Handle(new(dashboard.TagController)) + m.Party("/conversation").Handle(new(dashboard.ConversationController)) + m.Party("/ticket").Handle(new(dashboard.TicketController)) + m.Party("/ticket-resolution-code").Handle(new(dashboard.TicketResolutionCodeController)) + m.Party("/ticket-priority-config").Handle(new(dashboard.TicketPriorityConfigController)) + m.Party("/quick-reply").Handle(new(dashboard.QuickReplyController)) + m.Party("/channel").Handle(new(dashboard.ChannelController)) + m.Party("/agent").Handle(new(dashboard.AgentController)) + m.Party("/agent-team").Handle(new(dashboard.AgentTeamController)) + m.Party("/agent-team-schedule").Handle(new(dashboard.AgentTeamScheduleController)) + m.Party("/ai-agent").Handle(new(dashboard.AIAgentController)) + m.Party("/ai-config").Handle(new(dashboard.AIConfigController)) + m.Party("/asset").Handle(new(dashboard.AssetController)) + m.Party("/knowledge-base").Handle(new(dashboard.KnowledgeBaseController)) + m.Party("/knowledge-document").Handle(new(dashboard.KnowledgeDocumentController)) + m.Party("/knowledge-faq").Handle(new(dashboard.KnowledgeFAQController)) + m.Party("/knowledge-retrieve").Handle(new(dashboard.KnowledgeRetrieveController)) + m.Party("/knowledge-retrieve-log").Handle(new(dashboard.KnowledgeRetrieveLogController)) + m.Party("/agent-run-log").Handle(new(dashboard.AgentRunLogController)) + m.Party("/skill-definition").Handle(new(dashboard.SkillDefinitionController)) + m.Party("/mcp").Handle(new(dashboard.MCPController)) }) mvc.Configure(app.Party("/api/open/im", middleware.OpenImContextMiddleware), func(m *mvc.Application) { diff --git a/internal/controllers/console/agent_controller.go b/internal/controllers/dashboard/agent_controller.go similarity index 99% rename from internal/controllers/console/agent_controller.go rename to internal/controllers/dashboard/agent_controller.go index 243fb24..99e945c 100644 --- a/internal/controllers/console/agent_controller.go +++ b/internal/controllers/dashboard/agent_controller.go @@ -1,4 +1,4 @@ -package console +package dashboard import ( "cs-agent/internal/builders" diff --git a/internal/controllers/console/agent_run_log_controller.go b/internal/controllers/dashboard/agent_run_log_controller.go similarity index 99% rename from internal/controllers/console/agent_run_log_controller.go rename to internal/controllers/dashboard/agent_run_log_controller.go index 2fd805a..b4a70be 100644 --- a/internal/controllers/console/agent_run_log_controller.go +++ b/internal/controllers/dashboard/agent_run_log_controller.go @@ -1,4 +1,4 @@ -package console +package dashboard import ( "cs-agent/internal/builders" diff --git a/internal/controllers/console/agent_team_controller.go b/internal/controllers/dashboard/agent_team_controller.go similarity index 99% rename from internal/controllers/console/agent_team_controller.go rename to internal/controllers/dashboard/agent_team_controller.go index 521f22f..ece93dc 100644 --- a/internal/controllers/console/agent_team_controller.go +++ b/internal/controllers/dashboard/agent_team_controller.go @@ -1,4 +1,4 @@ -package console +package dashboard import ( "cs-agent/internal/models" diff --git a/internal/controllers/console/agent_team_schedule_controller.go b/internal/controllers/dashboard/agent_team_schedule_controller.go similarity index 99% rename from internal/controllers/console/agent_team_schedule_controller.go rename to internal/controllers/dashboard/agent_team_schedule_controller.go index f3ab69a..58b66bb 100644 --- a/internal/controllers/console/agent_team_schedule_controller.go +++ b/internal/controllers/dashboard/agent_team_schedule_controller.go @@ -1,4 +1,4 @@ -package console +package dashboard import ( "cs-agent/internal/models" diff --git a/internal/controllers/console/ai_agent_controller.go b/internal/controllers/dashboard/ai_agent_controller.go similarity index 99% rename from internal/controllers/console/ai_agent_controller.go rename to internal/controllers/dashboard/ai_agent_controller.go index 08f306e..e24dfb4 100644 --- a/internal/controllers/console/ai_agent_controller.go +++ b/internal/controllers/dashboard/ai_agent_controller.go @@ -1,4 +1,4 @@ -package console +package dashboard import ( "encoding/json" diff --git a/internal/controllers/console/ai_config_controller.go b/internal/controllers/dashboard/ai_config_controller.go similarity index 99% rename from internal/controllers/console/ai_config_controller.go rename to internal/controllers/dashboard/ai_config_controller.go index 296b745..b697353 100644 --- a/internal/controllers/console/ai_config_controller.go +++ b/internal/controllers/dashboard/ai_config_controller.go @@ -1,4 +1,4 @@ -package console +package dashboard import ( "cs-agent/internal/pkg/constants" diff --git a/internal/controllers/console/asset_controller.go b/internal/controllers/dashboard/asset_controller.go similarity index 99% rename from internal/controllers/console/asset_controller.go rename to internal/controllers/dashboard/asset_controller.go index 79065b3..13f911a 100644 --- a/internal/controllers/console/asset_controller.go +++ b/internal/controllers/dashboard/asset_controller.go @@ -1,4 +1,4 @@ -package console +package dashboard import ( "cs-agent/internal/builders" diff --git a/internal/controllers/console/channel_controller.go b/internal/controllers/dashboard/channel_controller.go similarity index 99% rename from internal/controllers/console/channel_controller.go rename to internal/controllers/dashboard/channel_controller.go index 95dd58c..4fe3b32 100644 --- a/internal/controllers/console/channel_controller.go +++ b/internal/controllers/dashboard/channel_controller.go @@ -1,4 +1,4 @@ -package console +package dashboard import ( "cs-agent/internal/models" diff --git a/internal/controllers/console/company_controller.go b/internal/controllers/dashboard/company_controller.go similarity index 99% rename from internal/controllers/console/company_controller.go rename to internal/controllers/dashboard/company_controller.go index 2005216..16ffc67 100644 --- a/internal/controllers/console/company_controller.go +++ b/internal/controllers/dashboard/company_controller.go @@ -1,4 +1,4 @@ -package console +package dashboard import ( "cs-agent/internal/builders" diff --git a/internal/controllers/console/conversation_controller.go b/internal/controllers/dashboard/conversation_controller.go similarity index 99% rename from internal/controllers/console/conversation_controller.go rename to internal/controllers/dashboard/conversation_controller.go index 21a57d6..e5e0289 100644 --- a/internal/controllers/console/conversation_controller.go +++ b/internal/controllers/dashboard/conversation_controller.go @@ -1,4 +1,4 @@ -package console +package dashboard import ( "cs-agent/internal/builders" diff --git a/internal/controllers/console/customer_contact_controller.go b/internal/controllers/dashboard/customer_contact_controller.go similarity index 99% rename from internal/controllers/console/customer_contact_controller.go rename to internal/controllers/dashboard/customer_contact_controller.go index 7933ef0..b7c515e 100644 --- a/internal/controllers/console/customer_contact_controller.go +++ b/internal/controllers/dashboard/customer_contact_controller.go @@ -1,4 +1,4 @@ -package console +package dashboard import ( "cs-agent/internal/builders" diff --git a/internal/controllers/console/customer_controller.go b/internal/controllers/dashboard/customer_controller.go similarity index 99% rename from internal/controllers/console/customer_controller.go rename to internal/controllers/dashboard/customer_controller.go index 3aeec79..0cf90b6 100644 --- a/internal/controllers/console/customer_controller.go +++ b/internal/controllers/dashboard/customer_controller.go @@ -1,4 +1,4 @@ -package console +package dashboard import ( "cs-agent/internal/builders" diff --git a/internal/controllers/console/dashboard_controller.go b/internal/controllers/dashboard/dashboard_controller.go similarity index 95% rename from internal/controllers/console/dashboard_controller.go rename to internal/controllers/dashboard/dashboard_controller.go index 02ccd58..6b3a68a 100644 --- a/internal/controllers/console/dashboard_controller.go +++ b/internal/controllers/dashboard/dashboard_controller.go @@ -1,4 +1,4 @@ -package console +package dashboard import ( "cs-agent/internal/services" diff --git a/internal/controllers/console/knowledge_base_controller.go b/internal/controllers/dashboard/knowledge_base_controller.go similarity index 99% rename from internal/controllers/console/knowledge_base_controller.go rename to internal/controllers/dashboard/knowledge_base_controller.go index 4c26dd4..9ccdc45 100644 --- a/internal/controllers/console/knowledge_base_controller.go +++ b/internal/controllers/dashboard/knowledge_base_controller.go @@ -1,4 +1,4 @@ -package console +package dashboard import ( "context" diff --git a/internal/controllers/console/knowledge_document_controller.go b/internal/controllers/dashboard/knowledge_document_controller.go similarity index 99% rename from internal/controllers/console/knowledge_document_controller.go rename to internal/controllers/dashboard/knowledge_document_controller.go index e4124a7..674f6d8 100644 --- a/internal/controllers/console/knowledge_document_controller.go +++ b/internal/controllers/dashboard/knowledge_document_controller.go @@ -1,4 +1,4 @@ -package console +package dashboard import ( "cs-agent/internal/builders" diff --git a/internal/controllers/console/knowledge_faq_controller.go b/internal/controllers/dashboard/knowledge_faq_controller.go similarity index 99% rename from internal/controllers/console/knowledge_faq_controller.go rename to internal/controllers/dashboard/knowledge_faq_controller.go index 37e7353..e7943ba 100644 --- a/internal/controllers/console/knowledge_faq_controller.go +++ b/internal/controllers/dashboard/knowledge_faq_controller.go @@ -1,4 +1,4 @@ -package console +package dashboard import ( "cs-agent/internal/builders" diff --git a/internal/controllers/console/knowledge_retrieve_controller.go b/internal/controllers/dashboard/knowledge_retrieve_controller.go similarity index 99% rename from internal/controllers/console/knowledge_retrieve_controller.go rename to internal/controllers/dashboard/knowledge_retrieve_controller.go index 2472fc7..32c0acf 100644 --- a/internal/controllers/console/knowledge_retrieve_controller.go +++ b/internal/controllers/dashboard/knowledge_retrieve_controller.go @@ -1,4 +1,4 @@ -package console +package dashboard import ( "context" diff --git a/internal/controllers/console/knowledge_retrieve_log_controller.go b/internal/controllers/dashboard/knowledge_retrieve_log_controller.go similarity index 99% rename from internal/controllers/console/knowledge_retrieve_log_controller.go rename to internal/controllers/dashboard/knowledge_retrieve_log_controller.go index 110d5f9..ef3e225 100644 --- a/internal/controllers/console/knowledge_retrieve_log_controller.go +++ b/internal/controllers/dashboard/knowledge_retrieve_log_controller.go @@ -1,4 +1,4 @@ -package console +package dashboard import ( "cs-agent/internal/builders" diff --git a/internal/controllers/console/mcp_controller.go b/internal/controllers/dashboard/mcp_controller.go similarity index 99% rename from internal/controllers/console/mcp_controller.go rename to internal/controllers/dashboard/mcp_controller.go index fbc2f21..95b8505 100644 --- a/internal/controllers/console/mcp_controller.go +++ b/internal/controllers/dashboard/mcp_controller.go @@ -1,4 +1,4 @@ -package console +package dashboard import ( "context" diff --git a/internal/controllers/console/permission_controller.go b/internal/controllers/dashboard/permission_controller.go similarity index 99% rename from internal/controllers/console/permission_controller.go rename to internal/controllers/dashboard/permission_controller.go index 529098b..e2edd73 100644 --- a/internal/controllers/console/permission_controller.go +++ b/internal/controllers/dashboard/permission_controller.go @@ -1,4 +1,4 @@ -package console +package dashboard import ( "cs-agent/internal/pkg/constants" diff --git a/internal/controllers/console/quick_reply_controller.go b/internal/controllers/dashboard/quick_reply_controller.go similarity index 99% rename from internal/controllers/console/quick_reply_controller.go rename to internal/controllers/dashboard/quick_reply_controller.go index dd8ceeb..71b8031 100644 --- a/internal/controllers/console/quick_reply_controller.go +++ b/internal/controllers/dashboard/quick_reply_controller.go @@ -1,4 +1,4 @@ -package console +package dashboard import ( "cs-agent/internal/pkg/constants" diff --git a/internal/controllers/console/role_controller.go b/internal/controllers/dashboard/role_controller.go similarity index 99% rename from internal/controllers/console/role_controller.go rename to internal/controllers/dashboard/role_controller.go index 9c9ba39..caa4b5d 100644 --- a/internal/controllers/console/role_controller.go +++ b/internal/controllers/dashboard/role_controller.go @@ -1,4 +1,4 @@ -package console +package dashboard import ( "cs-agent/internal/pkg/constants" diff --git a/internal/controllers/console/session_controller.go b/internal/controllers/dashboard/session_controller.go similarity index 99% rename from internal/controllers/console/session_controller.go rename to internal/controllers/dashboard/session_controller.go index de7acf7..b8362f1 100644 --- a/internal/controllers/console/session_controller.go +++ b/internal/controllers/dashboard/session_controller.go @@ -1,4 +1,4 @@ -package console +package dashboard import ( "cs-agent/internal/pkg/constants" diff --git a/internal/controllers/console/skill_definition_controller.go b/internal/controllers/dashboard/skill_definition_controller.go similarity index 99% rename from internal/controllers/console/skill_definition_controller.go rename to internal/controllers/dashboard/skill_definition_controller.go index 5dac06c..906958a 100644 --- a/internal/controllers/console/skill_definition_controller.go +++ b/internal/controllers/dashboard/skill_definition_controller.go @@ -1,4 +1,4 @@ -package console +package dashboard import ( "context" diff --git a/internal/controllers/console/tag_controller.go b/internal/controllers/dashboard/tag_controller.go similarity index 99% rename from internal/controllers/console/tag_controller.go rename to internal/controllers/dashboard/tag_controller.go index 2e58bb4..bf217b4 100644 --- a/internal/controllers/console/tag_controller.go +++ b/internal/controllers/dashboard/tag_controller.go @@ -1,4 +1,4 @@ -package console +package dashboard import ( "cs-agent/internal/builders" diff --git a/internal/controllers/console/ticket_controller.go b/internal/controllers/dashboard/ticket_controller.go similarity index 99% rename from internal/controllers/console/ticket_controller.go rename to internal/controllers/dashboard/ticket_controller.go index 7bf6c1a..abe760c 100644 --- a/internal/controllers/console/ticket_controller.go +++ b/internal/controllers/dashboard/ticket_controller.go @@ -1,4 +1,4 @@ -package console +package dashboard import ( "strings" diff --git a/internal/controllers/console/ticket_priority_config_controller.go b/internal/controllers/dashboard/ticket_priority_config_controller.go similarity index 99% rename from internal/controllers/console/ticket_priority_config_controller.go rename to internal/controllers/dashboard/ticket_priority_config_controller.go index ccd22ed..feeec1e 100644 --- a/internal/controllers/console/ticket_priority_config_controller.go +++ b/internal/controllers/dashboard/ticket_priority_config_controller.go @@ -1,4 +1,4 @@ -package console +package dashboard import ( "cs-agent/internal/builders" diff --git a/internal/controllers/console/ticket_resolution_code_controller.go b/internal/controllers/dashboard/ticket_resolution_code_controller.go similarity index 99% rename from internal/controllers/console/ticket_resolution_code_controller.go rename to internal/controllers/dashboard/ticket_resolution_code_controller.go index 48c145b..38751e2 100644 --- a/internal/controllers/console/ticket_resolution_code_controller.go +++ b/internal/controllers/dashboard/ticket_resolution_code_controller.go @@ -1,4 +1,4 @@ -package console +package dashboard import ( "cs-agent/internal/builders" diff --git a/internal/controllers/console/user_controller.go b/internal/controllers/dashboard/user_controller.go similarity index 99% rename from internal/controllers/console/user_controller.go rename to internal/controllers/dashboard/user_controller.go index d6ab783..dfe3192 100644 --- a/internal/controllers/console/user_controller.go +++ b/internal/controllers/dashboard/user_controller.go @@ -1,4 +1,4 @@ -package console +package dashboard import ( "cs-agent/internal/builders" diff --git a/internal/middleware/ws_middleware.go b/internal/middleware/ws_middleware.go index a142000..90f62ab 100644 --- a/internal/middleware/ws_middleware.go +++ b/internal/middleware/ws_middleware.go @@ -12,7 +12,7 @@ import ( "github.com/mlogclub/simple/web" ) -func ConsoleWsMiddleware(ctx iris.Context) { +func DashboardWsMiddleware(ctx iris.Context) { principal := services.AuthService.GetAuthPrincipal(ctx) if principal == nil { if _, err := services.AuthService.Authenticate(ctx); err != nil { diff --git a/internal/pkg/constants/auth.go b/internal/pkg/constants/auth.go index bc29f75..973c6ff 100644 --- a/internal/pkg/constants/auth.go +++ b/internal/pkg/constants/auth.go @@ -41,143 +41,143 @@ type Permission struct { // 权限常量定义 var ( // 用户相关权限 - PermissionUserView = Permission{Name: "查看用户", Code: "user.view", Type: "api", GroupName: "user", Method: "ANY", APIPath: "/api/console/user/list", SortNo: 10} - PermissionUserCreate = Permission{Name: "创建用户", Code: "user.create", Type: "api", GroupName: "user", Method: "POST", APIPath: "/api/console/user/create", SortNo: 20} - PermissionUserUpdate = Permission{Name: "更新用户", Code: "user.update", Type: "api", GroupName: "user", Method: "POST", APIPath: "/api/console/user/update", SortNo: 30} - PermissionUserDelete = Permission{Name: "删除用户", Code: "user.delete", Type: "api", GroupName: "user", Method: "POST", APIPath: "/api/console/user/delete", SortNo: 40} - PermissionUserAssignRole = Permission{Name: "分配用户角色", Code: "user.assignRole", Type: "api", GroupName: "user", Method: "POST", APIPath: "/api/console/user/assign_role", SortNo: 50} + PermissionUserView = Permission{Name: "查看用户", Code: "user.view", Type: "api", GroupName: "user", Method: "ANY", APIPath: "/api/dashboard/user/list", SortNo: 10} + PermissionUserCreate = Permission{Name: "创建用户", Code: "user.create", Type: "api", GroupName: "user", Method: "POST", APIPath: "/api/dashboard/user/create", SortNo: 20} + PermissionUserUpdate = Permission{Name: "更新用户", Code: "user.update", Type: "api", GroupName: "user", Method: "POST", APIPath: "/api/dashboard/user/update", SortNo: 30} + PermissionUserDelete = Permission{Name: "删除用户", Code: "user.delete", Type: "api", GroupName: "user", Method: "POST", APIPath: "/api/dashboard/user/delete", SortNo: 40} + PermissionUserAssignRole = Permission{Name: "分配用户角色", Code: "user.assignRole", Type: "api", GroupName: "user", Method: "POST", APIPath: "/api/dashboard/user/assign_role", SortNo: 50} // 角色相关权限 - PermissionRoleView = Permission{Name: "查看角色", Code: "role.view", Type: "api", GroupName: "role", Method: "ANY", APIPath: "/api/console/role/list", SortNo: 110} - PermissionRoleCreate = Permission{Name: "创建角色", Code: "role.create", Type: "api", GroupName: "role", Method: "POST", APIPath: "/api/console/role/create", SortNo: 120} - PermissionRoleUpdate = Permission{Name: "更新角色", Code: "role.update", Type: "api", GroupName: "role", Method: "POST", APIPath: "/api/console/role/update", SortNo: 130} - PermissionRoleDelete = Permission{Name: "删除角色", Code: "role.delete", Type: "api", GroupName: "role", Method: "POST", APIPath: "/api/console/role/delete", SortNo: 140} - PermissionRoleAssignPermission = Permission{Name: "分配角色权限", Code: "role.assignPermission", Type: "api", GroupName: "role", Method: "POST", APIPath: "/api/console/role/assign_permission", SortNo: 150} + PermissionRoleView = Permission{Name: "查看角色", Code: "role.view", Type: "api", GroupName: "role", Method: "ANY", APIPath: "/api/dashboard/role/list", SortNo: 110} + PermissionRoleCreate = Permission{Name: "创建角色", Code: "role.create", Type: "api", GroupName: "role", Method: "POST", APIPath: "/api/dashboard/role/create", SortNo: 120} + PermissionRoleUpdate = Permission{Name: "更新角色", Code: "role.update", Type: "api", GroupName: "role", Method: "POST", APIPath: "/api/dashboard/role/update", SortNo: 130} + PermissionRoleDelete = Permission{Name: "删除角色", Code: "role.delete", Type: "api", GroupName: "role", Method: "POST", APIPath: "/api/dashboard/role/delete", SortNo: 140} + PermissionRoleAssignPermission = Permission{Name: "分配角色权限", Code: "role.assignPermission", Type: "api", GroupName: "role", Method: "POST", APIPath: "/api/dashboard/role/assign_permission", SortNo: 150} // 权限相关权限 - PermissionPermissionView = Permission{Name: "查看权限", Code: "permission.view", Type: "api", GroupName: "permission", Method: "ANY", APIPath: "/api/console/permission/list", SortNo: 210} - PermissionPermissionSync = Permission{Name: "同步权限", Code: "permission.sync", Type: "api", GroupName: "permission", Method: "POST", APIPath: "/api/console/permission/sync", SortNo: 220} + PermissionPermissionView = Permission{Name: "查看权限", Code: "permission.view", Type: "api", GroupName: "permission", Method: "ANY", APIPath: "/api/dashboard/permission/list", SortNo: 210} + PermissionPermissionSync = Permission{Name: "同步权限", Code: "permission.sync", Type: "api", GroupName: "permission", Method: "POST", APIPath: "/api/dashboard/permission/sync", SortNo: 220} // 会话相关权限 - PermissionSessionView = Permission{Name: "查看会话", Code: "session.view", Type: "api", GroupName: "session", Method: "ANY", APIPath: "/api/console/session/list", SortNo: 310} - PermissionSessionRevoke = Permission{Name: "踢除会话", Code: "session.revoke", Type: "api", GroupName: "session", Method: "POST", APIPath: "/api/console/session/revoke", SortNo: 320} + PermissionSessionView = Permission{Name: "查看会话", Code: "session.view", Type: "api", GroupName: "session", Method: "ANY", APIPath: "/api/dashboard/session/list", SortNo: 310} + PermissionSessionRevoke = Permission{Name: "踢除会话", Code: "session.revoke", Type: "api", GroupName: "session", Method: "POST", APIPath: "/api/dashboard/session/revoke", SortNo: 320} // 客服会话相关权限 - PermissionConversationView = Permission{Name: "查看会话", Code: "conversation.view", Type: "api", GroupName: "conversation", Method: "ANY", APIPath: "/api/console/conversation/list", SortNo: 410} - PermissionConversationAssign = Permission{Name: "分配会话", Code: "conversation.assign", Type: "api", GroupName: "conversation", Method: "POST", APIPath: "/api/console/conversation/assign", SortNo: 430} - PermissionConversationTransfer = Permission{Name: "转接会话", Code: "conversation.transfer", Type: "api", GroupName: "conversation", Method: "POST", APIPath: "/api/console/conversation/transfer", SortNo: 440} - PermissionConversationClose = Permission{Name: "关闭会话", Code: "conversation.close", Type: "api", GroupName: "conversation", Method: "POST", APIPath: "/api/console/conversation/close", SortNo: 450} - PermissionConversationSend = Permission{Name: "发送会话消息", Code: "conversation.send", Type: "api", GroupName: "conversation", Method: "POST", APIPath: "/api/console/conversation/send_message", SortNo: 460} - PermissionConversationTag = Permission{Name: "管理会话标签", Code: "conversation.tag", Type: "api", GroupName: "conversation", Method: "POST", APIPath: "/api/console/conversation/add_tag", SortNo: 470} - PermissionConversationHandover = Permission{Name: "处理会话交接", Code: "conversation.handover", Type: "api", GroupName: "conversation", Method: "ANY", APIPath: "/api/console/conversation/handover_list", SortNo: 480} - PermissionConversationRecycle = Permission{Name: "回收会话", Code: "conversation.recycle", Type: "api", GroupName: "conversation", Method: "POST", APIPath: "/api/console/conversation/recycle", SortNo: 490} - PermissionConversationLinkCustomer = Permission{Name: "关联会话客户", Code: "conversation.linkCustomer", Type: "api", GroupName: "conversation", Method: "POST", APIPath: "/api/console/conversation/link_customer", SortNo: 495} + PermissionConversationView = Permission{Name: "查看会话", Code: "conversation.view", Type: "api", GroupName: "conversation", Method: "ANY", APIPath: "/api/dashboard/conversation/list", SortNo: 410} + PermissionConversationAssign = Permission{Name: "分配会话", Code: "conversation.assign", Type: "api", GroupName: "conversation", Method: "POST", APIPath: "/api/dashboard/conversation/assign", SortNo: 430} + PermissionConversationTransfer = Permission{Name: "转接会话", Code: "conversation.transfer", Type: "api", GroupName: "conversation", Method: "POST", APIPath: "/api/dashboard/conversation/transfer", SortNo: 440} + PermissionConversationClose = Permission{Name: "关闭会话", Code: "conversation.close", Type: "api", GroupName: "conversation", Method: "POST", APIPath: "/api/dashboard/conversation/close", SortNo: 450} + PermissionConversationSend = Permission{Name: "发送会话消息", Code: "conversation.send", Type: "api", GroupName: "conversation", Method: "POST", APIPath: "/api/dashboard/conversation/send_message", SortNo: 460} + PermissionConversationTag = Permission{Name: "管理会话标签", Code: "conversation.tag", Type: "api", GroupName: "conversation", Method: "POST", APIPath: "/api/dashboard/conversation/add_tag", SortNo: 470} + PermissionConversationHandover = Permission{Name: "处理会话交接", Code: "conversation.handover", Type: "api", GroupName: "conversation", Method: "ANY", APIPath: "/api/dashboard/conversation/handover_list", SortNo: 480} + PermissionConversationRecycle = Permission{Name: "回收会话", Code: "conversation.recycle", Type: "api", GroupName: "conversation", Method: "POST", APIPath: "/api/dashboard/conversation/recycle", SortNo: 490} + PermissionConversationLinkCustomer = Permission{Name: "关联会话客户", Code: "conversation.linkCustomer", Type: "api", GroupName: "conversation", Method: "POST", APIPath: "/api/dashboard/conversation/link_customer", SortNo: 495} // 工单相关权限 - PermissionTicketView = Permission{Name: "查看工单", Code: "ticket.view", Type: "api", GroupName: "ticket", Method: "ANY", APIPath: "/api/console/ticket/list", SortNo: 500} - PermissionTicketCreate = Permission{Name: "创建工单", Code: "ticket.create", Type: "api", GroupName: "ticket", Method: "POST", APIPath: "/api/console/ticket/create", SortNo: 510} - PermissionTicketUpdate = Permission{Name: "更新工单", Code: "ticket.update", Type: "api", GroupName: "ticket", Method: "POST", APIPath: "/api/console/ticket/update", SortNo: 520} - PermissionTicketAssign = Permission{Name: "指派工单", Code: "ticket.assign", Type: "api", GroupName: "ticket", Method: "POST", APIPath: "/api/console/ticket/assign", SortNo: 530} - PermissionTicketChangeStatus = Permission{Name: "变更工单状态", Code: "ticket.changeStatus", Type: "api", GroupName: "ticket", Method: "POST", APIPath: "/api/console/ticket/change_status", SortNo: 540} - PermissionTicketReply = Permission{Name: "回复工单", Code: "ticket.reply", Type: "api", GroupName: "ticket", Method: "POST", APIPath: "/api/console/ticket/reply", SortNo: 550} - PermissionTicketClose = Permission{Name: "关闭工单", Code: "ticket.close", Type: "api", GroupName: "ticket", Method: "POST", APIPath: "/api/console/ticket/close", SortNo: 560} - PermissionTicketReopen = Permission{Name: "重开工单", Code: "ticket.reopen", Type: "api", GroupName: "ticket", Method: "POST", APIPath: "/api/console/ticket/reopen", SortNo: 570} - PermissionTicketResolutionCodeView = Permission{Name: "查看工单解决码", Code: "ticketResolutionCode.view", Type: "api", GroupName: "ticketResolutionCode", Method: "ANY", APIPath: "/api/console/ticket-resolution-code/list", SortNo: 580} - PermissionTicketResolutionCodeCreate = Permission{Name: "创建工单解决码", Code: "ticketResolutionCode.create", Type: "api", GroupName: "ticketResolutionCode", Method: "POST", APIPath: "/api/console/ticket-resolution-code/create", SortNo: 590} - PermissionTicketResolutionCodeUpdate = Permission{Name: "更新工单解决码", Code: "ticketResolutionCode.update", Type: "api", GroupName: "ticketResolutionCode", Method: "POST", APIPath: "/api/console/ticket-resolution-code/update", SortNo: 600} - PermissionTicketResolutionCodeDelete = Permission{Name: "删除工单解决码", Code: "ticketResolutionCode.delete", Type: "api", GroupName: "ticketResolutionCode", Method: "POST", APIPath: "/api/console/ticket-resolution-code/delete", SortNo: 610} - PermissionTicketPriorityConfigView = Permission{Name: "查看工单优先级", Code: "ticketPriorityConfig.view", Type: "api", GroupName: "ticketPriorityConfig", Method: "ANY", APIPath: "/api/console/ticket-priority-config/list", SortNo: 620} - PermissionTicketPriorityConfigCreate = Permission{Name: "创建工单优先级", Code: "ticketPriorityConfig.create", Type: "api", GroupName: "ticketPriorityConfig", Method: "POST", APIPath: "/api/console/ticket-priority-config/create", SortNo: 630} - PermissionTicketPriorityConfigUpdate = Permission{Name: "更新工单优先级", Code: "ticketPriorityConfig.update", Type: "api", GroupName: "ticketPriorityConfig", Method: "POST", APIPath: "/api/console/ticket-priority-config/update", SortNo: 640} - PermissionTicketPriorityConfigDelete = Permission{Name: "删除工单优先级", Code: "ticketPriorityConfig.delete", Type: "api", GroupName: "ticketPriorityConfig", Method: "POST", APIPath: "/api/console/ticket-priority-config/delete", SortNo: 650} + PermissionTicketView = Permission{Name: "查看工单", Code: "ticket.view", Type: "api", GroupName: "ticket", Method: "ANY", APIPath: "/api/dashboard/ticket/list", SortNo: 500} + PermissionTicketCreate = Permission{Name: "创建工单", Code: "ticket.create", Type: "api", GroupName: "ticket", Method: "POST", APIPath: "/api/dashboard/ticket/create", SortNo: 510} + PermissionTicketUpdate = Permission{Name: "更新工单", Code: "ticket.update", Type: "api", GroupName: "ticket", Method: "POST", APIPath: "/api/dashboard/ticket/update", SortNo: 520} + PermissionTicketAssign = Permission{Name: "指派工单", Code: "ticket.assign", Type: "api", GroupName: "ticket", Method: "POST", APIPath: "/api/dashboard/ticket/assign", SortNo: 530} + PermissionTicketChangeStatus = Permission{Name: "变更工单状态", Code: "ticket.changeStatus", Type: "api", GroupName: "ticket", Method: "POST", APIPath: "/api/dashboard/ticket/change_status", SortNo: 540} + PermissionTicketReply = Permission{Name: "回复工单", Code: "ticket.reply", Type: "api", GroupName: "ticket", Method: "POST", APIPath: "/api/dashboard/ticket/reply", SortNo: 550} + PermissionTicketClose = Permission{Name: "关闭工单", Code: "ticket.close", Type: "api", GroupName: "ticket", Method: "POST", APIPath: "/api/dashboard/ticket/close", SortNo: 560} + PermissionTicketReopen = Permission{Name: "重开工单", Code: "ticket.reopen", Type: "api", GroupName: "ticket", Method: "POST", APIPath: "/api/dashboard/ticket/reopen", SortNo: 570} + PermissionTicketResolutionCodeView = Permission{Name: "查看工单解决码", Code: "ticketResolutionCode.view", Type: "api", GroupName: "ticketResolutionCode", Method: "ANY", APIPath: "/api/dashboard/ticket-resolution-code/list", SortNo: 580} + PermissionTicketResolutionCodeCreate = Permission{Name: "创建工单解决码", Code: "ticketResolutionCode.create", Type: "api", GroupName: "ticketResolutionCode", Method: "POST", APIPath: "/api/dashboard/ticket-resolution-code/create", SortNo: 590} + PermissionTicketResolutionCodeUpdate = Permission{Name: "更新工单解决码", Code: "ticketResolutionCode.update", Type: "api", GroupName: "ticketResolutionCode", Method: "POST", APIPath: "/api/dashboard/ticket-resolution-code/update", SortNo: 600} + PermissionTicketResolutionCodeDelete = Permission{Name: "删除工单解决码", Code: "ticketResolutionCode.delete", Type: "api", GroupName: "ticketResolutionCode", Method: "POST", APIPath: "/api/dashboard/ticket-resolution-code/delete", SortNo: 610} + PermissionTicketPriorityConfigView = Permission{Name: "查看工单优先级", Code: "ticketPriorityConfig.view", Type: "api", GroupName: "ticketPriorityConfig", Method: "ANY", APIPath: "/api/dashboard/ticket-priority-config/list", SortNo: 620} + PermissionTicketPriorityConfigCreate = Permission{Name: "创建工单优先级", Code: "ticketPriorityConfig.create", Type: "api", GroupName: "ticketPriorityConfig", Method: "POST", APIPath: "/api/dashboard/ticket-priority-config/create", SortNo: 630} + PermissionTicketPriorityConfigUpdate = Permission{Name: "更新工单优先级", Code: "ticketPriorityConfig.update", Type: "api", GroupName: "ticketPriorityConfig", Method: "POST", APIPath: "/api/dashboard/ticket-priority-config/update", SortNo: 640} + PermissionTicketPriorityConfigDelete = Permission{Name: "删除工单优先级", Code: "ticketPriorityConfig.delete", Type: "api", GroupName: "ticketPriorityConfig", Method: "POST", APIPath: "/api/dashboard/ticket-priority-config/delete", SortNo: 650} // 快捷回复相关权限 - PermissionQuickReplyView = Permission{Name: "查看快捷回复", Code: "quickReply.view", Type: "api", GroupName: "quickReply", Method: "ANY", APIPath: "/api/console/quick-reply/list", SortNo: 610} - PermissionQuickReplyCreate = Permission{Name: "创建快捷回复", Code: "quickReply.create", Type: "api", GroupName: "quickReply", Method: "POST", APIPath: "/api/console/quick-reply/create", SortNo: 620} - PermissionQuickReplyUpdate = Permission{Name: "更新快捷回复", Code: "quickReply.update", Type: "api", GroupName: "quickReply", Method: "POST", APIPath: "/api/console/quick-reply/update", SortNo: 630} - PermissionQuickReplyDelete = Permission{Name: "删除快捷回复", Code: "quickReply.delete", Type: "api", GroupName: "quickReply", Method: "POST", APIPath: "/api/console/quick-reply/delete", SortNo: 640} + PermissionQuickReplyView = Permission{Name: "查看快捷回复", Code: "quickReply.view", Type: "api", GroupName: "quickReply", Method: "ANY", APIPath: "/api/dashboard/quick-reply/list", SortNo: 610} + PermissionQuickReplyCreate = Permission{Name: "创建快捷回复", Code: "quickReply.create", Type: "api", GroupName: "quickReply", Method: "POST", APIPath: "/api/dashboard/quick-reply/create", SortNo: 620} + PermissionQuickReplyUpdate = Permission{Name: "更新快捷回复", Code: "quickReply.update", Type: "api", GroupName: "quickReply", Method: "POST", APIPath: "/api/dashboard/quick-reply/update", SortNo: 630} + PermissionQuickReplyDelete = Permission{Name: "删除快捷回复", Code: "quickReply.delete", Type: "api", GroupName: "quickReply", Method: "POST", APIPath: "/api/dashboard/quick-reply/delete", SortNo: 640} // 标签相关权限 - PermissionTagView = Permission{Name: "查看标签", Code: "tag.view", Type: "api", GroupName: "tag", Method: "ANY", APIPath: "/api/console/tag/list", SortNo: 550} - PermissionTagCreate = Permission{Name: "创建标签", Code: "tag.create", Type: "api", GroupName: "tag", Method: "POST", APIPath: "/api/console/tag/create", SortNo: 560} - PermissionTagUpdate = Permission{Name: "更新标签", Code: "tag.update", Type: "api", GroupName: "tag", Method: "POST", APIPath: "/api/console/tag/update", SortNo: 570} - PermissionTagDelete = Permission{Name: "删除标签", Code: "tag.delete", Type: "api", GroupName: "tag", Method: "POST", APIPath: "/api/console/tag/delete", SortNo: 580} + PermissionTagView = Permission{Name: "查看标签", Code: "tag.view", Type: "api", GroupName: "tag", Method: "ANY", APIPath: "/api/dashboard/tag/list", SortNo: 550} + PermissionTagCreate = Permission{Name: "创建标签", Code: "tag.create", Type: "api", GroupName: "tag", Method: "POST", APIPath: "/api/dashboard/tag/create", SortNo: 560} + PermissionTagUpdate = Permission{Name: "更新标签", Code: "tag.update", Type: "api", GroupName: "tag", Method: "POST", APIPath: "/api/dashboard/tag/update", SortNo: 570} + PermissionTagDelete = Permission{Name: "删除标签", Code: "tag.delete", Type: "api", GroupName: "tag", Method: "POST", APIPath: "/api/dashboard/tag/delete", SortNo: 580} // 公司相关权限 - PermissionCompanyView = Permission{Name: "查看公司", Code: "company.view", Type: "api", GroupName: "company", Method: "ANY", APIPath: "/api/console/company/list", SortNo: 590} - PermissionCompanyCreate = Permission{Name: "创建公司", Code: "company.create", Type: "api", GroupName: "company", Method: "POST", APIPath: "/api/console/company/create", SortNo: 600} - PermissionCompanyUpdate = Permission{Name: "更新公司", Code: "company.update", Type: "api", GroupName: "company", Method: "POST", APIPath: "/api/console/company/update", SortNo: 610} - PermissionCompanyDelete = Permission{Name: "删除公司", Code: "company.delete", Type: "api", GroupName: "company", Method: "POST", APIPath: "/api/console/company/delete", SortNo: 620} + PermissionCompanyView = Permission{Name: "查看公司", Code: "company.view", Type: "api", GroupName: "company", Method: "ANY", APIPath: "/api/dashboard/company/list", SortNo: 590} + PermissionCompanyCreate = Permission{Name: "创建公司", Code: "company.create", Type: "api", GroupName: "company", Method: "POST", APIPath: "/api/dashboard/company/create", SortNo: 600} + PermissionCompanyUpdate = Permission{Name: "更新公司", Code: "company.update", Type: "api", GroupName: "company", Method: "POST", APIPath: "/api/dashboard/company/update", SortNo: 610} + PermissionCompanyDelete = Permission{Name: "删除公司", Code: "company.delete", Type: "api", GroupName: "company", Method: "POST", APIPath: "/api/dashboard/company/delete", SortNo: 620} // 接入渠道相关权限 - PermissionChannelView = Permission{Name: "查看接入渠道", Code: "channel.view", Type: "api", GroupName: "channel", Method: "ANY", APIPath: "/api/console/channel/list", SortNo: 625} - PermissionChannelCreate = Permission{Name: "创建接入渠道", Code: "channel.create", Type: "api", GroupName: "channel", Method: "POST", APIPath: "/api/console/channel/create", SortNo: 626} - PermissionChannelUpdate = Permission{Name: "更新接入渠道", Code: "channel.update", Type: "api", GroupName: "channel", Method: "POST", APIPath: "/api/console/channel/update", SortNo: 627} - PermissionChannelDelete = Permission{Name: "删除接入渠道", Code: "channel.delete", Type: "api", GroupName: "channel", Method: "POST", APIPath: "/api/console/channel/delete", SortNo: 628} + PermissionChannelView = Permission{Name: "查看接入渠道", Code: "channel.view", Type: "api", GroupName: "channel", Method: "ANY", APIPath: "/api/dashboard/channel/list", SortNo: 625} + PermissionChannelCreate = Permission{Name: "创建接入渠道", Code: "channel.create", Type: "api", GroupName: "channel", Method: "POST", APIPath: "/api/dashboard/channel/create", SortNo: 626} + PermissionChannelUpdate = Permission{Name: "更新接入渠道", Code: "channel.update", Type: "api", GroupName: "channel", Method: "POST", APIPath: "/api/dashboard/channel/update", SortNo: 627} + PermissionChannelDelete = Permission{Name: "删除接入渠道", Code: "channel.delete", Type: "api", GroupName: "channel", Method: "POST", APIPath: "/api/dashboard/channel/delete", SortNo: 628} // 客户相关权限 - PermissionCustomerView = Permission{Name: "查看客户", Code: "customer.view", Type: "api", GroupName: "customer", Method: "POST", APIPath: "/api/console/customer/list", SortNo: 630} - PermissionCustomerCreate = Permission{Name: "创建客户", Code: "customer.create", Type: "api", GroupName: "customer", Method: "POST", APIPath: "/api/console/customer/create", SortNo: 640} - PermissionCustomerUpdate = Permission{Name: "更新客户", Code: "customer.update", Type: "api", GroupName: "customer", Method: "POST", APIPath: "/api/console/customer/update", SortNo: 650} - PermissionCustomerDelete = Permission{Name: "删除客户", Code: "customer.delete", Type: "api", GroupName: "customer", Method: "POST", APIPath: "/api/console/customer/delete", SortNo: 660} + PermissionCustomerView = Permission{Name: "查看客户", Code: "customer.view", Type: "api", GroupName: "customer", Method: "POST", APIPath: "/api/dashboard/customer/list", SortNo: 630} + PermissionCustomerCreate = Permission{Name: "创建客户", Code: "customer.create", Type: "api", GroupName: "customer", Method: "POST", APIPath: "/api/dashboard/customer/create", SortNo: 640} + PermissionCustomerUpdate = Permission{Name: "更新客户", Code: "customer.update", Type: "api", GroupName: "customer", Method: "POST", APIPath: "/api/dashboard/customer/update", SortNo: 650} + PermissionCustomerDelete = Permission{Name: "删除客户", Code: "customer.delete", Type: "api", GroupName: "customer", Method: "POST", APIPath: "/api/dashboard/customer/delete", SortNo: 660} // 客服相关权限 - PermissionAgentView = Permission{Name: "查看客服", Code: "agent.view", Type: "api", GroupName: "agent", Method: "ANY", APIPath: "/api/console/agent/list", SortNo: 610} - PermissionAgentCreate = Permission{Name: "创建客服", Code: "agent.create", Type: "api", GroupName: "agent", Method: "POST", APIPath: "/api/console/agent/create", SortNo: 620} - PermissionAgentUpdate = Permission{Name: "更新客服", Code: "agent.update", Type: "api", GroupName: "agent", Method: "POST", APIPath: "/api/console/agent/update", SortNo: 630} - PermissionAgentDelete = Permission{Name: "删除客服", Code: "agent.delete", Type: "api", GroupName: "agent", Method: "POST", APIPath: "/api/console/agent/delete", SortNo: 640} - PermissionAgentUpdateStatus = Permission{Name: "更新客服状态", Code: "agent.updateStatus", Type: "api", GroupName: "agent", Method: "POST", APIPath: "/api/console/agent/update_status", SortNo: 650} - PermissionAgentConfig = Permission{Name: "配置客服服务规则", Code: "agent.config", Type: "api", GroupName: "agent", Method: "POST", APIPath: "/api/console/agent/update_service_config", SortNo: 660} + PermissionAgentView = Permission{Name: "查看客服", Code: "agent.view", Type: "api", GroupName: "agent", Method: "ANY", APIPath: "/api/dashboard/agent/list", SortNo: 610} + PermissionAgentCreate = Permission{Name: "创建客服", Code: "agent.create", Type: "api", GroupName: "agent", Method: "POST", APIPath: "/api/dashboard/agent/create", SortNo: 620} + PermissionAgentUpdate = Permission{Name: "更新客服", Code: "agent.update", Type: "api", GroupName: "agent", Method: "POST", APIPath: "/api/dashboard/agent/update", SortNo: 630} + PermissionAgentDelete = Permission{Name: "删除客服", Code: "agent.delete", Type: "api", GroupName: "agent", Method: "POST", APIPath: "/api/dashboard/agent/delete", SortNo: 640} + PermissionAgentUpdateStatus = Permission{Name: "更新客服状态", Code: "agent.updateStatus", Type: "api", GroupName: "agent", Method: "POST", APIPath: "/api/dashboard/agent/update_status", SortNo: 650} + PermissionAgentConfig = Permission{Name: "配置客服服务规则", Code: "agent.config", Type: "api", GroupName: "agent", Method: "POST", APIPath: "/api/dashboard/agent/update_service_config", SortNo: 660} // 客服组相关权限 - PermissionAgentTeamView = Permission{Name: "查看客服组", Code: "agentTeam.view", Type: "api", GroupName: "agentTeam", Method: "ANY", APIPath: "/api/console/agent-team/list", SortNo: 710} - PermissionAgentTeamCreate = Permission{Name: "创建客服组", Code: "agentTeam.create", Type: "api", GroupName: "agentTeam", Method: "POST", APIPath: "/api/console/agent-team/create", SortNo: 720} - PermissionAgentTeamUpdate = Permission{Name: "更新客服组", Code: "agentTeam.update", Type: "api", GroupName: "agentTeam", Method: "POST", APIPath: "/api/console/agent-team/update", SortNo: 730} - PermissionAgentTeamDelete = Permission{Name: "删除客服组", Code: "agentTeam.delete", Type: "api", GroupName: "agentTeam", Method: "POST", APIPath: "/api/console/agent-team/delete", SortNo: 740} + PermissionAgentTeamView = Permission{Name: "查看客服组", Code: "agentTeam.view", Type: "api", GroupName: "agentTeam", Method: "ANY", APIPath: "/api/dashboard/agent-team/list", SortNo: 710} + PermissionAgentTeamCreate = Permission{Name: "创建客服组", Code: "agentTeam.create", Type: "api", GroupName: "agentTeam", Method: "POST", APIPath: "/api/dashboard/agent-team/create", SortNo: 720} + PermissionAgentTeamUpdate = Permission{Name: "更新客服组", Code: "agentTeam.update", Type: "api", GroupName: "agentTeam", Method: "POST", APIPath: "/api/dashboard/agent-team/update", SortNo: 730} + PermissionAgentTeamDelete = Permission{Name: "删除客服组", Code: "agentTeam.delete", Type: "api", GroupName: "agentTeam", Method: "POST", APIPath: "/api/dashboard/agent-team/delete", SortNo: 740} // 客服组排班相关权限 - PermissionAgentTeamScheduleView = Permission{Name: "查看客服组排班", Code: "agentTeamSchedule.view", Type: "api", GroupName: "agentTeamSchedule", Method: "ANY", APIPath: "/api/console/agent-team-schedule/list", SortNo: 810} - PermissionAgentTeamScheduleCreate = Permission{Name: "创建客服组排班", Code: "agentTeamSchedule.create", Type: "api", GroupName: "agentTeamSchedule", Method: "POST", APIPath: "/api/console/agent-team-schedule/create", SortNo: 820} - PermissionAgentTeamScheduleUpdate = Permission{Name: "更新客服组排班", Code: "agentTeamSchedule.update", Type: "api", GroupName: "agentTeamSchedule", Method: "POST", APIPath: "/api/console/agent-team-schedule/update", SortNo: 830} - PermissionAgentTeamScheduleDelete = Permission{Name: "删除客服组排班", Code: "agentTeamSchedule.delete", Type: "api", GroupName: "agentTeamSchedule", Method: "POST", APIPath: "/api/console/agent-team-schedule/delete", SortNo: 840} - PermissionAgentTeamScheduleBatchGenerate = Permission{Name: "批量生成客服组排班", Code: "agentTeamSchedule.batchGenerate", Type: "api", GroupName: "agentTeamSchedule", Method: "POST", APIPath: "/api/console/agent-team-schedule/batch_generate", SortNo: 850} + PermissionAgentTeamScheduleView = Permission{Name: "查看客服组排班", Code: "agentTeamSchedule.view", Type: "api", GroupName: "agentTeamSchedule", Method: "ANY", APIPath: "/api/dashboard/agent-team-schedule/list", SortNo: 810} + PermissionAgentTeamScheduleCreate = Permission{Name: "创建客服组排班", Code: "agentTeamSchedule.create", Type: "api", GroupName: "agentTeamSchedule", Method: "POST", APIPath: "/api/dashboard/agent-team-schedule/create", SortNo: 820} + PermissionAgentTeamScheduleUpdate = Permission{Name: "更新客服组排班", Code: "agentTeamSchedule.update", Type: "api", GroupName: "agentTeamSchedule", Method: "POST", APIPath: "/api/dashboard/agent-team-schedule/update", SortNo: 830} + PermissionAgentTeamScheduleDelete = Permission{Name: "删除客服组排班", Code: "agentTeamSchedule.delete", Type: "api", GroupName: "agentTeamSchedule", Method: "POST", APIPath: "/api/dashboard/agent-team-schedule/delete", SortNo: 840} + PermissionAgentTeamScheduleBatchGenerate = Permission{Name: "批量生成客服组排班", Code: "agentTeamSchedule.batchGenerate", Type: "api", GroupName: "agentTeamSchedule", Method: "POST", APIPath: "/api/dashboard/agent-team-schedule/batch_generate", SortNo: 850} // 文件资源相关权限 - PermissionAssetView = Permission{Name: "查看文件资源", Code: "asset.view", Type: "api", GroupName: "asset", Method: "ANY", APIPath: "/api/console/asset/list", SortNo: 1210} - PermissionAssetCreate = Permission{Name: "上传文件资源", Code: "asset.create", Type: "api", GroupName: "asset", Method: "POST", APIPath: "/api/console/asset/create", SortNo: 1220} - PermissionAssetDelete = Permission{Name: "删除文件资源", Code: "asset.delete", Type: "api", GroupName: "asset", Method: "POST", APIPath: "/api/console/asset/delete", SortNo: 1230} + PermissionAssetView = Permission{Name: "查看文件资源", Code: "asset.view", Type: "api", GroupName: "asset", Method: "ANY", APIPath: "/api/dashboard/asset/list", SortNo: 1210} + PermissionAssetCreate = Permission{Name: "上传文件资源", Code: "asset.create", Type: "api", GroupName: "asset", Method: "POST", APIPath: "/api/dashboard/asset/create", SortNo: 1220} + PermissionAssetDelete = Permission{Name: "删除文件资源", Code: "asset.delete", Type: "api", GroupName: "asset", Method: "POST", APIPath: "/api/dashboard/asset/delete", SortNo: 1230} // AI 配置相关权限 - PermissionAIConfigView = Permission{Name: "查看 AI 配置", Code: "aiConfig.view", Type: "api", GroupName: "aiConfig", Method: "ANY", APIPath: "/api/console/ai-config/list", SortNo: 1390} - PermissionAIConfigCreate = Permission{Name: "创建 AI 配置", Code: "aiConfig.create", Type: "api", GroupName: "aiConfig", Method: "POST", APIPath: "/api/console/ai-config/create", SortNo: 1400} - PermissionAIConfigUpdate = Permission{Name: "更新 AI 配置", Code: "aiConfig.update", Type: "api", GroupName: "aiConfig", Method: "POST", APIPath: "/api/console/ai-config/update", SortNo: 1410} - PermissionAIConfigDelete = Permission{Name: "删除 AI 配置", Code: "aiConfig.delete", Type: "api", GroupName: "aiConfig", Method: "POST", APIPath: "/api/console/ai-config/delete", SortNo: 1420} + PermissionAIConfigView = Permission{Name: "查看 AI 配置", Code: "aiConfig.view", Type: "api", GroupName: "aiConfig", Method: "ANY", APIPath: "/api/dashboard/ai-config/list", SortNo: 1390} + PermissionAIConfigCreate = Permission{Name: "创建 AI 配置", Code: "aiConfig.create", Type: "api", GroupName: "aiConfig", Method: "POST", APIPath: "/api/dashboard/ai-config/create", SortNo: 1400} + PermissionAIConfigUpdate = Permission{Name: "更新 AI 配置", Code: "aiConfig.update", Type: "api", GroupName: "aiConfig", Method: "POST", APIPath: "/api/dashboard/ai-config/update", SortNo: 1410} + PermissionAIConfigDelete = Permission{Name: "删除 AI 配置", Code: "aiConfig.delete", Type: "api", GroupName: "aiConfig", Method: "POST", APIPath: "/api/dashboard/ai-config/delete", SortNo: 1420} // 知识库相关权限 - PermissionKnowledgeBaseView = Permission{Name: "查看知识库", Code: "knowledgeBase.view", Type: "api", GroupName: "knowledgeBase", Method: "ANY", APIPath: "/api/console/knowledge-base/list", SortNo: 1410} - PermissionKnowledgeBaseCreate = Permission{Name: "创建知识库", Code: "knowledgeBase.create", Type: "api", GroupName: "knowledgeBase", Method: "POST", APIPath: "/api/console/knowledge-base/create", SortNo: 1420} - PermissionKnowledgeBaseUpdate = Permission{Name: "更新知识库", Code: "knowledgeBase.update", Type: "api", GroupName: "knowledgeBase", Method: "POST", APIPath: "/api/console/knowledge-base/update", SortNo: 1430} - PermissionKnowledgeBaseDelete = Permission{Name: "删除知识库", Code: "knowledgeBase.delete", Type: "api", GroupName: "knowledgeBase", Method: "POST", APIPath: "/api/console/knowledge-base/delete", SortNo: 1440} + PermissionKnowledgeBaseView = Permission{Name: "查看知识库", Code: "knowledgeBase.view", Type: "api", GroupName: "knowledgeBase", Method: "ANY", APIPath: "/api/dashboard/knowledge-base/list", SortNo: 1410} + PermissionKnowledgeBaseCreate = Permission{Name: "创建知识库", Code: "knowledgeBase.create", Type: "api", GroupName: "knowledgeBase", Method: "POST", APIPath: "/api/dashboard/knowledge-base/create", SortNo: 1420} + PermissionKnowledgeBaseUpdate = Permission{Name: "更新知识库", Code: "knowledgeBase.update", Type: "api", GroupName: "knowledgeBase", Method: "POST", APIPath: "/api/dashboard/knowledge-base/update", SortNo: 1430} + PermissionKnowledgeBaseDelete = Permission{Name: "删除知识库", Code: "knowledgeBase.delete", Type: "api", GroupName: "knowledgeBase", Method: "POST", APIPath: "/api/dashboard/knowledge-base/delete", SortNo: 1440} // 知识文档相关权限 - PermissionKnowledgeDocumentView = Permission{Name: "查看知识文档", Code: "knowledgeDocument.view", Type: "api", GroupName: "knowledgeDocument", Method: "ANY", APIPath: "/api/console/knowledge-document/list", SortNo: 1510} - PermissionKnowledgeDocumentCreate = Permission{Name: "创建知识文档", Code: "knowledgeDocument.create", Type: "api", GroupName: "knowledgeDocument", Method: "POST", APIPath: "/api/console/knowledge-document/create", SortNo: 1520} - PermissionKnowledgeDocumentUpdate = Permission{Name: "更新知识文档", Code: "knowledgeDocument.update", Type: "api", GroupName: "knowledgeDocument", Method: "POST", APIPath: "/api/console/knowledge-document/update", SortNo: 1530} - PermissionKnowledgeDocumentDelete = Permission{Name: "删除知识文档", Code: "knowledgeDocument.delete", Type: "api", GroupName: "knowledgeDocument", Method: "POST", APIPath: "/api/console/knowledge-document/delete", SortNo: 1540} - PermissionKnowledgeFAQView = Permission{Name: "查看知识FAQ", Code: "knowledgeFAQ.view", Type: "api", GroupName: "knowledgeFAQ", Method: "ANY", APIPath: "/api/console/knowledge-faq/list", SortNo: 1550} - PermissionKnowledgeFAQCreate = Permission{Name: "创建知识FAQ", Code: "knowledgeFAQ.create", Type: "api", GroupName: "knowledgeFAQ", Method: "POST", APIPath: "/api/console/knowledge-faq/create", SortNo: 1560} - PermissionKnowledgeFAQUpdate = Permission{Name: "更新知识FAQ", Code: "knowledgeFAQ.update", Type: "api", GroupName: "knowledgeFAQ", Method: "POST", APIPath: "/api/console/knowledge-faq/update", SortNo: 1570} - PermissionKnowledgeFAQDelete = Permission{Name: "删除知识FAQ", Code: "knowledgeFAQ.delete", Type: "api", GroupName: "knowledgeFAQ", Method: "POST", APIPath: "/api/console/knowledge-faq/delete", SortNo: 1580} + PermissionKnowledgeDocumentView = Permission{Name: "查看知识文档", Code: "knowledgeDocument.view", Type: "api", GroupName: "knowledgeDocument", Method: "ANY", APIPath: "/api/dashboard/knowledge-document/list", SortNo: 1510} + PermissionKnowledgeDocumentCreate = Permission{Name: "创建知识文档", Code: "knowledgeDocument.create", Type: "api", GroupName: "knowledgeDocument", Method: "POST", APIPath: "/api/dashboard/knowledge-document/create", SortNo: 1520} + PermissionKnowledgeDocumentUpdate = Permission{Name: "更新知识文档", Code: "knowledgeDocument.update", Type: "api", GroupName: "knowledgeDocument", Method: "POST", APIPath: "/api/dashboard/knowledge-document/update", SortNo: 1530} + PermissionKnowledgeDocumentDelete = Permission{Name: "删除知识文档", Code: "knowledgeDocument.delete", Type: "api", GroupName: "knowledgeDocument", Method: "POST", APIPath: "/api/dashboard/knowledge-document/delete", SortNo: 1540} + PermissionKnowledgeFAQView = Permission{Name: "查看知识FAQ", Code: "knowledgeFAQ.view", Type: "api", GroupName: "knowledgeFAQ", Method: "ANY", APIPath: "/api/dashboard/knowledge-faq/list", SortNo: 1550} + PermissionKnowledgeFAQCreate = Permission{Name: "创建知识FAQ", Code: "knowledgeFAQ.create", Type: "api", GroupName: "knowledgeFAQ", Method: "POST", APIPath: "/api/dashboard/knowledge-faq/create", SortNo: 1560} + PermissionKnowledgeFAQUpdate = Permission{Name: "更新知识FAQ", Code: "knowledgeFAQ.update", Type: "api", GroupName: "knowledgeFAQ", Method: "POST", APIPath: "/api/dashboard/knowledge-faq/update", SortNo: 1570} + PermissionKnowledgeFAQDelete = Permission{Name: "删除知识FAQ", Code: "knowledgeFAQ.delete", Type: "api", GroupName: "knowledgeFAQ", Method: "POST", APIPath: "/api/dashboard/knowledge-faq/delete", SortNo: 1580} // Skill 定义相关权限 - PermissionSkillDefinitionView = Permission{Name: "查看技能定义", Code: "skillDefinition.view", Type: "api", GroupName: "skillDefinition", Method: "ANY", APIPath: "/api/console/skill-definition/list", SortNo: 1610} - PermissionSkillDefinitionCreate = Permission{Name: "创建技能定义", Code: "skillDefinition.create", Type: "api", GroupName: "skillDefinition", Method: "POST", APIPath: "/api/console/skill-definition/create", SortNo: 1620} - PermissionSkillDefinitionUpdate = Permission{Name: "更新技能定义", Code: "skillDefinition.update", Type: "api", GroupName: "skillDefinition", Method: "POST", APIPath: "/api/console/skill-definition/update", SortNo: 1630} - PermissionSkillDefinitionDelete = Permission{Name: "删除技能定义", Code: "skillDefinition.delete", Type: "api", GroupName: "skillDefinition", Method: "POST", APIPath: "/api/console/skill-definition/delete", SortNo: 1640} + PermissionSkillDefinitionView = Permission{Name: "查看技能定义", Code: "skillDefinition.view", Type: "api", GroupName: "skillDefinition", Method: "ANY", APIPath: "/api/dashboard/skill-definition/list", SortNo: 1610} + PermissionSkillDefinitionCreate = Permission{Name: "创建技能定义", Code: "skillDefinition.create", Type: "api", GroupName: "skillDefinition", Method: "POST", APIPath: "/api/dashboard/skill-definition/create", SortNo: 1620} + PermissionSkillDefinitionUpdate = Permission{Name: "更新技能定义", Code: "skillDefinition.update", Type: "api", GroupName: "skillDefinition", Method: "POST", APIPath: "/api/dashboard/skill-definition/update", SortNo: 1630} + PermissionSkillDefinitionDelete = Permission{Name: "删除技能定义", Code: "skillDefinition.delete", Type: "api", GroupName: "skillDefinition", Method: "POST", APIPath: "/api/dashboard/skill-definition/delete", SortNo: 1640} // MCP 调试相关权限 - PermissionMCPView = Permission{Name: "查看MCP调试信息", Code: "mcp.view", Type: "api", GroupName: "mcp", Method: "POST", APIPath: "/api/console/mcp/list_tools", SortNo: 1710} - PermissionMCPCall = Permission{Name: "调用MCP工具", Code: "mcp.call", Type: "api", GroupName: "mcp", Method: "POST", APIPath: "/api/console/mcp/call_tool", SortNo: 1720} + PermissionMCPView = Permission{Name: "查看MCP调试信息", Code: "mcp.view", Type: "api", GroupName: "mcp", Method: "POST", APIPath: "/api/dashboard/mcp/list_tools", SortNo: 1710} + PermissionMCPCall = Permission{Name: "调用MCP工具", Code: "mcp.call", Type: "api", GroupName: "mcp", Method: "POST", APIPath: "/api/dashboard/mcp/call_tool", SortNo: 1720} ) // Permissions 内置权限列表 diff --git a/internal/services/ws_service.go b/internal/services/ws_service.go index a418f32..579775c 100644 --- a/internal/services/ws_service.go +++ b/internal/services/ws_service.go @@ -492,7 +492,7 @@ func (s *wsService) resolveTerminalType(ctx iris.Context, role string) string { return terminalType } if role == realtimeRoleAdmin { - return "console_web" + return "dashboard_web" } return "web" } diff --git a/web/lib/api/admin.ts b/web/lib/api/admin.ts index cb801e1..668c4c3 100644 --- a/web/lib/api/admin.ts +++ b/web/lib/api/admin.ts @@ -535,44 +535,44 @@ export function createAdminWebSocketUrl() { const params = new URLSearchParams({ accessToken: session.accessToken, }) - return `${baseUrl}/api/console/ws?${params.toString()}` + return `${baseUrl}/api/dashboard/ws?${params.toString()}` } export function fetchChannels( query?: Record ) { return request>( - `/api/console/channel/list${toQueryString(query)}` + `/api/dashboard/channel/list${toQueryString(query)}` ) } export function fetchChannel(id: number) { - return request(`/api/console/channel/${id}`) + return request(`/api/dashboard/channel/${id}`) } export function createChannel(payload: CreateAdminChannelPayload) { - return request("/api/console/channel/create", { + return request("/api/dashboard/channel/create", { method: "POST", body: JSON.stringify(payload), }) } export function updateChannel(payload: UpdateAdminChannelPayload) { - return request("/api/console/channel/update", { + return request("/api/dashboard/channel/update", { method: "POST", body: JSON.stringify(payload), }) } export function updateChannelStatus(id: number, status: number) { - return request("/api/console/channel/update_status", { + return request("/api/dashboard/channel/update_status", { method: "POST", body: JSON.stringify({ id, status }), }) } export function deleteChannel(id: number) { - return request("/api/console/channel/delete", { + return request("/api/dashboard/channel/delete", { method: "POST", body: JSON.stringify({ id }), }) @@ -582,50 +582,50 @@ export function fetchAIAgents( query?: Record ) { return request>( - `/api/console/ai-agent/list${toQueryString(query)}` + `/api/dashboard/ai-agent/list${toQueryString(query)}` ) } export function fetchAIAgentsAll(query?: Record) { return request( - `/api/console/ai-agent/list_all${toQueryString(query)}` + `/api/dashboard/ai-agent/list_all${toQueryString(query)}` ) } export function fetchAIAgent(id: number) { - return request(`/api/console/ai-agent/${id}`) + return request(`/api/dashboard/ai-agent/${id}`) } export function createAIAgent(payload: CreateAIAgentPayload) { - return request("/api/console/ai-agent/create", { + return request("/api/dashboard/ai-agent/create", { method: "POST", body: JSON.stringify(payload), }) } export function updateAIAgent(payload: UpdateAIAgentPayload) { - return request("/api/console/ai-agent/update", { + return request("/api/dashboard/ai-agent/update", { method: "POST", body: JSON.stringify(payload), }) } export function deleteAIAgent(id: number) { - return request("/api/console/ai-agent/delete", { + return request("/api/dashboard/ai-agent/delete", { method: "POST", body: JSON.stringify({ id }), }) } export function updateAIAgentSort(ids: number[]) { - return request("/api/console/ai-agent/update_sort", { + return request("/api/dashboard/ai-agent/update_sort", { method: "POST", body: JSON.stringify(ids), }) } export function updateAIAgentStatus(id: number, status: number) { - return request("/api/console/ai-agent/update_status", { + return request("/api/dashboard/ai-agent/update_status", { method: "POST", body: JSON.stringify({ id, status }), }) @@ -633,18 +633,18 @@ export function updateAIAgentStatus(id: number, status: number) { export function fetchUsers(query?: Record) { return request>( - `/api/console/user/list${toQueryString(query)}` + `/api/dashboard/user/list${toQueryString(query)}` ) } export function fetchUsersAll(query?: Record) { return request( - `/api/console/user/list_all${toQueryString(query)}` + `/api/dashboard/user/list_all${toQueryString(query)}` ) } export function createUser(payload: CreateAdminUserPayload) { - return request("/api/console/user/create", { + return request("/api/dashboard/user/create", { method: "POST", body: JSON.stringify({ username: payload.username, @@ -659,39 +659,39 @@ export function createUser(payload: CreateAdminUserPayload) { } export function updateUser(payload: UpdateAdminUserPayload) { - return request("/api/console/user/update", { + return request("/api/dashboard/user/update", { method: "POST", body: JSON.stringify(payload), }) } export function fetchUserDetail(id: number) { - return request(`/api/console/user/${id}`) + return request(`/api/dashboard/user/${id}`) } export function updateUserStatus(id: number, status: number) { - return request("/api/console/user/update_status", { + return request("/api/dashboard/user/update_status", { method: "POST", body: JSON.stringify({ id, status }), }) } export function resetUserPassword(userId: number) { - return request("/api/console/user/reset_password", { + return request("/api/dashboard/user/reset_password", { method: "POST", body: JSON.stringify({ userId }), }) } export function changeSelfPassword(password: string) { - return request("/api/console/user/change_password", { + return request("/api/dashboard/user/change_password", { method: "POST", body: JSON.stringify({ password }), }) } export function assignUserRoles(userId: number, roleIds: number[]) { - return request("/api/console/user/assign_role", { + return request("/api/dashboard/user/assign_role", { method: "POST", body: JSON.stringify({ userId, roleIds }), }) @@ -699,27 +699,27 @@ export function assignUserRoles(userId: number, roleIds: number[]) { export function fetchRoles(query?: Record) { return request>( - `/api/console/role/list${toQueryString(query)}` + `/api/dashboard/role/list${toQueryString(query)}` ) } export function fetchRoleListAll() { - return request("/api/console/role/list_all") + return request("/api/dashboard/role/list_all") } export function fetchRoleDetail(id: number) { - return request(`/api/console/role/${id}`) + return request(`/api/dashboard/role/${id}`) } export function assignRolePermissions(roleId: number, permissionIds: number[]) { - return request("/api/console/role/assign_permission", { + return request("/api/dashboard/role/assign_permission", { method: "POST", body: JSON.stringify({ roleId, permissionIds }), }) } export function updateRoleSort(ids: number[]) { - return request("/api/console/role/update_sort", { + return request("/api/dashboard/role/update_sort", { method: "POST", body: JSON.stringify(ids), }) @@ -729,7 +729,7 @@ export function fetchPermissions( query?: Record ) { return request>( - `/api/console/permission/list${toQueryString(query)}` + `/api/dashboard/permission/list${toQueryString(query)}` ) } @@ -737,19 +737,19 @@ export function fetchConversations( query?: Record ) { return request>( - `/api/console/conversation/list${toQueryString(query)}` + `/api/dashboard/conversation/list${toQueryString(query)}` ) } export function fetchConversationDetail(id: number) { - return request(`/api/console/conversation/${id}`) + return request(`/api/dashboard/conversation/${id}`) } export function fetchConversationMessages( query?: Record ) { return request>( - `/api/console/conversation/message_list${toQueryString(query)}` + `/api/dashboard/conversation/message_list${toQueryString(query)}` ) } @@ -758,14 +758,14 @@ export function assignConversation( assigneeId: number, reason: string ) { - return request("/api/console/conversation/assign", { + return request("/api/dashboard/conversation/assign", { method: "POST", body: JSON.stringify({ conversationId, assigneeId, reason }), }) } export function dispatchConversation(conversationId: number) { - return request("/api/console/conversation/dispatch", { + return request("/api/dashboard/conversation/dispatch", { method: "POST", body: JSON.stringify({ conversationId }), }) @@ -776,21 +776,21 @@ export function transferConversation( toUserId: number, reason: string ) { - return request("/api/console/conversation/transfer", { + return request("/api/dashboard/conversation/transfer", { method: "POST", body: JSON.stringify({ conversationId, toUserId, reason }), }) } export function closeConversation(conversationId: number, closeReason: string) { - return request("/api/console/conversation/close", { + return request("/api/dashboard/conversation/close", { method: "POST", body: JSON.stringify({ conversationId, closeReason }), }) } export function markConversationRead(conversationId: number, messageId = 0) { - return request("/api/console/conversation/read", { + return request("/api/dashboard/conversation/read", { method: "POST", body: JSON.stringify({ conversationId, messageId }), }) @@ -803,14 +803,14 @@ export function sendConversationMessage(payload: { payload?: string clientMsgId?: string }) { - return request("/api/console/conversation/send_message", { + return request("/api/dashboard/conversation/send_message", { method: "POST", body: JSON.stringify(payload), }) } export function recallConversationMessage(messageId: number) { - return request("/api/console/conversation/recall_message", { + return request("/api/dashboard/conversation/recall_message", { method: "POST", body: JSON.stringify({ messageId }), }) @@ -820,34 +820,34 @@ export function fetchQuickReplies( query?: Record ) { return request>( - `/api/console/quick-reply/list${toQueryString(query)}` + `/api/dashboard/quick-reply/list${toQueryString(query)}` ) } export function fetchQuickReplyListAll() { - return request("/api/console/quick-reply/list_all") + return request("/api/dashboard/quick-reply/list_all") } export function fetchQuickReply(id: number) { - return request(`/api/console/quick-reply/${id}`) + return request(`/api/dashboard/quick-reply/${id}`) } export function createQuickReply(payload: CreateAdminQuickReplyPayload) { - return request("/api/console/quick-reply/create", { + return request("/api/dashboard/quick-reply/create", { method: "POST", body: JSON.stringify(payload), }) } export function updateQuickReply(payload: UpdateAdminQuickReplyPayload) { - return request("/api/console/quick-reply/update", { + return request("/api/dashboard/quick-reply/update", { method: "POST", body: JSON.stringify(payload), }) } export function deleteQuickReply(id: number) { - return request("/api/console/quick-reply/delete", { + return request("/api/dashboard/quick-reply/delete", { method: "POST", body: JSON.stringify({ id }), }) @@ -857,7 +857,7 @@ export function fetchSkillDefinitions( query?: Record ) { return request>( - `/api/console/skill-definition/list${toQueryString(query)}` + `/api/dashboard/skill-definition/list${toQueryString(query)}` ) } @@ -865,23 +865,23 @@ export function fetchSkillDefinitionsAll( query?: Record ) { return request( - `/api/console/skill-definition/list_all${toQueryString(query)}` + `/api/dashboard/skill-definition/list_all${toQueryString(query)}` ) } export function fetchSkillDefinition(id: number) { - return request(`/api/console/skill-definition/${id}`) + return request(`/api/dashboard/skill-definition/${id}`) } export function createSkillDefinition(payload: CreateSkillDefinitionPayload) { - return request("/api/console/skill-definition/create", { + return request("/api/dashboard/skill-definition/create", { method: "POST", body: JSON.stringify(payload), }) } export function updateSkillDefinition(payload: UpdateSkillDefinitionPayload) { - return request("/api/console/skill-definition/update", { + return request("/api/dashboard/skill-definition/update", { method: "POST", body: JSON.stringify(payload), }) @@ -891,62 +891,62 @@ export function fetchAgentRunLogs( query?: Record ) { return request>( - `/api/console/agent-run-log/list${toQueryString(query)}` + `/api/dashboard/agent-run-log/list${toQueryString(query)}` ) } export function fetchAgentRunLog(id: number) { - return request(`/api/console/agent-run-log/${id}`) + return request(`/api/dashboard/agent-run-log/${id}`) } export function updateSkillDefinitionStatus(id: number, status: number) { - return request("/api/console/skill-definition/update_status", { + return request("/api/dashboard/skill-definition/update_status", { method: "POST", body: JSON.stringify({ id, status }), }) } export function deleteSkillDefinition(id: number) { - return request("/api/console/skill-definition/delete", { + return request("/api/dashboard/skill-definition/delete", { method: "POST", body: JSON.stringify({ id }), }) } export function debugRunSkillDefinition(payload: SkillDebugRunPayload) { - return request("/api/console/skill-definition/debug_run", { + return request("/api/dashboard/skill-definition/debug_run", { method: "POST", body: JSON.stringify(payload), }) } export function debugResumeSkillDefinition(payload: SkillDebugResumePayload) { - return request("/api/console/skill-definition/debug_resume", { + return request("/api/dashboard/skill-definition/debug_resume", { method: "POST", body: JSON.stringify(payload), }) } export function testMCPConnection(serverCode: string) { - return request("/api/console/mcp/test_connection", { + return request("/api/dashboard/mcp/test_connection", { method: "POST", body: JSON.stringify({ serverCode }), }) } export function listMCPServers() { - return request("/api/console/mcp/list_servers") + return request("/api/dashboard/mcp/list_servers") } export function listMCPTools(serverCode: string) { - return request("/api/console/mcp/list_tools", { + return request("/api/dashboard/mcp/list_tools", { method: "POST", body: JSON.stringify({ serverCode }), }) } export function fetchMCPCatalog() { - return request("/api/console/mcp/catalog") + return request("/api/dashboard/mcp/catalog") } export function callMCPTool(payload: { @@ -954,7 +954,7 @@ export function callMCPTool(payload: { toolName: string arguments: Record }) { - return request("/api/console/mcp/call_tool", { + return request("/api/dashboard/mcp/call_tool", { method: "POST", body: JSON.stringify(payload), }) @@ -964,38 +964,38 @@ export function fetchAgentProfiles( query?: Record ) { return request>( - `/api/console/agent/list${toQueryString(query)}` + `/api/dashboard/agent/list${toQueryString(query)}` ) } export function fetchAgentProfile(id: number) { - return request(`/api/console/agent/${id}`) + return request(`/api/dashboard/agent/${id}`) } export function fetchAgentProfilesAll( query?: Record ) { return request( - `/api/console/agent/list_all${toQueryString(query)}` + `/api/dashboard/agent/list_all${toQueryString(query)}` ) } export function createAgentProfile(payload: CreateAdminAgentProfilePayload) { - return request("/api/console/agent/create", { + return request("/api/dashboard/agent/create", { method: "POST", body: JSON.stringify(payload), }) } export function updateAgentProfile(payload: UpdateAdminAgentProfilePayload) { - return request("/api/console/agent/update", { + return request("/api/dashboard/agent/update", { method: "POST", body: JSON.stringify(payload), }) } export function deleteAgentProfile(id: number) { - return request("/api/console/agent/delete", { + return request("/api/dashboard/agent/delete", { method: "POST", body: JSON.stringify({ id }), }) @@ -1003,36 +1003,36 @@ export function deleteAgentProfile(id: number) { export function fetchAgentTeams(query?: Record) { return request( - `/api/console/agent-team/list${toQueryString(query)}` + `/api/dashboard/agent-team/list${toQueryString(query)}` ) } export function fetchAgentTeamsAll() { return request( - `/api/console/agent-team/list_all` + `/api/dashboard/agent-team/list_all` ) } export function fetchAgentTeam(id: number) { - return request(`/api/console/agent-team/${id}`) + return request(`/api/dashboard/agent-team/${id}`) } export function createAgentTeam(payload: CreateAdminAgentTeamPayload) { - return request("/api/console/agent-team/create", { + return request("/api/dashboard/agent-team/create", { method: "POST", body: JSON.stringify(payload), }) } export function updateAgentTeam(payload: UpdateAdminAgentTeamPayload) { - return request("/api/console/agent-team/update", { + return request("/api/dashboard/agent-team/update", { method: "POST", body: JSON.stringify(payload), }) } export function deleteAgentTeam(id: number) { - return request("/api/console/agent-team/delete", { + return request("/api/dashboard/agent-team/delete", { method: "POST", body: JSON.stringify({ id }), }) @@ -1042,30 +1042,30 @@ export function fetchAgentTeamSchedules( query?: Record ) { return request>( - `/api/console/agent-team-schedule/list${toQueryString(query)}` + `/api/dashboard/agent-team-schedule/list${toQueryString(query)}` ) } export function fetchAgentTeamSchedule(id: number) { - return request(`/api/console/agent-team-schedule/${id}`) + return request(`/api/dashboard/agent-team-schedule/${id}`) } export function createAgentTeamSchedule(payload: CreateAdminAgentTeamSchedulePayload) { - return request("/api/console/agent-team-schedule/create", { + return request("/api/dashboard/agent-team-schedule/create", { method: "POST", body: JSON.stringify(payload), }) } export function updateAgentTeamSchedule(payload: UpdateAdminAgentTeamSchedulePayload) { - return request("/api/console/agent-team-schedule/update", { + return request("/api/dashboard/agent-team-schedule/update", { method: "POST", body: JSON.stringify(payload), }) } export function deleteAgentTeamSchedule(id: number) { - return request("/api/console/agent-team-schedule/delete", { + return request("/api/dashboard/agent-team-schedule/delete", { method: "POST", body: JSON.stringify({ id }), }) @@ -1116,52 +1116,52 @@ export function fetchAIConfigs( query?: Record ) { return request>( - `/api/console/ai-config/list${toQueryString(query)}` + `/api/dashboard/ai-config/list${toQueryString(query)}` ) } export function fetchAIConfig(id: number) { - return request(`/api/console/ai-config/${id}`) + return request(`/api/dashboard/ai-config/${id}`) } export function fetchAIConfigsAll( query?: Record ) { return request( - `/api/console/ai-config/list_all${toQueryString(query)}` + `/api/dashboard/ai-config/list_all${toQueryString(query)}` ) } export function createAIConfig(payload: CreateAIConfigPayload) { - return request("/api/console/ai-config/create", { + return request("/api/dashboard/ai-config/create", { method: "POST", body: JSON.stringify(payload), }) } export function updateAIConfig(payload: UpdateAIConfigPayload) { - return request("/api/console/ai-config/update", { + return request("/api/dashboard/ai-config/update", { method: "POST", body: JSON.stringify(payload), }) } export function deleteAIConfig(id: number) { - return request("/api/console/ai-config/delete", { + return request("/api/dashboard/ai-config/delete", { method: "POST", body: JSON.stringify({ id }), }) } export function updateAIConfigStatus(id: number, status: number) { - return request("/api/console/ai-config/update_status", { + return request("/api/dashboard/ai-config/update_status", { method: "POST", body: JSON.stringify({ id, status }), }) } export function updateAIConfigSort(ids: number[]) { - return request("/api/console/ai-config/update_sort", { + return request("/api/dashboard/ai-config/update_sort", { method: "POST", body: JSON.stringify(ids), }) @@ -1425,7 +1425,7 @@ export function fetchKnowledgeBases( query?: Record ) { return request>( - `/api/console/knowledge-base/list${toQueryString(query)}` + `/api/dashboard/knowledge-base/list${toQueryString(query)}` ) } @@ -1433,44 +1433,44 @@ export function fetchKnowledgeBasesAll( query?: Record ) { return request( - `/api/console/knowledge-base/list_all${toQueryString(query)}` + `/api/dashboard/knowledge-base/list_all${toQueryString(query)}` ) } export function fetchKnowledgeBase(id: number) { - return request(`/api/console/knowledge-base/${id}`) + return request(`/api/dashboard/knowledge-base/${id}`) } export function createKnowledgeBase(payload: CreateKnowledgeBasePayload) { - return request("/api/console/knowledge-base/create", { + return request("/api/dashboard/knowledge-base/create", { method: "POST", body: JSON.stringify(payload), }) } export function updateKnowledgeBase(payload: UpdateKnowledgeBasePayload) { - return request("/api/console/knowledge-base/update", { + return request("/api/dashboard/knowledge-base/update", { method: "POST", body: JSON.stringify(payload), }) } export function deleteKnowledgeBase(id: number) { - return request("/api/console/knowledge-base/delete", { + return request("/api/dashboard/knowledge-base/delete", { method: "POST", body: JSON.stringify({ id }), }) } export function updateKnowledgeBaseSort(ids: number[]) { - return request("/api/console/knowledge-base/update_sort", { + return request("/api/dashboard/knowledge-base/update_sort", { method: "POST", body: JSON.stringify(ids), }) } export function rebuildKnowledgeBaseIndex(id: number) { - return request("/api/console/knowledge-base/rebuild_index", { + return request("/api/dashboard/knowledge-base/rebuild_index", { method: "POST", body: JSON.stringify({ id }), }) @@ -1480,37 +1480,37 @@ export function fetchKnowledgeDocuments( query?: Record ) { return request>( - `/api/console/knowledge-document/list${toQueryString(query)}` + `/api/dashboard/knowledge-document/list${toQueryString(query)}` ) } export function fetchKnowledgeDocument(id: number) { - return request(`/api/console/knowledge-document/${id}`) + return request(`/api/dashboard/knowledge-document/${id}`) } export function createKnowledgeDocument(payload: CreateKnowledgeDocumentPayload) { - return request("/api/console/knowledge-document/create", { + return request("/api/dashboard/knowledge-document/create", { method: "POST", body: JSON.stringify(payload), }) } export function updateKnowledgeDocument(payload: UpdateKnowledgeDocumentPayload) { - return request("/api/console/knowledge-document/update", { + return request("/api/dashboard/knowledge-document/update", { method: "POST", body: JSON.stringify(payload), }) } export function deleteKnowledgeDocument(id: number) { - return request("/api/console/knowledge-document/delete", { + return request("/api/dashboard/knowledge-document/delete", { method: "POST", body: JSON.stringify({ id }), }) } export function buildKnowledgeDocumentIndex(documentId: number) { - return request("/api/console/knowledge-retrieve/build", { + return request("/api/dashboard/knowledge-retrieve/build", { method: "POST", body: JSON.stringify({ documentId }), }) @@ -1520,51 +1520,51 @@ export function fetchKnowledgeFAQs( query?: Record ) { return request>( - `/api/console/knowledge-faq/list${toQueryString(query)}` + `/api/dashboard/knowledge-faq/list${toQueryString(query)}` ) } export function fetchKnowledgeFAQ(id: number) { - return request(`/api/console/knowledge-faq/${id}`) + return request(`/api/dashboard/knowledge-faq/${id}`) } export function createKnowledgeFAQ(payload: CreateKnowledgeFAQPayload) { - return request("/api/console/knowledge-faq/create", { + return request("/api/dashboard/knowledge-faq/create", { method: "POST", body: JSON.stringify(payload), }) } export function updateKnowledgeFAQ(payload: UpdateKnowledgeFAQPayload) { - return request("/api/console/knowledge-faq/update", { + return request("/api/dashboard/knowledge-faq/update", { method: "POST", body: JSON.stringify(payload), }) } export function deleteKnowledgeFAQ(id: number) { - return request("/api/console/knowledge-faq/delete", { + return request("/api/dashboard/knowledge-faq/delete", { method: "POST", body: JSON.stringify({ id }), }) } export function buildKnowledgeFAQIndex(faqId: number) { - return request("/api/console/knowledge-retrieve/build", { + return request("/api/dashboard/knowledge-retrieve/build", { method: "POST", body: JSON.stringify({ faqId }), }) } export function debugKnowledgeSearch(payload: KnowledgeSearchPayload) { - return request("/api/console/knowledge-retrieve/debug/search", { + return request("/api/dashboard/knowledge-retrieve/debug/search", { method: "POST", body: JSON.stringify(payload), }) } export function debugKnowledgeAnswer(payload: KnowledgeAnswerPayload) { - return request("/api/console/knowledge-retrieve/debug/answer", { + return request("/api/dashboard/knowledge-retrieve/debug/answer", { method: "POST", body: JSON.stringify(payload), }) @@ -1572,12 +1572,12 @@ export function debugKnowledgeAnswer(payload: KnowledgeAnswerPayload) { export function fetchKnowledgeRetrieveLogs(query: KnowledgeRetrieveLogListQuery) { return request>( - `/api/console/knowledge-retrieve-log/list${toQueryString(query)}` + `/api/dashboard/knowledge-retrieve-log/list${toQueryString(query)}` ) } export function fetchKnowledgeRetrieveLog(id: number) { - return request(`/api/console/knowledge-retrieve-log/${id}`) + return request(`/api/dashboard/knowledge-retrieve-log/${id}`) } export type AdminAsset = { @@ -1603,7 +1603,7 @@ export function uploadAsset(file: File, prefix?: string) { if (prefix) { formData.set("prefix", prefix) } - return request("/api/console/asset/create", { + return request("/api/dashboard/asset/create", { method: "POST", body: formData, }) @@ -1645,48 +1645,48 @@ export type UpdateTagPayload = CreateTagPayload & { export function fetchTags(query?: Record) { return request>( - `/api/console/tag/list${toQueryString(query)}` + `/api/dashboard/tag/list${toQueryString(query)}` ) } export function fetchTagsAll() { - return request("/api/console/tag/list_all") + return request("/api/dashboard/tag/list_all") } export function fetchTag(id: number) { - return request(`/api/console/tag/${id}`) + return request(`/api/dashboard/tag/${id}`) } export function createTag(payload: CreateTagPayload) { - return request("/api/console/tag/create", { + return request("/api/dashboard/tag/create", { method: "POST", body: JSON.stringify(payload), }) } export function updateTag(payload: UpdateTagPayload) { - return request("/api/console/tag/update", { + return request("/api/dashboard/tag/update", { method: "POST", body: JSON.stringify(payload), }) } export function deleteTag(id: number) { - return request("/api/console/tag/delete", { + return request("/api/dashboard/tag/delete", { method: "POST", body: JSON.stringify({ id }), }) } export function updateTagSort(ids: number[]) { - return request("/api/console/tag/update_sort", { + return request("/api/dashboard/tag/update_sort", { method: "POST", body: JSON.stringify(ids), }) } export function updateTagStatus(id: number, status: number) { - return request("/api/console/tag/update_status", { + return request("/api/dashboard/tag/update_status", { method: "POST", body: JSON.stringify({ id, status }), }) diff --git a/web/lib/api/agent.ts b/web/lib/api/agent.ts index cfe3536..2461c3a 100644 --- a/web/lib/api/agent.ts +++ b/web/lib/api/agent.ts @@ -129,19 +129,19 @@ export function fetchAgentConversations( query?: Record ) { return request>( - `/api/console/conversation/conversations${toQueryString(query)}` + `/api/dashboard/conversation/conversations${toQueryString(query)}` ) } export function fetchAgentConversationDetail(id: number) { - return request(`/api/console/conversation/${id}`) + return request(`/api/dashboard/conversation/${id}`) } export function fetchAgentMessages( query?: Record ) { return request>( - `/api/console/conversation/message_list${toQueryString(query)}` + `/api/dashboard/conversation/message_list${toQueryString(query)}` ) } @@ -152,21 +152,21 @@ export function sendAgentMessage(payload: { payload?: string clientMsgId?: string }) { - return request("/api/console/conversation/send_message", { + return request("/api/dashboard/conversation/send_message", { method: "POST", body: JSON.stringify(payload), }) } export function recallAgentMessage(messageId: number) { - return request("/api/console/conversation/recall_message", { + return request("/api/dashboard/conversation/recall_message", { method: "POST", body: JSON.stringify({ messageId }), }) } export function markAgentMessageRead(conversationId: number, messageId = 0) { - return request("/api/console/conversation/read", { + return request("/api/dashboard/conversation/read", { method: "POST", body: JSON.stringify({ conversationId, messageId }), }) @@ -176,7 +176,7 @@ export function uploadAgentConversationImage(conversationId: number, file: File) const formData = new FormData() formData.set("conversationId", String(conversationId)) formData.set("file", file) - return request("/api/console/conversation/upload_image", { + return request("/api/dashboard/conversation/upload_image", { method: "POST", body: formData, }) @@ -186,7 +186,7 @@ export function uploadAgentConversationAttachment(conversationId: number, file: const formData = new FormData() formData.set("conversationId", String(conversationId)) formData.set("file", file) - return request("/api/console/conversation/upload_attachment", { + return request("/api/dashboard/conversation/upload_attachment", { method: "POST", body: formData, }) @@ -196,7 +196,7 @@ export function closeAgentConversation( conversationId: number, closeReason: string ) { - return request("/api/console/conversation/close", { + return request("/api/dashboard/conversation/close", { method: "POST", body: JSON.stringify({ conversationId, closeReason }), }) @@ -207,7 +207,7 @@ export function assignAgentConversation( assigneeId: number, reason: string ) { - return request("/api/console/conversation/assign", { + return request("/api/dashboard/conversation/assign", { method: "POST", body: JSON.stringify({ conversationId, assigneeId, reason }), }) @@ -218,7 +218,7 @@ export function transferAgentConversation( toUserId: number, reason: string ) { - return request("/api/console/conversation/transfer", { + return request("/api/dashboard/conversation/transfer", { method: "POST", body: JSON.stringify({ conversationId, toUserId, reason }), }) @@ -228,7 +228,7 @@ export function linkConversationToCustomer(payload: { conversationId: number customerId: number }) { - return request("/api/console/conversation/link_customer", { + return request("/api/dashboard/conversation/link_customer", { method: "POST", body: JSON.stringify(payload), }) @@ -238,7 +238,7 @@ export function addConversationTag(payload: { conversationId: number tagId: number }) { - return request("/api/console/conversation/add_tag", { + return request("/api/dashboard/conversation/add_tag", { method: "POST", body: JSON.stringify(payload), }) @@ -248,7 +248,7 @@ export function removeConversationTag(payload: { conversationId: number tagId: number }) { - return request("/api/console/conversation/remove_tag", { + return request("/api/dashboard/conversation/remove_tag", { method: "POST", body: JSON.stringify(payload), }) @@ -264,5 +264,5 @@ export function createAgentWebSocketUrl() { const params = new URLSearchParams({ accessToken: session.accessToken, }) - return `${baseUrl}/api/console/ws?${params.toString()}` + return `${baseUrl}/api/dashboard/ws?${params.toString()}` } diff --git a/web/lib/api/company.ts b/web/lib/api/company.ts index 3990479..4942537 100644 --- a/web/lib/api/company.ts +++ b/web/lib/api/company.ts @@ -39,37 +39,37 @@ function toQueryString(query?: Record) { export function fetchCompanies(query?: Record) { return request>( - `/api/console/company/list${toQueryString(query)}` + `/api/dashboard/company/list${toQueryString(query)}` ) } export function fetchCompany(id: number) { - return request(`/api/console/company/${id}`) + return request(`/api/dashboard/company/${id}`) } export function createCompany(payload: CreateAdminCompanyPayload) { - return request("/api/console/company/create", { + return request("/api/dashboard/company/create", { method: "POST", body: JSON.stringify(payload), }) } export function updateCompany(payload: UpdateAdminCompanyPayload) { - return request("/api/console/company/update", { + return request("/api/dashboard/company/update", { method: "POST", body: JSON.stringify(payload), }) } export function updateCompanyStatus(id: number, status: number) { - return request("/api/console/company/update_status", { + return request("/api/dashboard/company/update_status", { method: "POST", body: JSON.stringify({ id, status }), }) } export function deleteCompany(id: number) { - return request("/api/console/company/delete", { + return request("/api/dashboard/company/delete", { method: "POST", body: JSON.stringify({ id }), }) diff --git a/web/lib/api/customer-contact.ts b/web/lib/api/customer-contact.ts index 64d2c66..ff277d4 100644 --- a/web/lib/api/customer-contact.ts +++ b/web/lib/api/customer-contact.ts @@ -51,26 +51,26 @@ function toQueryString(query?: Record) { export function fetchCustomerContacts(customerId: number) { return request( - `/api/console/customer-contact/list${toQueryString({ customerId })}` + `/api/dashboard/customer-contact/list${toQueryString({ customerId })}` ) } export function createCustomerContact(payload: CreateCustomerContactPayload) { - return request("/api/console/customer-contact/create", { + return request("/api/dashboard/customer-contact/create", { method: "POST", body: JSON.stringify(payload), }) } export function updateCustomerContact(payload: UpdateCustomerContactPayload) { - return request("/api/console/customer-contact/update", { + return request("/api/dashboard/customer-contact/update", { method: "POST", body: JSON.stringify(payload), }) } export function deleteCustomerContact(id: number) { - return request("/api/console/customer-contact/delete", { + return request("/api/dashboard/customer-contact/delete", { method: "POST", body: JSON.stringify({ id }), }) diff --git a/web/lib/api/customer.ts b/web/lib/api/customer.ts index ed0ecbd..5c7cbd7 100644 --- a/web/lib/api/customer.ts +++ b/web/lib/api/customer.ts @@ -61,18 +61,18 @@ export type CustomerListRequest = { } export function fetchCustomers(body: CustomerListRequest) { - return request>("/api/console/customer/list", { + return request>("/api/dashboard/customer/list", { method: "POST", body: JSON.stringify(body), }) } export function fetchCustomer(id: number) { - return request(`/api/console/customer/${id}`) + return request(`/api/dashboard/customer/${id}`) } export function createCustomer(payload: CreateAdminCustomerPayload) { - return request("/api/console/customer/create", { + return request("/api/dashboard/customer/create", { method: "POST", body: JSON.stringify(payload), }) @@ -80,28 +80,28 @@ export function createCustomer(payload: CreateAdminCustomerPayload) { /** 单请求 + 单事务保存客户主信息与联系方式全量 */ export function saveCustomerProfile(payload: SaveCustomerProfilePayload) { - return request("/api/console/customer/save_profile", { + return request("/api/dashboard/customer/save_profile", { method: "POST", body: JSON.stringify(payload), }) } export function updateCustomer(payload: UpdateAdminCustomerPayload) { - return request("/api/console/customer/update", { + return request("/api/dashboard/customer/update", { method: "POST", body: JSON.stringify(payload), }) } export function updateCustomerStatus(id: number, status: number) { - return request("/api/console/customer/update_status", { + return request("/api/dashboard/customer/update_status", { method: "POST", body: JSON.stringify({ id, status }), }) } export function deleteCustomer(id: number) { - return request("/api/console/customer/delete", { + return request("/api/dashboard/customer/delete", { method: "POST", body: JSON.stringify({ id }), }) diff --git a/web/lib/api/dashboard.ts b/web/lib/api/dashboard.ts index 8e8fee8..cea52ed 100644 --- a/web/lib/api/dashboard.ts +++ b/web/lib/api/dashboard.ts @@ -77,5 +77,5 @@ export type DashboardOverview = { } export function fetchDashboardOverview(range: DashboardRange) { - return request(`/api/console/dashboard/overview?range=${range}`) + return request(`/api/dashboard/dashboard/overview?range=${range}`) } diff --git a/web/lib/api/ticket-config.ts b/web/lib/api/ticket-config.ts index 68e6d12..d8e5095 100644 --- a/web/lib/api/ticket-config.ts +++ b/web/lib/api/ticket-config.ts @@ -71,30 +71,30 @@ function toQueryString(query?: Record) { export function fetchTicketResolutionCodes(query?: Record) { return request>( - `/api/console/ticket-resolution-code/list${toQueryString(query)}` + `/api/dashboard/ticket-resolution-code/list${toQueryString(query)}` ) } export function fetchTicketResolutionCodesAll() { - return request("/api/console/ticket-resolution-code/list_all") + return request("/api/dashboard/ticket-resolution-code/list_all") } export function createTicketResolutionCode(payload: CreateTicketResolutionCodePayload) { - return request("/api/console/ticket-resolution-code/create", { + return request("/api/dashboard/ticket-resolution-code/create", { method: "POST", body: JSON.stringify(payload), }) } export function updateTicketResolutionCode(payload: UpdateTicketResolutionCodePayload) { - return request("/api/console/ticket-resolution-code/update", { + return request("/api/dashboard/ticket-resolution-code/update", { method: "POST", body: JSON.stringify(payload), }) } export function deleteTicketResolutionCode(id: number) { - return request("/api/console/ticket-resolution-code/delete", { + return request("/api/dashboard/ticket-resolution-code/delete", { method: "POST", body: JSON.stringify({ id }), }) @@ -102,37 +102,37 @@ export function deleteTicketResolutionCode(id: number) { export function fetchTicketPriorityConfigs(query?: Record) { return request( - `/api/console/ticket-priority-config/list${toQueryString(query)}` + `/api/dashboard/ticket-priority-config/list${toQueryString(query)}` ) } export function fetchTicketPriorityConfigsAll() { - return request("/api/console/ticket-priority-config/list_all") + return request("/api/dashboard/ticket-priority-config/list_all") } export function createTicketPriorityConfig(payload: CreateTicketPriorityConfigPayload) { - return request("/api/console/ticket-priority-config/create", { + return request("/api/dashboard/ticket-priority-config/create", { method: "POST", body: JSON.stringify(payload), }) } export function updateTicketPriorityConfig(payload: UpdateTicketPriorityConfigPayload) { - return request("/api/console/ticket-priority-config/update", { + return request("/api/dashboard/ticket-priority-config/update", { method: "POST", body: JSON.stringify(payload), }) } export function updateTicketPriorityConfigSort(ids: number[]) { - return request("/api/console/ticket-priority-config/update_sort", { + return request("/api/dashboard/ticket-priority-config/update_sort", { method: "POST", body: JSON.stringify(ids), }) } export function deleteTicketPriorityConfig(id: number) { - return request("/api/console/ticket-priority-config/delete", { + return request("/api/dashboard/ticket-priority-config/delete", { method: "POST", body: JSON.stringify({ id }), }) diff --git a/web/lib/api/ticket.ts b/web/lib/api/ticket.ts index 62db521..e7f5cd2 100644 --- a/web/lib/api/ticket.ts +++ b/web/lib/api/ticket.ts @@ -265,19 +265,19 @@ function toQueryString(query?: Record) { } export function fetchTickets(query?: TicketListQuery) { - return request>(`/api/console/ticket/list${toQueryString(query)}`) + return request>(`/api/dashboard/ticket/list${toQueryString(query)}`) } export function fetchTicketDetail(id: number) { - return request(`/api/console/ticket/${id}`) + return request(`/api/dashboard/ticket/${id}`) } export function fetchTicketSummary() { - return request("/api/console/ticket/summary") + return request("/api/dashboard/ticket/summary") } export function fetchTicketViews() { - return request("/api/console/ticket/view_list") + return request("/api/dashboard/ticket/view_list") } export function saveTicketView(payload: { @@ -285,14 +285,14 @@ export function saveTicketView(payload: { name: string filters?: Record }) { - return request("/api/console/ticket/save_view", { + return request("/api/dashboard/ticket/save_view", { method: "POST", body: JSON.stringify(payload), }) } export function deleteTicketView(id: number) { - return request("/api/console/ticket/delete_view", { + return request("/api/dashboard/ticket/delete_view", { method: "POST", body: JSON.stringify({ id }), }) @@ -302,29 +302,29 @@ export function fetchTicketRiskOverview(query?: { currentTeamId?: number riskWindowMins?: number }) { - return request(`/api/console/ticket/risk_overview${toQueryString(query)}`) + return request(`/api/dashboard/ticket/risk_overview${toQueryString(query)}`) } export function fetchTicketRiskList(query: TicketRiskListQuery) { - return request>(`/api/console/ticket/risk_list${toQueryString(query)}`) + return request>(`/api/dashboard/ticket/risk_list${toQueryString(query)}`) } export function createTicket(payload: CreateTicketPayload) { - return request("/api/console/ticket/create", { + return request("/api/dashboard/ticket/create", { method: "POST", body: JSON.stringify(payload), }) } export function createTicketFromConversation(payload: CreateTicketFromConversationPayload) { - return request("/api/console/ticket/create_from_conversation", { + return request("/api/dashboard/ticket/create_from_conversation", { method: "POST", body: JSON.stringify(payload), }) } export function updateTicket(payload: UpdateTicketPayload) { - return request("/api/console/ticket/update", { + return request("/api/dashboard/ticket/update", { method: "POST", body: JSON.stringify(payload), }) @@ -334,7 +334,7 @@ export function linkTicketToCustomer(payload: { ticketId: number customerId: number }) { - return request("/api/console/ticket/link_customer", { + return request("/api/dashboard/ticket/link_customer", { method: "POST", body: JSON.stringify(payload), }) @@ -346,7 +346,7 @@ export function assignTicket(payload: { toTeamId?: number reason?: string }) { - return request("/api/console/ticket/assign", { + return request("/api/dashboard/ticket/assign", { method: "POST", body: JSON.stringify(payload), }) @@ -358,7 +358,7 @@ export function batchAssignTickets(payload: { toTeamId?: number reason?: string }) { - return request("/api/console/ticket/batch_assign", { + return request("/api/dashboard/ticket/batch_assign", { method: "POST", body: JSON.stringify(payload), }) @@ -373,7 +373,7 @@ export function changeTicketStatus(payload: { resolutionSummary?: string reason?: string }) { - return request("/api/console/ticket/change_status", { + return request("/api/dashboard/ticket/change_status", { method: "POST", body: JSON.stringify(payload), }) @@ -388,7 +388,7 @@ export function batchChangeTicketStatus(payload: { resolutionSummary?: string reason?: string }) { - return request("/api/console/ticket/batch_change_status", { + return request("/api/dashboard/ticket/batch_change_status", { method: "POST", body: JSON.stringify(payload), }) @@ -400,7 +400,7 @@ export function replyTicket(payload: { content: string payload?: string }) { - return request("/api/console/ticket/reply", { + return request("/api/dashboard/ticket/reply", { method: "POST", body: JSON.stringify(payload), }) @@ -412,42 +412,42 @@ export function addTicketInternalNote(payload: { content: string payload?: string }) { - return request("/api/console/ticket/internal_note", { + return request("/api/dashboard/ticket/internal_note", { method: "POST", body: JSON.stringify(payload), }) } export function closeTicket(payload: { ticketId: number; closeReason: string }) { - return request("/api/console/ticket/close", { + return request("/api/dashboard/ticket/close", { method: "POST", body: JSON.stringify(payload), }) } export function reopenTicket(payload: { ticketId: number; reason: string }) { - return request("/api/console/ticket/reopen", { + return request("/api/dashboard/ticket/reopen", { method: "POST", body: JSON.stringify(payload), }) } export function watchTicket(ticketId: number) { - return request("/api/console/ticket/watch", { + return request("/api/dashboard/ticket/watch", { method: "POST", body: JSON.stringify({ ticketId }), }) } export function unwatchTicket(ticketId: number) { - return request("/api/console/ticket/unwatch", { + return request("/api/dashboard/ticket/unwatch", { method: "POST", body: JSON.stringify({ ticketId }), }) } export function batchWatchTickets(payload: { ticketIds: number[]; watched: boolean }) { - return request("/api/console/ticket/batch_watch", { + return request("/api/dashboard/ticket/batch_watch", { method: "POST", body: JSON.stringify(payload), }) @@ -459,28 +459,28 @@ export function addTicketRelation(payload: { relatedTicketNo?: string relationType: string }) { - return request("/api/console/ticket/add_relation", { + return request("/api/dashboard/ticket/add_relation", { method: "POST", body: JSON.stringify(payload), }) } export function deleteTicketRelation(payload: { ticketId: number; relationId: number }) { - return request("/api/console/ticket/delete_relation", { + return request("/api/dashboard/ticket/delete_relation", { method: "POST", body: JSON.stringify(payload), }) } export function addTicketCollaborator(payload: { ticketId: number; userId: number }) { - return request("/api/console/ticket/add_collaborator", { + return request("/api/dashboard/ticket/add_collaborator", { method: "POST", body: JSON.stringify(payload), }) } export function deleteTicketCollaborator(payload: { ticketId: number; collaboratorId: number }) { - return request("/api/console/ticket/delete_collaborator", { + return request("/api/dashboard/ticket/delete_collaborator", { method: "POST", body: JSON.stringify(payload), })