后端重构

This commit is contained in:
Yvan
2026-01-08 19:28:58 +08:00
parent 8800c069d9
commit 9cb6b965e0
49 changed files with 4907 additions and 14 deletions
+6 -2
View File
@@ -1,9 +1,13 @@
package router
import "kra/internal/server/router/system"
import (
"kra/internal/server/router/example"
"kra/internal/server/router/system"
)
var RouterGroupApp = new(RouterGroup)
type RouterGroup struct {
System system.RouterGroup
System system.RouterGroup
Example example.RouterGroup
}
+8
View File
@@ -0,0 +1,8 @@
package example
// RouterGroup Example路由组
type RouterGroup struct {
FileUploadRouter
CustomerRouter
AttachmentCategoryRouter
}
@@ -0,0 +1,23 @@
package example
import (
handler "kra/internal/server/handler/example"
"kra/internal/server/middleware"
"github.com/gin-gonic/gin"
)
type AttachmentCategoryRouter struct{}
func (r *AttachmentCategoryRouter) InitAttachmentCategoryRouter(Router *gin.RouterGroup) {
categoryRouter := Router.Group("attachmentCategory").Use(middleware.OperationRecordMiddleware())
categoryRouterWithoutRecord := Router.Group("attachmentCategory")
var api handler.AttachmentCategoryApi
{
categoryRouter.POST("addCategory", api.AddCategory)
categoryRouter.POST("deleteCategory", api.DeleteCategory)
}
{
categoryRouterWithoutRecord.GET("getCategoryList", api.GetCategoryList)
}
}
@@ -0,0 +1,25 @@
package example
import (
handler "kra/internal/server/handler/example"
"kra/internal/server/middleware"
"github.com/gin-gonic/gin"
)
type CustomerRouter struct{}
func (r *CustomerRouter) InitCustomerRouter(Router *gin.RouterGroup) {
customerRouter := Router.Group("customer").Use(middleware.OperationRecordMiddleware())
customerRouterWithoutRecord := Router.Group("customer")
var api handler.CustomerApi
{
customerRouter.POST("customer", api.CreateExaCustomer)
customerRouter.PUT("customer", api.UpdateExaCustomer)
customerRouter.DELETE("customer", api.DeleteExaCustomer)
}
{
customerRouterWithoutRecord.GET("customer", api.GetExaCustomer)
customerRouterWithoutRecord.GET("customerList", api.GetExaCustomerList)
}
}
@@ -0,0 +1,25 @@
package example
import (
handler "kra/internal/server/handler/example"
"kra/internal/server/middleware"
"github.com/gin-gonic/gin"
)
type FileUploadRouter struct{}
func (r *FileUploadRouter) InitFileUploadRouter(Router *gin.RouterGroup) {
fileUploadRouter := Router.Group("fileUploadAndDownload").Use(middleware.OperationRecordMiddleware())
fileUploadRouterWithoutRecord := Router.Group("fileUploadAndDownload")
var api handler.FileUploadApi
{
fileUploadRouter.POST("upload", api.UploadFile)
fileUploadRouter.POST("deleteFile", api.DeleteFile)
fileUploadRouter.POST("editFileName", api.EditFileName)
fileUploadRouter.POST("importURL", api.ImportURL)
}
{
fileUploadRouterWithoutRecord.POST("getFileList", api.GetFileList)
}
}
+26 -10
View File
@@ -9,21 +9,37 @@ type RouterGroup struct {
AuthorityRouter
MenuRouter
DictionaryRouter
SysDictionaryDetailRouter
CasbinRouter
JwtRouter
OperationRecordRouter
ParamsRouter
SysErrorRouter
SysVersionRouter
SysSystemRouter
SysExportTemplateRouter
InitRouter
AutoCodeRouter
AutoCodeHistoryRouter
}
var (
baseApi = api.BaseApi{}
userApi = api.UserApi{}
apiApi = api.ApiApi{}
authorityApi = api.AuthorityApi{}
menuApi = api.MenuApi{}
dictionaryApi = api.DictionaryApi{}
casbinApi = api.CasbinApi{}
jwtApi = api.JwtApi{}
operationRecordApi = api.OperationRecordApi{}
paramsApi = api.ParamsApi{}
baseApi = api.BaseApi{}
userApi = api.UserApi{}
apiApi = api.ApiApi{}
authorityApi = api.AuthorityApi{}
menuApi = api.MenuApi{}
dictionaryApi = api.DictionaryApi{}
dictionaryDetailApi = api.DictionaryDetailApi{}
casbinApi = api.CasbinApi{}
jwtApi = api.JwtApi{}
operationRecordApi = api.OperationRecordApi{}
paramsApi = api.ParamsApi{}
errorApi = api.ErrorApi{}
versionApi = api.VersionApi{}
systemApi = api.SystemApi{}
exportTemplateApi = api.ExportTemplateApi{}
dbApi = api.DBApi{}
autoCodeApi = api.AutoCodeApi{}
autoCodeHistoryApi = api.AutoCodeHistoryApi{}
)
@@ -0,0 +1,22 @@
package system
import (
"kra/internal/server/middleware"
"github.com/gin-gonic/gin"
)
type AutoCodeRouter struct{}
// InitAutoCodeRouter 初始化自动代码路由
func (s *AutoCodeRouter) InitAutoCodeRouter(Router *gin.RouterGroup, PublicRouter *gin.RouterGroup) {
autoCodeRouter := Router.Group("autoCode").Use(middleware.OperationRecordMiddleware())
autoCodeRouterWithoutRecord := Router.Group("autoCode")
{
autoCodeRouterWithoutRecord.GET("getDB", autoCodeApi.GetDB) // 获取数据库
autoCodeRouterWithoutRecord.GET("getTables", autoCodeApi.GetTables) // 获取对应数据库的表
autoCodeRouterWithoutRecord.GET("getColumn", autoCodeApi.GetColumn) // 获取指定表所有字段信息
}
// 预留其他路由
_ = autoCodeRouter
}
@@ -0,0 +1,18 @@
package system
import (
"github.com/gin-gonic/gin"
)
type AutoCodeHistoryRouter struct{}
// InitAutoCodeHistoryRouter 初始化自动代码历史路由
func (s *AutoCodeRouter) InitAutoCodeHistoryRouter(Router *gin.RouterGroup) {
autoCodeHistoryRouter := Router.Group("autoCode")
{
autoCodeHistoryRouter.POST("getMeta", autoCodeHistoryApi.First) // 根据id获取meta信息
autoCodeHistoryRouter.POST("rollback", autoCodeHistoryApi.RollBack) // 回滚
autoCodeHistoryRouter.POST("delSysHistory", autoCodeHistoryApi.Delete) // 删除回滚记录
autoCodeHistoryRouter.POST("getSysHistory", autoCodeHistoryApi.GetList) // 获取回滚记录分页
}
}
@@ -0,0 +1,28 @@
package system
import (
"kra/internal/server/middleware"
"github.com/gin-gonic/gin"
)
type SysDictionaryDetailRouter struct{}
// InitSysDictionaryDetailRouter 初始化字典详情路由
func (s *SysDictionaryDetailRouter) InitSysDictionaryDetailRouter(Router *gin.RouterGroup) {
dictionaryDetailRouter := Router.Group("sysDictionaryDetail").Use(middleware.OperationRecordMiddleware())
dictionaryDetailRouterWithoutRecord := Router.Group("sysDictionaryDetail")
{
dictionaryDetailRouter.POST("createSysDictionaryDetail", dictionaryDetailApi.CreateSysDictionaryDetail) // 新建字典详情
dictionaryDetailRouter.DELETE("deleteSysDictionaryDetail", dictionaryDetailApi.DeleteSysDictionaryDetail) // 删除字典详情
dictionaryDetailRouter.PUT("updateSysDictionaryDetail", dictionaryDetailApi.UpdateSysDictionaryDetail) // 更新字典详情
}
{
dictionaryDetailRouterWithoutRecord.GET("findSysDictionaryDetail", dictionaryDetailApi.FindSysDictionaryDetail) // 根据ID获取字典详情
dictionaryDetailRouterWithoutRecord.GET("getSysDictionaryDetailList", dictionaryDetailApi.GetSysDictionaryDetailList) // 获取字典详情列表
dictionaryDetailRouterWithoutRecord.GET("getDictionaryTreeList", dictionaryDetailApi.GetDictionaryTreeList) // 获取字典详情树形结构
dictionaryDetailRouterWithoutRecord.GET("getDictionaryTreeListByType", dictionaryDetailApi.GetDictionaryTreeListByType) // 根据字典类型获取字典详情树形结构
dictionaryDetailRouterWithoutRecord.GET("getDictionaryDetailsByParent", dictionaryDetailApi.GetDictionaryDetailsByParent) // 根据父级ID获取字典详情
dictionaryDetailRouterWithoutRecord.GET("getDictionaryPath", dictionaryDetailApi.GetDictionaryPath) // 获取字典详情的完整路径
}
}
@@ -0,0 +1,29 @@
package system
import (
"kra/internal/server/middleware"
"github.com/gin-gonic/gin"
)
type SysErrorRouter struct{}
// InitSysErrorRouter 初始化错误日志路由
func (s *SysErrorRouter) InitSysErrorRouter(Router *gin.RouterGroup, PublicRouter *gin.RouterGroup) {
sysErrorRouter := Router.Group("sysError").Use(middleware.OperationRecordMiddleware())
sysErrorRouterWithoutRecord := Router.Group("sysError")
sysErrorRouterWithoutAuth := PublicRouter.Group("sysError")
{
sysErrorRouter.DELETE("deleteSysError", errorApi.DeleteSysError) // 删除错误日志
sysErrorRouter.DELETE("deleteSysErrorByIds", errorApi.DeleteSysErrorByIds) // 批量删除错误日志
sysErrorRouter.PUT("updateSysError", errorApi.UpdateSysError) // 更新错误日志
sysErrorRouter.GET("getSysErrorSolution", errorApi.GetSysErrorSolution) // 触发错误日志处理
}
{
sysErrorRouterWithoutRecord.GET("findSysError", errorApi.FindSysError) // 根据ID获取错误日志
sysErrorRouterWithoutRecord.GET("getSysErrorList", errorApi.GetSysErrorList) // 获取错误日志列表
}
{
sysErrorRouterWithoutAuth.POST("createSysError", errorApi.CreateSysError) // 新建错误日志(公开接口)
}
}
@@ -0,0 +1,35 @@
package system
import (
"kra/internal/server/middleware"
"github.com/gin-gonic/gin"
)
type SysExportTemplateRouter struct{}
// InitSysExportTemplateRouter 初始化导出模板路由
func (s *SysExportTemplateRouter) InitSysExportTemplateRouter(Router *gin.RouterGroup, PublicRouter *gin.RouterGroup) {
sysExportTemplateRouter := Router.Group("sysExportTemplate").Use(middleware.OperationRecordMiddleware())
sysExportTemplateRouterWithoutRecord := Router.Group("sysExportTemplate")
sysExportTemplateRouterWithoutAuth := PublicRouter.Group("sysExportTemplate")
{
sysExportTemplateRouter.POST("createSysExportTemplate", exportTemplateApi.CreateSysExportTemplate) // 新建导出模板
sysExportTemplateRouter.DELETE("deleteSysExportTemplate", exportTemplateApi.DeleteSysExportTemplate) // 删除导出模板
sysExportTemplateRouter.DELETE("deleteSysExportTemplateByIds", exportTemplateApi.DeleteSysExportTemplateByIds) // 批量删除导出模板
sysExportTemplateRouter.PUT("updateSysExportTemplate", exportTemplateApi.UpdateSysExportTemplate) // 更新导出模板
sysExportTemplateRouter.POST("importExcel", exportTemplateApi.ImportExcel) // 导入excel模板数据
}
{
sysExportTemplateRouterWithoutRecord.GET("findSysExportTemplate", exportTemplateApi.FindSysExportTemplate) // 根据ID获取导出模板
sysExportTemplateRouterWithoutRecord.GET("getSysExportTemplateList", exportTemplateApi.GetSysExportTemplateList) // 获取导出模板列表
sysExportTemplateRouterWithoutRecord.GET("exportExcel", exportTemplateApi.ExportExcel) // 获取导出token
sysExportTemplateRouterWithoutRecord.GET("exportTemplate", exportTemplateApi.ExportTemplate) // 导出表格模板
sysExportTemplateRouterWithoutRecord.GET("previewSQL", exportTemplateApi.PreviewSQL) // 预览SQL
}
{
sysExportTemplateRouterWithoutAuth.GET("exportExcelByToken", exportTemplateApi.ExportExcelByToken) // 通过token导出表格
sysExportTemplateRouterWithoutAuth.GET("exportTemplateByToken", exportTemplateApi.ExportTemplateByToken) // 通过token导出模板
}
}
@@ -0,0 +1,16 @@
package system
import (
"github.com/gin-gonic/gin"
)
type InitRouter struct{}
// InitInitRouter 初始化数据库初始化路由
func (s *InitRouter) InitInitRouter(Router *gin.RouterGroup) {
initRouter := Router.Group("init")
{
initRouter.POST("initdb", dbApi.InitDB) // 初始化数据库
initRouter.POST("checkdb", dbApi.CheckDB) // 检测是否需要初始化数据库
}
}
@@ -0,0 +1,23 @@
package system
import (
"kra/internal/server/middleware"
"github.com/gin-gonic/gin"
)
type SysSystemRouter struct{}
// InitSystemRouter 初始化系统配置路由
func (s *SysSystemRouter) InitSystemRouter(Router *gin.RouterGroup) {
sysRouter := Router.Group("system").Use(middleware.OperationRecordMiddleware())
sysRouterWithoutRecord := Router.Group("system")
{
sysRouter.POST("setSystemConfig", systemApi.SetSystemConfig) // 设置配置文件内容
sysRouter.POST("reloadSystem", systemApi.ReloadSystem) // 重启服务
}
{
sysRouterWithoutRecord.POST("getSystemConfig", systemApi.GetSystemConfig) // 获取配置文件内容
sysRouterWithoutRecord.POST("getServerInfo", systemApi.GetServerInfo) // 获取服务器信息
}
}
@@ -0,0 +1,30 @@
package system
import (
"kra/internal/server/middleware"
"github.com/gin-gonic/gin"
)
type SysVersionRouter struct{}
// InitSysVersionRouter 初始化版本管理路由
func (s *SysVersionRouter) InitSysVersionRouter(Router *gin.RouterGroup, PublicRouter *gin.RouterGroup) {
sysVersionRouter := Router.Group("sysVersion").Use(middleware.OperationRecordMiddleware())
sysVersionRouterWithoutRecord := Router.Group("sysVersion")
sysVersionRouterWithoutAuth := PublicRouter.Group("sysVersion")
{
sysVersionRouter.DELETE("deleteSysVersion", versionApi.DeleteSysVersion) // 删除版本
sysVersionRouter.DELETE("deleteSysVersionByIds", versionApi.DeleteSysVersionByIds) // 批量删除版本
sysVersionRouter.POST("exportVersion", versionApi.ExportVersion) // 导出版本数据
sysVersionRouter.POST("importVersion", versionApi.ImportVersion) // 导入版本数据
}
{
sysVersionRouterWithoutRecord.GET("findSysVersion", versionApi.FindSysVersion) // 根据ID获取版本
sysVersionRouterWithoutRecord.GET("getSysVersionList", versionApi.GetSysVersionList) // 获取版本列表
sysVersionRouterWithoutRecord.GET("downloadVersionJson", versionApi.DownloadVersionJson) // 下载版本JSON
}
{
sysVersionRouterWithoutAuth.GET("getSysVersionPublic", versionApi.GetSysVersionPublic) // 公开接口
}
}