Bladeren bron

框架整体调整 新增dao层 将service层中能搬运的sql 放入dao层中

xu 2 jaren geleden
bovenliggende
commit
47f39b0a1c
100 gewijzigde bestanden met toevoegingen van 1170 en 2001 verwijderingen
  1. 2 2
      server/api/v1/enter.go
  2. 1 3
      server/api/v1/example/enter.go
  3. 5 5
      server/api/v1/example/exa_breakpoint_continue.go
  4. 0 176
      server/api/v1/example/exa_customer.go
  5. 8 8
      server/api/v1/example/exa_file_upload_download.go
  6. 1 10
      server/api/v1/system/enter.go
  7. 10 10
      server/api/v1/system/sys_api.go
  8. 10 45
      server/api/v1/system/sys_authority.go
  9. 3 3
      server/api/v1/system/sys_authority_btn.go
  10. 0 335
      server/api/v1/system/sys_auto_code.go
  11. 0 115
      server/api/v1/system/sys_auto_code_history.go
  12. 3 3
      server/api/v1/system/sys_captcha.go
  13. 5 5
      server/api/v1/system/sys_casbin.go
  14. 7 7
      server/api/v1/system/sys_dictionary.go
  15. 9 9
      server/api/v1/system/sys_dictionary_detail.go
  16. 0 257
      server/api/v1/system/sys_export_template.go
  17. 0 59
      server/api/v1/system/sys_initdb.go
  18. 5 5
      server/api/v1/system/sys_jwt_blacklist.go
  19. 10 10
      server/api/v1/system/sys_menu.go
  20. 9 9
      server/api/v1/system/sys_operation_record.go
  21. 0 88
      server/api/v1/system/sys_system.go
  22. 18 23
      server/api/v1/system/sys_user.go
  23. 0 18
      server/config/auto_code.go
  24. 0 2
      server/config/config.go
  25. 1 1
      server/core/internal/file_rotatelogs.go
  26. 1 1
      server/core/internal/zap.go
  27. 4 14
      server/core/server.go
  28. 3 6
      server/core/viper.go
  29. 3 3
      server/core/zap.go
  30. 62 0
      server/dao/exa_file_upload_download.go
  31. 113 0
      server/dao/sys_api.go
  32. 60 0
      server/dao/sys_authority.go
  33. 62 0
      server/dao/sys_authority_btn.go
  34. 39 0
      server/dao/sys_authority_menu.go
  35. 139 0
      server/dao/sys_base_menu.go
  36. 70 0
      server/dao/sys_dictionary.go
  37. 101 0
      server/dao/sys_dictionary_detail.go
  38. 21 0
      server/dao/sys_jwt_blacklist.go
  39. 2 2
      server/model/system/sys_menu_btn.go
  40. 76 0
      server/dao/sys_operation_record.go
  41. 155 0
      server/dao/sys_user.go
  42. 1 1
      server/model/system/sys_user_authority.go
  43. 2 2
      server/global/global.go
  44. 1 1
      server/go.mod
  45. 2 2
      server/initialize/db_list.go
  46. 0 105
      server/initialize/ensure_tables.go
  47. 15 22
      server/initialize/gorm.go
  48. 5 5
      server/initialize/gorm_mssql.go
  49. 3 3
      server/initialize/gorm_mysql.go
  50. 3 3
      server/initialize/gorm_oracle.go
  51. 3 3
      server/initialize/gorm_pgsql.go
  52. 3 3
      server/initialize/gorm_sqlite.go
  53. 1 1
      server/initialize/internal/gorm.go
  54. 1 1
      server/initialize/internal/logger.go
  55. 3 3
      server/initialize/mongo.go
  56. 2 2
      server/initialize/other.go
  57. 4 4
      server/initialize/plugin.go
  58. 1 1
      server/initialize/redis.go
  59. 0 5
      server/initialize/register_init.go
  60. 4 10
      server/initialize/router.go
  61. 2 2
      server/initialize/timer.go
  62. 1 1
      server/initialize/validator.go
  63. 3 3
      server/main.go
  64. 4 4
      server/middleware/casbin_rbac.go
  65. 2 2
      server/middleware/cors.go
  66. 6 6
      server/middleware/email.go
  67. 1 1
      server/middleware/error.go
  68. 6 6
      server/middleware/jwt.go
  69. 2 2
      server/middleware/limit_ip.go
  70. 5 5
      server/middleware/operation.go
  71. 1 1
      server/model/example/exa_breakpoint_continue.go
  72. 0 15
      server/model/example/exa_customer.go
  73. 0 17
      server/model/example/exa_file_upload_download.go
  74. 1 1
      server/model/example/response/exa_breakpoint_continue.go
  75. 0 7
      server/model/example/response/exa_customer.go
  76. 4 2
      server/model/example/response/exa_file_upload_download.go
  77. 3 3
      server/model/system/request/sys_api.go
  78. 1 1
      server/model/system/request/sys_auto_history.go
  79. 3 3
      server/model/system/request/sys_dictionary_detail.go
  80. 0 14
      server/model/system/request/sys_export_template.go
  81. 0 122
      server/model/system/request/sys_init.go
  82. 7 7
      server/model/system/request/sys_menu.go
  83. 3 3
      server/model/system/request/sys_operation_record.go
  84. 20 21
      server/model/system/request/sys_user.go
  85. 5 3
      server/model/system/response/sys_api.go
  86. 6 4
      server/model/system/response/sys_authority.go
  87. 0 17
      server/model/system/response/sys_auto_code.go
  88. 0 14
      server/model/system/response/sys_auto_code_history.go
  89. 1 1
      server/model/system/response/sys_casbin.go
  90. 6 4
      server/model/system/response/sys_menu.go
  91. 0 7
      server/model/system/response/sys_system.go
  92. 5 5
      server/model/system/response/sys_user.go
  93. 0 17
      server/model/system/sys_api.go
  94. 0 23
      server/model/system/sys_authority.go
  95. 0 8
      server/model/system/sys_authority_btn.go
  96. 0 19
      server/model/system/sys_authority_menu.go
  97. 0 136
      server/model/system/sys_auto_code.go
  98. 0 41
      server/model/system/sys_autocode_history.go
  99. 0 42
      server/model/system/sys_base_menu.go
  100. 0 0
      server/model/system/sys_dictionary.go

+ 2 - 2
server/api/v1/enter.go

@@ -1,8 +1,8 @@
 package v1
 
 import (
-	"github.com/flipped-aurora/gin-vue-admin/server/api/v1/example"
-	"github.com/flipped-aurora/gin-vue-admin/server/api/v1/system"
+	"server/api/v1/example"
+	"server/api/v1/system"
 )
 
 type ApiGroup struct {

+ 1 - 3
server/api/v1/example/enter.go

@@ -1,13 +1,11 @@
 package example
 
-import "github.com/flipped-aurora/gin-vue-admin/server/service"
+import "server/service"
 
 type ApiGroup struct {
-	CustomerApi
 	FileUploadAndDownloadApi
 }
 
 var (
-	customerService              = service.ServiceGroupApp.ExampleServiceGroup.CustomerService
 	fileUploadAndDownloadService = service.ServiceGroupApp.ExampleServiceGroup.FileUploadAndDownloadService
 )

+ 5 - 5
server/api/v1/example/exa_breakpoint_continue.go

@@ -6,14 +6,14 @@ import (
 	"mime/multipart"
 	"strconv"
 
-	"github.com/flipped-aurora/gin-vue-admin/server/model/example"
+	"server/model/example"
 
-	"github.com/flipped-aurora/gin-vue-admin/server/global"
-	"github.com/flipped-aurora/gin-vue-admin/server/model/common/response"
-	exampleRes "github.com/flipped-aurora/gin-vue-admin/server/model/example/response"
-	"github.com/flipped-aurora/gin-vue-admin/server/utils"
 	"github.com/gin-gonic/gin"
 	"go.uber.org/zap"
+	"server/global"
+	"server/model/common/response"
+	exampleRes "server/model/example/response"
+	"server/utils"
 )
 
 // BreakpointContinue

+ 0 - 176
server/api/v1/example/exa_customer.go

@@ -1,176 +0,0 @@
-package example
-
-import (
-	"github.com/flipped-aurora/gin-vue-admin/server/global"
-	"github.com/flipped-aurora/gin-vue-admin/server/model/common/request"
-	"github.com/flipped-aurora/gin-vue-admin/server/model/common/response"
-	"github.com/flipped-aurora/gin-vue-admin/server/model/example"
-	exampleRes "github.com/flipped-aurora/gin-vue-admin/server/model/example/response"
-	"github.com/flipped-aurora/gin-vue-admin/server/utils"
-	"github.com/gin-gonic/gin"
-	"go.uber.org/zap"
-)
-
-type CustomerApi struct{}
-
-// CreateExaCustomer
-// @Tags      ExaCustomer
-// @Summary   创建客户
-// @Security  ApiKeyAuth
-// @accept    application/json
-// @Produce   application/json
-// @Param     data  body      example.ExaCustomer            true  "客户用户名, 客户手机号码"
-// @Success   200   {object}  response.Response{msg=string}  "创建客户"
-// @Router    /customer/customer [post]
-func (e *CustomerApi) CreateExaCustomer(c *gin.Context) {
-	var customer example.ExaCustomer
-	err := c.ShouldBindJSON(&customer)
-	if err != nil {
-		response.FailWithMessage(err.Error(), c)
-		return
-	}
-	err = utils.Verify(customer, utils.CustomerVerify)
-	if err != nil {
-		response.FailWithMessage(err.Error(), c)
-		return
-	}
-	customer.SysUserID = utils.GetUserID(c)
-	customer.SysUserAuthorityID = utils.GetUserAuthorityId(c)
-	err = customerService.CreateExaCustomer(customer)
-	if err != nil {
-		global.GVA_LOG.Error("创建失败!", zap.Error(err))
-		response.FailWithMessage("创建失败", c)
-		return
-	}
-	response.OkWithMessage("创建成功", c)
-}
-
-// DeleteExaCustomer
-// @Tags      ExaCustomer
-// @Summary   删除客户
-// @Security  ApiKeyAuth
-// @accept    application/json
-// @Produce   application/json
-// @Param     data  body      example.ExaCustomer            true  "客户ID"
-// @Success   200   {object}  response.Response{msg=string}  "删除客户"
-// @Router    /customer/customer [delete]
-func (e *CustomerApi) DeleteExaCustomer(c *gin.Context) {
-	var customer example.ExaCustomer
-	err := c.ShouldBindJSON(&customer)
-	if err != nil {
-		response.FailWithMessage(err.Error(), c)
-		return
-	}
-	err = utils.Verify(customer.GVA_MODEL, utils.IdVerify)
-	if err != nil {
-		response.FailWithMessage(err.Error(), c)
-		return
-	}
-	err = customerService.DeleteExaCustomer(customer)
-	if err != nil {
-		global.GVA_LOG.Error("删除失败!", zap.Error(err))
-		response.FailWithMessage("删除失败", c)
-		return
-	}
-	response.OkWithMessage("删除成功", c)
-}
-
-// UpdateExaCustomer
-// @Tags      ExaCustomer
-// @Summary   更新客户信息
-// @Security  ApiKeyAuth
-// @accept    application/json
-// @Produce   application/json
-// @Param     data  body      example.ExaCustomer            true  "客户ID, 客户信息"
-// @Success   200   {object}  response.Response{msg=string}  "更新客户信息"
-// @Router    /customer/customer [put]
-func (e *CustomerApi) UpdateExaCustomer(c *gin.Context) {
-	var customer example.ExaCustomer
-	err := c.ShouldBindJSON(&customer)
-	if err != nil {
-		response.FailWithMessage(err.Error(), c)
-		return
-	}
-	err = utils.Verify(customer.GVA_MODEL, utils.IdVerify)
-	if err != nil {
-		response.FailWithMessage(err.Error(), c)
-		return
-	}
-	err = utils.Verify(customer, utils.CustomerVerify)
-	if err != nil {
-		response.FailWithMessage(err.Error(), c)
-		return
-	}
-	err = customerService.UpdateExaCustomer(&customer)
-	if err != nil {
-		global.GVA_LOG.Error("更新失败!", zap.Error(err))
-		response.FailWithMessage("更新失败", c)
-		return
-	}
-	response.OkWithMessage("更新成功", c)
-}
-
-// GetExaCustomer
-// @Tags      ExaCustomer
-// @Summary   获取单一客户信息
-// @Security  ApiKeyAuth
-// @accept    application/json
-// @Produce   application/json
-// @Param     data  query     example.ExaCustomer                                                true  "客户ID"
-// @Success   200   {object}  response.Response{data=exampleRes.ExaCustomerResponse,msg=string}  "获取单一客户信息,返回包括客户详情"
-// @Router    /customer/customer [get]
-func (e *CustomerApi) GetExaCustomer(c *gin.Context) {
-	var customer example.ExaCustomer
-	err := c.ShouldBindQuery(&customer)
-	if err != nil {
-		response.FailWithMessage(err.Error(), c)
-		return
-	}
-	err = utils.Verify(customer.GVA_MODEL, utils.IdVerify)
-	if err != nil {
-		response.FailWithMessage(err.Error(), c)
-		return
-	}
-	data, err := customerService.GetExaCustomer(customer.ID)
-	if err != nil {
-		global.GVA_LOG.Error("获取失败!", zap.Error(err))
-		response.FailWithMessage("获取失败", c)
-		return
-	}
-	response.OkWithDetailed(exampleRes.ExaCustomerResponse{Customer: data}, "获取成功", c)
-}
-
-// GetExaCustomerList
-// @Tags      ExaCustomer
-// @Summary   分页获取权限客户列表
-// @Security  ApiKeyAuth
-// @accept    application/json
-// @Produce   application/json
-// @Param     data  query     request.PageInfo                                        true  "页码, 每页大小"
-// @Success   200   {object}  response.Response{data=response.PageResult,msg=string}  "分页获取权限客户列表,返回包括列表,总数,页码,每页数量"
-// @Router    /customer/customerList [get]
-func (e *CustomerApi) GetExaCustomerList(c *gin.Context) {
-	var pageInfo request.PageInfo
-	err := c.ShouldBindQuery(&pageInfo)
-	if err != nil {
-		response.FailWithMessage(err.Error(), c)
-		return
-	}
-	err = utils.Verify(pageInfo, utils.PageInfoVerify)
-	if err != nil {
-		response.FailWithMessage(err.Error(), c)
-		return
-	}
-	customerList, total, err := customerService.GetCustomerInfoList(utils.GetUserAuthorityId(c), pageInfo)
-	if err != nil {
-		global.GVA_LOG.Error("获取失败!", zap.Error(err))
-		response.FailWithMessage("获取失败"+err.Error(), c)
-		return
-	}
-	response.OkWithDetailed(response.PageResult{
-		List:     customerList,
-		Total:    total,
-		Page:     pageInfo.Page,
-		PageSize: pageInfo.PageSize,
-	}, "获取成功", c)
-}

+ 8 - 8
server/api/v1/example/exa_file_upload_download.go

@@ -1,13 +1,13 @@
 package example
 
 import (
-	"github.com/flipped-aurora/gin-vue-admin/server/global"
-	"github.com/flipped-aurora/gin-vue-admin/server/model/common/request"
-	"github.com/flipped-aurora/gin-vue-admin/server/model/common/response"
-	"github.com/flipped-aurora/gin-vue-admin/server/model/example"
-	exampleRes "github.com/flipped-aurora/gin-vue-admin/server/model/example/response"
 	"github.com/gin-gonic/gin"
 	"go.uber.org/zap"
+	"server/dao"
+	"server/global"
+	"server/model/common/request"
+	"server/model/common/response"
+	exampleRes "server/model/example/response"
 )
 
 type FileUploadAndDownloadApi struct{}
@@ -22,7 +22,7 @@ type FileUploadAndDownloadApi struct{}
 // @Success   200   {object}  response.Response{data=exampleRes.ExaFileResponse,msg=string}  "上传文件示例,返回包括文件详情"
 // @Router    /fileUploadAndDownload/upload [post]
 func (b *FileUploadAndDownloadApi) UploadFile(c *gin.Context) {
-	var file example.ExaFileUploadAndDownload
+	var file dao.ExaFileUploadAndDownload
 	noSave := c.DefaultQuery("noSave", "0")
 	_, header, err := c.Request.FormFile("file")
 	if err != nil {
@@ -41,7 +41,7 @@ func (b *FileUploadAndDownloadApi) UploadFile(c *gin.Context) {
 
 // EditFileName 编辑文件名或者备注
 func (b *FileUploadAndDownloadApi) EditFileName(c *gin.Context) {
-	var file example.ExaFileUploadAndDownload
+	var file dao.ExaFileUploadAndDownload
 	err := c.ShouldBindJSON(&file)
 	if err != nil {
 		response.FailWithMessage(err.Error(), c)
@@ -65,7 +65,7 @@ func (b *FileUploadAndDownloadApi) EditFileName(c *gin.Context) {
 // @Success   200   {object}  response.Response{msg=string}     "删除文件"
 // @Router    /fileUploadAndDownload/deleteFile [post]
 func (b *FileUploadAndDownloadApi) DeleteFile(c *gin.Context) {
-	var file example.ExaFileUploadAndDownload
+	var file dao.ExaFileUploadAndDownload
 	err := c.ShouldBindJSON(&file)
 	if err != nil {
 		response.FailWithMessage(err.Error(), c)

+ 1 - 10
server/api/v1/system/enter.go

@@ -1,23 +1,18 @@
 package system
 
-import "github.com/flipped-aurora/gin-vue-admin/server/service"
+import "server/service"
 
 type ApiGroup struct {
-	DBApi
 	JwtApi
 	BaseApi
-	SystemApi
 	CasbinApi
-	AutoCodeApi
 	SystemApiApi
 	AuthorityApi
 	DictionaryApi
 	AuthorityMenuApi
 	OperationRecordApi
-	AutoCodeHistoryApi
 	DictionaryDetailApi
 	AuthorityBtnApi
-	SysExportTemplateApi
 }
 
 var (
@@ -25,15 +20,11 @@ var (
 	jwtService              = service.ServiceGroupApp.SystemServiceGroup.JwtService
 	menuService             = service.ServiceGroupApp.SystemServiceGroup.MenuService
 	userService             = service.ServiceGroupApp.SystemServiceGroup.UserService
-	initDBService           = service.ServiceGroupApp.SystemServiceGroup.InitDBService
 	casbinService           = service.ServiceGroupApp.SystemServiceGroup.CasbinService
-	autoCodeService         = service.ServiceGroupApp.SystemServiceGroup.AutoCodeService
 	baseMenuService         = service.ServiceGroupApp.SystemServiceGroup.BaseMenuService
 	authorityService        = service.ServiceGroupApp.SystemServiceGroup.AuthorityService
 	dictionaryService       = service.ServiceGroupApp.SystemServiceGroup.DictionaryService
-	systemConfigService     = service.ServiceGroupApp.SystemServiceGroup.SystemConfigService
 	operationRecordService  = service.ServiceGroupApp.SystemServiceGroup.OperationRecordService
-	autoCodeHistoryService  = service.ServiceGroupApp.SystemServiceGroup.AutoCodeHistoryService
 	dictionaryDetailService = service.ServiceGroupApp.SystemServiceGroup.DictionaryDetailService
 	authorityBtnService     = service.ServiceGroupApp.SystemServiceGroup.AuthorityBtnService
 )

+ 10 - 10
server/api/v1/system/sys_api.go

@@ -1,13 +1,13 @@
 package system
 
 import (
-	"github.com/flipped-aurora/gin-vue-admin/server/global"
-	"github.com/flipped-aurora/gin-vue-admin/server/model/common/request"
-	"github.com/flipped-aurora/gin-vue-admin/server/model/common/response"
-	"github.com/flipped-aurora/gin-vue-admin/server/model/system"
-	systemReq "github.com/flipped-aurora/gin-vue-admin/server/model/system/request"
-	systemRes "github.com/flipped-aurora/gin-vue-admin/server/model/system/response"
-	"github.com/flipped-aurora/gin-vue-admin/server/utils"
+	"server/dao"
+	"server/global"
+	"server/model/common/request"
+	"server/model/common/response"
+	systemReq "server/model/system/request"
+	systemRes "server/model/system/response"
+	"server/utils"
 
 	"github.com/gin-gonic/gin"
 	"go.uber.org/zap"
@@ -25,7 +25,7 @@ type SystemApiApi struct{}
 // @Success   200   {object}  response.Response{msg=string}  "创建基础api"
 // @Router    /api/createApi [post]
 func (s *SystemApiApi) CreateApi(c *gin.Context) {
-	var api system.SysApi
+	var api dao.SysApi
 	err := c.ShouldBindJSON(&api)
 	if err != nil {
 		response.FailWithMessage(err.Error(), c)
@@ -55,7 +55,7 @@ func (s *SystemApiApi) CreateApi(c *gin.Context) {
 // @Success   200   {object}  response.Response{msg=string}  "删除api"
 // @Router    /api/deleteApi [post]
 func (s *SystemApiApi) DeleteApi(c *gin.Context) {
-	var api system.SysApi
+	var api dao.SysApi
 	err := c.ShouldBindJSON(&api)
 	if err != nil {
 		response.FailWithMessage(err.Error(), c)
@@ -150,7 +150,7 @@ func (s *SystemApiApi) GetApiById(c *gin.Context) {
 // @Success   200   {object}  response.Response{msg=string}  "修改基础api"
 // @Router    /api/updateApi [post]
 func (s *SystemApiApi) UpdateApi(c *gin.Context) {
-	var api system.SysApi
+	var api dao.SysApi
 	err := c.ShouldBindJSON(&api)
 	if err != nil {
 		response.FailWithMessage(err.Error(), c)

+ 10 - 45
server/api/v1/system/sys_authority.go

@@ -1,12 +1,12 @@
 package system
 
 import (
-	"github.com/flipped-aurora/gin-vue-admin/server/global"
-	"github.com/flipped-aurora/gin-vue-admin/server/model/common/request"
-	"github.com/flipped-aurora/gin-vue-admin/server/model/common/response"
-	"github.com/flipped-aurora/gin-vue-admin/server/model/system"
-	systemRes "github.com/flipped-aurora/gin-vue-admin/server/model/system/response"
-	"github.com/flipped-aurora/gin-vue-admin/server/utils"
+	"server/dao"
+	"server/global"
+	"server/model/common/request"
+	"server/model/common/response"
+	systemRes "server/model/system/response"
+	"server/utils"
 
 	"github.com/gin-gonic/gin"
 	"go.uber.org/zap"
@@ -24,7 +24,7 @@ type AuthorityApi struct{}
 // @Success   200   {object}  response.Response{data=systemRes.SysAuthorityResponse,msg=string}  "创建角色,返回包括系统角色详情"
 // @Router    /authority/createAuthority [post]
 func (a *AuthorityApi) CreateAuthority(c *gin.Context) {
-	var authority, authBack system.SysAuthority
+	var authority, authBack dao.SysAuthority
 	var err error
 
 	if err = c.ShouldBindJSON(&authority); err != nil {
@@ -51,41 +51,6 @@ func (a *AuthorityApi) CreateAuthority(c *gin.Context) {
 	response.OkWithDetailed(systemRes.SysAuthorityResponse{Authority: authBack}, "创建成功", c)
 }
 
-// CopyAuthority
-// @Tags      Authority
-// @Summary   拷贝角色
-// @Security  ApiKeyAuth
-// @accept    application/json
-// @Produce   application/json
-// @Param     data  body      response.SysAuthorityCopyResponse                                  true  "旧角色id, 新权限id, 新权限名, 新父角色id"
-// @Success   200   {object}  response.Response{data=systemRes.SysAuthorityResponse,msg=string}  "拷贝角色,返回包括系统角色详情"
-// @Router    /authority/copyAuthority [post]
-func (a *AuthorityApi) CopyAuthority(c *gin.Context) {
-	var copyInfo systemRes.SysAuthorityCopyResponse
-	err := c.ShouldBindJSON(&copyInfo)
-	if err != nil {
-		response.FailWithMessage(err.Error(), c)
-		return
-	}
-	err = utils.Verify(copyInfo, utils.OldAuthorityVerify)
-	if err != nil {
-		response.FailWithMessage(err.Error(), c)
-		return
-	}
-	err = utils.Verify(copyInfo.Authority, utils.AuthorityVerify)
-	if err != nil {
-		response.FailWithMessage(err.Error(), c)
-		return
-	}
-	authBack, err := authorityService.CopyAuthority(copyInfo)
-	if err != nil {
-		global.GVA_LOG.Error("拷贝失败!", zap.Error(err))
-		response.FailWithMessage("拷贝失败"+err.Error(), c)
-		return
-	}
-	response.OkWithDetailed(systemRes.SysAuthorityResponse{Authority: authBack}, "拷贝成功", c)
-}
-
 // DeleteAuthority
 // @Tags      Authority
 // @Summary   删除角色
@@ -96,7 +61,7 @@ func (a *AuthorityApi) CopyAuthority(c *gin.Context) {
 // @Success   200   {object}  response.Response{msg=string}  "删除角色"
 // @Router    /authority/deleteAuthority [post]
 func (a *AuthorityApi) DeleteAuthority(c *gin.Context) {
-	var authority system.SysAuthority
+	var authority dao.SysAuthority
 	var err error
 	if err = c.ShouldBindJSON(&authority); err != nil {
 		response.FailWithMessage(err.Error(), c)
@@ -126,7 +91,7 @@ func (a *AuthorityApi) DeleteAuthority(c *gin.Context) {
 // @Success   200   {object}  response.Response{data=systemRes.SysAuthorityResponse,msg=string}  "更新角色信息,返回包括系统角色详情"
 // @Router    /authority/updateAuthority [post]
 func (a *AuthorityApi) UpdateAuthority(c *gin.Context) {
-	var auth system.SysAuthority
+	var auth dao.SysAuthority
 	err := c.ShouldBindJSON(&auth)
 	if err != nil {
 		response.FailWithMessage(err.Error(), c)
@@ -191,7 +156,7 @@ func (a *AuthorityApi) GetAuthorityList(c *gin.Context) {
 // @Success   200   {object}  response.Response{msg=string}  "设置角色资源权限"
 // @Router    /authority/setDataAuthority [post]
 func (a *AuthorityApi) SetDataAuthority(c *gin.Context) {
-	var auth system.SysAuthority
+	var auth dao.SysAuthority
 	err := c.ShouldBindJSON(&auth)
 	if err != nil {
 		response.FailWithMessage(err.Error(), c)

+ 3 - 3
server/api/v1/system/sys_authority_btn.go

@@ -1,11 +1,11 @@
 package system
 
 import (
-	"github.com/flipped-aurora/gin-vue-admin/server/global"
-	"github.com/flipped-aurora/gin-vue-admin/server/model/common/response"
-	"github.com/flipped-aurora/gin-vue-admin/server/model/system/request"
 	"github.com/gin-gonic/gin"
 	"go.uber.org/zap"
+	"server/global"
+	"server/model/common/response"
+	"server/model/system/request"
 )
 
 type AuthorityBtnApi struct{}

+ 0 - 335
server/api/v1/system/sys_auto_code.go

@@ -1,335 +0,0 @@
-package system
-
-import (
-	"errors"
-	"fmt"
-	"net/url"
-	"os"
-	"strings"
-
-	"github.com/flipped-aurora/gin-vue-admin/server/global"
-	"github.com/flipped-aurora/gin-vue-admin/server/model/common/response"
-	"github.com/flipped-aurora/gin-vue-admin/server/model/system"
-	"github.com/flipped-aurora/gin-vue-admin/server/utils"
-
-	"github.com/gin-gonic/gin"
-	"go.uber.org/zap"
-)
-
-type AutoCodeApi struct{}
-
-// PreviewTemp
-// @Tags      AutoCode
-// @Summary   预览创建后的代码
-// @Security  ApiKeyAuth
-// @accept    application/json
-// @Produce   application/json
-// @Param     data  body      system.AutoCodeStruct                                      true  "预览创建代码"
-// @Success   200   {object}  response.Response{data=map[string]interface{},msg=string}  "预览创建后的代码"
-// @Router    /autoCode/preview [post]
-func (autoApi *AutoCodeApi) PreviewTemp(c *gin.Context) {
-	var a system.AutoCodeStruct
-	_ = c.ShouldBindJSON(&a)
-	if err := utils.Verify(a, utils.AutoCodeVerify); err != nil {
-		response.FailWithMessage(err.Error(), c)
-		return
-	}
-	a.Pretreatment() // 处理go关键字
-	a.PackageT = utils.FirstUpper(a.Package)
-	autoCode, err := autoCodeService.PreviewTemp(a)
-	if err != nil {
-		global.GVA_LOG.Error("预览失败!", zap.Error(err))
-		response.FailWithMessage("预览失败", c)
-	} else {
-		response.OkWithDetailed(gin.H{"autoCode": autoCode}, "预览成功", c)
-	}
-}
-
-// CreateTemp
-// @Tags      AutoCode
-// @Summary   自动代码模板
-// @Security  ApiKeyAuth
-// @accept    application/json
-// @Produce   application/json
-// @Param     data  body      system.AutoCodeStruct  true  "创建自动代码"
-// @Success   200   {string}  string                 "{"success":true,"data":{},"msg":"创建成功"}"
-// @Router    /autoCode/createTemp [post]
-func (autoApi *AutoCodeApi) CreateTemp(c *gin.Context) {
-	var a system.AutoCodeStruct
-	_ = c.ShouldBindJSON(&a)
-	if err := utils.Verify(a, utils.AutoCodeVerify); err != nil {
-		response.FailWithMessage(err.Error(), c)
-		return
-	}
-	a.Pretreatment()
-	var apiIds []uint
-	var menuId uint
-	if a.AutoCreateApiToSql {
-		if ids, err := autoCodeService.AutoCreateApi(&a); err != nil {
-			global.GVA_LOG.Error("自动化创建失败!请自行清空垃圾数据!", zap.Error(err))
-			c.Writer.Header().Add("success", "false")
-			c.Writer.Header().Add("msg", url.QueryEscape("自动化创建失败!请自行清空垃圾数据!"))
-			return
-		} else {
-			apiIds = ids
-		}
-	}
-	if a.AutoCreateMenuToSql {
-		if id, err := autoCodeService.AutoCreateMenu(&a); err != nil {
-			global.GVA_LOG.Error("自动化创建失败!请自行清空垃圾数据!", zap.Error(err))
-			c.Writer.Header().Add("success", "false")
-			c.Writer.Header().Add("msg", url.QueryEscape("自动化创建失败!请自行清空垃圾数据!"))
-		} else {
-			menuId = id
-		}
-	}
-	a.PackageT = utils.FirstUpper(a.Package)
-	err := autoCodeService.CreateTemp(a, menuId, apiIds...)
-	if err != nil {
-		if errors.Is(err, system.ErrAutoMove) {
-			c.Writer.Header().Add("success", "true")
-			c.Writer.Header().Add("msg", url.QueryEscape(err.Error()))
-		} else {
-			c.Writer.Header().Add("success", "false")
-			c.Writer.Header().Add("msg", url.QueryEscape(err.Error()))
-			_ = os.Remove("./ginvueadmin.zip")
-		}
-	} else {
-		c.Writer.Header().Add("Content-Disposition", fmt.Sprintf("attachment; filename=%s", "ginvueadmin.zip")) // fmt.Sprintf("attachment; filename=%s", filename)对下载的文件重命名
-		c.Writer.Header().Add("Content-Type", "application/json")
-		c.Writer.Header().Add("success", "true")
-		c.File("./ginvueadmin.zip")
-		_ = os.Remove("./ginvueadmin.zip")
-	}
-}
-
-// GetDB
-// @Tags      AutoCode
-// @Summary   获取当前所有数据库
-// @Security  ApiKeyAuth
-// @accept    application/json
-// @Produce   application/json
-// @Success   200  {object}  response.Response{data=map[string]interface{},msg=string}  "获取当前所有数据库"
-// @Router    /autoCode/getDatabase [get]
-func (autoApi *AutoCodeApi) GetDB(c *gin.Context) {
-	businessDB := c.Query("businessDB")
-	dbs, err := autoCodeService.Database(businessDB).GetDB(businessDB)
-	var dbList []map[string]interface{}
-	for _, db := range global.GVA_CONFIG.DBList {
-		var item = make(map[string]interface{})
-		item["aliasName"] = db.AliasName
-		item["dbName"] = db.Dbname
-		item["disable"] = db.Disable
-		item["dbtype"] = db.Type
-		dbList = append(dbList, item)
-	}
-	if err != nil {
-		global.GVA_LOG.Error("获取失败!", zap.Error(err))
-		response.FailWithMessage("获取失败", c)
-	} else {
-		response.OkWithDetailed(gin.H{"dbs": dbs, "dbList": dbList}, "获取成功", c)
-	}
-}
-
-// GetTables
-// @Tags      AutoCode
-// @Summary   获取当前数据库所有表
-// @Security  ApiKeyAuth
-// @accept    application/json
-// @Produce   application/json
-// @Success   200  {object}  response.Response{data=map[string]interface{},msg=string}  "获取当前数据库所有表"
-// @Router    /autoCode/getTables [get]
-func (autoApi *AutoCodeApi) GetTables(c *gin.Context) {
-	dbName := c.DefaultQuery("dbName", global.GVA_CONFIG.Mysql.Dbname)
-	businessDB := c.Query("businessDB")
-	tables, err := autoCodeService.Database(businessDB).GetTables(businessDB, dbName)
-	if err != nil {
-		global.GVA_LOG.Error("查询table失败!", zap.Error(err))
-		response.FailWithMessage("查询table失败", c)
-	} else {
-		response.OkWithDetailed(gin.H{"tables": tables}, "获取成功", c)
-	}
-}
-
-// GetColumn
-// @Tags      AutoCode
-// @Summary   获取当前表所有字段
-// @Security  ApiKeyAuth
-// @accept    application/json
-// @Produce   application/json
-// @Success   200  {object}  response.Response{data=map[string]interface{},msg=string}  "获取当前表所有字段"
-// @Router    /autoCode/getColumn [get]
-func (autoApi *AutoCodeApi) GetColumn(c *gin.Context) {
-	businessDB := c.Query("businessDB")
-	dbName := c.DefaultQuery("dbName", global.GVA_CONFIG.Mysql.Dbname)
-	tableName := c.Query("tableName")
-	columns, err := autoCodeService.Database(businessDB).GetColumn(businessDB, tableName, dbName)
-	if err != nil {
-		global.GVA_LOG.Error("获取失败!", zap.Error(err))
-		response.FailWithMessage("获取失败", c)
-	} else {
-		response.OkWithDetailed(gin.H{"columns": columns}, "获取成功", c)
-	}
-}
-
-// CreatePackage
-// @Tags      AutoCode
-// @Summary   创建package
-// @Security  ApiKeyAuth
-// @accept    application/json
-// @Produce   application/json
-// @Param     data  body      system.SysAutoCode                                         true  "创建package"
-// @Success   200   {object}  response.Response{data=map[string]interface{},msg=string}  "创建package成功"
-// @Router    /autoCode/createPackage [post]
-func (autoApi *AutoCodeApi) CreatePackage(c *gin.Context) {
-	var a system.SysAutoCode
-	_ = c.ShouldBindJSON(&a)
-	if err := utils.Verify(a, utils.AutoPackageVerify); err != nil {
-		response.FailWithMessage(err.Error(), c)
-		return
-	}
-	// PackageName可能导致路径穿越的问题 / 和 \ 都要防止
-	if strings.Contains(a.PackageName, "\\") || strings.Contains(a.PackageName, "/") || strings.Contains(a.PackageName, "..") {
-		response.FailWithMessage("包名不合法", c)
-		return
-	}
-
-	err := autoCodeService.CreateAutoCode(&a)
-	if err != nil {
-
-		global.GVA_LOG.Error("创建失败!", zap.Error(err))
-		response.FailWithMessage("创建失败", c)
-	} else {
-		response.OkWithMessage("创建成功", c)
-	}
-}
-
-// GetPackage
-// @Tags      AutoCode
-// @Summary   获取package
-// @Security  ApiKeyAuth
-// @accept    application/json
-// @Produce   application/json
-// @Success   200  {object}  response.Response{data=map[string]interface{},msg=string}  "创建package成功"
-// @Router    /autoCode/getPackage [post]
-func (autoApi *AutoCodeApi) GetPackage(c *gin.Context) {
-	pkgs, err := autoCodeService.GetPackage()
-	if err != nil {
-		global.GVA_LOG.Error("获取失败!", zap.Error(err))
-		response.FailWithMessage("获取失败", c)
-	} else {
-		response.OkWithDetailed(gin.H{"pkgs": pkgs}, "获取成功", c)
-	}
-}
-
-// DelPackage
-// @Tags      AutoCode
-// @Summary   删除package
-// @Security  ApiKeyAuth
-// @accept    application/json
-// @Produce   application/json
-// @Param     data  body      system.SysAutoCode                                         true  "创建package"
-// @Success   200   {object}  response.Response{data=map[string]interface{},msg=string}  "删除package成功"
-// @Router    /autoCode/delPackage [post]
-func (autoApi *AutoCodeApi) DelPackage(c *gin.Context) {
-	var a system.SysAutoCode
-	_ = c.ShouldBindJSON(&a)
-	err := autoCodeService.DelPackage(a)
-	if err != nil {
-		global.GVA_LOG.Error("删除失败!", zap.Error(err))
-		response.FailWithMessage("删除失败", c)
-	} else {
-		response.OkWithMessage("删除成功", c)
-	}
-}
-
-// AutoPlug
-// @Tags      AutoCode
-// @Summary   创建插件模板
-// @Security  ApiKeyAuth
-// @accept    application/json
-// @Produce   application/json
-// @Param     data  body      system.SysAutoCode                                         true  "创建插件模板"
-// @Success   200   {object}  response.Response{data=map[string]interface{},msg=string}  "创建插件模板成功"
-// @Router    /autoCode/createPlug [post]
-func (autoApi *AutoCodeApi) AutoPlug(c *gin.Context) {
-	var a system.AutoPlugReq
-	err := c.ShouldBindJSON(&a)
-	if err != nil {
-		response.FailWithMessage(err.Error(), c)
-		return
-	}
-	if strings.Contains(a.PlugName, "\\") || strings.Contains(a.PlugName, "/") || strings.Contains(a.PlugName, "..") {
-		response.FailWithMessage("插件名称不合法", c)
-		return
-	}
-
-	a.Snake = strings.ToLower(a.PlugName)
-	a.NeedModel = a.HasRequest || a.HasResponse
-	err = autoCodeService.CreatePlug(a)
-	if err != nil {
-		global.GVA_LOG.Error("预览失败!", zap.Error(err))
-		response.FailWithMessage("预览失败", c)
-		return
-	}
-	response.Ok(c)
-}
-
-// InstallPlugin
-// @Tags      AutoCode
-// @Summary   安装插件
-// @Security  ApiKeyAuth
-// @accept    multipart/form-data
-// @Produce   application/json
-// @Param     plug  formData  file                                              true  "this is a test file"
-// @Success   200   {object}  response.Response{data=[]interface{},msg=string}  "安装插件成功"
-// @Router    /autoCode/installPlugin [post]
-func (autoApi *AutoCodeApi) InstallPlugin(c *gin.Context) {
-	header, err := c.FormFile("plug")
-	if err != nil {
-		response.FailWithMessage(err.Error(), c)
-		return
-	}
-	web, server, err := autoCodeService.InstallPlugin(header)
-	webStr := "web插件安装成功"
-	serverStr := "server插件安装成功"
-	if web == -1 {
-		webStr = "web端插件未成功安装,请按照文档自行解压安装,如果为纯后端插件请忽略此条提示"
-	}
-	if server == -1 {
-		serverStr = "server端插件未成功安装,请按照文档自行解压安装,如果为纯前端插件请忽略此条提示"
-	}
-	if err != nil {
-		response.FailWithMessage(err.Error(), c)
-		return
-	}
-	response.OkWithData([]interface{}{
-		gin.H{
-			"code": web,
-			"msg":  webStr,
-		},
-		gin.H{
-			"code": server,
-			"msg":  serverStr,
-		}}, c)
-}
-
-// PubPlug
-// @Tags      AutoCode
-// @Summary   打包插件
-// @Security  ApiKeyAuth
-// @accept    application/json
-// @Produce   application/json
-// @Param     data  body      system.SysAutoCode                                         true  "打包插件"
-// @Success   200   {object}  response.Response{data=map[string]interface{},msg=string}  "打包插件成功"
-// @Router    /autoCode/pubPlug [get]
-func (autoApi *AutoCodeApi) PubPlug(c *gin.Context) {
-	plugName := c.Query("plugName")
-	zipPath, err := autoCodeService.PubPlug(plugName)
-	if err != nil {
-		global.GVA_LOG.Error("打包失败!", zap.Error(err))
-		response.FailWithMessage("打包失败"+err.Error(), c)
-		return
-	}
-	response.OkWithMessage(fmt.Sprintf("打包成功,文件路径为:%s", zipPath), c)
-}

+ 0 - 115
server/api/v1/system/sys_auto_code_history.go

@@ -1,115 +0,0 @@
-package system
-
-import (
-	"github.com/flipped-aurora/gin-vue-admin/server/global"
-	"github.com/flipped-aurora/gin-vue-admin/server/model/common/request"
-	"github.com/flipped-aurora/gin-vue-admin/server/model/common/response"
-	systemReq "github.com/flipped-aurora/gin-vue-admin/server/model/system/request"
-	"github.com/gin-gonic/gin"
-	"go.uber.org/zap"
-)
-
-type AutoCodeHistoryApi struct{}
-
-// First
-// @Tags      AutoCode
-// @Summary   获取meta信息
-// @Security  ApiKeyAuth
-// @accept    application/json
-// @Produce   application/json
-// @Param     data  body      request.GetById                                            true  "请求参数"
-// @Success   200   {object}  response.Response{data=map[string]interface{},msg=string}  "获取meta信息"
-// @Router    /autoCode/getMeta [post]
-func (a *AutoCodeHistoryApi) First(c *gin.Context) {
-	var info request.GetById
-	err := c.ShouldBindJSON(&info)
-	if err != nil {
-		response.FailWithMessage(err.Error(), c)
-		return
-	}
-	data, err := autoCodeHistoryService.First(&info)
-	if err != nil {
-		response.FailWithMessage(err.Error(), c)
-		return
-	}
-	response.OkWithDetailed(gin.H{"meta": data}, "获取成功", c)
-}
-
-// Delete
-// @Tags      AutoCode
-// @Summary   删除回滚记录
-// @Security  ApiKeyAuth
-// @accept    application/json
-// @Produce   application/json
-// @Param     data  body      request.GetById                true  "请求参数"
-// @Success   200   {object}  response.Response{msg=string}  "删除回滚记录"
-// @Router    /autoCode/delSysHistory [post]
-func (a *AutoCodeHistoryApi) Delete(c *gin.Context) {
-	var info request.GetById
-	err := c.ShouldBindJSON(&info)
-	if err != nil {
-		response.FailWithMessage(err.Error(), c)
-		return
-	}
-	err = autoCodeHistoryService.Delete(&info)
-	if err != nil {
-		global.GVA_LOG.Error("删除失败!", zap.Error(err))
-		response.FailWithMessage("删除失败", c)
-		return
-	}
-	response.OkWithMessage("删除成功", c)
-}
-
-// RollBack
-// @Tags      AutoCode
-// @Summary   回滚自动生成代码
-// @Security  ApiKeyAuth
-// @accept    application/json
-// @Produce   application/json
-// @Param     data  body      systemReq.RollBack             true  "请求参数"
-// @Success   200   {object}  response.Response{msg=string}  "回滚自动生成代码"
-// @Router    /autoCode/rollback [post]
-func (a *AutoCodeHistoryApi) RollBack(c *gin.Context) {
-	var info systemReq.RollBack
-	err := c.ShouldBindJSON(&info)
-	if err != nil {
-		response.FailWithMessage(err.Error(), c)
-		return
-	}
-	err = autoCodeHistoryService.RollBack(&info)
-	if err != nil {
-		response.FailWithMessage(err.Error(), c)
-		return
-	}
-	response.OkWithMessage("回滚成功", c)
-}
-
-// GetList
-// @Tags      AutoCode
-// @Summary   查询回滚记录
-// @Security  ApiKeyAuth
-// @accept    application/json
-// @Produce   application/json
-// @Param     data  body      systemReq.SysAutoHistory                                true  "请求参数"
-// @Success   200   {object}  response.Response{data=response.PageResult,msg=string}  "查询回滚记录,返回包括列表,总数,页码,每页数量"
-// @Router    /autoCode/getSysHistory [post]
-func (a *AutoCodeHistoryApi) GetList(c *gin.Context) {
-	var search systemReq.SysAutoHistory
-	err := c.ShouldBindJSON(&search)
-	if err != nil {
-		response.FailWithMessage(err.Error(), c)
-		return
-	}
-	list, total, err := autoCodeHistoryService.GetList(search.PageInfo)
-	if err != nil {
-		global.GVA_LOG.Error("获取失败!", zap.Error(err))
-		response.FailWithMessage("获取失败", c)
-		return
-	}
-	response.OkWithDetailed(response.PageResult{
-		List:     list,
-		Total:    total,
-		Page:     search.Page,
-		PageSize: search.PageSize,
-	}, "获取成功", c)
-}

+ 3 - 3
server/api/v1/system/sys_captcha.go

@@ -3,12 +3,12 @@ package system
 import (
 	"time"
 
-	"github.com/flipped-aurora/gin-vue-admin/server/global"
-	"github.com/flipped-aurora/gin-vue-admin/server/model/common/response"
-	systemRes "github.com/flipped-aurora/gin-vue-admin/server/model/system/response"
 	"github.com/gin-gonic/gin"
 	"github.com/mojocn/base64Captcha"
 	"go.uber.org/zap"
+	"server/global"
+	"server/model/common/response"
+	systemRes "server/model/system/response"
 )
 
 // 当开启多服务器部署时,替换下面的配置,使用redis共享存储验证码

+ 5 - 5
server/api/v1/system/sys_casbin.go

@@ -1,13 +1,13 @@
 package system
 
 import (
-	"github.com/flipped-aurora/gin-vue-admin/server/global"
-	"github.com/flipped-aurora/gin-vue-admin/server/model/common/response"
-	"github.com/flipped-aurora/gin-vue-admin/server/model/system/request"
-	systemRes "github.com/flipped-aurora/gin-vue-admin/server/model/system/response"
-	"github.com/flipped-aurora/gin-vue-admin/server/utils"
 	"github.com/gin-gonic/gin"
 	"go.uber.org/zap"
+	"server/global"
+	"server/model/common/response"
+	"server/model/system/request"
+	systemRes "server/model/system/response"
+	"server/utils"
 )
 
 type CasbinApi struct{}

+ 7 - 7
server/api/v1/system/sys_dictionary.go

@@ -1,11 +1,11 @@
 package system
 
 import (
-	"github.com/flipped-aurora/gin-vue-admin/server/global"
-	"github.com/flipped-aurora/gin-vue-admin/server/model/common/response"
-	"github.com/flipped-aurora/gin-vue-admin/server/model/system"
 	"github.com/gin-gonic/gin"
 	"go.uber.org/zap"
+	"server/dao"
+	"server/global"
+	"server/model/common/response"
 )
 
 type DictionaryApi struct{}
@@ -20,7 +20,7 @@ type DictionaryApi struct{}
 // @Success   200   {object}  response.Response{msg=string}  "创建SysDictionary"
 // @Router    /sysDictionary/createSysDictionary [post]
 func (s *DictionaryApi) CreateSysDictionary(c *gin.Context) {
-	var dictionary system.SysDictionary
+	var dictionary dao.SysDictionary
 	err := c.ShouldBindJSON(&dictionary)
 	if err != nil {
 		response.FailWithMessage(err.Error(), c)
@@ -45,7 +45,7 @@ func (s *DictionaryApi) CreateSysDictionary(c *gin.Context) {
 // @Success   200   {object}  response.Response{msg=string}  "删除SysDictionary"
 // @Router    /sysDictionary/deleteSysDictionary [delete]
 func (s *DictionaryApi) DeleteSysDictionary(c *gin.Context) {
-	var dictionary system.SysDictionary
+	var dictionary dao.SysDictionary
 	err := c.ShouldBindJSON(&dictionary)
 	if err != nil {
 		response.FailWithMessage(err.Error(), c)
@@ -70,7 +70,7 @@ func (s *DictionaryApi) DeleteSysDictionary(c *gin.Context) {
 // @Success   200   {object}  response.Response{msg=string}  "更新SysDictionary"
 // @Router    /sysDictionary/updateSysDictionary [put]
 func (s *DictionaryApi) UpdateSysDictionary(c *gin.Context) {
-	var dictionary system.SysDictionary
+	var dictionary dao.SysDictionary
 	err := c.ShouldBindJSON(&dictionary)
 	if err != nil {
 		response.FailWithMessage(err.Error(), c)
@@ -95,7 +95,7 @@ func (s *DictionaryApi) UpdateSysDictionary(c *gin.Context) {
 // @Success   200   {object}  response.Response{data=map[string]interface{},msg=string}  "用id查询SysDictionary"
 // @Router    /sysDictionary/findSysDictionary [get]
 func (s *DictionaryApi) FindSysDictionary(c *gin.Context) {
-	var dictionary system.SysDictionary
+	var dictionary dao.SysDictionary
 	err := c.ShouldBindQuery(&dictionary)
 	if err != nil {
 		response.FailWithMessage(err.Error(), c)

+ 9 - 9
server/api/v1/system/sys_dictionary_detail.go

@@ -1,13 +1,13 @@
 package system
 
 import (
-	"github.com/flipped-aurora/gin-vue-admin/server/global"
-	"github.com/flipped-aurora/gin-vue-admin/server/model/common/response"
-	"github.com/flipped-aurora/gin-vue-admin/server/model/system"
-	"github.com/flipped-aurora/gin-vue-admin/server/model/system/request"
-	"github.com/flipped-aurora/gin-vue-admin/server/utils"
 	"github.com/gin-gonic/gin"
 	"go.uber.org/zap"
+	"server/dao"
+	"server/global"
+	"server/model/common/response"
+	"server/model/system/request"
+	"server/utils"
 )
 
 type DictionaryDetailApi struct{}
@@ -22,7 +22,7 @@ type DictionaryDetailApi struct{}
 // @Success   200   {object}  response.Response{msg=string}  "创建SysDictionaryDetail"
 // @Router    /sysDictionaryDetail/createSysDictionaryDetail [post]
 func (s *DictionaryDetailApi) CreateSysDictionaryDetail(c *gin.Context) {
-	var detail system.SysDictionaryDetail
+	var detail dao.SysDictionaryDetail
 	err := c.ShouldBindJSON(&detail)
 	if err != nil {
 		response.FailWithMessage(err.Error(), c)
@@ -47,7 +47,7 @@ func (s *DictionaryDetailApi) CreateSysDictionaryDetail(c *gin.Context) {
 // @Success   200   {object}  response.Response{msg=string}  "删除SysDictionaryDetail"
 // @Router    /sysDictionaryDetail/deleteSysDictionaryDetail [delete]
 func (s *DictionaryDetailApi) DeleteSysDictionaryDetail(c *gin.Context) {
-	var detail system.SysDictionaryDetail
+	var detail dao.SysDictionaryDetail
 	err := c.ShouldBindJSON(&detail)
 	if err != nil {
 		response.FailWithMessage(err.Error(), c)
@@ -72,7 +72,7 @@ func (s *DictionaryDetailApi) DeleteSysDictionaryDetail(c *gin.Context) {
 // @Success   200   {object}  response.Response{msg=string}  "更新SysDictionaryDetail"
 // @Router    /sysDictionaryDetail/updateSysDictionaryDetail [put]
 func (s *DictionaryDetailApi) UpdateSysDictionaryDetail(c *gin.Context) {
-	var detail system.SysDictionaryDetail
+	var detail dao.SysDictionaryDetail
 	err := c.ShouldBindJSON(&detail)
 	if err != nil {
 		response.FailWithMessage(err.Error(), c)
@@ -97,7 +97,7 @@ func (s *DictionaryDetailApi) UpdateSysDictionaryDetail(c *gin.Context) {
 // @Success   200   {object}  response.Response{data=map[string]interface{},msg=string}  "用id查询SysDictionaryDetail"
 // @Router    /sysDictionaryDetail/findSysDictionaryDetail [get]
 func (s *DictionaryDetailApi) FindSysDictionaryDetail(c *gin.Context) {
-	var detail system.SysDictionaryDetail
+	var detail dao.SysDictionaryDetail
 	err := c.ShouldBindQuery(&detail)
 	if err != nil {
 		response.FailWithMessage(err.Error(), c)

+ 0 - 257
server/api/v1/system/sys_export_template.go

@@ -1,257 +0,0 @@
-package system
-
-import (
-	"fmt"
-	"github.com/flipped-aurora/gin-vue-admin/server/global"
-	"github.com/flipped-aurora/gin-vue-admin/server/model/common/request"
-	"github.com/flipped-aurora/gin-vue-admin/server/model/common/response"
-	"github.com/flipped-aurora/gin-vue-admin/server/model/system"
-	systemReq "github.com/flipped-aurora/gin-vue-admin/server/model/system/request"
-	"github.com/flipped-aurora/gin-vue-admin/server/service"
-	"github.com/flipped-aurora/gin-vue-admin/server/utils"
-	"github.com/gin-gonic/gin"
-	"go.uber.org/zap"
-	"net/http"
-)
-
-type SysExportTemplateApi struct {
-}
-
-var sysExportTemplateService = service.ServiceGroupApp.SystemServiceGroup.SysExportTemplateService
-
-// CreateSysExportTemplate 创建导出模板
-// @Tags SysExportTemplate
-// @Summary 创建导出模板
-// @Security ApiKeyAuth
-// @accept application/json
-// @Produce application/json
-// @Param data body system.SysExportTemplate true "创建导出模板"
-// @Success 200 {string} string "{"success":true,"data":{},"msg":"创建成功"}"
-// @Router /sysExportTemplate/createSysExportTemplate [post]
-func (sysExportTemplateApi *SysExportTemplateApi) CreateSysExportTemplate(c *gin.Context) {
-	var sysExportTemplate system.SysExportTemplate
-	err := c.ShouldBindJSON(&sysExportTemplate)
-	if err != nil {
-		response.FailWithMessage(err.Error(), c)
-		return
-	}
-	verify := utils.Rules{
-		"Name": {utils.NotEmpty()},
-	}
-	if err := utils.Verify(sysExportTemplate, verify); err != nil {
-		response.FailWithMessage(err.Error(), c)
-		return
-	}
-	if err := sysExportTemplateService.CreateSysExportTemplate(&sysExportTemplate); err != nil {
-		global.GVA_LOG.Error("创建失败!", zap.Error(err))
-		response.FailWithMessage("创建失败", c)
-	} else {
-		response.OkWithMessage("创建成功", c)
-	}
-}
-
-// DeleteSysExportTemplate 删除导出模板
-// @Tags SysExportTemplate
-// @Summary 删除导出模板
-// @Security ApiKeyAuth
-// @accept application/json
-// @Produce application/json
-// @Param data body system.SysExportTemplate true "删除导出模板"
-// @Success 200 {string} string "{"success":true,"data":{},"msg":"删除成功"}"
-// @Router /sysExportTemplate/deleteSysExportTemplate [delete]
-func (sysExportTemplateApi *SysExportTemplateApi) DeleteSysExportTemplate(c *gin.Context) {
-	var sysExportTemplate system.SysExportTemplate
-	err := c.ShouldBindJSON(&sysExportTemplate)
-	if err != nil {
-		response.FailWithMessage(err.Error(), c)
-		return
-	}
-	if err := sysExportTemplateService.DeleteSysExportTemplate(sysExportTemplate); err != nil {
-		global.GVA_LOG.Error("删除失败!", zap.Error(err))
-		response.FailWithMessage("删除失败", c)
-	} else {
-		response.OkWithMessage("删除成功", c)
-	}
-}
-
-// DeleteSysExportTemplateByIds 批量删除导出模板
-// @Tags SysExportTemplate
-// @Summary 批量删除导出模板
-// @Security ApiKeyAuth
-// @accept application/json
-// @Produce application/json
-// @Param data body request.IdsReq true "批量删除导出模板"
-// @Success 200 {string} string "{"success":true,"data":{},"msg":"批量删除成功"}"
-// @Router /sysExportTemplate/deleteSysExportTemplateByIds [delete]
-func (sysExportTemplateApi *SysExportTemplateApi) DeleteSysExportTemplateByIds(c *gin.Context) {
-	var IDS request.IdsReq
-	err := c.ShouldBindJSON(&IDS)
-	if err != nil {
-		response.FailWithMessage(err.Error(), c)
-		return
-	}
-	if err := sysExportTemplateService.DeleteSysExportTemplateByIds(IDS); err != nil {
-		global.GVA_LOG.Error("批量删除失败!", zap.Error(err))
-		response.FailWithMessage("批量删除失败", c)
-	} else {
-		response.OkWithMessage("批量删除成功", c)
-	}
-}
-
-// UpdateSysExportTemplate 更新导出模板
-// @Tags SysExportTemplate
-// @Summary 更新导出模板
-// @Security ApiKeyAuth
-// @accept application/json
-// @Produce application/json
-// @Param data body system.SysExportTemplate true "更新导出模板"
-// @Success 200 {string} string "{"success":true,"data":{},"msg":"更新成功"}"
-// @Router /sysExportTemplate/updateSysExportTemplate [put]
-func (sysExportTemplateApi *SysExportTemplateApi) UpdateSysExportTemplate(c *gin.Context) {
-	var sysExportTemplate system.SysExportTemplate
-	err := c.ShouldBindJSON(&sysExportTemplate)
-	if err != nil {
-		response.FailWithMessage(err.Error(), c)
-		return
-	}
-	verify := utils.Rules{
-		"Name": {utils.NotEmpty()},
-	}
-	if err := utils.Verify(sysExportTemplate, verify); err != nil {
-		response.FailWithMessage(err.Error(), c)
-		return
-	}
-	if err := sysExportTemplateService.UpdateSysExportTemplate(sysExportTemplate); err != nil {
-		global.GVA_LOG.Error("更新失败!", zap.Error(err))
-		response.FailWithMessage("更新失败", c)
-	} else {
-		response.OkWithMessage("更新成功", c)
-	}
-}
-
-// FindSysExportTemplate 用id查询导出模板
-// @Tags SysExportTemplate
-// @Summary 用id查询导出模板
-// @Security ApiKeyAuth
-// @accept application/json
-// @Produce application/json
-// @Param data query system.SysExportTemplate true "用id查询导出模板"
-// @Success 200 {string} string "{"success":true,"data":{},"msg":"查询成功"}"
-// @Router /sysExportTemplate/findSysExportTemplate [get]
-func (sysExportTemplateApi *SysExportTemplateApi) FindSysExportTemplate(c *gin.Context) {
-	var sysExportTemplate system.SysExportTemplate
-	err := c.ShouldBindQuery(&sysExportTemplate)
-	if err != nil {
-		response.FailWithMessage(err.Error(), c)
-		return
-	}
-	if resysExportTemplate, err := sysExportTemplateService.GetSysExportTemplate(sysExportTemplate.ID); err != nil {
-		global.GVA_LOG.Error("查询失败!", zap.Error(err))
-		response.FailWithMessage("查询失败", c)
-	} else {
-		response.OkWithData(gin.H{"resysExportTemplate": resysExportTemplate}, c)
-	}
-}
-
-// GetSysExportTemplateList 分页获取导出模板列表
-// @Tags SysExportTemplate
-// @Summary 分页获取导出模板列表
-// @Security ApiKeyAuth
-// @accept application/json
-// @Produce application/json
-// @Param data query systemReq.SysExportTemplateSearch true "分页获取导出模板列表"
-// @Success 200 {string} string "{"success":true,"data":{},"msg":"获取成功"}"
-// @Router /sysExportTemplate/getSysExportTemplateList [get]
-func (sysExportTemplateApi *SysExportTemplateApi) GetSysExportTemplateList(c *gin.Context) {
-	var pageInfo systemReq.SysExportTemplateSearch
-	err := c.ShouldBindQuery(&pageInfo)
-	if err != nil {
-		response.FailWithMessage(err.Error(), c)
-		return
-	}
-	if list, total, err := sysExportTemplateService.GetSysExportTemplateInfoList(pageInfo); err != nil {
-		global.GVA_LOG.Error("获取失败!", zap.Error(err))
-		response.FailWithMessage("获取失败", c)
-	} else {
-		response.OkWithDetailed(response.PageResult{
-			List:     list,
-			Total:    total,
-			Page:     pageInfo.Page,
-			PageSize: pageInfo.PageSize,
-		}, "获取成功", c)
-	}
-}
-
-// ExportExcel 导出表格
-// @Tags SysExportTemplate
-// @Summary 导出表格
-// @Security ApiKeyAuth
-// @accept application/json
-// @Produce application/json
-// @Router /sysExportTemplate/exportExcel [get]
-func (sysExportTemplateApi *SysExportTemplateApi) ExportExcel(c *gin.Context) {
-	templateID := c.Query("templateID")
-	queryParams := c.Request.URL.Query()
-	if templateID == "" {
-		response.FailWithMessage("模板ID不能为空", c)
-		return
-	}
-	if file, name, err := sysExportTemplateService.ExportExcel(templateID, queryParams); err != nil {
-		global.GVA_LOG.Error("获取失败!", zap.Error(err))
-		response.FailWithMessage("获取失败", c)
-	} else {
-		c.Header("Content-Disposition", fmt.Sprintf("attachment; filename=%s", name+utils.RandomString(6)+".xlsx")) // 对下载的文件重命名
-		c.Header("success", "true")
-		c.Data(http.StatusOK, "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", file.Bytes())
-	}
-}
-
-// ExportExcel 导出表格模板
-// @Tags SysExportTemplate
-// @Summary 导出表格模板
-// @Security ApiKeyAuth
-// @accept application/json
-// @Produce application/json
-// @Router /sysExportTemplate/exportExcel [get]
-func (sysExportTemplateApi *SysExportTemplateApi) ExportTemplate(c *gin.Context) {
-	templateID := c.Query("templateID")
-	if templateID == "" {
-		response.FailWithMessage("模板ID不能为空", c)
-		return
-	}
-	if file, name, err := sysExportTemplateService.ExportTemplate(templateID); err != nil {
-		global.GVA_LOG.Error("获取失败!", zap.Error(err))
-		response.FailWithMessage("获取失败", c)
-	} else {
-		c.Header("Content-Disposition", fmt.Sprintf("attachment; filename=%s", name+"模板.xlsx")) // 对下载的文件重命名
-		c.Header("success", "true")
-		c.Data(http.StatusOK, "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", file.Bytes())
-	}
-}
-
-// ExportExcel 导入表格
-// @Tags SysImportTemplate
-// @Summary 导入表格
-// @Security ApiKeyAuth
-// @accept application/json
-// @Produce application/json
-// @Router /sysExportTemplate/importExcel [post]
-func (sysExportTemplateApi *SysExportTemplateApi) ImportExcel(c *gin.Context) {
-	templateID := c.Query("templateID")
-	if templateID == "" {
-		response.FailWithMessage("模板ID不能为空", c)
-		return
-	}
-	file, err := c.FormFile("file")
-	if err != nil {
-		global.GVA_LOG.Error("文件获取失败!", zap.Error(err))
-		response.FailWithMessage("文件获取失败", c)
-		return
-	}
-	if err := sysExportTemplateService.ImportExcel(templateID, file); err != nil {
-		global.GVA_LOG.Error(err.Error(), zap.Error(err))
-		response.FailWithMessage(err.Error(), c)
-	} else {
-		response.OkWithMessage("导入成功", c)
-	}
-}

+ 0 - 59
server/api/v1/system/sys_initdb.go

@@ -1,59 +0,0 @@
-package system
-
-import (
-	"github.com/flipped-aurora/gin-vue-admin/server/global"
-	"github.com/flipped-aurora/gin-vue-admin/server/model/common/response"
-	"github.com/flipped-aurora/gin-vue-admin/server/model/system/request"
-	"go.uber.org/zap"
-
-	"github.com/gin-gonic/gin"
-)
-
-type DBApi struct{}
-
-// InitDB
-// @Tags     InitDB
-// @Summary  初始化用户数据库
-// @Produce  application/json
-// @Param    data  body      request.InitDB                  true  "初始化数据库参数"
-// @Success  200   {object}  response.Response{data=string}  "初始化用户数据库"
-// @Router   /init/initdb [post]
-func (i *DBApi) InitDB(c *gin.Context) {
-	if global.GVA_DB != nil {
-		global.GVA_LOG.Error("已存在数据库配置!")
-		response.FailWithMessage("已存在数据库配置", c)
-		return
-	}
-	var dbInfo request.InitDB
-	if err := c.ShouldBindJSON(&dbInfo); err != nil {
-		global.GVA_LOG.Error("参数校验不通过!", zap.Error(err))
-		response.FailWithMessage("参数校验不通过", c)
-		return
-	}
-	if err := initDBService.InitDB(dbInfo); err != nil {
-		global.GVA_LOG.Error("自动创建数据库失败!", zap.Error(err))
-		response.FailWithMessage("自动创建数据库失败,请查看后台日志,检查后在进行初始化", c)
-		return
-	}
-	response.OkWithMessage("自动创建数据库成功", c)
-}
-
-// CheckDB
-// @Tags     CheckDB
-// @Summary  初始化用户数据库
-// @Produce  application/json
-// @Success  200  {object}  response.Response{data=map[string]interface{},msg=string}  "初始化用户数据库"
-// @Router   /init/checkdb [post]
-func (i *DBApi) CheckDB(c *gin.Context) {
-	var (
-		message  = "前往初始化数据库"
-		needInit = true
-	)
-
-	if global.GVA_DB != nil {
-		message = "数据库无需初始化"
-		needInit = false
-	}
-	global.GVA_LOG.Info(message)
-	response.OkWithDetailed(gin.H{"needInit": needInit}, message, c)
-}

+ 5 - 5
server/api/v1/system/sys_jwt_blacklist.go

@@ -1,12 +1,12 @@
 package system
 
 import (
-	"github.com/flipped-aurora/gin-vue-admin/server/global"
-	"github.com/flipped-aurora/gin-vue-admin/server/model/common/response"
-	"github.com/flipped-aurora/gin-vue-admin/server/model/system"
-	"github.com/flipped-aurora/gin-vue-admin/server/utils"
 	"github.com/gin-gonic/gin"
 	"go.uber.org/zap"
+	"server/dao"
+	"server/global"
+	"server/model/common/response"
+	"server/utils"
 )
 
 type JwtApi struct{}
@@ -21,7 +21,7 @@ type JwtApi struct{}
 // @Router    /jwt/jsonInBlacklist [post]
 func (j *JwtApi) JsonInBlacklist(c *gin.Context) {
 	token := utils.GetToken(c)
-	jwt := system.JwtBlacklist{Jwt: token}
+	jwt := dao.JwtBlacklist{Jwt: token}
 	err := jwtService.JsonInBlacklist(jwt)
 	if err != nil {
 		global.GVA_LOG.Error("jwt作废失败!", zap.Error(err))

+ 10 - 10
server/api/v1/system/sys_menu.go

@@ -1,13 +1,13 @@
 package system
 
 import (
-	"github.com/flipped-aurora/gin-vue-admin/server/global"
-	"github.com/flipped-aurora/gin-vue-admin/server/model/common/request"
-	"github.com/flipped-aurora/gin-vue-admin/server/model/common/response"
-	"github.com/flipped-aurora/gin-vue-admin/server/model/system"
-	systemReq "github.com/flipped-aurora/gin-vue-admin/server/model/system/request"
-	systemRes "github.com/flipped-aurora/gin-vue-admin/server/model/system/response"
-	"github.com/flipped-aurora/gin-vue-admin/server/utils"
+	"server/dao"
+	"server/global"
+	"server/model/common/request"
+	"server/model/common/response"
+	systemReq "server/model/system/request"
+	systemRes "server/model/system/response"
+	"server/utils"
 
 	"github.com/gin-gonic/gin"
 	"go.uber.org/zap"
@@ -31,7 +31,7 @@ func (a *AuthorityMenuApi) GetMenu(c *gin.Context) {
 		return
 	}
 	if menus == nil {
-		menus = []system.SysMenu{}
+		menus = []dao.SysMenu{}
 	}
 	response.OkWithDetailed(systemRes.SysMenusResponse{Menus: menus}, "获取成功", c)
 }
@@ -122,7 +122,7 @@ func (a *AuthorityMenuApi) GetMenuAuthority(c *gin.Context) {
 // @Success   200   {object}  response.Response{msg=string}  "新增菜单"
 // @Router    /menu/addBaseMenu [post]
 func (a *AuthorityMenuApi) AddBaseMenu(c *gin.Context) {
-	var menu system.SysBaseMenu
+	var menu dao.SysBaseMenu
 	err := c.ShouldBindJSON(&menu)
 	if err != nil {
 		response.FailWithMessage(err.Error(), c)
@@ -187,7 +187,7 @@ func (a *AuthorityMenuApi) DeleteBaseMenu(c *gin.Context) {
 // @Success   200   {object}  response.Response{msg=string}  "更新菜单"
 // @Router    /menu/updateBaseMenu [post]
 func (a *AuthorityMenuApi) UpdateBaseMenu(c *gin.Context) {
-	var menu system.SysBaseMenu
+	var menu dao.SysBaseMenu
 	err := c.ShouldBindJSON(&menu)
 	if err != nil {
 		response.FailWithMessage(err.Error(), c)

+ 9 - 9
server/api/v1/system/sys_operation_record.go

@@ -1,14 +1,14 @@
 package system
 
 import (
-	"github.com/flipped-aurora/gin-vue-admin/server/global"
-	"github.com/flipped-aurora/gin-vue-admin/server/model/common/request"
-	"github.com/flipped-aurora/gin-vue-admin/server/model/common/response"
-	"github.com/flipped-aurora/gin-vue-admin/server/model/system"
-	systemReq "github.com/flipped-aurora/gin-vue-admin/server/model/system/request"
-	"github.com/flipped-aurora/gin-vue-admin/server/utils"
 	"github.com/gin-gonic/gin"
 	"go.uber.org/zap"
+	"server/dao"
+	"server/global"
+	"server/model/common/request"
+	"server/model/common/response"
+	systemReq "server/model/system/request"
+	"server/utils"
 )
 
 type OperationRecordApi struct{}
@@ -23,7 +23,7 @@ type OperationRecordApi struct{}
 // @Success   200   {object}  response.Response{msg=string}  "创建SysOperationRecord"
 // @Router    /sysOperationRecord/createSysOperationRecord [post]
 func (s *OperationRecordApi) CreateSysOperationRecord(c *gin.Context) {
-	var sysOperationRecord system.SysOperationRecord
+	var sysOperationRecord dao.SysOperationRecord
 	err := c.ShouldBindJSON(&sysOperationRecord)
 	if err != nil {
 		response.FailWithMessage(err.Error(), c)
@@ -48,7 +48,7 @@ func (s *OperationRecordApi) CreateSysOperationRecord(c *gin.Context) {
 // @Success   200   {object}  response.Response{msg=string}  "删除SysOperationRecord"
 // @Router    /sysOperationRecord/deleteSysOperationRecord [delete]
 func (s *OperationRecordApi) DeleteSysOperationRecord(c *gin.Context) {
-	var sysOperationRecord system.SysOperationRecord
+	var sysOperationRecord dao.SysOperationRecord
 	err := c.ShouldBindJSON(&sysOperationRecord)
 	if err != nil {
 		response.FailWithMessage(err.Error(), c)
@@ -98,7 +98,7 @@ func (s *OperationRecordApi) DeleteSysOperationRecordByIds(c *gin.Context) {
 // @Success   200   {object}  response.Response{data=map[string]interface{},msg=string}  "用id查询SysOperationRecord"
 // @Router    /sysOperationRecord/findSysOperationRecord [get]
 func (s *OperationRecordApi) FindSysOperationRecord(c *gin.Context) {
-	var sysOperationRecord system.SysOperationRecord
+	var sysOperationRecord dao.SysOperationRecord
 	err := c.ShouldBindQuery(&sysOperationRecord)
 	if err != nil {
 		response.FailWithMessage(err.Error(), c)

+ 0 - 88
server/api/v1/system/sys_system.go

@@ -1,88 +0,0 @@
-package system
-
-import (
-	"github.com/flipped-aurora/gin-vue-admin/server/global"
-	"github.com/flipped-aurora/gin-vue-admin/server/model/common/response"
-	"github.com/flipped-aurora/gin-vue-admin/server/model/system"
-	systemRes "github.com/flipped-aurora/gin-vue-admin/server/model/system/response"
-	"github.com/flipped-aurora/gin-vue-admin/server/utils"
-	"github.com/gin-gonic/gin"
-	"go.uber.org/zap"
-)
-
-type SystemApi struct{}
-
-// GetSystemConfig
-// @Tags      System
-// @Summary   获取配置文件内容
-// @Security  ApiKeyAuth
-// @Produce   application/json
-// @Success   200  {object}  response.Response{data=systemRes.SysConfigResponse,msg=string}  "获取配置文件内容,返回包括系统配置"
-// @Router    /system/getSystemConfig [post]
-func (s *SystemApi) GetSystemConfig(c *gin.Context) {
-	config, err := systemConfigService.GetSystemConfig()
-	if err != nil {
-		global.GVA_LOG.Error("获取失败!", zap.Error(err))
-		response.FailWithMessage("获取失败", c)
-		return
-	}
-	response.OkWithDetailed(systemRes.SysConfigResponse{Config: config}, "获取成功", c)
-}
-
-// SetSystemConfig
-// @Tags      System
-// @Summary   设置配置文件内容
-// @Security  ApiKeyAuth
-// @Produce   application/json
-// @Param     data  body      system.System                   true  "设置配置文件内容"
-// @Success   200   {object}  response.Response{data=string}  "设置配置文件内容"
-// @Router    /system/setSystemConfig [post]
-func (s *SystemApi) SetSystemConfig(c *gin.Context) {
-	var sys system.System
-	err := c.ShouldBindJSON(&sys)
-	if err != nil {
-		response.FailWithMessage(err.Error(), c)
-		return
-	}
-	err = systemConfigService.SetSystemConfig(sys)
-	if err != nil {
-		global.GVA_LOG.Error("设置失败!", zap.Error(err))
-		response.FailWithMessage("设置失败", c)
-		return
-	}
-	response.OkWithMessage("设置成功", c)
-}
-
-// ReloadSystem
-// @Tags      System
-// @Summary   重启系统
-// @Security  ApiKeyAuth
-// @Produce   application/json
-// @Success   200  {object}  response.Response{msg=string}  "重启系统"
-// @Router    /system/reloadSystem [post]
-func (s *SystemApi) ReloadSystem(c *gin.Context) {
-	err := utils.Reload()
-	if err != nil {
-		global.GVA_LOG.Error("重启系统失败!", zap.Error(err))
-		response.FailWithMessage("重启系统失败", c)
-		return
-	}
-	response.OkWithMessage("重启系统成功", c)
-}
-
-// GetServerInfo
-// @Tags      System
-// @Summary   获取服务器信息
-// @Security  ApiKeyAuth
-// @Produce   application/json
-// @Success   200  {object}  response.Response{data=map[string]interface{},msg=string}  "获取服务器信息"
-// @Router    /system/getServerInfo [post]
-func (s *SystemApi) GetServerInfo(c *gin.Context) {
-	server, err := systemConfigService.GetServerInfo()
-	if err != nil {
-		global.GVA_LOG.Error("获取失败!", zap.Error(err))
-		response.FailWithMessage("获取失败", c)
-		return
-	}
-	response.OkWithDetailed(gin.H{"server": server}, "获取成功", c)
-}

+ 18 - 23
server/api/v1/system/sys_user.go

@@ -1,16 +1,16 @@
 package system
 
 import (
+	"server/dao"
 	"strconv"
 	"time"
 
-	"github.com/flipped-aurora/gin-vue-admin/server/global"
-	"github.com/flipped-aurora/gin-vue-admin/server/model/common/request"
-	"github.com/flipped-aurora/gin-vue-admin/server/model/common/response"
-	"github.com/flipped-aurora/gin-vue-admin/server/model/system"
-	systemReq "github.com/flipped-aurora/gin-vue-admin/server/model/system/request"
-	systemRes "github.com/flipped-aurora/gin-vue-admin/server/model/system/response"
-	"github.com/flipped-aurora/gin-vue-admin/server/utils"
+	"server/global"
+	"server/model/common/request"
+	"server/model/common/response"
+	systemReq "server/model/system/request"
+	systemRes "server/model/system/response"
+	"server/utils"
 
 	"github.com/gin-gonic/gin"
 	"github.com/redis/go-redis/v9"
@@ -62,7 +62,7 @@ func (b *BaseApi) Login(c *gin.Context) {
 	l.Password = rsa.Encryption(l.Password)
 
 	if !oc || (l.CaptchaId != "" && l.Captcha != "" && store.Verify(l.CaptchaId, l.Captcha, true)) {
-		u := &system.SysUser{Username: l.Username, Password: l.Password}
+		u := &dao.SysUser{Username: l.Username, Password: l.Password}
 		user, err := userService.Login(u)
 		if err != nil {
 			global.GVA_LOG.Error("登陆失败! 用户名不存在或者密码错误!", zap.Error(err))
@@ -87,7 +87,7 @@ func (b *BaseApi) Login(c *gin.Context) {
 }
 
 // TokenNext 登录以后签发jwt
-func (b *BaseApi) TokenNext(c *gin.Context, user system.SysUser) {
+func (b *BaseApi) TokenNext(c *gin.Context, user dao.SysUser) {
 	j := &utils.JWT{SigningKey: []byte(global.GVA_CONFIG.JWT.SigningKey)} // 唯一签名
 	claims := j.CreateClaims(systemReq.BaseClaims{
 		UUID:        user.UUID,
@@ -128,7 +128,7 @@ func (b *BaseApi) TokenNext(c *gin.Context, user system.SysUser) {
 		global.GVA_LOG.Error("设置登录状态失败!", zap.Error(err))
 		response.FailWithMessage("设置登录状态失败", c)
 	} else {
-		var blackJWT system.JwtBlacklist
+		var blackJWT dao.JwtBlacklist
 		blackJWT.Jwt = jwtStr
 		if err := jwtService.JsonInBlacklist(blackJWT); err != nil {
 			response.FailWithMessage("jwt作废失败", c)
@@ -166,13 +166,8 @@ func (b *BaseApi) Register(c *gin.Context) {
 		response.FailWithMessage(err.Error(), c)
 		return
 	}
-	var authorities []system.SysAuthority
-	for _, v := range r.AuthorityIds {
-		authorities = append(authorities, system.SysAuthority{
-			AuthorityId: v,
-		})
-	}
-	user := &system.SysUser{Username: r.Username, NickName: r.NickName, Password: r.Password, HeaderImg: r.HeaderImg, AuthorityId: r.AuthorityId, Authorities: authorities, Enable: r.Enable, Phone: r.Phone, Email: r.Email}
+
+	user := &dao.SysUser{Username: r.Username, NickName: r.NickName, Password: r.Password, HeaderImg: r.HeaderImg, AuthorityId: r.AuthorityId, Enable: r.Enable, Phone: r.Phone, Email: r.Email}
 	userReturn, err := userService.Register(*user)
 	if err != nil {
 		global.GVA_LOG.Error("注册失败!", zap.Error(err))
@@ -203,7 +198,7 @@ func (b *BaseApi) ChangePassword(c *gin.Context) {
 		return
 	}
 	uid := utils.GetUserID(c)
-	u := &system.SysUser{GVA_MODEL: global.GVA_MODEL{ID: uid}, Password: req.Password}
+	u := &dao.SysUser{GVA_MODEL: global.GVA_MODEL{ID: uid}, Password: req.Password}
 	_, err = userService.ChangePassword(u, req.NewPassword)
 	if err != nil {
 		global.GVA_LOG.Error("修改失败!", zap.Error(err))
@@ -305,7 +300,7 @@ func (b *BaseApi) SetUserAuthorities(c *gin.Context) {
 		response.FailWithMessage(err.Error(), c)
 		return
 	}
-	err = userService.SetUserAuthorities(sua.ID, sua.AuthorityIds)
+	err = userService.SetUserAuthorities(sua.ID, sua.AuthorityId)
 	if err != nil {
 		global.GVA_LOG.Error("修改失败!", zap.Error(err))
 		response.FailWithMessage("修改失败", c)
@@ -371,7 +366,7 @@ func (b *BaseApi) SetUserInfo(c *gin.Context) {
 		return
 	}
 
-	if len(user.AuthorityIds) != 0 {
+	if user.AuthorityIds != 0 {
 		err = userService.SetUserAuthorities(user.ID, user.AuthorityIds)
 		if err != nil {
 			global.GVA_LOG.Error("设置失败!", zap.Error(err))
@@ -379,7 +374,7 @@ func (b *BaseApi) SetUserInfo(c *gin.Context) {
 			return
 		}
 	}
-	err = userService.SetUserInfo(system.SysUser{
+	err = userService.SetUserInfo(dao.SysUser{
 		GVA_MODEL: global.GVA_MODEL{
 			ID: user.ID,
 		},
@@ -415,7 +410,7 @@ func (b *BaseApi) SetSelfInfo(c *gin.Context) {
 		return
 	}
 	user.ID = utils.GetUserID(c)
-	err = userService.SetSelfInfo(system.SysUser{
+	err = userService.SetSelfInfo(dao.SysUser{
 		GVA_MODEL: global.GVA_MODEL{
 			ID: user.ID,
 		},
@@ -462,7 +457,7 @@ func (b *BaseApi) GetUserInfo(c *gin.Context) {
 // @Success   200   {object}  response.Response{msg=string}  "重置用户密码"
 // @Router    /user/resetPassword [post]
 func (b *BaseApi) ResetPassword(c *gin.Context) {
-	var user system.SysUser
+	var user dao.SysUser
 	err := c.ShouldBindJSON(&user)
 	if err != nil {
 		response.FailWithMessage(err.Error(), c)

+ 0 - 18
server/config/auto_code.go

@@ -1,18 +0,0 @@
-package config
-
-type Autocode struct {
-	SModel          string `mapstructure:"server-model" json:"server-model" yaml:"server-model"`
-	SRouter         string `mapstructure:"server-router" json:"server-router" yaml:"server-router"`
-	Server          string `mapstructure:"server" json:"server" yaml:"server"`
-	SApi            string `mapstructure:"server-api" json:"server-api" yaml:"server-api"`
-	SPlug           string `mapstructure:"server-plug" json:"server-plug" yaml:"server-plug"`
-	SInitialize     string `mapstructure:"server-initialize" json:"server-initialize" yaml:"server-initialize"`
-	Root            string `mapstructure:"root" json:"root" yaml:"root"`
-	WTable          string `mapstructure:"web-table" json:"web-table" yaml:"web-table"`
-	Web             string `mapstructure:"web" json:"web" yaml:"web"`
-	SService        string `mapstructure:"server-service" json:"server-service" yaml:"server-service"`
-	SRequest        string `mapstructure:"server-request" json:"server-request"  yaml:"server-request"`
-	WApi            string `mapstructure:"web-api" json:"web-api" yaml:"web-api"`
-	WForm           string `mapstructure:"web-form" json:"web-form" yaml:"web-form"`
-	TransferRestart bool   `mapstructure:"transfer-restart" json:"transfer-restart" yaml:"transfer-restart"`
-}

+ 0 - 2
server/config/config.go

@@ -8,8 +8,6 @@ type Server struct {
 	Email   Email   `mapstructure:"email" json:"email" yaml:"email"`
 	System  System  `mapstructure:"system" json:"system" yaml:"system"`
 	Captcha Captcha `mapstructure:"captcha" json:"captcha" yaml:"captcha"`
-	// auto
-	AutoCode Autocode `mapstructure:"autocode" json:"autocode" yaml:"autocode"`
 	// gorm
 	Mysql  Mysql           `mapstructure:"mysql" json:"mysql" yaml:"mysql"`
 	Mssql  Mssql           `mapstructure:"mssql" json:"mssql" yaml:"mssql"`

+ 1 - 1
server/core/internal/file_rotatelogs.go

@@ -1,9 +1,9 @@
 package internal
 
 import (
-	"github.com/flipped-aurora/gin-vue-admin/server/global"
 	"go.uber.org/zap/zapcore"
 	"os"
+	"server/global"
 )
 
 var FileRotatelogs = new(fileRotatelogs)

+ 1 - 1
server/core/internal/zap.go

@@ -1,9 +1,9 @@
 package internal
 
 import (
-	"github.com/flipped-aurora/gin-vue-admin/server/global"
 	"go.uber.org/zap"
 	"go.uber.org/zap/zapcore"
+	"server/global"
 	"time"
 )
 

+ 4 - 14
server/core/server.go

@@ -2,10 +2,10 @@ package core
 
 import (
 	"fmt"
-	"github.com/flipped-aurora/gin-vue-admin/server/global"
-	"github.com/flipped-aurora/gin-vue-admin/server/initialize"
-	"github.com/flipped-aurora/gin-vue-admin/server/service/system"
 	"go.uber.org/zap"
+	"server/global"
+	"server/initialize"
+	"server/service/system"
 )
 
 type server interface {
@@ -35,16 +35,6 @@ func RunWindowsServer() {
 	s := initServer(address, Router)
 
 	global.GVA_LOG.Info("server run success on ", zap.String("address", address))
-
-	fmt.Printf(`
-	欢迎使用 gin-vue-admin
-	当前版本:v2.6.3
-    加群方式:微信号:shouzi_1994 QQ群:470239250
-	插件市场:https://plugin.gin-vue-admin.com
-	GVA讨论社区:https://support.qq.com/products/371961
-	默认自动化文档地址:http://127.0.0.1%s/swagger/index.html
-	默认前端文件运行地址:http://127.0.0.1:8080
-	如果项目让您获得了收益,希望您能请团队喝杯可乐:https://www.gin-vue-admin.com/coffee/index.html
-`, address)
+	fmt.Println("龙弛")
 	global.GVA_LOG.Error(s.ListenAndServe().Error())
 }

+ 3 - 6
server/core/viper.go

@@ -3,16 +3,15 @@ package core
 import (
 	"flag"
 	"fmt"
-	"github.com/flipped-aurora/gin-vue-admin/server/core/internal"
 	"github.com/gin-gonic/gin"
 	"os"
-	"path/filepath"
+	"server/core/internal"
 
 	"github.com/fsnotify/fsnotify"
 	"github.com/spf13/viper"
 
-	"github.com/flipped-aurora/gin-vue-admin/server/global"
-	_ "github.com/flipped-aurora/gin-vue-admin/server/packfile"
+	"server/global"
+	_ "server/packfile"
 )
 
 // Viper //
@@ -68,7 +67,5 @@ func Viper(path ...string) *viper.Viper {
 		panic(err)
 	}
 
-	// root 适配性 根据root位置去找到对应迁移位置,保证root路径有效
-	global.GVA_CONFIG.AutoCode.Root, _ = filepath.Abs("..")
 	return v
 }

+ 3 - 3
server/core/zap.go

@@ -2,12 +2,12 @@ package core
 
 import (
 	"fmt"
-	"github.com/flipped-aurora/gin-vue-admin/server/core/internal"
-	"github.com/flipped-aurora/gin-vue-admin/server/global"
-	"github.com/flipped-aurora/gin-vue-admin/server/utils"
 	"go.uber.org/zap"
 	"go.uber.org/zap/zapcore"
 	"os"
+	"server/core/internal"
+	"server/global"
+	"server/utils"
 )
 
 // Zap 获取 zap.Logger

+ 62 - 0
server/dao/exa_file_upload_download.go

@@ -0,0 +1,62 @@
+package dao
+
+import (
+	"server/global"
+)
+
+type ExaFileUploadAndDownload struct {
+	global.GVA_MODEL
+	Name string `json:"name" gorm:"comment:文件名"` // 文件名
+	Url  string `json:"url" gorm:"comment:文件地址"` // 文件地址
+	Tag  string `json:"tag" gorm:"comment:文件标签"` // 文件标签
+	Key  string `json:"key" gorm:"comment:编号"`   // 编号
+}
+
+func (ExaFileUploadAndDownload) TableName() string {
+	return "exa_file_upload_and_downloads"
+}
+
+// TODO:文件查询
+
+// QueryFileById 查询文件 按id
+func QueryFileById(id uint) (exaFileUploadAndDownload ExaFileUploadAndDownload, err error) {
+	err = global.GVA_DB.Where("id = ?", id).First(&exaFileUploadAndDownload).Error
+	return exaFileUploadAndDownload, err
+}
+
+// GetFileRecordInfoList 分页获取数据
+func GetFileRecordInfoList(limit, offset int, keyword string) (fileLists []ExaFileUploadAndDownload, total int64, err error) {
+
+	db := global.GVA_DB.Model(&ExaFileUploadAndDownload{})
+	if len(keyword) > 0 {
+		db = db.Where("name LIKE ?", "%"+keyword+"%")
+	}
+	err = db.Count(&total).Error
+	if err != nil {
+		return
+	}
+	err = db.Limit(limit).Offset(offset).Order("updated_at desc").Find(&fileLists).Error
+	return fileLists, total, err
+}
+
+// TODO:文件新增
+
+// CreateFile 创建文件
+func (e ExaFileUploadAndDownload) CreateFile() error {
+	return global.GVA_DB.Create(&e).Error
+}
+
+// TODO:文件修改
+
+// EditFileName 编辑文件名或者备注
+func (e ExaFileUploadAndDownload) EditFileName() (fileFromDb ExaFileUploadAndDownload, err error) {
+	err = global.GVA_DB.Where("id = ?", e.ID).First(&fileFromDb).Update("name", e.Name).Error
+	return
+}
+
+// TODO:文件删除
+
+// DeleteFile 删除文件
+func (e ExaFileUploadAndDownload) DeleteFile() error {
+	return global.GVA_DB.Where("id = ?", e.ID).Unscoped().Delete(&e).Error
+}

+ 113 - 0
server/dao/sys_api.go

@@ -0,0 +1,113 @@
+package dao
+
+import (
+	"fmt"
+	"server/global"
+)
+
+type SysApi struct {
+	global.GVA_MODEL
+	Path        string `json:"path" gorm:"comment:api路径"`             // api路径
+	Description string `json:"description" gorm:"comment:api中文描述"`    // api中文描述
+	ApiGroup    string `json:"apiGroup" gorm:"comment:api组"`          // api组
+	Method      string `json:"method" gorm:"default:POST;comment:方法"` // 方法:创建POST(默认)|查看GET|更新PUT|删除DELETE
+}
+
+func (SysApi) TableName() string {
+	return "sys_apis"
+}
+
+// TODO:Api查询
+
+// QueryApiByPathMethod 查询api 按路径和方法
+func QueryApiByPathMethod(path, method string) (sysApi SysApi, err error) {
+	err = global.GVA_DB.Where("path = ? AND method = ?", path, method).First(&sysApi).Error
+	return
+}
+
+// QueryApiById 查询api 按id
+func QueryApiById(id uint) (sysApi SysApi, err error) {
+	err = global.GVA_DB.First(&sysApi, "id = ?", id).Error
+	return
+}
+
+//@author: [piexlmax](https://github.com/piexlmax)
+//@function: GetAPIInfoList
+//@description: 分页获取数据,
+//@param: api model.SysApi, info request.PageInfo, order string, desc bool
+//@return: list interface{}, total int64, err error
+
+func (api SysApi) GetAPIInfoList(limit, offset int, order string, desc bool) (apiList []SysApi, total int64, err error) {
+
+	db := global.GVA_DB.Model(&SysApi{})
+
+	if api.Path != "" {
+		db = db.Where("path LIKE ?", "%"+api.Path+"%")
+	}
+
+	if api.Description != "" {
+		db = db.Where("description LIKE ?", "%"+api.Description+"%")
+	}
+
+	if api.Method != "" {
+		db = db.Where("method = ?", api.Method)
+	}
+
+	if api.ApiGroup != "" {
+		db = db.Where("api_group = ?", api.ApiGroup)
+	}
+
+	err = db.Count(&total).Error
+
+	if err != nil {
+		return apiList, total, err
+	}
+
+	db = db.Limit(limit).Offset(offset)
+	OrderStr := "id desc"
+	if order != "" {
+		orderMap := make(map[string]bool, 5)
+		orderMap["id"] = true
+		orderMap["path"] = true
+		orderMap["api_group"] = true
+		orderMap["description"] = true
+		orderMap["method"] = true
+		if !orderMap[order] {
+			err = fmt.Errorf("非法的排序字段: %v", order)
+			return apiList, total, err
+		}
+		OrderStr = order
+		if desc {
+			OrderStr = order + " desc"
+		}
+	}
+	err = db.Order(OrderStr).Find(&apiList).Error
+	return apiList, total, err
+}
+
+// GetAllApis 查询所有api
+func GetAllApis() (apis []SysApi, err error) {
+	err = global.GVA_DB.Find(&apis).Error
+	return
+}
+
+// TODO:Api新增
+
+// CreateApi 新增api
+func (api SysApi) CreateApi() error {
+	return global.GVA_DB.Create(&api).Error
+}
+
+// TODO:Api修改
+
+// SaveApi 更新api
+func (api SysApi) SaveApi() error {
+	return global.GVA_DB.Save(&api).Error
+}
+
+// TODO:Api删除
+
+// DeleteApi 删除api
+func (api SysApi) DeleteApi() error {
+	return global.GVA_DB.Delete(&api).Error
+}

+ 60 - 0
server/dao/sys_authority.go

@@ -0,0 +1,60 @@
+package dao
+
+import (
+	"server/global"
+	"time"
+)
+
+type SysAuthority struct {
+	CreatedAt       time.Time       // 创建时间
+	UpdatedAt       time.Time       // 更新时间
+	DeletedAt       *time.Time      `sql:"index"`
+	AuthorityId     uint            `json:"authorityId" gorm:"not null;unique;primary_key;comment:角色ID;size:90"` // 角色ID
+	AuthorityName   string          `json:"authorityName" gorm:"comment:角色名"`                                    // 角色名
+	ParentId        *uint           `json:"parentId" gorm:"comment:父角色ID"`                                       // 父角色ID
+	DataAuthorityId []*SysAuthority `json:"dataAuthorityId" gorm:"many2many:sys_data_authority_id;"`
+	Children        []SysAuthority  `json:"children" gorm:"-"`
+	SysBaseMenus    []SysBaseMenu   `json:"menus" gorm:"many2many:sys_authority_menus;"`
+	Users           []SysUser       `json:"-" gorm:"many2many:sys_user_authority;"`
+	DefaultRouter   string          `json:"defaultRouter" gorm:"comment:默认菜单;default:dashboard"` // 默认菜单(默认dashboard)
+}
+
+func (SysAuthority) TableName() string {
+	return "sys_authorities"
+}
+
+// TODO:角色查询
+
+// QueryAuthorityById 查询角色 按id
+func QueryAuthorityById(authorityId uint) (sysAuthority SysAuthority, err error) {
+	err = global.GVA_DB.Where("authority_id = ?", authorityId).First(&sysAuthority).Error
+	return
+}
+
+// GetAuthorityInfoList 分页获取角色列表
+func GetAuthorityInfoList(limit, offset int) (sysAuthority []SysAuthority, total int64, err error) {
+	db := global.GVA_DB.Model(&SysAuthority{})
+	if err = db.Where("parent_id = ?", "0").Count(&total).Error; total == 0 || err != nil {
+		return
+	}
+	var authority []SysAuthority
+	err = db.Limit(limit).Offset(offset).Preload("DataAuthorityId").Where("parent_id = ?", "0").Find(&authority).Error
+
+	return authority, total, err
+}
+
+// GetAuthorityInfo 获取所有角色信息
+func (sa SysAuthority) GetAuthorityInfo() (sysAuthority SysAuthority, err error) {
+	err = global.GVA_DB.Preload("DataAuthorityId").Where("authority_id = ?", sa.AuthorityId).First(&sysAuthority).Error
+	return sysAuthority, err
+}
+
+// TODO:角色新增
+// TODO:角色修改
+
+// UpdateAuthority 修改角色
+func (sa SysAuthority) UpdateAuthority() error {
+	return global.GVA_DB.Model(&SysAuthority{}).Updates(&sa).Error
+}
+
+// TODO:角色删除

+ 62 - 0
server/dao/sys_authority_btn.go

@@ -0,0 +1,62 @@
+package dao
+
+import (
+	"gorm.io/gorm"
+	"server/global"
+)
+
+type SysAuthorityBtn struct {
+	AuthorityId      uint           `gorm:"comment:角色ID"`
+	SysMenuID        uint           `gorm:"comment:菜单ID"`
+	SysBaseMenuBtnID uint           `gorm:"comment:菜单按钮ID"`
+	SysBaseMenuBtn   SysBaseMenuBtn ` gorm:"comment:按钮详情"`
+}
+
+// TODO:按钮查询
+
+// QueryAuthorityBtnAndSysBaseMenuBtnById 查询角色按钮和菜单按钮 按id
+func QueryAuthorityBtnAndSysBaseMenuBtnById(authorityId uint) (btns []SysAuthorityBtn, err error) {
+	err = global.GVA_DB.Where("authority_id = ?", authorityId).Preload("SysBaseMenuBtn").Find(&btns).Error
+	return btns, err
+}
+
+// QueryAuthorityBtnByAuthorityIdMenuId 查询角色按钮 按角色id和菜单id
+func QueryAuthorityBtnByAuthorityIdMenuId(authorityId, sysMenuId uint) (authorityBtn []SysAuthorityBtn, err error) {
+	err = global.GVA_DB.Find(&authorityBtn, "authority_id = ? and sys_menu_id = ?", authorityId, sysMenuId).Error
+	return
+}
+
+// QueryAuthorityBtn 查询角色按钮 按菜单按钮id global.GVA_DB.First(&dao.SysAuthorityBtn{}, "sys_base_menu_btn_id = ?", ID).Error
+func QueryAuthorityBtn(Id string) (sysAuthorityBtn SysAuthorityBtn, err error) {
+	err = global.GVA_DB.Model(&SysAuthorityBtn{}).First(sysAuthorityBtn, "sys_base_menu_btn_id =?", Id).Error
+	return
+}
+
+// TODO:按钮新增
+// TODO:按钮修改
+
+func SetAuthorityBtn(menuId, authorityId uint, selected []uint) (err error) {
+	return global.GVA_DB.Transaction(func(tx *gorm.DB) error {
+		var authorityBtn []SysAuthorityBtn
+		err = tx.Delete(&[]SysAuthorityBtn{}, "authority_id = ? and sys_menu_id = ?", authorityId, menuId).Error
+		if err != nil {
+			return err
+		}
+		for _, v := range selected {
+			authorityBtn = append(authorityBtn, SysAuthorityBtn{
+				AuthorityId:      authorityId,
+				SysMenuID:        menuId,
+				SysBaseMenuBtnID: v,
+			})
+		}
+		if len(authorityBtn) > 0 {
+			err = tx.Create(&authorityBtn).Error
+		}
+		if err != nil {
+			return err
+		}
+		return err
+	})
+}
+
+// TODO:按钮删除

+ 39 - 0
server/dao/sys_authority_menu.go

@@ -0,0 +1,39 @@
+package dao
+
+import "server/global"
+
+type SysMenu struct {
+	SysBaseMenu
+	MenuId      uint                   `json:"menuId" gorm:"comment:菜单ID"`
+	AuthorityId uint                   `json:"-" gorm:"comment:角色ID"`
+	Children    []SysMenu              `json:"children" gorm:"-"`
+	Parameters  []SysBaseMenuParameter `json:"parameters" gorm:"foreignKey:SysBaseMenuID;references:MenuId"`
+	Btns        map[string]uint        `json:"btns" gorm:"-"`
+}
+
+type SysAuthorityMenu struct {
+	MenuId      string `json:"menuId" gorm:"comment:菜单ID;column:sys_base_menu_id"`
+	AuthorityId string `json:"-" gorm:"comment:角色ID;column:sys_authority_authority_id"`
+}
+
+func (s SysAuthorityMenu) TableName() string {
+	return "sys_authority_menus"
+}
+
+// TODO:菜单查询
+
+// QueryAuthorityMenuByAuthorityId 查询角色菜单 按角色id
+func QueryAuthorityMenuByAuthorityId(authorityId uint) (SysAuthorityMenus []SysAuthorityMenu, err error) {
+	err = global.GVA_DB.Where("sys_authority_authority_id = ?", authorityId).Find(&SysAuthorityMenus).Error
+	return SysAuthorityMenus, err
+}
+
+// QuerySysBaseMenuIdById 查询菜单id 按角色id
+func QuerySysBaseMenuIdById(authorityId uint) (menuIds []string, err error) {
+	err = global.GVA_DB.Model(&SysAuthorityMenu{}).Where("sys_authority_authority_id = ?", authorityId).Pluck("sys_base_menu_id", &menuIds).Error
+	return
+}
+
+// TODO:菜单新增
+// TODO:菜单修改
+// TODO:菜单删除

+ 139 - 0
server/dao/sys_base_menu.go

@@ -0,0 +1,139 @@
+package dao
+
+import (
+	"errors"
+	"gorm.io/gorm"
+	"server/global"
+)
+
+type SysBaseMenu struct {
+	global.GVA_MODEL
+	MenuLevel     uint                                       `json:"-"`
+	ParentId      uint                                       `json:"parentId" gorm:"comment:父菜单ID"`     // 父菜单ID
+	Path          string                                     `json:"path" gorm:"comment:路由path"`        // 路由path
+	Name          string                                     `json:"name" gorm:"comment:路由name"`        // 路由name
+	Hidden        bool                                       `json:"hidden" gorm:"comment:是否在列表隐藏"`     // 是否在列表隐藏
+	Component     string                                     `json:"component" gorm:"comment:对应前端文件路径"` // 对应前端文件路径
+	Sort          int                                        `json:"sort" gorm:"comment:排序标记"`          // 排序标记
+	Meta          `json:"meta" gorm:"embedded;comment:附加属性"` // 附加属性
+	SysAuthoritys []SysAuthority                             `json:"authoritys" gorm:"many2many:sys_authority_menus;"`
+	Children      []SysBaseMenu                              `json:"children" gorm:"-"`
+	Parameters    []SysBaseMenuParameter                     `json:"parameters"`
+	MenuBtn       []SysBaseMenuBtn                           `json:"menuBtn"`
+}
+
+type Meta struct {
+	ActiveName  string `json:"activeName" gorm:"comment:高亮菜单"`
+	KeepAlive   bool   `json:"keepAlive" gorm:"comment:是否缓存"`           // 是否缓存
+	DefaultMenu bool   `json:"defaultMenu" gorm:"comment:是否是基础路由(开发中)"` // 是否是基础路由(开发中)
+	Title       string `json:"title" gorm:"comment:菜单名"`                // 菜单名
+	Icon        string `json:"icon" gorm:"comment:菜单图标"`                // 菜单图标
+	CloseTab    bool   `json:"closeTab" gorm:"comment:自动关闭tab"`         // 自动关闭tab
+}
+
+type SysBaseMenuParameter struct {
+	global.GVA_MODEL
+	SysBaseMenuID uint
+	Type          string `json:"type" gorm:"comment:地址栏携带参数为params还是query"` // 地址栏携带参数为params还是query
+	Key           string `json:"key" gorm:"comment:地址栏携带参数的key"`            // 地址栏携带参数的key
+	Value         string `json:"value" gorm:"comment:地址栏携带参数的值"`            // 地址栏携带参数的值
+}
+
+func (SysBaseMenu) TableName() string {
+	return "sys_base_menus"
+}
+
+// TODO:菜单查询
+
+// QueryBaseMenuAndParametersByMenuId 查询菜单和参数 按菜单id
+func QueryBaseMenuAndParametersByMenuId(menuIds []string) (baseMenu []SysBaseMenu, err error) {
+	err = global.GVA_DB.Where("id in (?)", menuIds).Order("sort").Preload("Parameters").Find(&baseMenu).Error
+	return
+}
+
+// QueryBaseMenuByName 查询菜单 按名字
+func QueryBaseMenuByName(name string) (baseMenu SysBaseMenu, err error) {
+	err = global.GVA_DB.Where("name = ?", name).First(&baseMenu).Error
+	return
+}
+
+// QueryBaseMenuAndMenuBtnAndParameters 查询菜单和菜单按钮和参数
+func QueryBaseMenuAndMenuBtnAndParameters() (allMenus []SysBaseMenu, err error) {
+	err = global.GVA_DB.Order("sort").Preload("MenuBtn").Preload("Parameters").Find(&allMenus).Error
+	return
+}
+
+// QueryBaseMenuByIdAndDefaultRouter 查询菜单 按菜单id和默认路由
+func QueryBaseMenuByIdAndDefaultRouter(defaultRouter string, menuIds []string) (allMenus []SysBaseMenu, err error) {
+	err = global.GVA_DB.First(&allMenus, "name = ? and id in (?)", defaultRouter, menuIds).Error
+	return
+}
+
+func QueryBaseMenuAndMenuBtnAndParameterById(id int) (menu SysBaseMenu, err error) {
+	err = global.GVA_DB.Preload("MenuBtn").Preload("Parameters").Where("id = ?", id).First(&menu).Error
+	return
+}
+
+// TODO:菜单新增
+
+// CreateBaseMenu 创建菜单
+func (bm SysBaseMenu) CreateBaseMenu() error {
+	return global.GVA_DB.Create(&bm).Error
+}
+
+// TODO:菜单修改
+
+func (bm SysBaseMenu) UpdateBaseMenu() (err error) {
+	var oldMenu SysBaseMenu
+
+	err = global.GVA_DB.Transaction(func(tx *gorm.DB) error {
+		tx.Where("id = ?", bm.ID).Find(&oldMenu)
+		if oldMenu.Name != bm.Name {
+			if !errors.Is(tx.Where("id <> ? AND name = ?", bm.ID, bm.Name).First(&SysBaseMenu{}).Error, gorm.ErrRecordNotFound) {
+				global.GVA_LOG.Debug("存在相同name修改失败")
+				return errors.New("存在相同name修改失败")
+			}
+		}
+		txErr := tx.Unscoped().Delete(&SysBaseMenuParameter{}, "sys_base_menu_id = ?", bm.ID).Error
+		if txErr != nil {
+			global.GVA_LOG.Debug(txErr.Error())
+			return txErr
+		}
+		txErr = tx.Unscoped().Delete(&SysBaseMenuBtn{}, "sys_base_menu_id = ?", bm.ID).Error
+		if txErr != nil {
+			global.GVA_LOG.Debug(txErr.Error())
+			return txErr
+		}
+		if len(bm.Parameters) > 0 {
+			for k := range bm.Parameters {
+				bm.Parameters[k].SysBaseMenuID = bm.ID
+			}
+			txErr = tx.Create(&bm.Parameters).Error
+			if txErr != nil {
+				global.GVA_LOG.Debug(txErr.Error())
+				return txErr
+			}
+		}
+
+		if len(bm.MenuBtn) > 0 {
+			for k := range bm.MenuBtn {
+				bm.MenuBtn[k].SysBaseMenuID = bm.ID
+			}
+			txErr = tx.Create(&bm.MenuBtn).Error
+			if txErr != nil {
+				global.GVA_LOG.Debug(txErr.Error())
+				return txErr
+			}
+		}
+
+		txErr = tx.Model(&oldMenu).Updates(bm).Error
+		if txErr != nil {
+			global.GVA_LOG.Debug(txErr.Error())
+			return txErr
+		}
+		return nil
+	})
+	return err
+}
+
+// TODO:菜单删除

+ 70 - 0
server/dao/sys_dictionary.go

@@ -0,0 +1,70 @@
+// 自动生成模板SysDictionary
+package dao
+
+import (
+	"gorm.io/gorm"
+	"server/global"
+)
+
+// SysDictionary 如果含有time.Time 请自行import time包
+type SysDictionary struct {
+	global.GVA_MODEL
+	Name                 string                `json:"name" form:"name" gorm:"column:name;comment:字典名(中)"`   // 字典名(中)
+	Type                 string                `json:"type" form:"type" gorm:"column:type;comment:字典名(英)"`   // 字典名(英)
+	Status               *bool                 `json:"status" form:"status" gorm:"column:status;comment:状态"` // 状态
+	Desc                 string                `json:"desc" form:"desc" gorm:"column:desc;comment:描述"`       // 描述
+	SysDictionaryDetails []SysDictionaryDetail `json:"sysDictionaryDetails" form:"sysDictionaryDetails"`
+}
+
+func (SysDictionary) TableName() string {
+	return "sys_dictionaries"
+}
+
+// TODO:字典查询
+
+// QueryDictionaryByType 查询字典 按类型
+func QueryDictionaryByType(t string) (sysDictionary SysDictionary, err error) {
+	err = global.GVA_DB.First(&SysDictionary{}, "type = ?", t).Error
+	return sysDictionary, err
+}
+
+// QueryDictionaryAndDetailsById 查询字典和详情 按字典id
+func QueryDictionaryAndDetailsById(id uint) (sysDictionary SysDictionary, err error) {
+	err = global.GVA_DB.Where("id =?", id).Preload("SysDictionaryDetails").First(&sysDictionary).Error
+	return sysDictionary, err
+}
+
+// GetSysDictionary 根据id或者type获取字典单条数据
+func GetSysDictionary(Type string, Id uint, flag bool) (sysDictionary SysDictionary, err error) {
+	err = global.GVA_DB.Where("(type = ? OR id = ?) and status = ?", Type, Id, flag).Preload("SysDictionaryDetails", func(db *gorm.DB) *gorm.DB {
+		return db.Where("status = ?", true).Order("sort")
+	}).First(&sysDictionary).Error
+	return
+}
+
+// GetSysDictionaryInfoList 分页获取字典列表
+func GetSysDictionaryInfoList() (sysDictionaries []SysDictionary, err error) {
+	err = global.GVA_DB.Find(&sysDictionaries).Error
+	return
+}
+
+// TODO:字典新增
+
+// CreateDictionary 创建字典
+func (sd SysDictionary) CreateDictionary() error {
+	return global.GVA_DB.Create(&sd).Error
+}
+
+// TODO:字典修改
+
+// UpdateDictionary 修改字典
+func (sd SysDictionary) UpdateDictionary() error {
+	return global.GVA_DB.Model(&SysDictionary{}).Updates(&sd).Error
+}
+
+// TODO:字典删除
+
+// DeleteDictionary 删除字典
+func (sd SysDictionary) DeleteDictionary() error {
+	return global.GVA_DB.Delete(&sd).Error
+}

+ 101 - 0
server/dao/sys_dictionary_detail.go

@@ -0,0 +1,101 @@
+// 自动生成模板SysDictionaryDetail
+package dao
+
+import (
+	"server/global"
+)
+
+// 如果含有time.Time 请自行import time包
+type SysDictionaryDetail struct {
+	global.GVA_MODEL
+	Label           string `json:"label" form:"label" gorm:"column:label;comment:展示值"`                                  // 展示值
+	Value           string `json:"value" form:"value" gorm:"column:value;comment:字典值"`                                  // 字典值
+	Extend          string `json:"extend" form:"extend" gorm:"column:extend;comment:扩展值"`                               // 扩展值
+	Status          *bool  `json:"status" form:"status" gorm:"column:status;comment:启用状态"`                              // 启用状态
+	Sort            int    `json:"sort" form:"sort" gorm:"column:sort;comment:排序标记"`                                    // 排序标记
+	SysDictionaryID int    `json:"sysDictionaryID" form:"sysDictionaryID" gorm:"column:sys_dictionary_id;comment:关联标记"` // 关联标记
+}
+
+func (SysDictionaryDetail) TableName() string {
+	return "sys_dictionary_details"
+}
+
+// TODO:字典详情查询
+
+// GetSysDictionaryDetailById 查询字典详情 按id
+func GetSysDictionaryDetailById(id uint) (sysDictionaryDetail SysDictionaryDetail, err error) {
+	err = global.GVA_DB.Where("id = ?", id).First(&sysDictionaryDetail).Error
+	return sysDictionaryDetail, err
+}
+
+// GetSysDictionaryDetailInfoList 分页获取字典详情列表
+func (sdd SysDictionaryDetail) GetSysDictionaryDetailInfoList(limit, offset int) (sysDictionaryDetails []SysDictionaryDetail, total int64, err error) {
+	// 创建db
+	db := global.GVA_DB.Model(&SysDictionaryDetail{})
+	// 如果有条件搜索 下方会自动创建搜索语句
+	if sdd.Label != "" {
+		db = db.Where("label LIKE ?", "%"+sdd.Label+"%")
+	}
+	if sdd.Value != "" {
+		db = db.Where("value = ?", sdd.Value)
+	}
+	if sdd.Status != nil {
+		db = db.Where("status = ?", sdd.Status)
+	}
+	if sdd.SysDictionaryID != 0 {
+		db = db.Where("sys_dictionary_id = ?", sdd.SysDictionaryID)
+	}
+	err = db.Count(&total).Error
+	if err != nil {
+		return
+	}
+	err = db.Limit(limit).Offset(offset).Order("sort").Find(&sysDictionaryDetails).Error
+	return sysDictionaryDetails, total, err
+}
+
+// GetDictionaryListByDictionaryId 查询字典列表 按字典id
+func GetDictionaryListByDictionaryId(dictionaryID uint) (sysDictionaryDetails []SysDictionaryDetail, err error) {
+	err = global.GVA_DB.Find(&sysDictionaryDetails, "sys_dictionary_id = ?", dictionaryID).Error
+	return sysDictionaryDetails, err
+}
+
+// GetDictionaryListByType 查询字典列表 按字典类型
+func GetDictionaryListByType(t string) (sysDictionaryDetails []SysDictionaryDetail, err error) {
+	db := global.GVA_DB.Model(&SysDictionaryDetail{}).Joins("JOIN sys_dictionaries ON sys_dictionaries.id = sys_dictionary_details.sys_dictionary_id")
+	err = db.Debug().Find(&sysDictionaryDetails, "type = ?", t).Error
+	return sysDictionaryDetails, err
+}
+
+// GetDictionaryInfoByValue 查询字典列表 按字典内容
+func GetDictionaryInfoByValue(dictionaryID uint, value uint) (sysDictionaryDetail SysDictionaryDetail, err error) {
+	err = global.GVA_DB.First(&sysDictionaryDetail, "sys_dictionary_id = ? and value = ?", dictionaryID, value).Error
+	return sysDictionaryDetail, err
+}
+
+// GetDictionaryInfoByTypeValue 查询字典列表 按字典类型和字典内容
+func GetDictionaryInfoByTypeValue(t string, value uint) (sysDictionaryDetail SysDictionaryDetail, err error) {
+	db := global.GVA_DB.Model(&SysDictionaryDetail{}).Joins("JOIN sys_dictionaries ON sys_dictionaries.id = sys_dictionary_details.sys_dictionary_id")
+	err = db.First(&sysDictionaryDetail, "sys_dictionaries.type = ? and sys_dictionary_details.value = ?", t, value).Error
+	return sysDictionaryDetail, err
+}
+
+// TODO:字典详情新增
+
+// CreateSysDictionaryDetail 创建字典详情数据
+func (sdd SysDictionaryDetail) CreateSysDictionaryDetail() error {
+	return global.GVA_DB.Create(&sdd).Error
+}
+
+// TODO:字典详情修改
+
+// UpdateSysDictionaryDetail 更新字典数据
+func (sdd SysDictionaryDetail) UpdateSysDictionaryDetail() error {
+	return global.GVA_DB.Save(&sdd).Error
+}
+
+// TODO:字典详情删除
+
+// DeleteSysDictionaryDetail 删除字典详情
+func (sdd SysDictionaryDetail) DeleteSysDictionaryDetail() error {
+	return global.GVA_DB.Delete(&sdd).Error
+}

+ 21 - 0
server/dao/sys_jwt_blacklist.go

@@ -0,0 +1,21 @@
+package dao
+
+import (
+	"server/global"
+)
+
+type JwtBlacklist struct {
+	global.GVA_MODEL
+	Jwt string `gorm:"type:text;comment:jwt"`
+}
+
+// TODO:JwtBlack查询
+// TODO:JwtBlack新增
+
+// CreateJwtBlack 创建jwt黑名单
+func (jbl JwtBlacklist) CreateJwtBlack() error {
+	return global.GVA_DB.Create(&jbl).Error
+}
+
+// TODO:JwtBlack修改
+// TODO:JwtBlack删除

+ 2 - 2
server/model/system/sys_menu_btn.go

@@ -1,6 +1,6 @@
-package system
+package dao
 
-import "github.com/flipped-aurora/gin-vue-admin/server/global"
+import "server/global"
 
 type SysBaseMenuBtn struct {
 	global.GVA_MODEL

+ 76 - 0
server/dao/sys_operation_record.go

@@ -0,0 +1,76 @@
+// 自动生成模板SysOperationRecord
+package dao
+
+import (
+	"time"
+
+	"server/global"
+)
+
+// 如果含有time.Time 请自行import time包
+type SysOperationRecord struct {
+	global.GVA_MODEL
+	Ip           string        `json:"ip" form:"ip" gorm:"column:ip;comment:请求ip"`                                   // 请求ip
+	Method       string        `json:"method" form:"method" gorm:"column:method;comment:请求方法"`                       // 请求方法
+	Path         string        `json:"path" form:"path" gorm:"column:path;comment:请求路径"`                             // 请求路径
+	Status       int           `json:"status" form:"status" gorm:"column:status;comment:请求状态"`                       // 请求状态
+	Latency      time.Duration `json:"latency" form:"latency" gorm:"column:latency;comment:延迟" swaggertype:"string"` // 延迟
+	Agent        string        `json:"agent" form:"agent" gorm:"type:text;column:agent;comment:代理"`                  // 代理
+	ErrorMessage string        `json:"error_message" form:"error_message" gorm:"column:error_message;comment:错误信息"`  // 错误信息
+	Body         string        `json:"body" form:"body" gorm:"type:text;column:body;comment:请求Body"`                 // 请求Body
+	Resp         string        `json:"resp" form:"resp" gorm:"type:text;column:resp;comment:响应Body"`                 // 响应Body
+	UserID       int           `json:"user_id" form:"user_id" gorm:"column:user_id;comment:用户id"`                    // 用户id
+	User         SysUser       `json:"user"`
+}
+
+// TODO:操作查询
+
+// GetSysOperationRecord 根据id获取单条操作记录
+func GetSysOperationRecord(id uint) (sysOperationRecord SysOperationRecord, err error) {
+	err = global.GVA_DB.Where("id = ?", id).First(&sysOperationRecord).Error
+	return
+}
+
+// GetSysOperationRecordInfoList 分页获取操作记录列表
+func (sor SysOperationRecord) GetSysOperationRecordInfoList(limit, offset int) (sysOperationRecords []SysOperationRecord, total int64, err error) {
+	// 创建db
+	db := global.GVA_DB.Model(&SysOperationRecord{})
+	// 如果有条件搜索 下方会自动创建搜索语句
+	if sor.Method != "" {
+		db = db.Where("method = ?", sor.Method)
+	}
+	if sor.Path != "" {
+		db = db.Where("path LIKE ?", "%"+sor.Path+"%")
+	}
+	if sor.Status != 0 {
+		db = db.Where("status = ?", sor.Status)
+	}
+	err = db.Count(&total).Error
+	if err != nil {
+		return
+	}
+	err = db.Order("id desc").Limit(limit).Offset(offset).Preload("User").Find(&sysOperationRecords).Error
+	return sysOperationRecords, total, err
+}
+
+// TODO:操作新增
+
+func (sor SysOperationRecord) CreateSysOperationRecord() error {
+	return global.GVA_DB.Create(&sor).Error
+}
+
+// TODO:操作修改
+
+// TODO:操作删除
+
+// DeleteSysOperationRecordByIds 删除操作记录按id
+func DeleteSysOperationRecordByIds(ids []int) (err error) {
+	err = global.GVA_DB.Delete(&[]SysOperationRecord{}, "id in (?)", ids).Error
+	return err
+}
+
+// DeleteSysOperationRecord 删除操作记录
+func (sor SysOperationRecord) DeleteSysOperationRecord() (err error) {
+	err = global.GVA_DB.Delete(&sor).Error
+	return err
+}

+ 155 - 0
server/dao/sys_user.go

@@ -0,0 +1,155 @@
+package dao
+
+import (
+	"errors"
+	"github.com/gofrs/uuid/v5"
+	"gorm.io/gorm"
+	"server/global"
+)
+
+type SysUser struct {
+	global.GVA_MODEL
+	UUID        uuid.UUID    `json:"uuid" gorm:"index;comment:用户UUID"`                                                     // 用户UUID
+	Username    string       `json:"userName" gorm:"index;comment:用户登录名"`                                                  // 用户登录名
+	Password    string       `json:"-"  gorm:"comment:用户登录密码"`                                                             // 用户登录密码
+	NickName    string       `json:"nickName" gorm:"default:系统用户;comment:用户昵称"`                                            // 用户昵称
+	SideMode    string       `json:"sideMode" gorm:"default:dark;comment:用户侧边主题"`                                          // 用户侧边主题
+	HeaderImg   string       `json:"headerImg" gorm:"default:https://qmplusimg.henrongyi.top/gva_header.jpg;comment:用户头像"` // 用户头像
+	BaseColor   string       `json:"baseColor" gorm:"default:#fff;comment:基础颜色"`                                           // 基础颜色
+	ActiveColor string       `json:"activeColor" gorm:"default:#1890ff;comment:活跃颜色"`                                      // 活跃颜色
+	AuthorityId uint         `json:"authorityId" gorm:"default:888;comment:用户角色ID"`                                        // 用户角色ID
+	Authority   SysAuthority `json:"authority" gorm:"foreignKey:AuthorityId;references:AuthorityId;comment:用户角色"`
+	Phone       string       `json:"phone"  gorm:"comment:用户手机号"`                     // 用户手机号
+	Email       string       `json:"email"  gorm:"comment:用户邮箱"`                      // 用户邮箱
+	Enable      int          `json:"enable" gorm:"default:1;comment:用户是否被冻结 1正常 2冻结"` //用户是否被冻结 1正常 2冻结
+}
+
+func (SysUser) TableName() string {
+	return "sys_users"
+}
+
+// TODO:查询
+// TODO:新增
+// TODO:修改
+// TODO:删除
+
+// TODO: 用户查询
+
+// QueryUserByUserName  按用户名查询用户
+func QueryUserByUserName(userName string) (SysUser, error) {
+	var user SysUser
+	err := global.GVA_DB.Where("username =?", userName).First(&user).Error
+	return user, err
+}
+
+// QueryUserByUserId  按用户Id查询用户
+func QueryUserByUserId(id uint) (SysUser, error) {
+	var user SysUser
+	err := global.GVA_DB.Where("id =?", id).First(&user).Error
+	return user, err
+}
+
+// QueryUserAndAuthorityByUserName 按用户名查询用户和角色
+func QueryUserAndAuthorityByUserName(userName string) (user SysUser, err error) {
+	err = global.GVA_DB.Where("username = ?", userName).Preload("Authority").First(&user).Error
+	return
+}
+
+// QueryUserInfoList 条件查询用户信息列表
+func QueryUserInfoList(limit, offset int) (userList []SysUser, total int64, err error) {
+	db := global.GVA_DB.Model(&SysUser{})
+	err = db.Count(&total).Error
+	if err != nil {
+		return
+	}
+	err = db.Limit(limit).Offset(offset).Preload("Authority").Find(&userList).Error
+	return
+}
+
+// QueryUserAuthority 查询用户角色
+func QueryUserAuthority(id, authorityId uint) (authority SysAuthority, err error) {
+	err = global.GVA_DB.Where("sys_user_id = ? AND sys_authority_authority_id = ?", id, authorityId).First(&authority).Error
+	return
+}
+
+// GetUserInfoByUUID 获取用户信息 按UUID
+func GetUserInfoByUUID(uuid uuid.UUID) (user SysUser, err error) {
+	err = global.GVA_DB.Preload("Authority").First(&user, "uuid = ?", uuid).Error
+	return user, err
+}
+
+// TODO: 用户新增
+
+// CreateUser 创建用户
+func (u SysUser) CreateUser() error {
+	return global.GVA_DB.Create(&u).Error
+}
+
+// TODO: 用户修改
+
+// UpdateUser 修改用户
+func (u SysUser) UpdateUser() error {
+	return global.GVA_DB.Save(&u).Error
+}
+
+// UpdateUserAuthority 修改用户权限
+func UpdateUserAuthority(id, authorityId uint) error {
+	return global.GVA_DB.Model(&SysUser{}).Where("id = ?", id).Update("authority_id", authorityId).Error
+}
+
+// SetUserAuthorities 设置用户权限
+func SetUserAuthorities(id uint, authorityId uint) (err error) {
+	return global.GVA_DB.Transaction(func(tx *gorm.DB) error {
+		var user SysUser
+		TxErr := tx.Where("id = ?", id).First(&user).Error
+		if TxErr != nil {
+			global.GVA_LOG.Debug(TxErr.Error())
+			return errors.New("查询用户数据失败")
+		}
+		TxErr = tx.Delete(&[]SysUserAuthority{}, "sys_user_id = ?", id).Error
+		if TxErr != nil {
+			return TxErr
+		}
+
+		useAuthority := SysUserAuthority{
+			SysUserId: id, SysAuthorityAuthorityId: authorityId,
+		}
+		TxErr = tx.Create(&useAuthority).Error
+		if TxErr != nil {
+			return TxErr
+		}
+		TxErr = tx.Model(&user).Update("authority_id", authorityId).Error
+		if TxErr != nil {
+			return TxErr
+		}
+		// 返回 nil 提交事务
+		return nil
+	})
+}
+
+// SetUserInfo 修改用户信息
+func (u SysUser) SetUserInfo() error {
+	return global.GVA_DB.Model(&SysUser{}).Updates(&u).Error
+}
+
+// SetUserInfoById 修改用户信息 按id
+func (u SysUser) SetUserInfoById() error {
+	return global.GVA_DB.Model(&SysUser{}).
+		Where("id=?", u.ID).
+		Updates(&u).Error
+}
+
+// TODO: 用户删除
+
+// DeleteUser 删除用户
+func DeleteUser(id int) (err error) {
+	return global.GVA_DB.Transaction(func(tx *gorm.DB) error {
+		if err := tx.Where("id = ?", id).Delete(&SysUser{}).Error; err != nil {
+			return err
+		}
+		if err := tx.Delete(&[]SysUserAuthority{}, "sys_user_id = ?", id).Error; err != nil {
+			return err
+		}
+		return nil
+	})
+}

+ 1 - 1
server/model/system/sys_user_authority.go

@@ -1,4 +1,4 @@
-package system
+package dao
 
 // SysUserAuthority 是 sysUser 和 sysAuthority 的连接表
 type SysUserAuthority struct {

+ 2 - 2
server/global/global.go

@@ -4,14 +4,14 @@ import (
 	"github.com/qiniu/qmgo"
 	"sync"
 
-	"github.com/flipped-aurora/gin-vue-admin/server/utils/timer"
 	"github.com/songzhibin97/gkit/cache/local_cache"
+	"server/utils/timer"
 
 	"golang.org/x/sync/singleflight"
 
 	"go.uber.org/zap"
 
-	"github.com/flipped-aurora/gin-vue-admin/server/config"
+	"server/config"
 
 	"github.com/redis/go-redis/v9"
 	"github.com/spf13/viper"

+ 1 - 1
server/go.mod

@@ -1,4 +1,4 @@
-module github.com/flipped-aurora/gin-vue-admin/server
+module server
 
 go 1.22
 

+ 2 - 2
server/initialize/db_list.go

@@ -1,9 +1,9 @@
 package initialize
 
 import (
-	"github.com/flipped-aurora/gin-vue-admin/server/config"
-	"github.com/flipped-aurora/gin-vue-admin/server/global"
 	"gorm.io/gorm"
+	"server/config"
+	"server/global"
 )
 
 const sys = "system"

+ 0 - 105
server/initialize/ensure_tables.go

@@ -1,105 +0,0 @@
-package initialize
-
-import (
-	"context"
-	adapter "github.com/casbin/gorm-adapter/v3"
-	"github.com/flipped-aurora/gin-vue-admin/server/model/example"
-	sysModel "github.com/flipped-aurora/gin-vue-admin/server/model/system"
-	"github.com/flipped-aurora/gin-vue-admin/server/service/system"
-	"gorm.io/gorm"
-)
-
-const initOrderEnsureTables = system.InitOrderExternal - 1
-
-type ensureTables struct{}
-
-// auto run
-func init() {
-	system.RegisterInit(initOrderEnsureTables, &ensureTables{})
-}
-
-func (ensureTables) InitializerName() string {
-	return "ensure_tables_created"
-}
-func (e *ensureTables) InitializeData(ctx context.Context) (next context.Context, err error) {
-	return ctx, nil
-}
-
-func (e *ensureTables) DataInserted(ctx context.Context) bool {
-	return true
-}
-
-func (e *ensureTables) MigrateTable(ctx context.Context) (context.Context, error) {
-	db, ok := ctx.Value("db").(*gorm.DB)
-	if !ok {
-		return ctx, system.ErrMissingDBContext
-	}
-	tables := []interface{}{
-		sysModel.SysApi{},
-		sysModel.SysUser{},
-		sysModel.SysBaseMenu{},
-		sysModel.SysAuthority{},
-		sysModel.JwtBlacklist{},
-		sysModel.SysDictionary{},
-		sysModel.SysAutoCodeHistory{},
-		sysModel.SysOperationRecord{},
-		sysModel.SysDictionaryDetail{},
-		sysModel.SysBaseMenuParameter{},
-		sysModel.SysBaseMenuBtn{},
-		sysModel.SysAuthorityBtn{},
-		sysModel.SysAutoCode{},
-		sysModel.SysExportTemplate{},
-		sysModel.Condition{},
-		sysModel.JoinTemplate{},
-
-		adapter.CasbinRule{},
-
-		example.ExaFile{},
-		example.ExaCustomer{},
-		example.ExaFileChunk{},
-		example.ExaFileUploadAndDownload{},
-	}
-	for _, t := range tables {
-		_ = db.AutoMigrate(&t)
-		// 视图 authority_menu 会被当成表来创建,引发冲突错误(更新版本的gorm似乎不会)
-		// 由于 AutoMigrate() 基本无需考虑错误,因此显式忽略
-	}
-	return ctx, nil
-}
-
-func (e *ensureTables) TableCreated(ctx context.Context) bool {
-	db, ok := ctx.Value("db").(*gorm.DB)
-	if !ok {
-		return false
-	}
-	tables := []interface{}{
-		sysModel.SysApi{},
-		sysModel.SysUser{},
-		sysModel.SysBaseMenu{},
-		sysModel.SysAuthority{},
-		sysModel.JwtBlacklist{},
-		sysModel.SysDictionary{},
-		sysModel.SysAutoCodeHistory{},
-		sysModel.SysOperationRecord{},
-		sysModel.SysDictionaryDetail{},
-		sysModel.SysBaseMenuParameter{},
-		sysModel.SysBaseMenuBtn{},
-		sysModel.SysAuthorityBtn{},
-		sysModel.SysAutoCode{},
-		sysModel.SysExportTemplate{},
-		sysModel.Condition{},
-		sysModel.JoinTemplate{},
-
-		adapter.CasbinRule{},
-
-		example.ExaFile{},
-		example.ExaCustomer{},
-		example.ExaFileChunk{},
-		example.ExaFileUploadAndDownload{},
-	}
-	yes := true
-	for _, t := range tables {
-		yes = yes && db.Migrator().HasTable(t)
-	}
-	return yes
-}

+ 15 - 22
server/initialize/gorm.go

@@ -2,13 +2,12 @@ package initialize
 
 import (
 	"os"
-
-	"github.com/flipped-aurora/gin-vue-admin/server/global"
-	"github.com/flipped-aurora/gin-vue-admin/server/model/example"
-	"github.com/flipped-aurora/gin-vue-admin/server/model/system"
+	"server/dao"
 
 	"go.uber.org/zap"
 	"gorm.io/gorm"
+	"server/global"
+	"server/model/example"
 )
 
 func Gorm() *gorm.DB {
@@ -32,27 +31,21 @@ func RegisterTables() {
 	db := global.GVA_DB
 	err := db.AutoMigrate(
 
-		system.SysApi{},
-		system.SysUser{},
-		system.SysBaseMenu{},
-		system.JwtBlacklist{},
-		system.SysAuthority{},
-		system.SysDictionary{},
-		system.SysOperationRecord{},
-		system.SysAutoCodeHistory{},
-		system.SysDictionaryDetail{},
-		system.SysBaseMenuParameter{},
-		system.SysBaseMenuBtn{},
-		system.SysAuthorityBtn{},
-		system.SysAutoCode{},
-		system.SysExportTemplate{},
-		system.Condition{},
-		system.JoinTemplate{},
+		dao.SysApi{},
+		dao.SysUser{},
+		dao.SysBaseMenu{},
+		dao.JwtBlacklist{},
+		dao.SysAuthority{},
+		dao.SysDictionary{},
+		dao.SysOperationRecord{},
+		dao.SysDictionaryDetail{},
+		dao.SysBaseMenuParameter{},
+		dao.SysBaseMenuBtn{},
+		dao.SysAuthorityBtn{},
 
 		example.ExaFile{},
-		example.ExaCustomer{},
 		example.ExaFileChunk{},
-		example.ExaFileUploadAndDownload{},
+		dao.ExaFileUploadAndDownload{},
 	)
 	if err != nil {
 		global.GVA_LOG.Error("register table failed", zap.Error(err))

+ 5 - 5
server/initialize/gorm_mssql.go

@@ -9,11 +9,11 @@
 package initialize
 
 import (
-	"github.com/flipped-aurora/gin-vue-admin/server/config"
-	"github.com/flipped-aurora/gin-vue-admin/server/global"
-	"github.com/flipped-aurora/gin-vue-admin/server/initialize/internal"
 	"gorm.io/driver/sqlserver"
 	"gorm.io/gorm"
+	"server/config"
+	"server/global"
+	"server/initialize/internal"
 )
 
 // GormMssql 初始化Mssql数据库
@@ -44,8 +44,8 @@ func GormMssqlByConfig(m config.Mssql) *gorm.DB {
 		return nil
 	}
 	mssqlConfig := sqlserver.Config{
-		DSN:                       m.Dsn(), // DSN data source name
-		DefaultStringSize:         191,     // string 类型字段的默认长度
+		DSN:               m.Dsn(), // DSN data source name
+		DefaultStringSize: 191,     // string 类型字段的默认长度
 	}
 	if db, err := gorm.Open(sqlserver.New(mssqlConfig), internal.Gorm.Config(m.Prefix, m.Singular)); err != nil {
 		panic(err)

+ 3 - 3
server/initialize/gorm_mysql.go

@@ -1,12 +1,12 @@
 package initialize
 
 import (
-	"github.com/flipped-aurora/gin-vue-admin/server/config"
-	"github.com/flipped-aurora/gin-vue-admin/server/global"
-	"github.com/flipped-aurora/gin-vue-admin/server/initialize/internal"
 	_ "github.com/go-sql-driver/mysql"
 	"gorm.io/driver/mysql"
 	"gorm.io/gorm"
+	"server/config"
+	"server/global"
+	"server/initialize/internal"
 )
 
 // GormMysql 初始化Mysql数据库

+ 3 - 3
server/initialize/gorm_oracle.go

@@ -2,9 +2,9 @@ package initialize
 
 import (
 	//"github.com/dzwvip/oracle"
-	"github.com/flipped-aurora/gin-vue-admin/server/config"
-	"github.com/flipped-aurora/gin-vue-admin/server/global"
-	"github.com/flipped-aurora/gin-vue-admin/server/initialize/internal"
+	"server/config"
+	"server/global"
+	"server/initialize/internal"
 
 	//_ "github.com/godror/godror"
 	"gorm.io/driver/mysql"

+ 3 - 3
server/initialize/gorm_pgsql.go

@@ -1,11 +1,11 @@
 package initialize
 
 import (
-	"github.com/flipped-aurora/gin-vue-admin/server/config"
-	"github.com/flipped-aurora/gin-vue-admin/server/global"
-	"github.com/flipped-aurora/gin-vue-admin/server/initialize/internal"
 	"gorm.io/driver/postgres"
 	"gorm.io/gorm"
+	"server/config"
+	"server/global"
+	"server/initialize/internal"
 )
 
 // GormPgSql 初始化 Postgresql 数据库

+ 3 - 3
server/initialize/gorm_sqlite.go

@@ -1,11 +1,11 @@
 package initialize
 
 import (
-	"github.com/flipped-aurora/gin-vue-admin/server/config"
-	"github.com/flipped-aurora/gin-vue-admin/server/global"
-	"github.com/flipped-aurora/gin-vue-admin/server/initialize/internal"
 	"github.com/glebarez/sqlite"
 	"gorm.io/gorm"
+	"server/config"
+	"server/global"
+	"server/initialize/internal"
 )
 
 // GormSqlite 初始化Sqlite数据库

+ 1 - 1
server/initialize/internal/gorm.go

@@ -6,9 +6,9 @@ import (
 	"os"
 	"time"
 
-	"github.com/flipped-aurora/gin-vue-admin/server/global"
 	"gorm.io/gorm"
 	"gorm.io/gorm/logger"
+	"server/global"
 )
 
 type DBBASE interface {

+ 1 - 1
server/initialize/internal/logger.go

@@ -3,8 +3,8 @@ package internal
 import (
 	"fmt"
 
-	"github.com/flipped-aurora/gin-vue-admin/server/global"
 	"gorm.io/gorm/logger"
+	"server/global"
 )
 
 type writer struct {

+ 3 - 3
server/initialize/mongo.go

@@ -3,14 +3,14 @@ package initialize
 import (
 	"context"
 	"fmt"
-	"github.com/flipped-aurora/gin-vue-admin/server/global"
-	"github.com/flipped-aurora/gin-vue-admin/server/initialize/internal"
-	"github.com/flipped-aurora/gin-vue-admin/server/utils"
 	"github.com/pkg/errors"
 	"github.com/qiniu/qmgo"
 	"github.com/qiniu/qmgo/options"
 	"go.mongodb.org/mongo-driver/bson"
 	option "go.mongodb.org/mongo-driver/mongo/options"
+	"server/global"
+	"server/initialize/internal"
+	"server/utils"
 	"sort"
 	"strings"
 )

+ 2 - 2
server/initialize/other.go

@@ -3,8 +3,8 @@ package initialize
 import (
 	"github.com/songzhibin97/gkit/cache/local_cache"
 
-	"github.com/flipped-aurora/gin-vue-admin/server/global"
-	"github.com/flipped-aurora/gin-vue-admin/server/utils"
+	"server/global"
+	"server/utils"
 )
 
 func OtherInit() {

+ 4 - 4
server/initialize/plugin.go

@@ -3,11 +3,11 @@ package initialize
 import (
 	"fmt"
 
-	"github.com/flipped-aurora/gin-vue-admin/server/global"
-	"github.com/flipped-aurora/gin-vue-admin/server/middleware"
-	"github.com/flipped-aurora/gin-vue-admin/server/plugin/email"
-	"github.com/flipped-aurora/gin-vue-admin/server/utils/plugin"
 	"github.com/gin-gonic/gin"
+	"server/global"
+	"server/middleware"
+	"server/plugin/email"
+	"server/utils/plugin"
 )
 
 func PluginInit(group *gin.RouterGroup, Plugin ...plugin.Plugin) {

+ 1 - 1
server/initialize/redis.go

@@ -3,7 +3,7 @@ package initialize
 import (
 	"context"
 
-	"github.com/flipped-aurora/gin-vue-admin/server/global"
+	"server/global"
 
 	"github.com/redis/go-redis/v9"
 	"go.uber.org/zap"

+ 0 - 5
server/initialize/register_init.go

@@ -1,10 +1,5 @@
 package initialize
 
-import (
-	_ "github.com/flipped-aurora/gin-vue-admin/server/source/example"
-	_ "github.com/flipped-aurora/gin-vue-admin/server/source/system"
-)
-
 func init() {
 	// do nothing,only import source package so that inits can be registered
 }

+ 4 - 10
server/initialize/router.go

@@ -1,15 +1,15 @@
 package initialize
 
 import (
-	"github.com/flipped-aurora/gin-vue-admin/server/docs"
-	"github.com/flipped-aurora/gin-vue-admin/server/global"
-	"github.com/flipped-aurora/gin-vue-admin/server/middleware"
-	"github.com/flipped-aurora/gin-vue-admin/server/router"
 	"github.com/gin-gonic/gin"
 	swaggerFiles "github.com/swaggo/files"
 	ginSwagger "github.com/swaggo/gin-swagger"
 	"net/http"
 	"os"
+	"server/docs"
+	"server/global"
+	"server/middleware"
+	"server/router"
 )
 
 type justFilesFilesystem struct {
@@ -69,7 +69,6 @@ func Routers() *gin.Engine {
 	}
 	{
 		systemRouter.InitBaseRouter(PublicGroup) // 注册基础功能路由 不做鉴权
-		systemRouter.InitInitRouter(PublicGroup) // 自动初始化相关
 	}
 	PrivateGroup := Router.Group(global.GVA_CONFIG.System.RouterPrefix)
 	PrivateGroup.Use(middleware.JWTAuth()).Use(middleware.CasbinHandler())
@@ -78,18 +77,13 @@ func Routers() *gin.Engine {
 		systemRouter.InitJwtRouter(PrivateGroup)                 // jwt相关路由
 		systemRouter.InitUserRouter(PrivateGroup)                // 注册用户路由
 		systemRouter.InitMenuRouter(PrivateGroup)                // 注册menu路由
-		systemRouter.InitSystemRouter(PrivateGroup)              // system相关路由
 		systemRouter.InitCasbinRouter(PrivateGroup)              // 权限相关路由
-		systemRouter.InitAutoCodeRouter(PrivateGroup)            // 创建自动化代码
 		systemRouter.InitAuthorityRouter(PrivateGroup)           // 注册角色路由
 		systemRouter.InitSysDictionaryRouter(PrivateGroup)       // 字典管理
-		systemRouter.InitAutoCodeHistoryRouter(PrivateGroup)     // 自动化代码历史
 		systemRouter.InitSysOperationRecordRouter(PrivateGroup)  // 操作记录
 		systemRouter.InitSysDictionaryDetailRouter(PrivateGroup) // 字典详情管理
 		systemRouter.InitAuthorityBtnRouterRouter(PrivateGroup)  // 字典详情管理
-		systemRouter.InitSysExportTemplateRouter(PrivateGroup)   // 导出模板
 
-		exampleRouter.InitCustomerRouter(PrivateGroup)
 		exampleRouter.InitFileUploadAndDownloadRouter(PrivateGroup)
 	}
 

+ 2 - 2
server/initialize/timer.go

@@ -2,11 +2,11 @@ package initialize
 
 import (
 	"fmt"
-	"github.com/flipped-aurora/gin-vue-admin/server/task"
+	"server/task"
 
 	"github.com/robfig/cron/v3"
 
-	"github.com/flipped-aurora/gin-vue-admin/server/global"
+	"server/global"
 )
 
 func Timer() {

+ 1 - 1
server/initialize/validator.go

@@ -1,6 +1,6 @@
 package initialize
 
-import "github.com/flipped-aurora/gin-vue-admin/server/utils"
+import "server/utils"
 
 func init() {
 	_ = utils.RegisterRule("PageVerify",

+ 3 - 3
server/main.go

@@ -4,9 +4,9 @@ import (
 	_ "go.uber.org/automaxprocs"
 	"go.uber.org/zap"
 
-	"github.com/flipped-aurora/gin-vue-admin/server/core"
-	"github.com/flipped-aurora/gin-vue-admin/server/global"
-	"github.com/flipped-aurora/gin-vue-admin/server/initialize"
+	"server/core"
+	"server/global"
+	"server/initialize"
 )
 
 //go:generate go env -w GO111MODULE=on

+ 4 - 4
server/middleware/casbin_rbac.go

@@ -4,11 +4,11 @@ import (
 	"strconv"
 	"strings"
 
-	"github.com/flipped-aurora/gin-vue-admin/server/global"
-	"github.com/flipped-aurora/gin-vue-admin/server/model/common/response"
-	"github.com/flipped-aurora/gin-vue-admin/server/service"
-	"github.com/flipped-aurora/gin-vue-admin/server/utils"
 	"github.com/gin-gonic/gin"
+	"server/global"
+	"server/model/common/response"
+	"server/service"
+	"server/utils"
 )
 
 var casbinService = service.ServiceGroupApp.SystemServiceGroup.CasbinService

+ 2 - 2
server/middleware/cors.go

@@ -1,10 +1,10 @@
 package middleware
 
 import (
-	"github.com/flipped-aurora/gin-vue-admin/server/config"
-	"github.com/flipped-aurora/gin-vue-admin/server/global"
 	"github.com/gin-gonic/gin"
 	"net/http"
+	"server/config"
+	"server/global"
 )
 
 // Cors 直接放行所有跨域请求并放行所有 OPTIONS 方法

+ 6 - 6
server/middleware/email.go

@@ -3,17 +3,17 @@ package middleware
 import (
 	"bytes"
 	"io"
+	"server/dao"
 	"strconv"
 	"time"
 
-	"github.com/flipped-aurora/gin-vue-admin/server/plugin/email/utils"
-	utils2 "github.com/flipped-aurora/gin-vue-admin/server/utils"
+	"server/plugin/email/utils"
+	utils2 "server/utils"
 
-	"github.com/flipped-aurora/gin-vue-admin/server/global"
-	"github.com/flipped-aurora/gin-vue-admin/server/model/system"
-	"github.com/flipped-aurora/gin-vue-admin/server/service"
 	"github.com/gin-gonic/gin"
 	"go.uber.org/zap"
+	"server/global"
+	"server/service"
 )
 
 var userService = service.ServiceGroupApp.SystemServiceGroup.UserService
@@ -35,7 +35,7 @@ func ErrorToEmail() gin.HandlerFunc {
 		body, _ := io.ReadAll(c.Request.Body)
 		// 再重新写回请求体body中,ioutil.ReadAll会清空c.Request.Body中的数据
 		c.Request.Body = io.NopCloser(bytes.NewBuffer(body))
-		record := system.SysOperationRecord{
+		record := dao.SysOperationRecord{
 			Ip:     c.ClientIP(),
 			Method: c.Request.Method,
 			Path:   c.Request.URL.Path,

+ 1 - 1
server/middleware/error.go

@@ -8,9 +8,9 @@ import (
 	"runtime/debug"
 	"strings"
 
-	"github.com/flipped-aurora/gin-vue-admin/server/global"
 	"github.com/gin-gonic/gin"
 	"go.uber.org/zap"
+	"server/global"
 )
 
 // GinRecovery recover掉项目可能出现的panic,并使用zap记录相关日志

+ 6 - 6
server/middleware/jwt.go

@@ -2,16 +2,16 @@ package middleware
 
 import (
 	"errors"
-	"github.com/flipped-aurora/gin-vue-admin/server/global"
-	"github.com/flipped-aurora/gin-vue-admin/server/model/system"
-	"github.com/flipped-aurora/gin-vue-admin/server/utils"
 	"github.com/golang-jwt/jwt/v4"
 	"go.uber.org/zap"
+	"server/dao"
+	"server/global"
+	"server/utils"
 	"strconv"
 	"time"
 
-	"github.com/flipped-aurora/gin-vue-admin/server/model/common/response"
-	"github.com/flipped-aurora/gin-vue-admin/server/service"
+	"server/model/common/response"
+	"server/service"
 
 	"github.com/gin-gonic/gin"
 )
@@ -71,7 +71,7 @@ func JWTAuth() gin.HandlerFunc {
 				if err != nil {
 					global.GVA_LOG.Error("get redis jwt failed", zap.Error(err))
 				} else { // 当之前的取成功时才进行拉黑操作
-					_ = jwtService.JsonInBlacklist(system.JwtBlacklist{Jwt: RedisJwtToken})
+					_ = jwtService.JsonInBlacklist(dao.JwtBlacklist{Jwt: RedisJwtToken})
 				}
 				// 无论如何都要记录当前的活跃状态
 				_ = jwtService.SetRedisJWT(newToken, newClaims.Username)

+ 2 - 2
server/middleware/limit_ip.go

@@ -8,9 +8,9 @@ import (
 
 	"go.uber.org/zap"
 
-	"github.com/flipped-aurora/gin-vue-admin/server/global"
-	"github.com/flipped-aurora/gin-vue-admin/server/model/common/response"
 	"github.com/gin-gonic/gin"
+	"server/global"
+	"server/model/common/response"
 )
 
 type LimitConfig struct {

+ 5 - 5
server/middleware/operation.go

@@ -6,18 +6,18 @@ import (
 	"io"
 	"net/http"
 	"net/url"
+	"server/dao"
 	"strconv"
 	"strings"
 	"sync"
 	"time"
 
-	"github.com/flipped-aurora/gin-vue-admin/server/utils"
+	"server/utils"
 
-	"github.com/flipped-aurora/gin-vue-admin/server/global"
-	"github.com/flipped-aurora/gin-vue-admin/server/model/system"
-	"github.com/flipped-aurora/gin-vue-admin/server/service"
 	"github.com/gin-gonic/gin"
 	"go.uber.org/zap"
+	"server/global"
+	"server/service"
 )
 
 var operationRecordService = service.ServiceGroupApp.SystemServiceGroup.OperationRecordService
@@ -66,7 +66,7 @@ func OperationRecord() gin.HandlerFunc {
 			}
 			userId = id
 		}
-		record := system.SysOperationRecord{
+		record := dao.SysOperationRecord{
 			Ip:     c.ClientIP(),
 			Method: c.Request.Method,
 			Path:   c.Request.URL.Path,

+ 1 - 1
server/model/example/exa_breakpoint_continue.go

@@ -1,7 +1,7 @@
 package example
 
 import (
-	"github.com/flipped-aurora/gin-vue-admin/server/global"
+	"server/global"
 )
 
 // file struct, 文件结构体

+ 0 - 15
server/model/example/exa_customer.go

@@ -1,15 +0,0 @@
-package example
-
-import (
-	"github.com/flipped-aurora/gin-vue-admin/server/global"
-	"github.com/flipped-aurora/gin-vue-admin/server/model/system"
-)
-
-type ExaCustomer struct {
-	global.GVA_MODEL
-	CustomerName       string         `json:"customerName" form:"customerName" gorm:"comment:客户名"`                // 客户名
-	CustomerPhoneData  string         `json:"customerPhoneData" form:"customerPhoneData" gorm:"comment:客户手机号"`    // 客户手机号
-	SysUserID          uint           `json:"sysUserId" form:"sysUserId" gorm:"comment:管理ID"`                     // 管理ID
-	SysUserAuthorityID uint           `json:"sysUserAuthorityID" form:"sysUserAuthorityID" gorm:"comment:管理角色ID"` // 管理角色ID
-	SysUser            system.SysUser `json:"sysUser" form:"sysUser" gorm:"comment:管理详情"`                         // 管理详情
-}

+ 0 - 17
server/model/example/exa_file_upload_download.go

@@ -1,17 +0,0 @@
-package example
-
-import (
-	"github.com/flipped-aurora/gin-vue-admin/server/global"
-)
-
-type ExaFileUploadAndDownload struct {
-	global.GVA_MODEL
-	Name string `json:"name" gorm:"comment:文件名"` // 文件名
-	Url  string `json:"url" gorm:"comment:文件地址"` // 文件地址
-	Tag  string `json:"tag" gorm:"comment:文件标签"` // 文件标签
-	Key  string `json:"key" gorm:"comment:编号"`   // 编号
-}
-
-func (ExaFileUploadAndDownload) TableName() string {
-	return "exa_file_upload_and_downloads"
-}

+ 1 - 1
server/model/example/response/exa_breakpoint_continue.go

@@ -1,6 +1,6 @@
 package response
 
-import "github.com/flipped-aurora/gin-vue-admin/server/model/example"
+import "server/model/example"
 
 type FilePathResponse struct {
 	FilePath string `json:"filePath"`

+ 0 - 7
server/model/example/response/exa_customer.go

@@ -1,7 +0,0 @@
-package response
-
-import "github.com/flipped-aurora/gin-vue-admin/server/model/example"
-
-type ExaCustomerResponse struct {
-	Customer example.ExaCustomer `json:"customer"`
-}

+ 4 - 2
server/model/example/response/exa_file_upload_download.go

@@ -1,7 +1,9 @@
 package response
 
-import "github.com/flipped-aurora/gin-vue-admin/server/model/example"
+import (
+	"server/dao"
+)
 
 type ExaFileResponse struct {
-	File example.ExaFileUploadAndDownload `json:"file"`
+	File dao.ExaFileUploadAndDownload `json:"file"`
 }

+ 3 - 3
server/model/system/request/sys_api.go

@@ -1,13 +1,13 @@
 package request
 
 import (
-	"github.com/flipped-aurora/gin-vue-admin/server/model/common/request"
-	"github.com/flipped-aurora/gin-vue-admin/server/model/system"
+	"server/dao"
+	"server/model/common/request"
 )
 
 // api分页条件查询及排序结构体
 type SearchApiParams struct {
-	system.SysApi
+	dao.SysApi
 	request.PageInfo
 	OrderKey string `json:"orderKey"` // 排序
 	Desc     bool   `json:"desc"`     // 排序方式:升序false(默认)|降序true

+ 1 - 1
server/model/system/request/sys_auto_history.go

@@ -1,6 +1,6 @@
 package request
 
-import "github.com/flipped-aurora/gin-vue-admin/server/model/common/request"
+import "server/model/common/request"
 
 type SysAutoHistory struct {
 	request.PageInfo

+ 3 - 3
server/model/system/request/sys_dictionary_detail.go

@@ -1,11 +1,11 @@
 package request
 
 import (
-	"github.com/flipped-aurora/gin-vue-admin/server/model/common/request"
-	"github.com/flipped-aurora/gin-vue-admin/server/model/system"
+	"server/dao"
+	"server/model/common/request"
 )
 
 type SysDictionaryDetailSearch struct {
-	system.SysDictionaryDetail
+	dao.SysDictionaryDetail
 	request.PageInfo
 }

+ 0 - 14
server/model/system/request/sys_export_template.go

@@ -1,14 +0,0 @@
-package request
-
-import (
-	"github.com/flipped-aurora/gin-vue-admin/server/model/common/request"
-	"github.com/flipped-aurora/gin-vue-admin/server/model/system"
-	"time"
-)
-
-type SysExportTemplateSearch struct {
-	system.SysExportTemplate
-	StartCreatedAt *time.Time `json:"startCreatedAt" form:"startCreatedAt"`
-	EndCreatedAt   *time.Time `json:"endCreatedAt" form:"endCreatedAt"`
-	request.PageInfo
-}

+ 0 - 122
server/model/system/request/sys_init.go

@@ -1,122 +0,0 @@
-package request
-
-import (
-	"fmt"
-	"github.com/flipped-aurora/gin-vue-admin/server/config"
-	"os"
-)
-
-type InitDB struct {
-	DBType   string `json:"dbType"`                    // 数据库类型
-	Host     string `json:"host"`                      // 服务器地址
-	Port     string `json:"port"`                      // 数据库连接端口
-	UserName string `json:"userName"`                  // 数据库用户名
-	Password string `json:"password"`                  // 数据库密码
-	DBName   string `json:"dbName" binding:"required"` // 数据库名
-	DBPath   string `json:"dbPath"`                    // sqlite数据库文件路径
-}
-
-// MysqlEmptyDsn msyql 空数据库 建库链接
-// Author SliverHorn
-func (i *InitDB) MysqlEmptyDsn() string {
-	if i.Host == "" {
-		i.Host = "127.0.0.1"
-	}
-	if i.Port == "" {
-		i.Port = "3306"
-	}
-	return fmt.Sprintf("%s:%s@tcp(%s:%s)/", i.UserName, i.Password, i.Host, i.Port)
-}
-
-// PgsqlEmptyDsn pgsql 空数据库 建库链接
-// Author SliverHorn
-func (i *InitDB) PgsqlEmptyDsn() string {
-	if i.Host == "" {
-		i.Host = "127.0.0.1"
-	}
-	if i.Port == "" {
-		i.Port = "5432"
-	}
-	return "host=" + i.Host + " user=" + i.UserName + " password=" + i.Password + " port=" + i.Port + " dbname=" + "postgres" + " " + "sslmode=disable TimeZone=Asia/Shanghai"
-}
-
-// SqliteEmptyDsn sqlite 空数据库 建库链接
-// Author Kafumio
-func (i *InitDB) SqliteEmptyDsn() string {
-	separator := string(os.PathSeparator)
-	return i.DBPath + separator + i.DBName + ".db"
-}
-
-func (i *InitDB) MssqlEmptyDsn() string {
-	return "sqlserver://" + i.UserName + ":" + i.Password + "@" + i.Host + ":" + i.Port + "?database=" + i.DBName + "&encrypt=disable"
-}
-
-// ToMysqlConfig 转换 config.Mysql
-// Author [SliverHorn](https://github.com/SliverHorn)
-func (i *InitDB) ToMysqlConfig() config.Mysql {
-	return config.Mysql{
-		GeneralDB: config.GeneralDB{
-			Path:         i.Host,
-			Port:         i.Port,
-			Dbname:       i.DBName,
-			Username:     i.UserName,
-			Password:     i.Password,
-			MaxIdleConns: 10,
-			MaxOpenConns: 100,
-			LogMode:      "error",
-			Config:       "charset=utf8mb4&parseTime=True&loc=Local",
-		},
-	}
-}
-
-// ToPgsqlConfig 转换 config.Pgsql
-// Author [SliverHorn](https://github.com/SliverHorn)
-func (i *InitDB) ToPgsqlConfig() config.Pgsql {
-	return config.Pgsql{
-		GeneralDB: config.GeneralDB{
-			Path:         i.Host,
-			Port:         i.Port,
-			Dbname:       i.DBName,
-			Username:     i.UserName,
-			Password:     i.Password,
-			MaxIdleConns: 10,
-			MaxOpenConns: 100,
-			LogMode:      "error",
-			Config:       "sslmode=disable TimeZone=Asia/Shanghai",
-		},
-	}
-}
-
-// ToSqliteConfig 转换 config.Sqlite
-// Author [Kafumio](https://github.com/Kafumio)
-func (i *InitDB) ToSqliteConfig() config.Sqlite {
-	return config.Sqlite{
-		GeneralDB: config.GeneralDB{
-			Path:         i.DBPath,
-			Port:         i.Port,
-			Dbname:       i.DBName,
-			Username:     i.UserName,
-			Password:     i.Password,
-			MaxIdleConns: 10,
-			MaxOpenConns: 100,
-			LogMode:      "error",
-			Config:       "",
-		},
-	}
-}
-
-func (i *InitDB) ToMssqlConfig() config.Mssql {
-	return config.Mssql{
-		GeneralDB: config.GeneralDB{
-			Path:         i.DBPath,
-			Port:         i.Port,
-			Dbname:       i.DBName,
-			Username:     i.UserName,
-			Password:     i.Password,
-			MaxIdleConns: 10,
-			MaxOpenConns: 100,
-			LogMode:      "error",
-			Config:       "",
-		},
-	}
-}

+ 7 - 7
server/model/system/request/sys_menu.go

@@ -1,25 +1,25 @@
 package request
 
 import (
-	"github.com/flipped-aurora/gin-vue-admin/server/global"
-	"github.com/flipped-aurora/gin-vue-admin/server/model/system"
+	"server/dao"
+	"server/global"
 )
 
 // Add menu authority info structure
 type AddMenuAuthorityInfo struct {
-	Menus       []system.SysBaseMenu `json:"menus"`
-	AuthorityId uint                 `json:"authorityId"` // 角色ID
+	Menus       []dao.SysBaseMenu `json:"menus"`
+	AuthorityId uint              `json:"authorityId"` // 角色ID
 }
 
-func DefaultMenu() []system.SysBaseMenu {
-	return []system.SysBaseMenu{{
+func DefaultMenu() []dao.SysBaseMenu {
+	return []dao.SysBaseMenu{{
 		GVA_MODEL: global.GVA_MODEL{ID: 1},
 		ParentId:  0,
 		Path:      "dashboard",
 		Name:      "dashboard",
 		Component: "view/dashboard/index.vue",
 		Sort:      1,
-		Meta: system.Meta{
+		Meta: dao.Meta{
 			Title: "仪表盘",
 			Icon:  "setting",
 		},

+ 3 - 3
server/model/system/request/sys_operation_record.go

@@ -1,11 +1,11 @@
 package request
 
 import (
-	"github.com/flipped-aurora/gin-vue-admin/server/model/common/request"
-	"github.com/flipped-aurora/gin-vue-admin/server/model/system"
+	"server/dao"
+	"server/model/common/request"
 )
 
 type SysOperationRecordSearch struct {
-	system.SysOperationRecord
+	dao.SysOperationRecord
 	request.PageInfo
 }

+ 20 - 21
server/model/system/request/sys_user.go

@@ -1,20 +1,19 @@
 package request
 
 import (
-	"github.com/flipped-aurora/gin-vue-admin/server/model/system"
+	"server/dao"
 )
 
 // Register User register structure
 type Register struct {
-	Username     string `json:"userName" example:"用户名"`
-	Password     string `json:"passWord" example:"密码"`
-	NickName     string `json:"nickName" example:"昵称"`
-	HeaderImg    string `json:"headerImg" example:"头像链接"`
-	AuthorityId  uint   `json:"authorityId" swaggertype:"string" example:"int 角色id"`
-	Enable       int    `json:"enable" swaggertype:"string" example:"int 是否启用"`
-	AuthorityIds []uint `json:"authorityIds" swaggertype:"string" example:"[]uint 角色id"`
-	Phone        string `json:"phone" example:"电话号码"`
-	Email        string `json:"email" example:"电子邮箱"`
+	Username    string `json:"userName" example:"用户名"`
+	Password    string `json:"passWord" example:"密码"`
+	NickName    string `json:"nickName" example:"昵称"`
+	HeaderImg   string `json:"headerImg" example:"头像链接"`
+	AuthorityId uint   `json:"authorityId" swaggertype:"string" example:"int 角色id"`
+	Enable      int    `json:"enable" swaggertype:"string" example:"int 是否启用"`
+	Phone       string `json:"phone" example:"电话号码"`
+	Email       string `json:"email" example:"电子邮箱"`
 }
 
 // User login structure
@@ -39,18 +38,18 @@ type SetUserAuth struct {
 
 // Modify  user's auth structure
 type SetUserAuthorities struct {
-	ID           uint
-	AuthorityIds []uint `json:"authorityIds"` // 角色ID
+	ID          uint
+	AuthorityId uint `json:"authorityId"` // 角色ID
 }
 
 type ChangeUserInfo struct {
-	ID           uint                  `gorm:"primarykey"`                                                                           // 主键ID
-	NickName     string                `json:"nickName" gorm:"default:系统用户;comment:用户昵称"`                                            // 用户昵称
-	Phone        string                `json:"phone"  gorm:"comment:用户手机号"`                                                          // 用户手机号
-	AuthorityIds []uint                `json:"authorityIds" gorm:"-"`                                                                // 角色ID
-	Email        string                `json:"email"  gorm:"comment:用户邮箱"`                                                           // 用户邮箱
-	HeaderImg    string                `json:"headerImg" gorm:"default:https://qmplusimg.henrongyi.top/gva_header.jpg;comment:用户头像"` // 用户头像
-	SideMode     string                `json:"sideMode"  gorm:"comment:用户侧边主题"`                                                      // 用户侧边主题
-	Enable       int                   `json:"enable" gorm:"comment:冻结用户"`                                                           //冻结用户
-	Authorities  []system.SysAuthority `json:"-" gorm:"many2many:sys_user_authority;"`
+	ID           uint               `gorm:"primarykey"`                                                                           // 主键ID
+	NickName     string             `json:"nickName" gorm:"default:系统用户;comment:用户昵称"`                                            // 用户昵称
+	Phone        string             `json:"phone"  gorm:"comment:用户手机号"`                                                          // 用户手机号
+	AuthorityIds uint               `json:"authorityIds" gorm:"-"`                                                                // 角色ID
+	Email        string             `json:"email"  gorm:"comment:用户邮箱"`                                                           // 用户邮箱
+	HeaderImg    string             `json:"headerImg" gorm:"default:https://qmplusimg.henrongyi.top/gva_header.jpg;comment:用户头像"` // 用户头像
+	SideMode     string             `json:"sideMode"  gorm:"comment:用户侧边主题"`                                                      // 用户侧边主题
+	Enable       int                `json:"enable" gorm:"comment:冻结用户"`                                                           //冻结用户
+	Authorities  []dao.SysAuthority `json:"-" gorm:"many2many:sys_user_authority;"`
 }

+ 5 - 3
server/model/system/response/sys_api.go

@@ -1,11 +1,13 @@
 package response
 
-import "github.com/flipped-aurora/gin-vue-admin/server/model/system"
+import (
+	"server/dao"
+)
 
 type SysAPIResponse struct {
-	Api system.SysApi `json:"api"`
+	Api dao.SysApi `json:"api"`
 }
 
 type SysAPIListResponse struct {
-	Apis []system.SysApi `json:"apis"`
+	Apis []dao.SysApi `json:"apis"`
 }

+ 6 - 4
server/model/system/response/sys_authority.go

@@ -1,12 +1,14 @@
 package response
 
-import "github.com/flipped-aurora/gin-vue-admin/server/model/system"
+import (
+	"server/dao"
+)
 
 type SysAuthorityResponse struct {
-	Authority system.SysAuthority `json:"authority"`
+	Authority dao.SysAuthority `json:"authority"`
 }
 
 type SysAuthorityCopyResponse struct {
-	Authority      system.SysAuthority `json:"authority"`
-	OldAuthorityId uint                `json:"oldAuthorityId"` // 旧角色ID
+	Authority      dao.SysAuthority `json:"authority"`
+	OldAuthorityId uint             `json:"oldAuthorityId"` // 旧角色ID
 }

+ 0 - 17
server/model/system/response/sys_auto_code.go

@@ -1,17 +0,0 @@
-package response
-
-type Db struct {
-	Database string `json:"database" gorm:"column:database"`
-}
-
-type Table struct {
-	TableName string `json:"tableName" gorm:"column:table_name"`
-}
-
-type Column struct {
-	DataType      string `json:"dataType" gorm:"column:data_type"`
-	ColumnName    string `json:"columnName" gorm:"column:column_name"`
-	DataTypeLong  string `json:"dataTypeLong" gorm:"column:data_type_long"`
-	ColumnComment string `json:"columnComment" gorm:"column:column_comment"`
-	PrimaryKey    bool   `json:"primaryKey" gorm:"column:primary_key"`
-}

+ 0 - 14
server/model/system/response/sys_auto_code_history.go

@@ -1,14 +0,0 @@
-package response
-
-import "time"
-
-type AutoCodeHistory struct {
-	ID           uint      `json:"ID" gorm:"column:id"`
-	CreatedAt    time.Time `json:"CreatedAt" gorm:"column:created_at"`
-	UpdatedAt    time.Time `json:"UpdatedAt" gorm:"column:updated_at"`
-	BusinessDB   string    `json:"businessDB" gorm:"column:business_db"`
-	TableName    string    `json:"tableName" gorm:"column:table_name"`
-	StructName   string    `json:"structName" gorm:"column:struct_name"`
-	StructCNName string    `json:"structCNName" gorm:"column:struct_cn_name"`
-	Flag         int       `json:"flag" gorm:"column:flag"`
-}

+ 1 - 1
server/model/system/response/sys_casbin.go

@@ -1,7 +1,7 @@
 package response
 
 import (
-	"github.com/flipped-aurora/gin-vue-admin/server/model/system/request"
+	"server/model/system/request"
 )
 
 type PolicyPathResponse struct {

+ 6 - 4
server/model/system/response/sys_menu.go

@@ -1,15 +1,17 @@
 package response
 
-import "github.com/flipped-aurora/gin-vue-admin/server/model/system"
+import (
+	"server/dao"
+)
 
 type SysMenusResponse struct {
-	Menus []system.SysMenu `json:"menus"`
+	Menus []dao.SysMenu `json:"menus"`
 }
 
 type SysBaseMenusResponse struct {
-	Menus []system.SysBaseMenu `json:"menus"`
+	Menus []dao.SysBaseMenu `json:"menus"`
 }
 
 type SysBaseMenuResponse struct {
-	Menu system.SysBaseMenu `json:"menu"`
+	Menu dao.SysBaseMenu `json:"menu"`
 }

+ 0 - 7
server/model/system/response/sys_system.go

@@ -1,7 +0,0 @@
-package response
-
-import "github.com/flipped-aurora/gin-vue-admin/server/config"
-
-type SysConfigResponse struct {
-	Config config.Server `json:"config"`
-}

+ 5 - 5
server/model/system/response/sys_user.go

@@ -1,15 +1,15 @@
 package response
 
 import (
-	"github.com/flipped-aurora/gin-vue-admin/server/model/system"
+	"server/dao"
 )
 
 type SysUserResponse struct {
-	User system.SysUser `json:"user"`
+	User dao.SysUser `json:"user"`
 }
 
 type LoginResponse struct {
-	User      system.SysUser `json:"user"`
-	Token     string         `json:"token"`
-	ExpiresAt int64          `json:"expiresAt"`
+	User      dao.SysUser `json:"user"`
+	Token     string      `json:"token"`
+	ExpiresAt int64       `json:"expiresAt"`
 }

+ 0 - 17
server/model/system/sys_api.go

@@ -1,17 +0,0 @@
-package system
-
-import (
-	"github.com/flipped-aurora/gin-vue-admin/server/global"
-)
-
-type SysApi struct {
-	global.GVA_MODEL
-	Path        string `json:"path" gorm:"comment:api路径"`             // api路径
-	Description string `json:"description" gorm:"comment:api中文描述"`    // api中文描述
-	ApiGroup    string `json:"apiGroup" gorm:"comment:api组"`          // api组
-	Method      string `json:"method" gorm:"default:POST;comment:方法"` // 方法:创建POST(默认)|查看GET|更新PUT|删除DELETE
-}
-
-func (SysApi) TableName() string {
-	return "sys_apis"
-}

+ 0 - 23
server/model/system/sys_authority.go

@@ -1,23 +0,0 @@
-package system
-
-import (
-	"time"
-)
-
-type SysAuthority struct {
-	CreatedAt       time.Time       // 创建时间
-	UpdatedAt       time.Time       // 更新时间
-	DeletedAt       *time.Time      `sql:"index"`
-	AuthorityId     uint            `json:"authorityId" gorm:"not null;unique;primary_key;comment:角色ID;size:90"` // 角色ID
-	AuthorityName   string          `json:"authorityName" gorm:"comment:角色名"`                                    // 角色名
-	ParentId        *uint           `json:"parentId" gorm:"comment:父角色ID"`                                       // 父角色ID
-	DataAuthorityId []*SysAuthority `json:"dataAuthorityId" gorm:"many2many:sys_data_authority_id;"`
-	Children        []SysAuthority  `json:"children" gorm:"-"`
-	SysBaseMenus    []SysBaseMenu   `json:"menus" gorm:"many2many:sys_authority_menus;"`
-	Users           []SysUser       `json:"-" gorm:"many2many:sys_user_authority;"`
-	DefaultRouter   string          `json:"defaultRouter" gorm:"comment:默认菜单;default:dashboard"` // 默认菜单(默认dashboard)
-}
-
-func (SysAuthority) TableName() string {
-	return "sys_authorities"
-}

+ 0 - 8
server/model/system/sys_authority_btn.go

@@ -1,8 +0,0 @@
-package system
-
-type SysAuthorityBtn struct {
-	AuthorityId      uint           `gorm:"comment:角色ID"`
-	SysMenuID        uint           `gorm:"comment:菜单ID"`
-	SysBaseMenuBtnID uint           `gorm:"comment:菜单按钮ID"`
-	SysBaseMenuBtn   SysBaseMenuBtn ` gorm:"comment:按钮详情"`
-}

+ 0 - 19
server/model/system/sys_authority_menu.go

@@ -1,19 +0,0 @@
-package system
-
-type SysMenu struct {
-	SysBaseMenu
-	MenuId      uint                   `json:"menuId" gorm:"comment:菜单ID"`
-	AuthorityId uint                   `json:"-" gorm:"comment:角色ID"`
-	Children    []SysMenu              `json:"children" gorm:"-"`
-	Parameters  []SysBaseMenuParameter `json:"parameters" gorm:"foreignKey:SysBaseMenuID;references:MenuId"`
-	Btns        map[string]uint        `json:"btns" gorm:"-"`
-}
-
-type SysAuthorityMenu struct {
-	MenuId      string `json:"menuId" gorm:"comment:菜单ID;column:sys_base_menu_id"`
-	AuthorityId string `json:"-" gorm:"comment:角色ID;column:sys_authority_authority_id"`
-}
-
-func (s SysAuthorityMenu) TableName() string {
-	return "sys_authority_menus"
-}

+ 0 - 136
server/model/system/sys_auto_code.go

@@ -1,136 +0,0 @@
-package system
-
-import (
-	"errors"
-	"go/token"
-	"strings"
-
-	"github.com/flipped-aurora/gin-vue-admin/server/global"
-)
-
-// AutoCodeStruct 初始版本自动化代码工具
-type AutoCodeStruct struct {
-	StructName          string                 `json:"structName"`          // Struct名称
-	TableName           string                 `json:"tableName"`           // 表名
-	PackageName         string                 `json:"packageName"`         // 文件名称
-	HumpPackageName     string                 `json:"humpPackageName"`     // go文件名称
-	Abbreviation        string                 `json:"abbreviation"`        // Struct简称
-	Description         string                 `json:"description"`         // Struct中文名称
-	AutoCreateApiToSql  bool                   `json:"autoCreateApiToSql"`  // 是否自动创建api
-	AutoCreateMenuToSql bool                   `json:"autoCreateMenuToSql"` // 是否自动创建menu
-	AutoCreateResource  bool                   `json:"autoCreateResource"`  // 是否自动创建资源标识
-	AutoMoveFile        bool                   `json:"autoMoveFile"`        // 是否自动移动文件
-	BusinessDB          string                 `json:"businessDB"`          // 业务数据库
-	GvaModel            bool                   `json:"gvaModel"`            // 是否使用gva默认Model
-	Fields              []*Field               `json:"fields"`
-	PrimaryField        *Field                 `json:"primaryField"`
-	HasTimer            bool                   `json:"-"`
-	HasSearchTimer      bool                   `json:"-"`
-	DictTypes           []string               `json:"-"`
-	Package             string                 `json:"package"`
-	PackageT            string                 `json:"-"`
-	NeedSort            bool                   `json:"-"`
-	HasPic              bool                   `json:"-"`
-	HasRichText         bool                   `json:"-"`
-	HasFile             bool                   `json:"-"`
-	NeedJSON            bool                   `json:"-"`
-	FrontFields         []*Field               `json:"-"`
-	HasDataSource       bool                   `json:"-"`
-	DataSourceMap       map[string]*DataSource `json:"-"`
-}
-
-type DataSource struct {
-	Table string `json:"table"`
-	Label string `json:"label"`
-	Value string `json:"value"`
-}
-
-func (a *AutoCodeStruct) Pretreatment() {
-	a.KeyWord()
-	a.SuffixTest()
-}
-
-// KeyWord 是go关键字的处理加上 _ ,防止编译报错
-// Author [SliverHorn](https://github.com/SliverHorn)
-func (a *AutoCodeStruct) KeyWord() {
-	if token.IsKeyword(a.Abbreviation) {
-		a.Abbreviation = a.Abbreviation + "_"
-	}
-}
-
-// SuffixTest 处理_test 后缀
-// Author [SliverHorn](https://github.com/SliverHorn)
-func (a *AutoCodeStruct) SuffixTest() {
-	if strings.HasSuffix(a.HumpPackageName, "test") {
-		a.HumpPackageName = a.HumpPackageName + "_"
-	}
-}
-
-type Field struct {
-	FieldName       string      `json:"fieldName"`       // Field名
-	FieldDesc       string      `json:"fieldDesc"`       // 中文名
-	FieldType       string      `json:"fieldType"`       // Field数据类型
-	FieldJson       string      `json:"fieldJson"`       // FieldJson
-	DataTypeLong    string      `json:"dataTypeLong"`    // 数据库字段长度
-	Comment         string      `json:"comment"`         // 数据库字段描述
-	ColumnName      string      `json:"columnName"`      // 数据库字段
-	FieldSearchType string      `json:"fieldSearchType"` // 搜索条件
-	DictType        string      `json:"dictType"`        // 字典
-	Front           bool        `json:"front"`           // 是否前端可见
-	Require         bool        `json:"require"`         // 是否必填
-	DefaultValue    string      `json:"defaultValue"`    // 是否必填
-	ErrorText       string      `json:"errorText"`       // 校验失败文字
-	Clearable       bool        `json:"clearable"`       // 是否可清空
-	Sort            bool        `json:"sort"`            // 是否增加排序
-	PrimaryKey      bool        `json:"primaryKey"`      // 是否主键
-	DataSource      *DataSource `json:"dataSource"`      // 数据源
-	CheckDataSource bool        `json:"checkDataSource"` // 是否检查数据源
-}
-
-var ErrAutoMove error = errors.New("创建代码成功并移动文件成功")
-
-type SysAutoCode struct {
-	global.GVA_MODEL
-	PackageName string `json:"packageName" gorm:"comment:包名"`
-	Label       string `json:"label" gorm:"comment:展示名"`
-	Desc        string `json:"desc" gorm:"comment:描述"`
-}
-
-type AutoPlugReq struct {
-	PlugName    string         `json:"plugName"` // 必然大写开头
-	Snake       string         `json:"snake"`    // 后端自动转为 snake
-	RouterGroup string         `json:"routerGroup"`
-	HasGlobal   bool           `json:"hasGlobal"`
-	HasRequest  bool           `json:"hasRequest"`
-	HasResponse bool           `json:"hasResponse"`
-	NeedModel   bool           `json:"needModel"`
-	Global      []AutoPlugInfo `json:"global,omitempty"`
-	Request     []AutoPlugInfo `json:"request,omitempty"`
-	Response    []AutoPlugInfo `json:"response,omitempty"`
-}
-
-func (a *AutoPlugReq) CheckList() {
-	a.Global = bind(a.Global)
-	a.Request = bind(a.Request)
-	a.Response = bind(a.Response)
-
-}
-func bind(req []AutoPlugInfo) []AutoPlugInfo {
-	var r []AutoPlugInfo
-	for _, info := range req {
-		if info.Effective() {
-			r = append(r, info)
-		}
-	}
-	return r
-}
-
-type AutoPlugInfo struct {
-	Key  string `json:"key"`
-	Type string `json:"type"`
-	Desc string `json:"desc"`
-}
-
-func (a AutoPlugInfo) Effective() bool {
-	return a.Key != "" && a.Type != "" && a.Desc != ""
-}

+ 0 - 41
server/model/system/sys_autocode_history.go

@@ -1,41 +0,0 @@
-package system
-
-import (
-	"strconv"
-	"strings"
-
-	"github.com/flipped-aurora/gin-vue-admin/server/global"
-	"github.com/flipped-aurora/gin-vue-admin/server/model/common/request"
-)
-
-// SysAutoCodeHistory 自动迁移代码记录,用于回滚,重放使用
-type SysAutoCodeHistory struct {
-	global.GVA_MODEL
-	Package       string `json:"package"`
-	BusinessDB    string `json:"businessDB"`
-	TableName     string `json:"tableName"`
-	MenuID        uint   `json:"menuID"`
-	RequestMeta   string `gorm:"type:text" json:"requestMeta,omitempty"`   // 前端传入的结构化信息
-	AutoCodePath  string `gorm:"type:text" json:"autoCodePath,omitempty"`  // 其他meta信息 path;path
-	InjectionMeta string `gorm:"type:text" json:"injectionMeta,omitempty"` // 注入的内容 RouterPath@functionName@RouterString;
-	StructName    string `json:"structName"`
-	StructCNName  string `json:"structCNName"`
-	ApiIDs        string `json:"apiIDs,omitempty"` // api表注册内容
-	Flag          int    `json:"flag"`             // 表示对应状态 0 代表创建, 1 代表回滚 ...
-}
-
-// ToRequestIds ApiIDs 转换 request.IdsReq
-// Author [SliverHorn](https://github.com/SliverHorn)
-func (m *SysAutoCodeHistory) ToRequestIds() request.IdsReq {
-	if m.ApiIDs == "" {
-		return request.IdsReq{}
-	}
-	slice := strings.Split(m.ApiIDs, ";")
-	ids := make([]int, 0, len(slice))
-	length := len(slice)
-	for i := 0; i < length; i++ {
-		id, _ := strconv.ParseInt(slice[i], 10, 32)
-		ids = append(ids, int(id))
-	}
-	return request.IdsReq{Ids: ids}
-}

+ 0 - 42
server/model/system/sys_base_menu.go

@@ -1,42 +0,0 @@
-package system
-
-import (
-	"github.com/flipped-aurora/gin-vue-admin/server/global"
-)
-
-type SysBaseMenu struct {
-	global.GVA_MODEL
-	MenuLevel     uint                                       `json:"-"`
-	ParentId      uint                                       `json:"parentId" gorm:"comment:父菜单ID"`     // 父菜单ID
-	Path          string                                     `json:"path" gorm:"comment:路由path"`        // 路由path
-	Name          string                                     `json:"name" gorm:"comment:路由name"`        // 路由name
-	Hidden        bool                                       `json:"hidden" gorm:"comment:是否在列表隐藏"`     // 是否在列表隐藏
-	Component     string                                     `json:"component" gorm:"comment:对应前端文件路径"` // 对应前端文件路径
-	Sort          int                                        `json:"sort" gorm:"comment:排序标记"`          // 排序标记
-	Meta          `json:"meta" gorm:"embedded;comment:附加属性"` // 附加属性
-	SysAuthoritys []SysAuthority                             `json:"authoritys" gorm:"many2many:sys_authority_menus;"`
-	Children      []SysBaseMenu                              `json:"children" gorm:"-"`
-	Parameters    []SysBaseMenuParameter                     `json:"parameters"`
-	MenuBtn       []SysBaseMenuBtn                           `json:"menuBtn"`
-}
-
-type Meta struct {
-	ActiveName  string `json:"activeName" gorm:"comment:高亮菜单"`
-	KeepAlive   bool   `json:"keepAlive" gorm:"comment:是否缓存"`           // 是否缓存
-	DefaultMenu bool   `json:"defaultMenu" gorm:"comment:是否是基础路由(开发中)"` // 是否是基础路由(开发中)
-	Title       string `json:"title" gorm:"comment:菜单名"`                // 菜单名
-	Icon        string `json:"icon" gorm:"comment:菜单图标"`                // 菜单图标
-	CloseTab    bool   `json:"closeTab" gorm:"comment:自动关闭tab"`         // 自动关闭tab
-}
-
-type SysBaseMenuParameter struct {
-	global.GVA_MODEL
-	SysBaseMenuID uint
-	Type          string `json:"type" gorm:"comment:地址栏携带参数为params还是query"` // 地址栏携带参数为params还是query
-	Key           string `json:"key" gorm:"comment:地址栏携带参数的key"`            // 地址栏携带参数的key
-	Value         string `json:"value" gorm:"comment:地址栏携带参数的值"`            // 地址栏携带参数的值
-}
-
-func (SysBaseMenu) TableName() string {
-	return "sys_base_menus"
-}

+ 0 - 0
server/model/system/sys_dictionary.go


Some files were not shown because too many files changed in this diff