签入脚本
This commit is contained in:
@@ -0,0 +1,23 @@
|
||||
# ======================================================================
|
||||
# gf gen 代码生成配置(键名已对照 gf v2.10.3 gendao/genservice 源码核实)
|
||||
# 用法:gf gen dao -c hack/config.yaml && gf gen service -c hack/config.yaml
|
||||
# ======================================================================
|
||||
gfcli:
|
||||
gen:
|
||||
dao:
|
||||
link: "mysql:root:root@tcp(127.0.0.1:3306)/easygoadmin.goframe.elevue?charset=utf8mb4"
|
||||
removePrefix: "goframe_" # goframe_user → User/UserDao
|
||||
group: "default"
|
||||
jsonCase: "CamelLower"
|
||||
descriptionTag: true # 列注释写入 entity
|
||||
overwriteDao: false # 保留已定制的 dao 扩展文件
|
||||
tplDaoIndexPath: "hack/tpl/dao_index.tpl" # 自定义 dao 扩展模板(挂载全局钩子)
|
||||
# 生成路径(相对 path)
|
||||
path: "internal"
|
||||
daoPath: "dao"
|
||||
doPath: "model/do"
|
||||
entityPath: "model/entity"
|
||||
service:
|
||||
srcFolder: "internal/logic" # 扫描 sUser/sRole…(默认 stPattern ^s([A-Z]\w+)$)
|
||||
dstFolder: "internal/service"
|
||||
clear: false # gf v2.10.3 Windows 下 clear 逻辑路径分隔符不匹配,会误删刚生成的文件,故关闭
|
||||
@@ -0,0 +1,42 @@
|
||||
// =================================================================================
|
||||
// This file is auto-generated by the GoFrame CLI tool. You may modify it as needed.
|
||||
// 自定义模板:hack/tpl/dao_index.tpl
|
||||
// - 构造时挂载全局模型钩子(审计字段 / 软删除改写;主键交数据库自增)
|
||||
// - Ctx 覆写注入软删除与租户隔离条件(架构红线执行点)
|
||||
// =================================================================================
|
||||
|
||||
package {{.TplPackageName}}
|
||||
|
||||
import (
|
||||
"context"
|
||||
|
||||
"github.com/gogf/gf/v2/database/gdb"
|
||||
|
||||
"{{.TplImportPrefix}}/internal"
|
||||
"easygoadmin/internal/model/hooks"
|
||||
)
|
||||
|
||||
// {{.TplTableNameCamelLowerCase}}Dao is the data access object for the table {{.TplTableName}}.
|
||||
// You can define custom methods on it to extend its functionality as needed.
|
||||
type {{.TplTableNameCamelLowerCase}}Dao struct {
|
||||
*internal.{{.TplTableNameCamelCase}}Dao
|
||||
}
|
||||
|
||||
var (
|
||||
// {{.TplTableNameCamelCase}} is a globally accessible object for table {{.TplTableName}} operations.
|
||||
{{.TplTableNameCamelCase}} = {{.TplTableNameCamelLowerCase}}Dao{
|
||||
internal.New{{.TplTableNameCamelCase}}Dao(func(m *gdb.Model) *gdb.Model {
|
||||
// 全局钩子:Insert 补齐审计字段/租户ID(主键自增);Update 盖章;Delete 改写为软删除
|
||||
return m.Hook(hooks.Handler())
|
||||
}),
|
||||
}
|
||||
)
|
||||
|
||||
// Ctx 覆写:在 SQL 构建之前注入架构红线条件 ——
|
||||
// 所有表追加 del_flag=0;租户级表对租户上下文追加 tenant_id IN (0, 当前租户)。
|
||||
// 业务代码必须经由本方法访问模型,禁止绕过 dao 直连 DB。
|
||||
func (d *{{.TplTableNameCamelLowerCase}}Dao) Ctx(ctx context.Context) *gdb.Model {
|
||||
return hooks.ApplyCtx(ctx, d.{{.TplTableNameCamelCase}}Dao.Ctx(ctx), "{{.TplTableName}}")
|
||||
}
|
||||
|
||||
// Add your custom methods and functionality below.
|
||||
Reference in New Issue
Block a user