diff --git a/beans/beans.go b/beans/beans.go index 44a8cd0..65662ac 100644 --- a/beans/beans.go +++ b/beans/beans.go @@ -40,37 +40,31 @@ type MongoBaseDO struct { // SQLBaseDO SQL数据库基础实体 type SQLBaseDO struct { - Id *uint64 `orm:"id" json:"id"` // 主键ID - Bid string `orm:"bid" json:"bid"` // 业务ID + Id int64 `orm:"id" json:"id"` // 主键ID Creator string `orm:"creator" json:"creator"` // 创建人 CreatedAt *gtime.Time `orm:"created_at" json:"createdAt"` // 创建时间 Updater string `orm:"updater" json:"updater"` // 更新人 UpdatedAt *gtime.Time `orm:"updated_at" json:"updatedAt"` // 更新时间 - Deleter string `orm:"deleter" json:"deleter"` // 软删除人 DeletedAt *gtime.Time `orm:"deleted_at" json:"deletedAt"` // 软删除时间 IsDeleted bool `orm:"is_deleted" json:"isDeleted"` // 是否删除 } type SQLBaseCol struct { Id string - Bid string Creator string CreatedAt string Updater string UpdatedAt string - Deleter string DeletedAt string IsDeleted string } var DefSQLBaseCol = SQLBaseCol{ Id: "id", - Bid: "bid", Creator: "creator", CreatedAt: "created_at", Updater: "updater", UpdatedAt: "updated_at", - Deleter: "deleter", DeletedAt: "deleted_at", IsDeleted: "is_deleted", } diff --git a/beans/module_tenant.go b/beans/module_tenant.go index 4b53f8b..6e4f1c0 100644 --- a/beans/module_tenant.go +++ b/beans/module_tenant.go @@ -6,10 +6,10 @@ import ( // ModuleAssetId 模块资产ID映射(key-value结构) // Key: 服务名,Value: 资产ID -var ModuleAssetId = map[string]string{ - "assets": "696b4acd1be1c8b76c4b4c15", // 资产模块 - "cid": "696f423705e496ba4ccbe665", // 广告模块 - "customerService": "696f421205e496ba4ccbe662", // AI客服模块 +var ModuleAssetId = map[string]int64{ + "assets": 1, // 资产模块 + "cid": 2, // 广告模块 + "customerService": 3, // AI客服模块 } // 模块类型(值从ModuleAssetId map获取) @@ -48,7 +48,7 @@ var TenantModuleTypesAd []TenantModuleTypeKV var TenantModuleTypesAICs []TenantModuleTypeKV // GetTenantModuleTypes 获取模块的租户类型列表 -func GetTenantModuleTypes(module string) []TenantModuleTypeKV { +func GetTenantModuleTypes(module int64) []TenantModuleTypeKV { switch module { case TenantModuleAssets: return TenantModuleTypesAssets diff --git a/db/gfdb/gfdb.go b/db/gfdb/gfdb.go index cbf23fc..fad53d2 100644 --- a/db/gfdb/gfdb.go +++ b/db/gfdb/gfdb.go @@ -10,6 +10,7 @@ import ( "time" "gitea.com/red-future/common/utils" + "github.com/bwmarrin/snowflake" "github.com/gogf/gf/v2/crypto/gmd5" "github.com/gogf/gf/v2/database/gdb" "github.com/gogf/gf/v2/database/gredis" @@ -158,14 +159,20 @@ func catchSQLHook() gdb.HookHandler { // ==================== Insert钩子 ==================== func insertHook(ctx context.Context, in *gdb.HookInsertInput) (result sql.Result, err error) { - // 1. 自动赋值租户字段 - userInfo, _ := utils.GetUserInfo(ctx) - //if !g.IsEmpty(userInfo.UserName) { - // in.Model.Data("creator", userInfo.UserName) - // in.Model.Data("updater", userInfo.UserName) - //} + userInfo, err := utils.GetUserInfo(ctx) + if err != nil { + return nil, err + } + + node, err := snowflake.NewNode(g.Cfg().MustGet(ctx, "server.workerId").Int64()) + if err != nil { + return nil, err + } for i := range in.Data { + if _, ok := in.Data[i]["id"]; ok { + in.Data[i]["id"] = node.Generate().Int64() + } if !g.IsEmpty(userInfo.UserName) { if _, ok := in.Data[i]["creator"]; ok { in.Data[i]["creator"] = userInfo.UserName @@ -198,11 +205,6 @@ func updateHook(ctx context.Context, in *gdb.HookUpdateInput) (result sql.Result // 1. 自动赋值修改人 userInfo, _ := utils.GetUserInfo(ctx) - //if !g.IsEmpty(userInfo.UserName) { - // in.Model.Data("creator", userInfo.UserName) - // in.Model.Data("updater", userInfo.UserName) - //} - switch data := in.Data.(type) { case gdb.Map: if !g.IsEmpty(userInfo.UserName) { diff --git a/go.mod b/go.mod index 2beb57c..4cdd759 100644 --- a/go.mod +++ b/go.mod @@ -4,6 +4,7 @@ go 1.25.5 require ( github.com/alibaba/sentinel-golang v1.0.4 + github.com/bwmarrin/snowflake v0.3.0 github.com/cloudwego/eino v0.7.26 github.com/gogf/gf/contrib/registry/consul/v2 v2.9.5 github.com/gogf/gf/contrib/trace/otlphttp/v2 v2.9.5 diff --git a/go.sum b/go.sum index 68fb0ce..e58db83 100644 --- a/go.sum +++ b/go.sum @@ -56,6 +56,8 @@ github.com/buger/jsonparser v1.1.1 h1:2PnMjfWD7wBILjqQbt530v576A/cAbQvEW9gGIpYMU github.com/buger/jsonparser v1.1.1/go.mod h1:6RYKKt7H4d4+iWqouImQ9R2FZql3VbhNgx27UK13J/0= github.com/bugsnag/bugsnag-go v1.4.0/go.mod h1:2oa8nejYd4cQ/b0hMIopN0lCRxU0bueqREvZLWFrtK8= github.com/bugsnag/panicwrap v1.2.0/go.mod h1:D/8v3kj0zr8ZAKg1AQ6crr+5VwKN5eIywRkfhyM/+dE= +github.com/bwmarrin/snowflake v0.3.0 h1:xm67bEhkKh6ij1790JB83OujPR5CzNe8QuQqAgISZN0= +github.com/bwmarrin/snowflake v0.3.0/go.mod h1:NdZxfVWX+oR6y2K0o6qAYv6gIOP9rjG0/E9WsDpxqwE= github.com/bytedance/gopkg v0.1.3 h1:TPBSwH8RsouGCBcMBktLt1AymVo2TVsBVCY4b6TnZ/M= github.com/bytedance/gopkg v0.1.3/go.mod h1:576VvJ+eJgyCzdjS+c4+77QF3p7ubbtiKARP3TxducM= github.com/bytedance/sonic v1.14.1 h1:FBMC0zVz5XUmE4z9wF4Jey0An5FueFvOsTKKKtwIl7w=