代码生成id换uuidv7

This commit is contained in:
xh
2025-12-18 22:23:09 +08:00
parent 9178fa4b56
commit e3fa8a2c9e
6 changed files with 47 additions and 47 deletions
+11 -11
View File
@@ -21,7 +21,7 @@ type ListTableReq struct {
// DetailTableReq 生成详情参数
type DetailTableReq struct {
ID uint `form:"id" binding:"required,gt=0"` // 主键
ID string `form:"id" binding:"required"` // 主键
}
// ImportTableReq 导入表结构参数
@@ -31,13 +31,13 @@ type ImportTableReq struct {
// SyncTableReq 同步表结构参数
type SyncTableReq struct {
ID uint `form:"id" binding:"required,gt=0"` // 主键
ID string `form:"id" binding:"required"` // 主键
}
// EditColumn 表编辑列
type EditColumn struct {
ID uint `form:"id" binding:"required,gt=0"` // 主键
TableID uint `form:"tableId" binding:"required,gt=0"` // 表ID
ID string `form:"id" binding:"required"` // 主键
TableID string `form:"tableId" binding:"required"` // 表ID
ColumnName string `form:"columnName" binding:"required,max=200"` // 列名称
ColumnLength uint `form:"columnLength" binding:"required,max=5"` // 列长度
@@ -67,7 +67,7 @@ type EditColumn struct {
// EditTableReq 编辑表结构参数
type EditTableReq struct {
ID uint `form:"id" binding:"required,gt=0"` // 主键
ID string `form:"id" binding:"required"` // 主键
TableName string `form:"tableName" binding:"required,min=1,max=200"` // 表名称
EntityName string `form:"entityName" binding:"required,min=1,max=200"` // 实体名称
TableComment string `form:"tableComment" binding:"required,min=1,max=200"` // 表描述
@@ -87,12 +87,12 @@ type EditTableReq struct {
// DelTableReq 删除表结构参数
type DelTableReq struct {
Ids []uint `form:"ids" binding:"required"` // 主键
Ids []string `form:"ids" binding:"required"` // 主键
}
// PreviewCodeReq 预览代码参数
type PreviewCodeReq struct {
ID uint `form:"id" binding:"required,gt=0"` // 主键
ID string `form:"id" binding:"required"` // 主键
}
// GenCodeReq 生成代码参数
@@ -115,7 +115,7 @@ type DbTableResp struct {
// GenTableResp 生成表返回信息
type GenTableResp struct {
ID uint `json:"id" structs:"id"` // 主键
ID string `json:"id" structs:"id"` // 主键
TableName string `json:"tableName" structs:"tableName"` // 表名称
TableComment string `json:"tableComment" structs:"tableComment"` // 表描述
@@ -125,7 +125,7 @@ type GenTableResp struct {
// GenTableBaseResp 生成表基本返回信息
type GenTableBaseResp struct {
ID uint `json:"id" structs:"id"` // 主键
ID string `json:"id" structs:"id"` // 主键
TableName string `json:"tableName" structs:"tableName"` // 表的名称
TableComment string `json:"tableComment" structs:"tableComment"` // 表的描述
EntityName string `json:"entityName" structs:"entityName"` // 实体名称
@@ -150,8 +150,8 @@ type GenTableGenResp struct {
// GenColumnResp 生成列返回信息
type GenColumnResp struct {
ID uint `json:"id" structs:"id"` // 字段主键
TableID uint `json:"tableId" structs:"tableId"` // 归属表主键
ID string `json:"id" structs:"id"` // 字段主键
TableID string `json:"tableId" structs:"tableId"` // 归属表主键
ColumnName string `json:"columnName" structs:"columnName"` // 字段名称
ColumnComment string `json:"columnComment" structs:"columnComment"` // 字段描述
@@ -98,7 +98,7 @@ func (genSrv generateService) List(page request.PageReq, listReq generatorSchema
}
// Detail 生成详情
func (genSrv generateService) Detail(id uint) (res generatorSchema.GenTableDetailResp, e error) {
func (genSrv generateService) Detail(id string) (res generatorSchema.GenTableDetailResp, e error) {
var genTb gen_model.GenTable
err := genSrv.db.Where("id = ?", id).Limit(1).First(&genTb).Error
if e = response.CheckErrDBNotRecord(err, "查询的数据不存在!"); e != nil {
@@ -167,7 +167,7 @@ func (genSrv generateService) ImportTable(tableNames []string) (e error) {
}
// SyncTable 同步表结构
func (genSrv generateService) SyncTable(id uint) (e error) {
func (genSrv generateService) SyncTable(id string) (e error) {
//旧数据
var genTable gen_model.GenTable
err := genSrv.db.Where("id = ?", id).Limit(1).First(&genTable).Error
@@ -235,7 +235,7 @@ func (genSrv generateService) SyncTable(id uint) (e error) {
for i := 0; i < len(columns); i++ {
colNames[i] = columns[i].ColumnName
}
delColIds := make([]uint, 0)
delColIds := make([]string, 0)
for _, prevCol := range prevColMap {
if !util.ToolsUtil.Contains(colNames, prevCol.ColumnName) {
delColIds = append(delColIds, prevCol.ID)
@@ -295,7 +295,7 @@ func (genSrv generateService) EditTable(editReq generatorSchema.EditTableReq) (e
}
// DelTable 删除表结构
func (genSrv generateService) DelTable(ids []uint) (e error) {
func (genSrv generateService) DelTable(ids []string) (e error) {
err := genSrv.db.Transaction(func(tx *gorm.DB) error {
txErr := tx.Delete(&gen_model.GenTable{}, "id in ?", ids).Error
if te := response.CheckErr(txErr, "DelTable Delete GenTable err"); te != nil {
@@ -360,7 +360,7 @@ func (genSrv generateService) renderCodeByTable(genTable gen_model.GenTable) (re
}
// PreviewCode 预览代码
func (genSrv generateService) PreviewCode(id uint) (res map[string]string, e error) {
func (genSrv generateService) PreviewCode(id string) (res map[string]string, e error) {
var genTable gen_model.GenTable
err := genSrv.db.Where("id = ?", id).Limit(1).First(&genTable).Error
if e = response.CheckErrDBNotRecord(err, "记录丢失!"); e != nil {
@@ -106,7 +106,7 @@ func (tu templateUtil) PrepareVars(table gen_model.GenTable, columns []gen_model
for _, column := range oriSubCols {
oriSubColNames = append(oriSubColNames, column.ColumnName)
}
if oriSubPriCol.ID > 0 {
if oriSubPriCol.ID != "" {
subPriField = oriSubPriCol.ColumnName
subColumns = append(subColumns, oriSubPriCol)
}
@@ -76,7 +76,7 @@ func (gu genUtil) InitTable(table gen_model.GenTable) gen_model.GenTable {
}
// InitColumn 初始化字段列
func (gu genUtil) InitColumn(tableId uint, column gen_model.GenTableColumn) gen_model.GenTableColumn {
func (gu genUtil) InitColumn(tableId string, column gen_model.GenTableColumn) gen_model.GenTableColumn {
columnType := gu.GetDbType(column.ColumnType)
columnLen := gu.GetColumnLength(column.ColumnType)
col := gen_model.GenTableColumn{
+29 -4
View File
@@ -1,10 +1,15 @@
package gen_model
import "x_admin/core"
import (
"x_admin/core"
"github.com/google/uuid"
"gorm.io/gorm"
)
// GenTable 代码生成业务实体
type GenTable struct {
ID uint `gorm:"primarykey;comment:'主键'"`
ID string `gorm:"primarykey;type:char(36);comment:'主键'"`
TableName string `gorm:"not null;default:'';comment:'表名称''"`
TableComment string `gorm:"not null;default:'';comment:'表描述'"`
SubTableName string `gorm:"not null;default:'';comment:'关联表名称'"`
@@ -23,10 +28,20 @@ type GenTable struct {
UpdateTime core.NullTime `gorm:"autoUpdateTime;not null;comment:'更新时间'"`
}
// 自动在创建时设置 UUIDv7
func (m *GenTable) BeforeCreate(tx *gorm.DB) error {
id, err := uuid.NewV7()
if err != nil {
return err
}
m.ID = id.String()
return nil
}
// GenTableColumn 代码生成表列实体
type GenTableColumn struct {
ID uint `gorm:"primarykey;comment:'主键'"`
TableID uint `gorm:"not null;default:0;comment:'表外键'"`
ID string `gorm:"primarykey;type:char(36);comment:'主键'"`
TableID string `gorm:"not null;default:0;comment:'表外键'"`
ColumnName string `gorm:"not null;default:'';comment:'列名称'"`
ColumnComment string `gorm:"not null;default:'';comment:'列描述'"`
ColumnLength int `gorm:"not null;default:0;comment:'列长度'"`
@@ -48,3 +63,13 @@ type GenTableColumn struct {
CreateTime core.NullTime `gorm:"autoCreateTime;not null;comment:'创建时间'"`
UpdateTime core.NullTime `gorm:"autoUpdateTime;not null;comment:'更新时间'"`
}
// 自动在创建时设置 UUIDv7
func (m *GenTableColumn) BeforeCreate(tx *gorm.DB) error {
id, err := uuid.NewV7()
if err != nil {
return err
}
m.ID = id.String()
return nil
}
-25
View File
@@ -1,25 +0,0 @@
package model
import "x_admin/core"
// MonitorWeb 错误收集error实体
type MonitorWeb struct {
Id int `gorm:"primarykey;comment:'uuid'"` // uuid
ProjectKey string `gorm:"comment:'项目key'"` // 项目key
ClientId string `gorm:"comment:'sdk生成的客户端id'"` // sdk生成的客户端id
EventType string `gorm:"comment:'事件类型'"` // 事件类型
Page string `gorm:"comment:'URL地址'"` // URL地址
Message string `gorm:"comment:'错误消息'"` // 错误消息
Stack string `gorm:"comment:'错误堆栈'"` // 错误堆栈
ClientTime core.NullTime `gorm:"comment:'客户端时间'"` // 客户端时间
CreateTime core.NullTime `gorm:"autoCreateTime;comment:'创建时间'"` // 创建时间
}