迁移代码生成器

This commit is contained in:
xh
2025-06-25 01:01:47 +08:00
parent e4bd778607
commit cf4e879fe2
33 changed files with 106 additions and 134 deletions

View File

@@ -1,11 +0,0 @@
package generator
import (
"x_admin/admin/generator/gen"
"github.com/gin-gonic/gin"
)
func RegisterGroup(rg *gin.RouterGroup) {
gen.GenRoute(rg)
}

View File

@@ -76,7 +76,7 @@ func loadConfig(envPath string) envConfig {
// 资源访问前缀 // 资源访问前缀
PublicPrefix: "/api/uploads", PublicPrefix: "/api/uploads",
// 上传文件路径 // 上传文件路径
UploadDirectory: "/tmp/uploads/x_admin-go/", UploadDirectory: "/tmp/uploads/x_admin_go/",
// Redis源配置 // Redis源配置
RedisUrl: "redis://localhost:6379", RedisUrl: "redis://localhost:6379",
// RedisPoolSize: 100, // RedisPoolSize: 100,
@@ -103,7 +103,7 @@ func loadConfig(envPath string) envConfig {
// 上传视频限制 // 上传视频限制
UploadVideoSize: 1024 * 1024 * 30, UploadVideoSize: 1024 * 1024 * 30,
// 上传图片扩展 // 上传图片扩展
UploadImageExt: []string{"png", "jpg", "jpeg", "gif", "ico", "bmp", "webp"}, UploadImageExt: []string{"png", "jpg", "jpeg", "gif", "ico", "bmp", "webp", "avif"},
// 上传视频扩展 // 上传视频扩展
UploadVideoExt: []string{"mp4", "mp3", "avi", "flv", "rmvb", "mov"}, UploadVideoExt: []string{"mp4", "mp3", "avi", "flv", "rmvb", "mov"},
} }

View File

@@ -1,8 +1,10 @@
package gen package generatorController
import ( import (
"x_admin/core/request" "x_admin/core/request"
"x_admin/core/response" "x_admin/core/response"
"x_admin/schema/generatorSchema"
"x_admin/service/generatorService"
"net/http" "net/http"
"strings" "strings"
@@ -34,98 +36,98 @@ type genHandler struct {
// dbTables 数据表列表 // dbTables 数据表列表
func (gh genHandler) dbTables(c *gin.Context) { func (gh genHandler) dbTables(c *gin.Context) {
var page request.PageReq var page request.PageReq
var tbReq DbTablesReq var tbReq generatorSchema.DbTablesReq
if response.IsFailWithResp(c, util.VerifyUtil.VerifyQuery(c, &page)) { if response.IsFailWithResp(c, util.VerifyUtil.VerifyQuery(c, &page)) {
return return
} }
if response.IsFailWithResp(c, util.VerifyUtil.VerifyQuery(c, &tbReq)) { if response.IsFailWithResp(c, util.VerifyUtil.VerifyQuery(c, &tbReq)) {
return return
} }
res, err := Service.DbTables(page, tbReq) res, err := generatorService.GenerateService.DbTables(page, tbReq)
response.CheckAndRespWithData(c, res, err) response.CheckAndRespWithData(c, res, err)
} }
// list 生成列表 // list 生成列表
func (gh genHandler) List(c *gin.Context) { func (gh genHandler) List(c *gin.Context) {
var page request.PageReq var page request.PageReq
var listReq ListTableReq var listReq generatorSchema.ListTableReq
if response.IsFailWithResp(c, util.VerifyUtil.VerifyQuery(c, &page)) { if response.IsFailWithResp(c, util.VerifyUtil.VerifyQuery(c, &page)) {
return return
} }
if response.IsFailWithResp(c, util.VerifyUtil.VerifyQuery(c, &listReq)) { if response.IsFailWithResp(c, util.VerifyUtil.VerifyQuery(c, &listReq)) {
return return
} }
res, err := Service.List(page, listReq) res, err := generatorService.GenerateService.List(page, listReq)
response.CheckAndRespWithData(c, res, err) response.CheckAndRespWithData(c, res, err)
} }
// detail 生成详情 // detail 生成详情
func (gh genHandler) Detail(c *gin.Context) { func (gh genHandler) Detail(c *gin.Context) {
var detailReq DetailTableReq var detailReq generatorSchema.DetailTableReq
if response.IsFailWithResp(c, util.VerifyUtil.VerifyQuery(c, &detailReq)) { if response.IsFailWithResp(c, util.VerifyUtil.VerifyQuery(c, &detailReq)) {
return return
} }
res, err := Service.Detail(detailReq.ID) res, err := generatorService.GenerateService.Detail(detailReq.ID)
response.CheckAndRespWithData(c, res, err) response.CheckAndRespWithData(c, res, err)
} }
// importTable 导入表结构 // importTable 导入表结构
func (gh genHandler) importTable(c *gin.Context) { func (gh genHandler) importTable(c *gin.Context) {
var importReq ImportTableReq var importReq generatorSchema.ImportTableReq
if response.IsFailWithResp(c, util.VerifyUtil.VerifyQuery(c, &importReq)) { if response.IsFailWithResp(c, util.VerifyUtil.VerifyQuery(c, &importReq)) {
return return
} }
err := Service.ImportTable(strings.Split(importReq.Tables, ",")) err := generatorService.GenerateService.ImportTable(strings.Split(importReq.Tables, ","))
response.CheckAndResp(c, err) response.CheckAndResp(c, err)
} }
// syncTable 同步表结构 // syncTable 同步表结构
func (gh genHandler) syncTable(c *gin.Context) { func (gh genHandler) syncTable(c *gin.Context) {
var syncReq SyncTableReq var syncReq generatorSchema.SyncTableReq
if response.IsFailWithResp(c, util.VerifyUtil.VerifyQuery(c, &syncReq)) { if response.IsFailWithResp(c, util.VerifyUtil.VerifyQuery(c, &syncReq)) {
return return
} }
err := Service.SyncTable(syncReq.ID) err := generatorService.GenerateService.SyncTable(syncReq.ID)
response.CheckAndResp(c, err) response.CheckAndResp(c, err)
} }
// editTable 编辑表结构 // editTable 编辑表结构
func (gh genHandler) editTable(c *gin.Context) { func (gh genHandler) editTable(c *gin.Context) {
var editReq EditTableReq var editReq generatorSchema.EditTableReq
if response.IsFailWithResp(c, util.VerifyUtil.VerifyJSON(c, &editReq)) { if response.IsFailWithResp(c, util.VerifyUtil.VerifyJSON(c, &editReq)) {
return return
} }
err := Service.EditTable(editReq) err := generatorService.GenerateService.EditTable(editReq)
response.CheckAndResp(c, err) response.CheckAndResp(c, err)
} }
// delTable 删除表结构 // delTable 删除表结构
func (gh genHandler) delTable(c *gin.Context) { func (gh genHandler) delTable(c *gin.Context) {
var delReq DelTableReq var delReq generatorSchema.DelTableReq
if response.IsFailWithResp(c, util.VerifyUtil.VerifyJSON(c, &delReq)) { if response.IsFailWithResp(c, util.VerifyUtil.VerifyJSON(c, &delReq)) {
return return
} }
err := Service.DelTable(delReq.Ids) err := generatorService.GenerateService.DelTable(delReq.Ids)
response.CheckAndResp(c, err) response.CheckAndResp(c, err)
} }
// previewCode 预览代码 // previewCode 预览代码
func (gh genHandler) previewCode(c *gin.Context) { func (gh genHandler) previewCode(c *gin.Context) {
var previewReq PreviewCodeReq var previewReq generatorSchema.PreviewCodeReq
if response.IsFailWithResp(c, util.VerifyUtil.VerifyQuery(c, &previewReq)) { if response.IsFailWithResp(c, util.VerifyUtil.VerifyQuery(c, &previewReq)) {
return return
} }
res, err := Service.PreviewCode(previewReq.ID) res, err := generatorService.GenerateService.PreviewCode(previewReq.ID)
response.CheckAndRespWithData(c, res, err) response.CheckAndRespWithData(c, res, err)
} }
// downloadCode 下载代码 // downloadCode 下载代码
func (gh genHandler) downloadCode(c *gin.Context) { func (gh genHandler) downloadCode(c *gin.Context) {
var downloadReq DownloadReq var downloadReq generatorSchema.DownloadReq
if response.IsFailWithResp(c, util.VerifyUtil.VerifyQuery(c, &downloadReq)) { if response.IsFailWithResp(c, util.VerifyUtil.VerifyQuery(c, &downloadReq)) {
return return
} }
zipBytes, err := Service.DownloadCode(strings.Split(downloadReq.Tables, ",")) zipBytes, err := generatorService.GenerateService.DownloadCode(strings.Split(downloadReq.Tables, ","))
if response.IsFailWithResp(c, err) { if response.IsFailWithResp(c, err) {
return return
} }

View File

@@ -1,4 +1,4 @@
package user_protocol package admin
import ( import (
"net/http" "net/http"
@@ -7,6 +7,8 @@ import (
"time" "time"
"x_admin/core/request" "x_admin/core/request"
"x_admin/core/response" "x_admin/core/response"
"x_admin/schema"
"x_admin/service"
"x_admin/util" "x_admin/util"
"x_admin/util/excel2" "x_admin/util/excel2"
@@ -36,14 +38,14 @@ type UserProtocolHandler struct {
// @Router /api/admin/user_protocol/list [get] // @Router /api/admin/user_protocol/list [get]
func (hd *UserProtocolHandler) List(c *gin.Context) { func (hd *UserProtocolHandler) List(c *gin.Context) {
var page request.PageReq var page request.PageReq
var listReq UserProtocolListReq var listReq schema.UserProtocolListReq
if response.IsFailWithResp(c, util.VerifyUtil.VerifyQuery(c, &page)) { if response.IsFailWithResp(c, util.VerifyUtil.VerifyQuery(c, &page)) {
return return
} }
if response.IsFailWithResp(c, util.VerifyUtil.VerifyQuery(c, &listReq)) { if response.IsFailWithResp(c, util.VerifyUtil.VerifyQuery(c, &listReq)) {
return return
} }
res, err := UserProtocolService.List(page, listReq) res, err := service.UserProtocolService.List(page, listReq)
response.CheckAndRespWithData(c, res, err) response.CheckAndRespWithData(c, res, err)
} }
@@ -60,11 +62,11 @@ func (hd *UserProtocolHandler) List(c *gin.Context) {
// @Success 200 {object} response.Response{ data=[]UserProtocolResp} "成功" // @Success 200 {object} response.Response{ data=[]UserProtocolResp} "成功"
// @Router /api/admin/user_protocol/listAll [get] // @Router /api/admin/user_protocol/listAll [get]
func (hd *UserProtocolHandler) ListAll(c *gin.Context) { func (hd *UserProtocolHandler) ListAll(c *gin.Context) {
var listReq UserProtocolListReq var listReq schema.UserProtocolListReq
if response.IsFailWithResp(c, util.VerifyUtil.VerifyQuery(c, &listReq)) { if response.IsFailWithResp(c, util.VerifyUtil.VerifyQuery(c, &listReq)) {
return return
} }
res, err := UserProtocolService.ListAll(listReq) res, err := service.UserProtocolService.ListAll(listReq)
response.CheckAndRespWithData(c, res, err) response.CheckAndRespWithData(c, res, err)
} }
@@ -76,12 +78,12 @@ func (hd *UserProtocolHandler) ListAll(c *gin.Context) {
// @Success 200 {object} response.Response{ data=UserProtocolResp} "成功" // @Success 200 {object} response.Response{ data=UserProtocolResp} "成功"
// @Router /api/admin/user_protocol/detail [get] // @Router /api/admin/user_protocol/detail [get]
func (hd *UserProtocolHandler) Detail(c *gin.Context) { func (hd *UserProtocolHandler) Detail(c *gin.Context) {
var detailReq UserProtocolDetailReq var detailReq schema.UserProtocolDetailReq
if response.IsFailWithResp(c, util.VerifyUtil.VerifyQuery(c, &detailReq)) { if response.IsFailWithResp(c, util.VerifyUtil.VerifyQuery(c, &detailReq)) {
return return
} }
res, err, _ := hd.requestGroup.Do("UserProtocol:Detail:"+strconv.Itoa(detailReq.Id), func() (any, error) { res, err, _ := hd.requestGroup.Do("UserProtocol:Detail:"+strconv.Itoa(detailReq.Id), func() (any, error) {
v, err := UserProtocolService.Detail(detailReq.Id) v, err := service.UserProtocolService.Detail(detailReq.Id)
return v, err return v, err
}) })
@@ -98,11 +100,11 @@ func (hd *UserProtocolHandler) Detail(c *gin.Context) {
// @Success 200 {object} response.Response "成功" // @Success 200 {object} response.Response "成功"
// @Router /api/admin/user_protocol/add [post] // @Router /api/admin/user_protocol/add [post]
func (hd *UserProtocolHandler) Add(c *gin.Context) { func (hd *UserProtocolHandler) Add(c *gin.Context) {
var addReq UserProtocolAddReq var addReq schema.UserProtocolAddReq
if response.IsFailWithResp(c, util.VerifyUtil.VerifyJSON(c, &addReq)) { if response.IsFailWithResp(c, util.VerifyUtil.VerifyJSON(c, &addReq)) {
return return
} }
createId, e := UserProtocolService.Add(addReq) createId, e := service.UserProtocolService.Add(addReq)
response.CheckAndRespWithData(c, createId, e) response.CheckAndRespWithData(c, createId, e)
} }
@@ -117,11 +119,11 @@ func (hd *UserProtocolHandler) Add(c *gin.Context) {
// @Success 200 {object} response.Response "成功" // @Success 200 {object} response.Response "成功"
// @Router /api/admin/user_protocol/edit [post] // @Router /api/admin/user_protocol/edit [post]
func (hd *UserProtocolHandler) Edit(c *gin.Context) { func (hd *UserProtocolHandler) Edit(c *gin.Context) {
var editReq UserProtocolEditReq var editReq schema.UserProtocolEditReq
if response.IsFailWithResp(c, util.VerifyUtil.VerifyJSON(c, &editReq)) { if response.IsFailWithResp(c, util.VerifyUtil.VerifyJSON(c, &editReq)) {
return return
} }
response.CheckAndRespWithData(c, editReq.Id, UserProtocolService.Edit(editReq)) response.CheckAndRespWithData(c, editReq.Id, service.UserProtocolService.Edit(editReq))
} }
// @Summary 用户协议删除 // @Summary 用户协议删除
@@ -132,11 +134,11 @@ func (hd *UserProtocolHandler) Edit(c *gin.Context) {
// @Success 200 {object} response.Response "成功" // @Success 200 {object} response.Response "成功"
// @Router /api/admin/user_protocol/del [post] // @Router /api/admin/user_protocol/del [post]
func (hd *UserProtocolHandler) Del(c *gin.Context) { func (hd *UserProtocolHandler) Del(c *gin.Context) {
var delReq UserProtocolDelReq var delReq schema.UserProtocolDelReq
if response.IsFailWithResp(c, util.VerifyUtil.VerifyJSON(c, &delReq)) { if response.IsFailWithResp(c, util.VerifyUtil.VerifyJSON(c, &delReq)) {
return return
} }
response.CheckAndResp(c, UserProtocolService.Del(delReq.Id)) response.CheckAndResp(c, service.UserProtocolService.Del(delReq.Id))
} }
// @Summary 用户协议删除-批量 // @Summary 用户协议删除-批量
@@ -148,7 +150,7 @@ func (hd *UserProtocolHandler) Del(c *gin.Context) {
// @Success 200 {object} response.Response "成功" // @Success 200 {object} response.Response "成功"
// @Router /api/admin/user_protocol/delBatch [post] // @Router /api/admin/user_protocol/delBatch [post]
func (hd *UserProtocolHandler) DelBatch(c *gin.Context) { func (hd *UserProtocolHandler) DelBatch(c *gin.Context) {
var delReq UserProtocolDelBatchReq var delReq schema.UserProtocolDelBatchReq
if response.IsFailWithResp(c, util.VerifyUtil.VerifyJSON(c, &delReq)) { if response.IsFailWithResp(c, util.VerifyUtil.VerifyJSON(c, &delReq)) {
return return
} }
@@ -158,7 +160,7 @@ func (hd *UserProtocolHandler) DelBatch(c *gin.Context) {
} }
var Ids = strings.Split(delReq.Ids, ",") var Ids = strings.Split(delReq.Ids, ",")
response.CheckAndResp(c, UserProtocolService.DelBatch(Ids)) response.CheckAndResp(c, service.UserProtocolService.DelBatch(Ids))
} }
// @Summary 用户协议导出 // @Summary 用户协议导出
@@ -174,16 +176,16 @@ func (hd *UserProtocolHandler) DelBatch(c *gin.Context) {
// @Param UpdateTimeEnd query string false "更新时间" // @Param UpdateTimeEnd query string false "更新时间"
// @Router /api/admin/user_protocol/ExportFile [get] // @Router /api/admin/user_protocol/ExportFile [get]
func (hd *UserProtocolHandler) ExportFile(c *gin.Context) { func (hd *UserProtocolHandler) ExportFile(c *gin.Context) {
var listReq UserProtocolListReq var listReq schema.UserProtocolListReq
if response.IsFailWithResp(c, util.VerifyUtil.VerifyQuery(c, &listReq)) { if response.IsFailWithResp(c, util.VerifyUtil.VerifyQuery(c, &listReq)) {
return return
} }
res, err := UserProtocolService.ExportFile(listReq) res, err := service.UserProtocolService.ExportFile(listReq)
if err != nil { if err != nil {
response.FailWithMsg(c, response.SystemError, "查询信息失败") response.FailWithMsg(c, response.SystemError, "查询信息失败")
return return
} }
f, err := excel2.Export(res, UserProtocolService.GetExcelCol(), "Sheet1", "用户协议") f, err := excel2.Export(res, service.UserProtocolService.GetExcelCol(), "Sheet1", "用户协议")
if err != nil { if err != nil {
response.FailWithMsg(c, response.SystemError, "导出失败") response.FailWithMsg(c, response.SystemError, "导出失败")
return return
@@ -202,13 +204,13 @@ func (hd *UserProtocolHandler) ImportFile(c *gin.Context) {
return return
} }
defer file.Close() defer file.Close()
importList := []UserProtocolResp{} importList := []schema.UserProtocolResp{}
err = excel2.GetExcelData(file, &importList, UserProtocolService.GetExcelCol()) err = excel2.GetExcelData(file, &importList, service.UserProtocolService.GetExcelCol())
if err != nil { if err != nil {
c.String(http.StatusInternalServerError, err.Error()) c.String(http.StatusInternalServerError, err.Error())
return return
} }
err = UserProtocolService.ImportFile(importList) err = service.UserProtocolService.ImportFile(importList)
response.CheckAndResp(c, err) response.CheckAndResp(c, err)
} }

View File

@@ -110,7 +110,8 @@ func (sd storageDriver) checkFile(file *multipart.FileHeader, fileType int) (e e
fileName := file.Filename fileName := file.Filename
fileExt := strings.ToLower(strings.Replace(path.Ext(fileName), ".", "", 1)) fileExt := strings.ToLower(strings.Replace(path.Ext(fileName), ".", "", 1))
fileSize := file.Size fileSize := file.Size
if fileType == 10 { switch fileType {
case 10:
// 图片文件 // 图片文件
if !util.ToolsUtil.Contains(config.Config.UploadImageExt, fileExt) { if !util.ToolsUtil.Contains(config.Config.UploadImageExt, fileExt) {
return response.Failed.SetMessage("不被支持的图片扩展: " + fileExt) return response.Failed.SetMessage("不被支持的图片扩展: " + fileExt)
@@ -118,7 +119,7 @@ func (sd storageDriver) checkFile(file *multipart.FileHeader, fileType int) (e e
if fileSize > config.Config.UploadImageSize { if fileSize > config.Config.UploadImageSize {
return response.Failed.SetMessage("上传图片不能超出限制: " + strconv.FormatInt(config.Config.UploadImageSize/1024/1024, 10) + "M") return response.Failed.SetMessage("上传图片不能超出限制: " + strconv.FormatInt(config.Config.UploadImageSize/1024/1024, 10) + "M")
} }
} else if fileType == 20 { case 20:
// 视频文件 // 视频文件
if !util.ToolsUtil.Contains(config.Config.UploadVideoExt, fileExt) { if !util.ToolsUtil.Contains(config.Config.UploadVideoExt, fileExt) {
return response.Failed.SetMessage("不被支持的视频扩展: " + fileExt) return response.Failed.SetMessage("不被支持的视频扩展: " + fileExt)
@@ -126,7 +127,7 @@ func (sd storageDriver) checkFile(file *multipart.FileHeader, fileType int) (e e
if fileSize > config.Config.UploadVideoSize { if fileSize > config.Config.UploadVideoSize {
return response.Failed.SetMessage("上传视频不能超出限制: " + strconv.FormatInt(config.Config.UploadVideoSize/1024/1024, 10) + "M") return response.Failed.SetMessage("上传视频不能超出限制: " + strconv.FormatInt(config.Config.UploadVideoSize/1024/1024, 10) + "M")
} }
} else { default:
core.Logger.Errorf("storageDriver.checkFile fileType err: err=[unsupported fileType]") core.Logger.Errorf("storageDriver.checkFile fileType err: err=[unsupported fileType]")
return response.Failed.SetMessage("上传文件类型错误") return response.Failed.SetMessage("上传文件类型错误")
} }

View File

@@ -1,9 +1,8 @@
package admin package admin
import ( import (
"x_admin/admin/generator"
"x_admin/controller/admin/commonController" "x_admin/controller/admin/commonController"
"x_admin/controller/admin/generatorController"
"x_admin/controller/admin/monitorController" "x_admin/controller/admin/monitorController"
"x_admin/controller/admin/settingController" "x_admin/controller/admin/settingController"
"x_admin/controller/admin/systemController" "x_admin/controller/admin/systemController"
@@ -35,13 +34,11 @@ func RegisterRoute(rg *gin.RouterGroup) {
systemController.DeptRoute(rg) systemController.DeptRoute(rg)
systemController.RoleRoute(rg) systemController.RoleRoute(rg)
systemController.LogRoute(rg) systemController.LogRoute(rg)
generatorController.GenRoute(rg)
FlowTemplateRoute(rg) FlowTemplateRoute(rg)
FlowApplyRoute(rg) FlowApplyRoute(rg)
FlowHistoryRoute(rg) FlowHistoryRoute(rg)
generator.RegisterGroup(rg)
MonitorProjectRoute(rg) MonitorProjectRoute(rg)
MonitorClientRoute(rg) MonitorClientRoute(rg)
MonitorErrorRoute(rg) MonitorErrorRoute(rg)

View File

@@ -1,9 +1,10 @@
package admin package admin
import ( import (
"x_admin/controller/admin"
"x_admin/middleware"
"github.com/gin-gonic/gin" "github.com/gin-gonic/gin"
"x_admin/middleware"
"x_admin/admin/user_protocol"
) )
/** /**
@@ -41,22 +42,21 @@ INSERT INTO x_system_auth_menu (pid, menu_type, menu_name, perms,is_cache, is_sh
INSERT INTO x_system_auth_menu (pid, menu_type, menu_name, perms,is_cache, is_show, is_disable, create_time, update_time) VALUES (0, 'A', '用户协议导入excel','admin:user_protocol:ImportFile', 0, 1, 0, now(), now()); INSERT INTO x_system_auth_menu (pid, menu_type, menu_name, perms,is_cache, is_show, is_disable, create_time, update_time) VALUES (0, 'A', '用户协议导入excel','admin:user_protocol:ImportFile', 0, 1, 0, now(), now());
*/ */
// UserProtocolRoute(rg) // UserProtocolRoute(rg)
func UserProtocolRoute(rg *gin.RouterGroup) { func UserProtocolRoute(rg *gin.RouterGroup) {
handle := user_protocol.UserProtocolHandler{} handle := admin.UserProtocolHandler{}
r := rg.Group("/", middleware.TokenAuth()) r := rg.Group("/", middleware.TokenAuth())
r.GET("/user_protocol/list", handle.List) r.GET("/user_protocol/list", handle.List)
r.GET("/user_protocol/listAll", handle.ListAll) r.GET("/user_protocol/listAll", handle.ListAll)
r.GET("/user_protocol/detail", handle.Detail) r.GET("/user_protocol/detail", handle.Detail)
r.POST("/user_protocol/add",middleware.RecordLog("用户协议新增"), handle.Add) r.POST("/user_protocol/add", middleware.RecordLog("用户协议新增"), handle.Add)
r.POST("/user_protocol/edit",middleware.RecordLog("用户协议编辑"), handle.Edit) r.POST("/user_protocol/edit", middleware.RecordLog("用户协议编辑"), handle.Edit)
r.POST("/user_protocol/del", middleware.RecordLog("用户协议删除"), handle.Del) r.POST("/user_protocol/del", middleware.RecordLog("用户协议删除"), handle.Del)
r.POST("/user_protocol/delBatch", middleware.RecordLog("用户协议删除-批量"), handle.DelBatch) r.POST("/user_protocol/delBatch", middleware.RecordLog("用户协议删除-批量"), handle.DelBatch)
r.GET("/user_protocol/ExportFile", middleware.RecordLog("用户协议导出"), handle.ExportFile) r.GET("/user_protocol/ExportFile", middleware.RecordLog("用户协议导出"), handle.ExportFile)
r.POST("/user_protocol/ImportFile", handle.ImportFile) r.POST("/user_protocol/ImportFile", handle.ImportFile)
} }

View File

@@ -1,4 +1,4 @@
package gen package generatorSchema
import ( import (
"time" "time"

View File

@@ -1,4 +1,4 @@
package user_protocol package schema
import ( import (
"x_admin/core" "x_admin/core"

View File

@@ -1,14 +1,16 @@
package gen package generatorService
import ( import (
"archive/zip" "archive/zip"
"bytes" "bytes"
"x_admin/admin/generator/tpl_utils"
"x_admin/config" "x_admin/config"
"x_admin/core" "x_admin/core"
"x_admin/core/request" "x_admin/core/request"
"x_admin/core/response" "x_admin/core/response"
"x_admin/model/gen_model" "x_admin/model/gen_model"
"x_admin/schema/generatorSchema"
"x_admin/service/generatorService/tpl_utils"
"x_admin/util/convert_util" "x_admin/util/convert_util"
"strings" "strings"
@@ -18,20 +20,7 @@ import (
"gorm.io/gorm" "gorm.io/gorm"
) )
type IGenerateService interface { var GenerateService = NewGenerateService()
DbTables(page request.PageReq, req DbTablesReq) (res response.PageResp, e error)
List(page request.PageReq, listReq ListTableReq) (res response.PageResp, e error)
Detail(id uint) (res GenTableDetailResp, e error)
ImportTable(tableNames []string) (e error)
SyncTable(id uint) (e error)
EditTable(editReq EditTableReq) (e error)
DelTable(ids []uint) (e error)
PreviewCode(id uint) (res map[string]string, e error)
DownloadCode(tableNames []string) ([]byte, error)
}
var Service = NewGenerateService()
// NewGenerateService 初始化 // NewGenerateService 初始化
func NewGenerateService() *generateService { func NewGenerateService() *generateService {
@@ -45,7 +34,7 @@ type generateService struct {
} }
// DbTables 库表列表 // DbTables 库表列表
func (genSrv generateService) DbTables(page request.PageReq, dbReq DbTablesReq) (res response.PageResp, e error) { func (genSrv generateService) DbTables(page request.PageReq, dbReq generatorSchema.DbTablesReq) (res response.PageResp, e error) {
// 分页信息 // 分页信息
limit := page.PageSize limit := page.PageSize
offset := page.PageSize * (page.PageNo - 1) offset := page.PageSize * (page.PageNo - 1)
@@ -57,7 +46,7 @@ func (genSrv generateService) DbTables(page request.PageReq, dbReq DbTablesReq)
return return
} }
// 数据 // 数据
var tbResp []DbTableResp var tbResp []generatorSchema.DbTableResp
err = tbModel.Limit(limit).Offset(offset).Find(&tbResp).Error err = tbModel.Limit(limit).Offset(offset).Find(&tbResp).Error
if e = response.CheckErr(err, "DbTables Find err"); e != nil { if e = response.CheckErr(err, "DbTables Find err"); e != nil {
return return
@@ -71,7 +60,7 @@ func (genSrv generateService) DbTables(page request.PageReq, dbReq DbTablesReq)
} }
// List 生成列表 // List 生成列表
func (genSrv generateService) List(page request.PageReq, listReq ListTableReq) (res response.PageResp, e error) { func (genSrv generateService) List(page request.PageReq, listReq generatorSchema.ListTableReq) (res response.PageResp, e error) {
// 分页信息 // 分页信息
limit := page.PageSize limit := page.PageSize
offset := page.PageSize * (page.PageNo - 1) offset := page.PageSize * (page.PageNo - 1)
@@ -95,7 +84,7 @@ func (genSrv generateService) List(page request.PageReq, listReq ListTableReq) (
return return
} }
// 数据 // 数据
var genResp []GenTableResp var genResp []generatorSchema.GenTableResp
err = genModel.Limit(limit).Offset(offset).Order("id desc").Find(&genResp).Error err = genModel.Limit(limit).Offset(offset).Order("id desc").Find(&genResp).Error
if e = response.CheckErr(err, "列表获取失败"); e != nil { if e = response.CheckErr(err, "列表获取失败"); e != nil {
return return
@@ -109,7 +98,7 @@ func (genSrv generateService) List(page request.PageReq, listReq ListTableReq) (
} }
// Detail 生成详情 // Detail 生成详情
func (genSrv generateService) Detail(id uint) (res GenTableDetailResp, e error) { func (genSrv generateService) Detail(id uint) (res generatorSchema.GenTableDetailResp, e error) {
var genTb gen_model.GenTable var genTb gen_model.GenTable
err := genSrv.db.Where("id = ?", id).Limit(1).First(&genTb).Error err := genSrv.db.Where("id = ?", id).Limit(1).First(&genTb).Error
if e = response.CheckErrDBNotRecord(err, "查询的数据不存在!"); e != nil { if e = response.CheckErrDBNotRecord(err, "查询的数据不存在!"); e != nil {
@@ -123,13 +112,13 @@ func (genSrv generateService) Detail(id uint) (res GenTableDetailResp, e error)
if e = response.CheckErr(err, "Detail Find err"); e != nil { if e = response.CheckErr(err, "Detail Find err"); e != nil {
return return
} }
var base GenTableBaseResp var base generatorSchema.GenTableBaseResp
convert_util.Copy(&base, genTb) convert_util.Copy(&base, genTb)
var gen GenTableGenResp var gen generatorSchema.GenTableGenResp
convert_util.Copy(&gen, genTb) convert_util.Copy(&gen, genTb)
var colResp []GenColumnResp var colResp []generatorSchema.GenColumnResp
convert_util.Copy(&colResp, columns) convert_util.Copy(&colResp, columns)
return GenTableDetailResp{ return generatorSchema.GenTableDetailResp{
Base: base, Base: base,
Gen: gen, Gen: gen,
Column: colResp, Column: colResp,
@@ -138,7 +127,7 @@ func (genSrv generateService) Detail(id uint) (res GenTableDetailResp, e error)
// ImportTable 导入表结构 // ImportTable 导入表结构
func (genSrv generateService) ImportTable(tableNames []string) (e error) { func (genSrv generateService) ImportTable(tableNames []string) (e error) {
var dbTbs []DbTableResp var dbTbs []generatorSchema.DbTableResp
err := tpl_utils.GenUtil.GetDbTablesQueryByNames(genSrv.db, tableNames).Find(&dbTbs).Error err := tpl_utils.GenUtil.GetDbTablesQueryByNames(genSrv.db, tableNames).Find(&dbTbs).Error
if e = response.CheckErr(err, "ImportTable Find tables err"); e != nil { if e = response.CheckErr(err, "ImportTable Find tables err"); e != nil {
return return
@@ -263,7 +252,7 @@ func (genSrv generateService) SyncTable(id uint) (e error) {
} }
// EditTable 编辑表结构 // EditTable 编辑表结构
func (genSrv generateService) EditTable(editReq EditTableReq) (e error) { func (genSrv generateService) EditTable(editReq generatorSchema.EditTableReq) (e error) {
if editReq.GenTpl == tpl_utils.GenConstants.TplTree { if editReq.GenTpl == tpl_utils.GenConstants.TplTree {
if editReq.TreePrimary == "" { if editReq.TreePrimary == "" {
e = response.AssertArgumentError.SetMessage("树主ID不能为空") e = response.AssertArgumentError.SetMessage("树主ID不能为空")

View File

@@ -29,7 +29,6 @@ func NewMonitorClientService() *monitorClientService {
// monitorClientService 监控-客户端信息服务实现类 // monitorClientService 监控-客户端信息服务实现类
type monitorClientService struct { type monitorClientService struct {
db *gorm.DB db *gorm.DB
Name string
CacheUtil util.CacheUtil CacheUtil util.CacheUtil
} }

View File

@@ -18,10 +18,6 @@ import (
var MonitorErrorService = NewMonitorErrorService() var MonitorErrorService = NewMonitorErrorService()
// var cacheUtil = util.CacheUtil{
// Name: MonitorErrorService.Name,
// }
// NewMonitorErrorService 初始化 // NewMonitorErrorService 初始化
func NewMonitorErrorService() *monitorErrorService { func NewMonitorErrorService() *monitorErrorService {
return &monitorErrorService{ return &monitorErrorService{

View File

@@ -28,7 +28,6 @@ func NewMonitorProjectService() *monitorProjectService {
// monitorProjectService 监控项目服务实现类 // monitorProjectService 监控项目服务实现类
type monitorProjectService struct { type monitorProjectService struct {
db *gorm.DB db *gorm.DB
Name string
CacheUtil util.CacheUtil CacheUtil util.CacheUtil
} }
@@ -189,10 +188,7 @@ func (service monitorProjectService) DelBatch(Ids []string) (e error) {
if err != nil { if err != nil {
return err return err
} }
// 删除缓存
// for _, v := range Ids {
// service.CacheUtil.RemoveCache(v)
// }
service.CacheUtil.RemoveCache(Ids) service.CacheUtil.RemoveCache(Ids)
return nil return nil
} }

View File

@@ -1,10 +1,11 @@
package user_protocol package service
import ( import (
"x_admin/core" "x_admin/core"
"x_admin/core/request" "x_admin/core/request"
"x_admin/core/response" "x_admin/core/response"
"x_admin/model" "x_admin/model"
"x_admin/schema"
"x_admin/util" "x_admin/util"
"x_admin/util/convert_util" "x_admin/util/convert_util"
"x_admin/util/excel2" "x_admin/util/excel2"
@@ -13,26 +14,26 @@ import (
) )
var UserProtocolService = NewUserProtocolService() var UserProtocolService = NewUserProtocolService()
var cacheUtil = util.CacheUtil{
Name: UserProtocolService.Name,
}
// NewUserProtocolService 初始化 // NewUserProtocolService 初始化
func NewUserProtocolService() *userProtocolService { func NewUserProtocolService() *userProtocolService {
return &userProtocolService{ return &userProtocolService{
db: core.GetDB(), db: core.GetDB(),
Name: "userProtocol", CacheUtil: util.CacheUtil{
Name: "userProtocol",
},
} }
} }
// userProtocolService 用户协议服务实现类 // userProtocolService 用户协议服务实现类
type userProtocolService struct { type userProtocolService struct {
db *gorm.DB db *gorm.DB
Name string
CacheUtil util.CacheUtil
} }
// List 用户协议列表 // List 用户协议列表
func (service userProtocolService) GetModel(listReq UserProtocolListReq) *gorm.DB { func (service userProtocolService) GetModel(listReq schema.UserProtocolListReq) *gorm.DB {
// 查询 // 查询
dbModel := service.db.Model(&model.UserProtocol{}) dbModel := service.db.Model(&model.UserProtocol{})
if listReq.Title != nil { if listReq.Title != nil {
@@ -61,7 +62,7 @@ func (service userProtocolService) GetModel(listReq UserProtocolListReq) *gorm.D
} }
// List 用户协议列表 // List 用户协议列表
func (service userProtocolService) List(page request.PageReq, listReq UserProtocolListReq) (res response.PageResp, e error) { func (service userProtocolService) List(page request.PageReq, listReq schema.UserProtocolListReq) (res response.PageResp, e error) {
// 分页信息 // 分页信息
limit := page.PageSize limit := page.PageSize
offset := page.PageSize * (page.PageNo - 1) offset := page.PageSize * (page.PageNo - 1)
@@ -78,7 +79,7 @@ func (service userProtocolService) List(page request.PageReq, listReq UserProtoc
if e = response.CheckErr(err, "查询失败"); e != nil { if e = response.CheckErr(err, "查询失败"); e != nil {
return return
} }
result := []UserProtocolResp{} result := []schema.UserProtocolResp{}
convert_util.Copy(&result, modelList) convert_util.Copy(&result, modelList)
return response.PageResp{ return response.PageResp{
PageNo: page.PageNo, PageNo: page.PageNo,
@@ -89,7 +90,7 @@ func (service userProtocolService) List(page request.PageReq, listReq UserProtoc
} }
// ListAll 用户协议列表 // ListAll 用户协议列表
func (service userProtocolService) ListAll(listReq UserProtocolListReq) (res []UserProtocolResp, e error) { func (service userProtocolService) ListAll(listReq schema.UserProtocolListReq) (res []schema.UserProtocolResp, e error) {
dbModel := service.GetModel(listReq) dbModel := service.GetModel(listReq)
var modelList []model.UserProtocol var modelList []model.UserProtocol
@@ -103,9 +104,9 @@ func (service userProtocolService) ListAll(listReq UserProtocolListReq) (res []U
} }
// Detail 用户协议详情 // Detail 用户协议详情
func (service userProtocolService) Detail(Id int) (res UserProtocolResp, e error) { func (service userProtocolService) Detail(Id int) (res schema.UserProtocolResp, e error) {
var obj = model.UserProtocol{} var obj = model.UserProtocol{}
err := cacheUtil.GetCache(Id, &obj) err := service.CacheUtil.GetCache(Id, &obj)
if err != nil { if err != nil {
err := service.db.Where("id = ? AND is_delete = ?", Id, 0).Limit(1).First(&obj).Error err := service.db.Where("id = ? AND is_delete = ?", Id, 0).Limit(1).First(&obj).Error
if e = response.CheckErrDBNotRecord(err, "数据不存在!"); e != nil { if e = response.CheckErrDBNotRecord(err, "数据不存在!"); e != nil {
@@ -114,7 +115,7 @@ func (service userProtocolService) Detail(Id int) (res UserProtocolResp, e error
if e = response.CheckErr(err, "获取详情失败"); e != nil { if e = response.CheckErr(err, "获取详情失败"); e != nil {
return return
} }
cacheUtil.SetCache(obj.Id, obj) service.CacheUtil.SetCache(obj.Id, obj)
} }
convert_util.Copy(&res, obj) convert_util.Copy(&res, obj)
@@ -122,7 +123,7 @@ func (service userProtocolService) Detail(Id int) (res UserProtocolResp, e error
} }
// Add 用户协议新增 // Add 用户协议新增
func (service userProtocolService) Add(addReq UserProtocolAddReq) (createId int, e error) { func (service userProtocolService) Add(addReq schema.UserProtocolAddReq) (createId int, e error) {
var obj model.UserProtocol var obj model.UserProtocol
convert_util.StructToStruct(addReq, &obj) convert_util.StructToStruct(addReq, &obj)
err := service.db.Create(&obj).Error err := service.db.Create(&obj).Error
@@ -130,13 +131,13 @@ func (service userProtocolService) Add(addReq UserProtocolAddReq) (createId int,
if e != nil { if e != nil {
return 0, e return 0, e
} }
cacheUtil.SetCache(obj.Id, obj) service.CacheUtil.SetCache(obj.Id, obj)
createId = obj.Id createId = obj.Id
return return
} }
// Edit 用户协议编辑 // Edit 用户协议编辑
func (service userProtocolService) Edit(editReq UserProtocolEditReq) (e error) { func (service userProtocolService) Edit(editReq schema.UserProtocolEditReq) (e error) {
var obj model.UserProtocol var obj model.UserProtocol
err := service.db.Where("id = ? AND is_delete = ?", editReq.Id, 0).Limit(1).First(&obj).Error err := service.db.Where("id = ? AND is_delete = ?", editReq.Id, 0).Limit(1).First(&obj).Error
// 校验 // 校验
@@ -152,7 +153,7 @@ func (service userProtocolService) Edit(editReq UserProtocolEditReq) (e error) {
if e = response.CheckErr(err, "编辑失败"); e != nil { if e = response.CheckErr(err, "编辑失败"); e != nil {
return return
} }
cacheUtil.RemoveCache(obj.Id) service.CacheUtil.RemoveCache(obj.Id)
service.Detail(obj.Id) service.Detail(obj.Id)
return return
} }
@@ -173,7 +174,7 @@ func (service userProtocolService) Del(Id int) (e error) {
obj.DeleteTime = util.NullTimeUtil.Now() obj.DeleteTime = util.NullTimeUtil.Now()
err = service.db.Save(&obj).Error err = service.db.Save(&obj).Error
e = response.CheckErr(err, "删除失败") e = response.CheckErr(err, "删除失败")
cacheUtil.RemoveCache(obj.Id) service.CacheUtil.RemoveCache(obj.Id)
return return
} }
@@ -186,7 +187,7 @@ func (service userProtocolService) DelBatch(Ids []string) (e error) {
} }
// 删除缓存 // 删除缓存
for _, v := range Ids { for _, v := range Ids {
cacheUtil.RemoveCache(v) service.CacheUtil.RemoveCache(v)
} }
return nil return nil
} }
@@ -205,7 +206,7 @@ func (service userProtocolService) GetExcelCol() []excel2.Col {
} }
// ExportFile 用户协议导出 // ExportFile 用户协议导出
func (service userProtocolService) ExportFile(listReq UserProtocolListReq) (res []UserProtocolResp, e error) { func (service userProtocolService) ExportFile(listReq schema.UserProtocolListReq) (res []schema.UserProtocolResp, e error) {
// 查询 // 查询
dbModel := service.GetModel(listReq) dbModel := service.GetModel(listReq)
@@ -215,13 +216,13 @@ func (service userProtocolService) ExportFile(listReq UserProtocolListReq) (res
if e = response.CheckErr(err, "查询失败"); e != nil { if e = response.CheckErr(err, "查询失败"); e != nil {
return return
} }
result := []UserProtocolResp{} result := []schema.UserProtocolResp{}
convert_util.Copy(&result, modelList) convert_util.Copy(&result, modelList)
return result, nil return result, nil
} }
// 导入 // 导入
func (service userProtocolService) ImportFile(importReq []UserProtocolResp) (e error) { func (service userProtocolService) ImportFile(importReq []schema.UserProtocolResp) (e error) {
var importData []model.UserProtocol var importData []model.UserProtocol
convert_util.Copy(&importData, importReq) convert_util.Copy(&importData, importReq)
err := service.db.Create(&importData).Error err := service.db.Create(&importData).Error