package backend import ( "server/controllers" beego "github.com/beego/beego/v2/server/web" ) // Register 注册租户端(backend)路由。 // 该端不包含平台菜单配置接口。 func Register() { RegisterAuthRoutes() RegisterRoleRoutes() } // RegisterRoleRoutes 注册 backend 租户角色管理路由。 func RegisterRoleRoutes() { // 租户角色管理(yz_system_admin_role, cid=2) beego.Router("/backend/allRoles", &controllers.BackendRoleController{}, "get:GetAllRoles") beego.Router("/backend/roles/:id", &controllers.BackendRoleController{}, "get:GetRoleByID") beego.Router("/backend/roles", &controllers.BackendRoleController{}, "post:CreateRole") beego.Router("/backend/roles/:id", &controllers.BackendRoleController{}, "put:UpdateRole") beego.Router("/backend/roles/:id", &controllers.BackendRoleController{}, "delete:DeleteRole") } // RegisterAuthRoutes 注册 backend 认证相关路由。 func RegisterAuthRoutes() { // 登录、注册与找回密码相关 beego.Router("/backend/login", &controllers.BackendAuthController{}, "post:LoginBackend") beego.Router("/backend/sendLoginCode", &controllers.BackendAuthController{}, "post:SendLoginCode") beego.Router("/backend/loginBySms", &controllers.BackendAuthController{}, "post:LoginBySms") beego.Router("/backend/logout", &controllers.BackendAuthController{}, "post:Logout") beego.Router("/backend/register", &controllers.BackendAuthController{}, "post:Register") beego.Router("/backend/sendRegisterCode", &controllers.BackendAuthController{}, "post:SendRegisterCode") beego.Router("/backend/resetPassword", &controllers.BackendAuthController{}, "post:ResetPassword") beego.Router("/backend/sendResetCode", &controllers.BackendAuthController{}, "post:SendResetCode") // 极验与登录验证配置 beego.Router("/backend/login/getGeetest3Infos", &controllers.BackendAuthController{}, "get:GetGeetest3Infos") beego.Router("/backend/login/getGeetest4Infos", &controllers.BackendAuthController{}, "get:GetGeetest4Infos") beego.Router("/backend/login/getOpenVerify", &controllers.BackendAuthController{}, "get:GetOpenVerify") // 当前登录用户信息 beego.Router("/backend/getCurrentUser", &controllers.BackendAuthController{}, "get:GetCurrentUser") // 当前登录用户的角色 / 部门 / 职位 beego.Router("/backend/getCurrentUserProfile", &controllers.BackendAuthController{}, "get:GetCurrentUserProfile") // 菜单接口 // 可分配给角色的菜单(服务端已过滤停用/隐藏菜单) beego.Router("/backend/assignableMenus", &controllers.BackendMenuController{}, "get:GetAssignableMenus") beego.Router("/backend/allmenu", &controllers.BackendMenuController{}, "get:GetAllMenus") beego.Router("/backend/menu/:id", &controllers.BackendMenuController{}, "get:GetBackendMenu") // 前端菜单接口 beego.Router("/backend/frontmenus", &controllers.BackendMenuFrontController{}, "get:List;post:Create") beego.Router("/backend/frontmenus/:id", &controllers.BackendMenuFrontController{}, "post:Update;delete:Delete") // 操作日志(yz_system_operation_log) beego.Router("/backend/operationLogs", &controllers.BackendOperationLogController{}, "get:List") beego.Router("/backend/operationLogs/statistics", &controllers.BackendOperationLogController{}, "get:Statistics") beego.Router("/backend/operationLogs/:id", &controllers.BackendOperationLogController{}, "get:Detail;delete:Delete") beego.Router("/backend/operationLogs/batchDelete", &controllers.BackendOperationLogController{}, "post:BatchDelete") // 登录日志(yz_system_login_log) beego.Router("/backend/loginLogs", &controllers.BackendLoginLogController{}, "get:List") beego.Router("/backend/loginLogs/:id", &controllers.BackendLoginLogController{}, "get:Detail;delete:Delete") beego.Router("/backend/loginLogs/batchDelete", &controllers.BackendLoginLogController{}, "post:BatchDelete") // 租户站点设置 beego.Router("/backend/normalInfos", &controllers.BackendSiteSettingsController{}, "get:GetNormalInfos") beego.Router("/backend/saveNormalInfos", &controllers.BackendSiteSettingsController{}, "post:SaveNormalInfos") beego.Router("/backend/legalInfos", &controllers.BackendSiteSettingsController{}, "get:GetLegalInfos") beego.Router("/backend/saveLegalInfos", &controllers.BackendSiteSettingsController{}, "post:SaveLegalInfos") beego.Router("/backend/companyInfos", &controllers.BackendSiteSettingsController{}, "get:GetCompanyInfos") beego.Router("/backend/saveCompanyInfos", &controllers.BackendSiteSettingsController{}, "post:SaveCompanyInfos") beego.Router("/backend/companySeo", &controllers.BackendSiteSettingsController{}, "get:GetCompanySeo") beego.Router("/backend/saveCompanySeo", &controllers.BackendSiteSettingsController{}, "post:SaveCompanySeo") beego.Router("/backend/loginVerifyInfos", &controllers.BackendLoginVerifyController{}, "get:GetLoginVerifyInfos") beego.Router("/backend/saveloginVerifyInfos", &controllers.BackendLoginVerifyController{}, "post:SaveLoginVerifyInfos") // 站内信(yz_system_reminderlist) beego.Router("/backend/sitereminder/myList", &controllers.BackendSiteReminderController{}, "get:GetMyList") beego.Router("/backend/sitereminder/read", &controllers.BackendSiteReminderController{}, "post:MarkRead") beego.Router("/backend/sitereminder/readall", &controllers.BackendSiteReminderController{}, "post:MarkAllRead") beego.Router("/backend/sitereminder/delete", &controllers.BackendSiteReminderController{}, "post:Delete") // 文件管理(yz_system_files / yz_system_files_category) beego.Router("/backend/usercate", &controllers.BackendFileController{}, "get:GetUserCate") beego.Router("/backend/allfiles", &controllers.BackendFileController{}, "get:GetAllFiles") beego.Router("/backend/catefiles/:id", &controllers.BackendFileController{}, "get:GetCateFiles") beego.Router("/backend/file/:id", &controllers.BackendFileController{}, "get:GetFileByID") beego.Router("/backend/deletefilepermanently/:id", &controllers.BackendFileController{}, "delete:DeleteFilePermanently") beego.Router("/backend/uploadfile", &controllers.BackendFileController{}, "post:UploadFile") beego.Router("/backend/uploadfiles", &controllers.BackendFileController{}, "post:UploadFile") beego.Router("/backend/updatefile/:id", &controllers.BackendFileController{}, "post:UpdateFile") beego.Router("/backend/deletefile/:id", &controllers.BackendFileController{}, "delete:DeleteFile") beego.Router("/backend/movefile/:id", &controllers.BackendFileController{}, "get:MoveFile") beego.Router("/backend/createfilecate", &controllers.BackendFileController{}, "post:CreateFileCate") beego.Router("/backend/renamefilecate/:id", &controllers.BackendFileController{}, "post:RenameFileCate") beego.Router("/backend/deletefilecate/:id", &controllers.BackendFileController{}, "delete:DeleteFileCate") beego.Router("/backend/uploadavatar", &controllers.BackendFileController{}, "post:UploadAvatar") beego.Router("/backend/uploadavatar/:id", &controllers.BackendFileController{}, "post:UpdateAvatar") beego.Router("/backend/batchdeletefiles", &controllers.BackendFileController{}, "post:BatchDeleteFiles") beego.Router("/backend/batchDeleteFilesPermanently", &controllers.BackendFileController{}, "post:BatchDeleteFilesPermanently") beego.Router("/backend/batchMoveFiles", &controllers.BackendFileController{}, "post:BatchMoveFiles") // 模块接口 beego.Router("/backend/modules/getTenantList", &controllers.BackendModulesController{}, "get:GetTenantList") // 用户接口 beego.Router("/backend/getTenantUsers/:tid", &controllers.BackendAdminUserController{}, "get:GetTenantUsers") beego.Router("/backend/getAllUsers", &controllers.BackendAdminUserController{}, "get:GetAllUsers") beego.Router("/backend/getUserInfo/:id", &controllers.BackendAdminUserController{}, "get:GetUserInfo") beego.Router("/backend/addUser", &controllers.BackendAdminUserController{}, "post:AddUser") beego.Router("/backend/editUser/:id", &controllers.BackendAdminUserController{}, "post:EditUser") beego.Router("/backend/deleteUser/:id", &controllers.BackendAdminUserController{}, "delete:DeleteUser") beego.Router("/backend/changePassword", &controllers.BackendAdminUserController{}, "post:ChangePassword") // 组织架构(组织 / 员工 / 职位) // 组织架构是租户端通用基础数据:进销存(erp)与办公自动化(oa)两套界面读写同一份数据, // 数据按 JWT 中的租户ID 隔离。两个前缀注册到同一个控制器,便于两端各自的菜单与权限配置。 registerOrganizationRoutes("erp") registerOrganizationRoutes("oa") // 员工档案(OA 人事档案:一人一档 + 教育/工作/合同/证照子记录) beego.Router("/backend/oa/employeefile/list", &controllers.BackendEmployeeFileController{}, "get:List") beego.Router("/backend/oa/employeefile/stats", &controllers.BackendEmployeeFileController{}, "get:Stats") beego.Router("/backend/oa/employeefile/detail/:id", &controllers.BackendEmployeeFileController{}, "get:Detail") beego.Router("/backend/oa/employeefile/create", &controllers.BackendEmployeeFileController{}, "post:Create") beego.Router("/backend/oa/employeefile/update/:id", &controllers.BackendEmployeeFileController{}, "post:Update") beego.Router("/backend/oa/employeefile/certificates/:id", &controllers.BackendEmployeeFileController{}, "post:UpdateCertificates") beego.Router("/backend/oa/employeefile/delete/:id", &controllers.BackendEmployeeFileController{}, "delete:Delete") beego.Router("/backend/oa/employeefile/filedEmployees", &controllers.BackendEmployeeFileController{}, "get:FiledEmployees") beego.Router("/backend/oa/employeefile/record/create", &controllers.BackendEmployeeFileController{}, "post:CreateRecord") beego.Router("/backend/oa/employeefile/record/update/:id", &controllers.BackendEmployeeFileController{}, "post:UpdateRecord") beego.Router("/backend/oa/employeefile/record/delete/:id", &controllers.BackendEmployeeFileController{}, "delete:DeleteRecord") // 通讯录管理(与组织架构联动) beego.Router("/backend/erp/contact/list", &controllers.BackendErpContactController{}, "get:List") beego.Router("/backend/erp/contact/detail/:id", &controllers.BackendErpContactController{}, "get:Detail") beego.Router("/backend/erp/contact/create", &controllers.BackendErpContactController{}, "post:Create") beego.Router("/backend/erp/contact/update/:id", &controllers.BackendErpContactController{}, "post:Update") beego.Router("/backend/erp/contact/delete/:id", &controllers.BackendErpContactController{}, "delete:Delete") beego.Router("/backend/erp/contact/star/:id", &controllers.BackendErpContactController{}, "post:Star") beego.Router("/backend/erp/contact/syncAll", &controllers.BackendErpContactController{}, "post:SyncAllContacts") beego.Router("/backend/erp/contact/orgTree", &controllers.BackendErpContactController{}, "get:GetContactOrgTree") // 文章管理 beego.Router("/backend/articlesList", &controllers.BackendArticleController{}, "get:List") beego.Router("/backend/contentstats", &controllers.BackendArticleController{}, "get:ContentStats") beego.Router("/backend/allarticles", &controllers.BackendArticleController{}, "get:ListAll") beego.Router("/backend/articles/:id", &controllers.BackendArticleController{}, "get:Detail") beego.Router("/backend/createarticle", &controllers.BackendArticleController{}, "post:Create") beego.Router("/backend/editarticle/:id", &controllers.BackendArticleController{}, "post:Update") beego.Router("/backend/deletearticle/:id", &controllers.BackendArticleController{}, "delete:Delete") beego.Router("/backend/publisharticle/:id", &controllers.BackendArticleController{}, "post:Publish") beego.Router("/backend/unPublisharticle/:id", &controllers.BackendArticleController{}, "post:Unpublish") beego.Router("/backend/articleRecommend/:id", &controllers.BackendArticleController{}, "post:Recommend") beego.Router("/backend/unArticleRecommend/:id", &controllers.BackendArticleController{}, "post:Unrecommend") beego.Router("/backend/articleTop/:id", &controllers.BackendArticleController{}, "post:Top") beego.Router("/backend/unArticleTop/:id", &controllers.BackendArticleController{}, "post:Untop") beego.Router("/backend/categories", &controllers.BackendArticleCategoryController{}, "get:List") beego.Router("/backend/allcategories", &controllers.BackendArticleCategoryController{}, "get:ListAll") beego.Router("/backend/categories/:id", &controllers.BackendArticleCategoryController{}, "get:Detail;delete:Delete") beego.Router("/backend/createCategory", &controllers.BackendArticleCategoryController{}, "post:Create") beego.Router("/backend/editCategory/:id", &controllers.BackendArticleCategoryController{}, "post:Update") beego.Router("/backend/categories/:id/status", &controllers.BackendArticleCategoryController{}, "patch:UpdateStatus") // 产品管理(yz_cms_product / yz_cms_product_category,按租户隔离) beego.Router("/backend/productsList", &controllers.BackendProductController{}, "get:List") beego.Router("/backend/addProducts", &controllers.BackendProductController{}, "post:Create") beego.Router("/backend/editProducts/:id", &controllers.BackendProductController{}, "put:Update") beego.Router("/backend/deleteProducts/:id", &controllers.BackendProductController{}, "delete:Delete") beego.Router("/backend/productsTypesList", &controllers.BackendProductCategoryController{}, "get:List") beego.Router("/backend/addProductsTypes", &controllers.BackendProductCategoryController{}, "post:Create") beego.Router("/backend/editProductsTypes/:id", &controllers.BackendProductCategoryController{}, "put:Update") beego.Router("/backend/deleteProductsTypes/:id", &controllers.BackendProductCategoryController{}, "delete:Delete") // 解决方案/特色服务管理(yz_cms_solution / yz_cms_solution_category,按租户隔离) beego.Router("/backend/servicesList", &controllers.BackendSolutionController{}, "get:List") beego.Router("/backend/addServices", &controllers.BackendSolutionController{}, "post:Create") beego.Router("/backend/editServices/:id", &controllers.BackendSolutionController{}, "put:Update") beego.Router("/backend/deleteServices/:id", &controllers.BackendSolutionController{}, "delete:Delete") beego.Router("/backend/servicesTypesList", &controllers.BackendSolutionCategoryController{}, "get:List") beego.Router("/backend/addServicesTypes", &controllers.BackendSolutionCategoryController{}, "post:Create") beego.Router("/backend/editServicesTypes/:id", &controllers.BackendSolutionCategoryController{}, "put:Update") beego.Router("/backend/deleteServicesTypes/:id", &controllers.BackendSolutionCategoryController{}, "delete:Delete") // 官网前台内容(Banner / 友链 / 单页,yz_cms_frontend_*,按租户隔离) beego.Router("/backend/allbanners", &controllers.BackendBannerController{}, "get:ListAll") beego.Router("/backend/createbanner", &controllers.BackendBannerController{}, "post:Create") beego.Router("/backend/editbanner/:id", &controllers.BackendBannerController{}, "post:Update") beego.Router("/backend/deletebanner/:id", &controllers.BackendBannerController{}, "delete:Delete") beego.Router("/backend/friendlinks", &controllers.BackendFriendlinkController{}, "get:List;post:Create") beego.Router("/backend/friendlinks/all", &controllers.BackendFriendlinkController{}, "get:ListAll") beego.Router("/backend/friendlinks/batchdelete", &controllers.BackendFriendlinkController{}, "post:BatchDelete") beego.Router("/backend/friendlinks/:id", &controllers.BackendFriendlinkController{}, "put:Update;delete:Delete") beego.Router("/backend/allonepages", &controllers.BackendOnepageController{}, "get:ListAll") beego.Router("/backend/createonepage", &controllers.BackendOnepageController{}, "post:Create") beego.Router("/backend/editonepage/:id", &controllers.BackendOnepageController{}, "post:Update") beego.Router("/backend/deleteonepage/:id", &controllers.BackendOnepageController{}, "delete:Delete") // 官网模板选用(只读列表 + 切换,模板管理在 platform 端) beego.Router("/backend/theme", &controllers.BackendThemeController{}, "get:List") beego.Router("/backend/theme/switch", &controllers.BackendThemeController{}, "post:Switch") beego.Router("/backend/theme/data", &controllers.BackendThemeController{}, "get:GetData;post:SaveData") // 域名管理(主域名池 / 租户域名) beego.Router("/backend/domain/pool/index", &controllers.BackendDomainPoolController{}, "get:Index") beego.Router("/backend/domain/pool/getEnabledDomains", &controllers.BackendDomainPoolController{}, "get:GetEnabledDomains") beego.Router("/backend/domain/pool/create", &controllers.BackendDomainPoolController{}, "post:Create") beego.Router("/backend/domain/pool/update", &controllers.BackendDomainPoolController{}, "post:Update") beego.Router("/backend/domain/pool/delete/:id", &controllers.BackendDomainPoolController{}, "delete:Delete") beego.Router("/backend/domain/pool/toggleStatus", &controllers.BackendDomainPoolController{}, "post:ToggleStatus") beego.Router("/backend/domain/tenant/index", &controllers.BackendTenantDomainController{}, "get:Index") beego.Router("/backend/domain/tenant/myDomains", &controllers.BackendTenantDomainController{}, "get:MyDomains") beego.Router("/backend/domain/tenant/apply", &controllers.BackendTenantDomainController{}, "post:Apply") beego.Router("/backend/domain/tenant/bindCustom", &controllers.BackendTenantDomainController{}, "post:BindCustom") beego.Router("/backend/domain/tenant/checkCustomDns", &controllers.BackendTenantDomainController{}, "post:CheckCustomDns") beego.Router("/backend/domain/tenant/customDomainGuide", &controllers.BackendTenantDomainController{}, "get:CustomDomainGuide") beego.Router("/backend/domain/tenant/audit", &controllers.BackendTenantDomainController{}, "post:Audit") beego.Router("/backend/domain/tenant/toggleStatus", &controllers.BackendTenantDomainController{}, "post:ToggleStatus") beego.Router("/backend/domain/tenant/delete/:id", &controllers.BackendTenantDomainController{}, "delete:Delete") // 密码存储管理 beego.Router("/backend/passwordStore/list", &controllers.BackendPasswordStoreController{}, "get:List") beego.Router("/backend/passwordStore/detail/:id", &controllers.BackendPasswordStoreController{}, "get:Detail") beego.Router("/backend/passwordStore/create", &controllers.BackendPasswordStoreController{}, "post:Create") beego.Router("/backend/passwordStore/update/:id", &controllers.BackendPasswordStoreController{}, "post:Update") beego.Router("/backend/passwordStore/delete/:id", &controllers.BackendPasswordStoreController{}, "delete:Delete") // 记事本管理 beego.Router("/backend/notebook/list", &controllers.BackendNotebookController{}, "get:List") beego.Router("/backend/notebook/detail/:id", &controllers.BackendNotebookController{}, "get:Detail") beego.Router("/backend/notebook/create", &controllers.BackendNotebookController{}, "post:Create") beego.Router("/backend/notebook/update/:id", &controllers.BackendNotebookController{}, "post:Update") beego.Router("/backend/notebook/delete/:id", &controllers.BackendNotebookController{}, "delete:Delete") // 报销与审批管理 beego.Router("/backend/reimbursements", &controllers.BackendReimburseController{}, "get:List;post:Create") beego.Router("/backend/reimbursements/dashboard", &controllers.BackendReimburseController{}, "get:Dashboard") beego.Router("/backend/reimbursements/types/manage", &controllers.BackendReimburseController{}, "get:TypesManage") beego.Router("/backend/reimbursements/types/:type_id", &controllers.BackendReimburseController{}, "post:UpdateType;delete:DeleteType") beego.Router("/backend/reimbursements/types", &controllers.BackendReimburseController{}, "get:Types;post:CreateType") beego.Router("/backend/reimbursements/flows", &controllers.BackendReimburseController{}, "get:Flows") beego.Router("/backend/reimbursements/:id/items", &controllers.BackendReimburseController{}, "post:AddItem") beego.Router("/backend/reimbursements/:id/items/:item_id", &controllers.BackendReimburseController{}, "post:UpdateItem;delete:DeleteItem") beego.Router("/backend/reimbursements/:id", &controllers.BackendReimburseController{}, "get:Detail;post:Update;delete:Delete") beego.Router("/backend/reimbursements/:id/submit", &controllers.BackendReimburseController{}, "post:Submit") beego.Router("/backend/reimbursements/:id/status", &controllers.BackendReimburseController{}, "post:UpdateStatus") beego.Router("/backend/reimbursements/:id/records", &controllers.BackendReimburseController{}, "get:Records") // 日程提醒管理 beego.Router("/backend/reminder/list", &controllers.BackendReminderController{}, "get:GetReminderList") beego.Router("/backend/reminder/test", &controllers.BackendReminderController{}, "post:TestReminder") beego.Router("/backend/reminder/:id", &controllers.BackendReminderController{}, "get:GetReminderDetail;put:UpdateReminder;delete:DeleteReminder") beego.Router("/backend/reminder", &controllers.BackendReminderController{}, "post:CreateReminder") beego.Router("/backend/reminder/batchDelete", &controllers.BackendReminderController{}, "post:BatchDeleteReminder") beego.Router("/backend/reminder/finish/:id", &controllers.BackendReminderController{}, "post:FinishReminder") // 用户通知配置(每个用户自己的邮箱/手机号/Bark) beego.Router("/backend/notify-config", &controllers.BackendNotifyConfigController{}, "get:GetConfig;put:UpdateConfig") // OA 薪酬管理(薪酬方案 / 月度薪资单) beego.Router("/backend/oa/compensation/employees", &controllers.BackendOaCompensationController{}, "get:Employees") beego.Router("/backend/oa/compensation/dashboard", &controllers.BackendOaCompensationController{}, "get:Dashboard") beego.Router("/backend/oa/compensation/schemes", &controllers.BackendOaCompensationController{}, "get:SchemeList;post:CreateScheme") beego.Router("/backend/oa/compensation/schemes/:id", &controllers.BackendOaCompensationController{}, "post:UpdateScheme;delete:DeleteScheme") beego.Router("/backend/oa/compensation/payrolls", &controllers.BackendOaCompensationController{}, "get:List;post:Create") beego.Router("/backend/oa/compensation/payrolls/:id", &controllers.BackendOaCompensationController{}, "get:Detail;post:Update;delete:Delete") beego.Router("/backend/oa/compensation/payrolls/:id/status", &controllers.BackendOaCompensationController{}, "post:UpdateStatus") // OA日程管理(日历待办) beego.Router("/backend/oa/schedule/list", &controllers.BackendOaScheduleController{}, "get:List") beego.Router("/backend/oa/schedule/stats", &controllers.BackendOaScheduleController{}, "get:Stats") beego.Router("/backend/oa/schedule/create", &controllers.BackendOaScheduleController{}, "post:Create") beego.Router("/backend/oa/schedule/update/:id", &controllers.BackendOaScheduleController{}, "post:Update") beego.Router("/backend/oa/schedule/delete/:id", &controllers.BackendOaScheduleController{}, "delete:Delete") beego.Router("/backend/oa/schedule/finish/:id", &controllers.BackendOaScheduleController{}, "post:FinishSchedule") beego.Router("/backend/oa/schedule/carry/:id", &controllers.BackendOaScheduleController{}, "post:CarrySchedule") beego.Router("/backend/oa/schedule/carry-pending", &controllers.BackendOaScheduleController{}, "post:CarryPending") beego.Router("/backend/oa/schedule/images/:id", &controllers.BackendOaScheduleController{}, "post:SetImages") beego.Router("/backend/oa/schedule/content/:id", &controllers.BackendOaScheduleController{}, "post:UpdateContent") // OA通知公告 beego.Router("/backend/oa/notice/list", &controllers.BackendOaNoticeController{}, "get:List") beego.Router("/backend/oa/notice/portal", &controllers.BackendOaNoticeController{}, "get:Portal") beego.Router("/backend/oa/notice/detail/:id", &controllers.BackendOaNoticeController{}, "get:Detail") beego.Router("/backend/oa/notice/create", &controllers.BackendOaNoticeController{}, "post:Create") beego.Router("/backend/oa/notice/update/:id", &controllers.BackendOaNoticeController{}, "post:Update") beego.Router("/backend/oa/notice/delete/:id", &controllers.BackendOaNoticeController{}, "delete:Delete") beego.Router("/backend/oa/notice/publish/:id", &controllers.BackendOaNoticeController{}, "post:Publish") beego.Router("/backend/oa/notice/top/:id", &controllers.BackendOaNoticeController{}, "post:Top") // OA文档管理(文档库 / 文档图谱) beego.Router("/backend/oa/document/categories", &controllers.BackendOaDocumentController{}, "get:Categories;post:CreateCategory") beego.Router("/backend/oa/document/categories/:id", &controllers.BackendOaDocumentController{}, "post:UpdateCategory;delete:DeleteCategory") beego.Router("/backend/oa/document/list", &controllers.BackendOaDocumentController{}, "get:List") beego.Router("/backend/oa/document/stats", &controllers.BackendOaDocumentController{}, "get:Stats") beego.Router("/backend/oa/document/graph", &controllers.BackendOaDocumentController{}, "get:Graph") beego.Router("/backend/oa/document/links", &controllers.BackendOaDocumentController{}, "get:LinkList;post:LinkCreate") beego.Router("/backend/oa/document/links/:id", &controllers.BackendOaDocumentController{}, "delete:LinkDelete") beego.Router("/backend/oa/document/detail/:id", &controllers.BackendOaDocumentController{}, "get:Detail") beego.Router("/backend/oa/document/content/:id", &controllers.BackendOaDocumentController{}, "get:Content") beego.Router("/backend/oa/document/create", &controllers.BackendOaDocumentController{}, "post:Create") beego.Router("/backend/oa/document/update/:id", &controllers.BackendOaDocumentController{}, "post:Update") beego.Router("/backend/oa/document/delete/:id", &controllers.BackendOaDocumentController{}, "delete:Delete") beego.Router("/backend/oa/document/delete-batch", &controllers.BackendOaDocumentController{}, "post:DeleteBatch") beego.Router("/backend/oa/document/move", &controllers.BackendOaDocumentController{}, "post:Move") beego.Router("/backend/oa/document/star/:id", &controllers.BackendOaDocumentController{}, "post:Star") beego.Router("/backend/oa/document/download/:id", &controllers.BackendOaDocumentController{}, "post:Download") beego.Router("/backend/oa/document/members", &controllers.BackendOaDocumentController{}, "get:Members") beego.Router("/backend/oa/document/shares/:id", &controllers.BackendOaDocumentController{}, "get:ShareList;post:ShareSet") beego.Router("/backend/oa/document/share/:sid", &controllers.BackendOaDocumentController{}, "delete:ShareRemove") } // registerOrganizationRoutes 为指定模块前缀注册组织架构路由。 // 进销存(erp)与办公自动化(oa)各有独立界面,但共用 BackendOrganizationController 与同一套表, // 因此这里用同一份定义注册两遍,只有 URL 前缀不同。 func registerOrganizationRoutes(module string) { prefix := "/backend/" + module // 组织机构 beego.Router(prefix+"/getOrganization", &controllers.BackendOrganizationController{}, "get:GetOrganization") beego.Router(prefix+"/getOrganizationTree", &controllers.BackendOrganizationController{}, "get:GetOrganizationTree") beego.Router(prefix+"/getOrganizationDetail/:id", &controllers.BackendOrganizationController{}, "get:GetOrganizationDetail") beego.Router(prefix+"/createOrganization", &controllers.BackendOrganizationController{}, "post:CreateOrganization") beego.Router(prefix+"/editOrganization/:id", &controllers.BackendOrganizationController{}, "post:EditOrganization") beego.Router(prefix+"/deleteOrganization/:id", &controllers.BackendOrganizationController{}, "delete:DeleteOrganization") beego.Router(prefix+"/getCompanys", &controllers.BackendOrganizationController{}, "get:GetCompanys") beego.Router(prefix+"/getDepartments", &controllers.BackendOrganizationController{}, "get:GetDepartments") beego.Router(prefix+"/searchOrganizations", &controllers.BackendOrganizationController{}, "get:SearchOrganizations") beego.Router(prefix+"/getOrganizationHierarchy/:org_id", &controllers.BackendOrganizationController{}, "get:GetOrganizationHierarchy") beego.Router(prefix+"/getOrganizationStats", &controllers.BackendOrganizationController{}, "get:GetOrganizationStats") beego.Router(prefix+"/moveOrganization", &controllers.BackendOrganizationController{}, "post:MoveOrganization") beego.Router(prefix+"/batchOrganizeOrganizations", &controllers.BackendOrganizationController{}, "post:BatchOrganizeOrganizations") beego.Router(prefix+"/checkOrgCodeUnique", &controllers.BackendOrganizationController{}, "get:CheckOrgCodeUnique") // 员工 beego.Router(prefix+"/getEmployee", &controllers.BackendOrganizationController{}, "get:GetEmployee") beego.Router(prefix+"/getEmployeeDetail/:id", &controllers.BackendOrganizationController{}, "get:GetEmployeeDetail") beego.Router(prefix+"/createEmployee", &controllers.BackendOrganizationController{}, "post:CreateEmployee") beego.Router(prefix+"/editEmployee/:id", &controllers.BackendOrganizationController{}, "post:EditEmployee") beego.Router(prefix+"/deleteEmployee/:id", &controllers.BackendOrganizationController{}, "delete:DeleteEmployee") beego.Router(prefix+"/getOrganizationEmployees/:org_id", &controllers.BackendOrganizationController{}, "get:GetOrganizationEmployees") beego.Router(prefix+"/moveEmployeeToOrg", &controllers.BackendOrganizationController{}, "post:MoveEmployeeToOrg") beego.Router(prefix+"/checkEmployeeAccountUnique", &controllers.BackendOrganizationController{}, "get:CheckEmployeeAccountUnique") // 职位 beego.Router(prefix+"/getPosition", &controllers.BackendOrganizationController{}, "get:GetPosition") beego.Router(prefix+"/getPositionDetail/:id", &controllers.BackendOrganizationController{}, "get:GetPositionDetail") beego.Router(prefix+"/createPosition", &controllers.BackendOrganizationController{}, "post:CreatePosition") beego.Router(prefix+"/editPosition/:id", &controllers.BackendOrganizationController{}, "post:EditPosition") beego.Router(prefix+"/deletePosition/:id", &controllers.BackendOrganizationController{}, "delete:DeletePosition") beego.Router(prefix+"/checkPositionCodeUnique", &controllers.BackendOrganizationController{}, "get:CheckPositionCodeUnique") // 设置与导入导出 beego.Router(prefix+"/getOrgSettings", &controllers.BackendOrganizationController{}, "get:GetOrgSettings") beego.Router(prefix+"/saveOrgSettings", &controllers.BackendOrganizationController{}, "post:SaveOrgSettings") beego.Router(prefix+"/exportOrganization", &controllers.BackendOrganizationController{}, "get:ExportOrganization") beego.Router(prefix+"/importOrganization", &controllers.BackendOrganizationController{}, "post:ImportOrganization") beego.Router(prefix+"/organizationImportTemplate", &controllers.BackendOrganizationController{}, "get:GetImportTemplate") // ERP客户管理 beego.Router("/backend/erp/customer/list", &controllers.BackendErpCustomerController{}, "get:List") beego.Router("/backend/erp/customer", &controllers.BackendErpCustomerController{}, "post:Create") beego.Router("/backend/erp/customer/:id", &controllers.BackendErpCustomerController{}, "get:Detail;put:Update;delete:Delete") beego.Router("/backend/erp/customer/:id/status", &controllers.BackendErpCustomerController{}, "post:ToggleStatus") // CRM联系人(客户/供应商对接人) beego.Router("/backend/crm/contact/list", &controllers.BackendCrmContactController{}, "get:List") beego.Router("/backend/crm/contact/add", &controllers.BackendCrmContactController{}, "post:Add") beego.Router("/backend/crm/contact/edit", &controllers.BackendCrmContactController{}, "post:Edit") beego.Router("/backend/crm/contact/delete", &controllers.BackendCrmContactController{}, "post:Delete") // CRM客户公海 beego.Router("/backend/crm/pool/list", &controllers.BackendCrmPoolController{}, "get:List") beego.Router("/backend/crm/pool/move", &controllers.BackendCrmPoolController{}, "post:Move") beego.Router("/backend/crm/pool/claim", &controllers.BackendCrmPoolController{}, "post:Claim") beego.Router("/backend/crm/pool/assign", &controllers.BackendCrmPoolController{}, "post:Assign") // CRM线索管理(线索 -> 商机转化) beego.Router("/backend/crm/clue/list", &controllers.BackendCrmClueController{}, "get:List") beego.Router("/backend/crm/clue", &controllers.BackendCrmClueController{}, "post:Create") beego.Router("/backend/crm/clue/:id", &controllers.BackendCrmClueController{}, "get:Detail;put:Update;delete:Delete") beego.Router("/backend/crm/clue/:id/convert", &controllers.BackendCrmClueController{}, "post:Convert") // CRM商机管理(商机 -> 项目转化) beego.Router("/backend/crm/business/list", &controllers.BackendCrmBusinessController{}, "get:List") beego.Router("/backend/crm/business", &controllers.BackendCrmBusinessController{}, "post:Create") beego.Router("/backend/crm/business/:id", &controllers.BackendCrmBusinessController{}, "get:Detail;put:Update;delete:Delete") beego.Router("/backend/crm/business/:id/convert", &controllers.BackendCrmBusinessController{}, "post:Convert") // CRM项目管理 beego.Router("/backend/crm/project/list", &controllers.BackendCrmProjectController{}, "get:List") beego.Router("/backend/crm/project", &controllers.BackendCrmProjectController{}, "post:Create") beego.Router("/backend/crm/project/:id", &controllers.BackendCrmProjectController{}, "get:Detail;put:Update;delete:Delete") // CRM产品管理(产品台账/目录;可由项目生成时写入) beego.Router("/backend/crm/product/list", &controllers.BackendCrmProductController{}, "get:List") beego.Router("/backend/crm/product", &controllers.BackendCrmProductController{}, "post:Create") beego.Router("/backend/crm/product/:id", &controllers.BackendCrmProductController{}, "get:Detail;put:Update;delete:Delete") beego.Router("/backend/crm/product/sync-from-project", &controllers.BackendCrmProductController{}, "post:SyncFromProject") // CRM产品分类管理(用户自定义产品归类;产品表单的分类下拉取自该表) beego.Router("/backend/crm/product/category/list", &controllers.BackendCrmProductCategoryController{}, "get:List") beego.Router("/backend/crm/product/category", &controllers.BackendCrmProductCategoryController{}, "post:Create") beego.Router("/backend/crm/product/category/:id", &controllers.BackendCrmProductCategoryController{}, "get:Detail;put:Update;delete:Delete") // CRM项目文档(与OA文档库「共享文档/项目文档」绑定:列表/上传同步/删除同步/文件夹管理) beego.Router("/backend/crm/project/:id/docs", &controllers.BackendCrmProjectController{}, "get:DocList") beego.Router("/backend/crm/project/:id/doc-upload", &controllers.BackendCrmProjectController{}, "post:DocUpload") beego.Router("/backend/crm/project/:id/doc-delete", &controllers.BackendCrmProjectController{}, "post:DocDelete") beego.Router("/backend/crm/project/:id/doc-folder", &controllers.BackendCrmProjectController{}, "post:DocFolderCreate") beego.Router("/backend/crm/project/:id/doc-folder-delete", &controllers.BackendCrmProjectController{}, "post:DocFolderDelete") // CRM合同管理(进度式创建:合同信息/产品清单每步可保存;绑定项目或无头合同) beego.Router("/backend/crm/contract/list", &controllers.BackendCrmContractController{}, "get:List") beego.Router("/backend/crm/contract/stats", &controllers.BackendCrmContractController{}, "get:Stats") beego.Router("/backend/crm/contract", &controllers.BackendCrmContractController{}, "post:Create") beego.Router("/backend/crm/contract/:id", &controllers.BackendCrmContractController{}, "get:Detail;put:Update;delete:Delete") beego.Router("/backend/crm/contract/:id/status", &controllers.BackendCrmContractController{}, "post:ChangeStatus") // CRM回款管理(针对于合同:回款计划创建 + 回款进度登记) beego.Router("/backend/crm/payback/list", &controllers.BackendCrmPaybackController{}, "get:List") beego.Router("/backend/crm/payback/progress/list", &controllers.BackendCrmPaybackController{}, "get:ProgressList") // 回款记录(回款进度流水):以回款计划为先导,逐笔登记实际回款 beego.Router("/backend/crm/payback/record/list", &controllers.BackendCrmPaybackController{}, "get:RecordList") beego.Router("/backend/crm/payback/record", &controllers.BackendCrmPaybackController{}, "post:CreateRecord") beego.Router("/backend/crm/payback/record/:id", &controllers.BackendCrmPaybackController{}, "delete:DeleteRecord") beego.Router("/backend/crm/payback", &controllers.BackendCrmPaybackController{}, "post:Create") beego.Router("/backend/crm/payback/:id", &controllers.BackendCrmPaybackController{}, "get:Detail;put:Update;delete:Delete") beego.Router("/backend/crm/payback/:id/receive", &controllers.BackendCrmPaybackController{}, "post:Receive") // CRM回访记录(贯穿线索/商机/项目) beego.Router("/backend/crm/follow/list", &controllers.BackendCrmFollowController{}, "get:List") beego.Router("/backend/crm/follow/add", &controllers.BackendCrmFollowController{}, "post:Add") beego.Router("/backend/crm/follow/edit", &controllers.BackendCrmFollowController{}, "post:Edit") beego.Router("/backend/crm/follow/delete", &controllers.BackendCrmFollowController{}, "post:Delete") // CRM数据仪表盘(按时间维度聚合真实业务数据) beego.Router("/backend/crm/dashboard", &controllers.BackendCrmDashboardController{}, "get:Summary") // CRM附件(线索/商机/项目资料) beego.Router("/backend/crm/attach/list", &controllers.BackendCrmAttachController{}, "get:List") beego.Router("/backend/crm/attach/add", &controllers.BackendCrmAttachController{}, "post:Add") beego.Router("/backend/crm/attach/delete", &controllers.BackendCrmAttachController{}, "post:Delete") // CRM联系人(线索/商机/项目的对接人列表) beego.Router("/backend/crm/entity/contact/list", &controllers.BackendCrmEntityContactController{}, "get:List") beego.Router("/backend/crm/entity/contact/add", &controllers.BackendCrmEntityContactController{}, "post:Add") beego.Router("/backend/crm/entity/contact/edit", &controllers.BackendCrmEntityContactController{}, "post:Edit") beego.Router("/backend/crm/entity/contact/delete", &controllers.BackendCrmEntityContactController{}, "post:Delete") // CRM操作日志 beego.Router("/backend/crm/oplog/list", &controllers.BackendCrmOperateLogController{}, "get:List") // ERP供应商管理 beego.Router("/backend/erp/supplier/list", &controllers.BackendErpSupplierController{}, "get:List") beego.Router("/backend/erp/supplier", &controllers.BackendErpSupplierController{}, "post:Create") beego.Router("/backend/erp/supplier/:id", &controllers.BackendErpSupplierController{}, "get:Detail;put:Update;delete:Delete") beego.Router("/backend/erp/supplier/:id/status", &controllers.BackendErpSupplierController{}, "post:ToggleStatus") // ERP账套管理 beego.Router("/backend/erp/account-set/list", &controllers.BackendErpAccountSetController{}, "get:List") beego.Router("/backend/erp/account-set", &controllers.BackendErpAccountSetController{}, "post:Create") beego.Router("/backend/erp/account-set/:id", &controllers.BackendErpAccountSetController{}, "get:Detail;put:Update;delete:Delete") beego.Router("/backend/erp/account-set/:id/status", &controllers.BackendErpAccountSetController{}, "post:ToggleStatus") // ERP基础设置 beego.Router("/backend/erp/normal-settings", &controllers.BackendErpNormalSettingController{}, "get:List;put:Save") beego.Router("/backend/erp/normal-settings/reset", &controllers.BackendErpNormalSettingController{}, "post:Reset") // ERP客户/供应商联系人 beego.Router("/backend/erp/company-contact/list", &controllers.BackendErpCompanyContactController{}, "get:List") beego.Router("/backend/erp/company-contact", &controllers.BackendErpCompanyContactController{}, "post:Create") beego.Router("/backend/erp/company-contact/:id", &controllers.BackendErpCompanyContactController{}, "put:Update;delete:Delete") // AI接入配置 beego.Router("/backend/ai/provider/list", &controllers.BackendAiProviderController{}, "get:List") beego.Router("/backend/ai/provider", &controllers.BackendAiProviderController{}, "post:Create") beego.Router("/backend/ai/provider/test", &controllers.BackendAiProviderController{}, "post:Test") beego.Router("/backend/ai/provider/:id", &controllers.BackendAiProviderController{}, "put:Update;delete:Delete") // AI聊天会话 beego.Router("/backend/ai/chat/session/list", &controllers.BackendAiChatSessionController{}, "get:List") beego.Router("/backend/ai/chat/session", &controllers.BackendAiChatSessionController{}, "post:Create") beego.Router("/backend/ai/chat/session/:id", &controllers.BackendAiChatSessionController{}, "put:Update;delete:Delete") // AI聊天消息 beego.Router("/backend/ai/chat/message/list", &controllers.BackendAiChatController{}, "get:MessageList") beego.Router("/backend/ai/chat/message/:id", &controllers.BackendAiChatController{}, "delete:DeleteMessage") beego.Router("/backend/ai/chat/send", &controllers.BackendAiChatController{}, "post:Send") beego.Router("/backend/ai/chat/send-stream", &controllers.BackendAiChatController{}, "post:SendStream") // AI智能生成 beego.Router("/backend/ai/smart-generate/company", &controllers.BackendAiSmartGenerateController{}, "post:GenerateCompany") // AI聊天角色预设 beego.Router("/backend/ai/preset/list", &controllers.BackendAiChatPresetController{}, "get:List") beego.Router("/backend/ai/preset", &controllers.BackendAiChatPresetController{}, "post:Create") beego.Router("/backend/ai/preset/:id", &controllers.BackendAiChatPresetController{}, "put:Update;delete:Delete") beego.Router("/backend/ai/preset/:id/default", &controllers.BackendAiChatPresetController{}, "put:SetDefault") // MCP工具管理 beego.Router("/backend/mcp/tool/list", &controllers.BackendMcpToolController{}, "get:List") beego.Router("/backend/mcp/tool", &controllers.BackendMcpToolController{}, "post:Create") beego.Router("/backend/mcp/tool/:id", &controllers.BackendMcpToolController{}, "put:Update;delete:Delete") beego.Router("/backend/mcp/tool/test", &controllers.BackendMcpToolController{}, "post:Test") // MCP服务器配置管理(真正接入 MCP 协议的服务) beego.Router("/backend/mcp/server/list", &controllers.BackendMcpServerController{}, "get:List") beego.Router("/backend/mcp/server", &controllers.BackendMcpServerController{}, "post:Create") beego.Router("/backend/mcp/server/market", &controllers.BackendMcpServerController{}, "get:Market") beego.Router("/backend/mcp/server/from-market", &controllers.BackendMcpServerController{}, "post:AddFromMarket") beego.Router("/backend/mcp/server/test", &controllers.BackendMcpServerController{}, "post:Test") beego.Router("/backend/mcp/server/:id", &controllers.BackendMcpServerController{}, "put:Update;delete:Delete") beego.Router("/backend/mcp/server/:id/toggle", &controllers.BackendMcpServerController{}, "put:Toggle") beego.Router("/backend/mcp/server/:id/tools", &controllers.BackendMcpServerController{}, "post:Tools") }