更新
This commit is contained in:
@@ -31,7 +31,7 @@ GoFrame v2 后端已按 `document/architecture.md`(唯一权威定稿)完整
|
||||
- **命名**:入参/出参 json 一律驼峰;**例外**:登录/令牌接口返回 `access_token/refresh_token/expires_in/token_type`(OAuth2 惯例,前端按此读取,勿改驼峰)
|
||||
- IP 归属地:`utility/ip2region`(xdb 于 manifest/data/ip2region.xdb,配置 ip2region.path),登录日志/操作日志 location 自动填充;受信代理列表 `api.proxyIps`(支持 CIDR,信任 X-Forwarded-For)
|
||||
- **logic 共享能力层** `internal/logic/base.go`(横切能力,组合式复用):文件字段(SaveFileField/SaveFileFields/SaveMultiFileField)、富文本占位符(LocalizeContentFields/ExpandContentFields,`[IMG_URL]` 为持久化契约)、枚举文本(DictGetText/SerializeMapOnRead)、唯一校验(CheckUnique,仅为 UX 层,唯一性真值靠 `uk_*` 索引)、事务(WithTrans,事务内禁 HTTP/文件IO、bcrypt 先算)、分块查询(ChunkQuery)、泛型树(BuildTree)、临时目录清理(CleanTemp,每日 03:30 gcron 触发,file.tempExpireDays 控制保留天数);纪律:只依赖 dao/utility/consts,导出函数上限15个
|
||||
- **{field}Text 字典驱动**:枚举字段显示名从 `dict_item` 解析(唯一真相),模块头部声明 `xxxSerializeMaps = map[字段]字典编码`(编码规范 `{模块snake}_{字段snake}`,如 `user_status`、`job_execute_policy`),响应行用 `DictGetText(ctx, code, value)` 填充;字典由生成器 createDict 按**列注释枚举**自动创建(支持 `1-正常` 与 `1=正常` 两种写法),文案在字典管理页修改;进程内缓存300s。例外:`operation_log.type` 存注解常量值,用静态表 `LogTypeText`(consts.LogTypeNames)
|
||||
- **{field}Text 字典驱动**:枚举字段显示名从 `dict_item` 解析(唯一真相),模块头部声明 `xxxSerializeMaps = map[字段]字典编码`(编码规范 `{模块snake}_{字段snake}`,如 `user_status`、`job_execute_policy`),响应行用 `DictGetText(ctx, code, value)` 填充;字典由生成器 createDict 按**列注释枚举**自动创建(支持 `1-正常` 与 `1=正常` 两种写法),文案在字典管理页修改;进程内缓存300s。例外:`operation_log.type` 存标签常量值,用静态表 `LogTypeText`(consts.LogTypeNames)
|
||||
- **生成器保护** `skipTables`:仅关联表(role_menu/user_role)整表跳过;其余表统一文件级处理——**缺失补生成、存在跳过、`generator.overwrite: true` 时覆盖**(唯一开关在 config.yaml,覆盖结果单独计入 Overwritten),菜单/字典/路由等幂等副作用照常执行
|
||||
- 城市编解码:`ResolveCityNames / ResolveCityCodes`(internal/logic 包级函数),user 模块 Add/Update/Import/Detail 已接入
|
||||
- 代码生成器 CLI:`go run ./cmd/generator -tables "goframe_x|注释" [-preview|-batch]`;覆盖模式由 `generator.overwrite` 配置统一控制;dao/entity/do 四件由生成器直接产出,生成后只需 `go build ./...` 并重启(`gf gen dao` 仅在**表结构变更**时用于刷新已实现模块的 dao)
|
||||
|
||||
Reference in New Issue
Block a user