Commit Graph

90 Commits (v1.0.2025)

Author SHA1 Message Date
black 7e54a96454 ```
fix(database): 修复SQLite迁移中自增主键的定义问题

- 修复了自增列同时标记为主键时重复添加PRIMARY KEY约束的问题
- 确保自增主键列只添加一次PRIMARY KEY约束
- 优化了复合主键约束的添加逻辑,避免与自增约束冲突
- 修正了自增主键的类型定义为INTEGER以符合SQLite规范
```
2026-04-14 09:54:48 +08:00
black 33faa6f722 feat(database): 添加 SQLite 数据库目录自动创建功能
- 为 SQLite 数据库添加数据库文件目录自动创建逻辑
- 实现 ensureSQLiteDirectory 方法解析数据库路径并创建必要目录
- 支持从 config.Name 或 config.Link 中提取 SQLite 文件路径
- 添加对 SQLite 链接格式 sqlite::@file(path) 的路径解析支持
- 在数据库表迁移前确保 SQLite 数据库文件目录存在
- 新增 sqlitecgo 驱动包实现 SQLite 数据库驱动支持
2026-04-14 09:47:19 +08:00
black 284f9380ed feat(database): 添加ClickHouse数据库驱动支持
- 实现了ClickHouse数据库驱动程序,支持基本的数据库操作
- 添加了ClickHouse特定的迁移功能,包括表、列、索引的创建和管理
- 集成了ClickHouse的语法特性,如MergeTree引擎和Nullable类型
- 实现了数据库连接池管理和SQL执行接口
- 添加了对系统表查询的支持,用于检查表和列的存在性
2026-04-13 16:07:54 +08:00
maguodong a083b74f9b chore(gendao): 更新版权信息并修改工具名称标识
- 移除 consts.go 文件中的版权注释
- 将模板文件中的 GoFrame CLI 工具标识替换为 Gin-base CLI 工具
- 更新 DO、Entity、Table 等模板中的自动生成声明
- 移除 mlog 和 utils 包中的版权注释
2026-04-08 17:55:21 +08:00
maguodong 8475859a70 feat(gendao): 添加代码生成工具用于自动生成DAO层代码
- 实现了完整的gendao命令行工具功能
- 添加了模板文件用于生成DAO、DO、Entity等代码结构
- 集成了数据库表字段映射和类型转换功能
- 支持分片表模式匹配和自定义配置选项
- 实现了代码清理和格式化功能
- 提供了灵活的表名过滤和前缀处理机制
2026-04-08 16:53:01 +08:00
maguodong 398e732301 feat(database): 添加 ClickHouse 数据库驱动支持
- 实现了完整的 ClickHouse 驱动,包括连接、查询、插入、更新、删除等基本操作
- 添加了 ClickHouse 特有的数据类型转换和 SQL 过滤功能
- 实现了表结构查询和字段信息获取功能
- 添加了 Ping 检查和错误处理机制
- 增加了对 UPDATE 和 DELETE 语句的语法转换以适配 ClickHouse
- 添加了批量插入操作的支持
- 新增了 14 个测试用例文件用于验证数据库相关功能
2026-04-08 15:34:51 +08:00
maguodong 70ad831041 refactor(cmd): 修改模块名称为gen
- 将模块名从 gin-base/cmd 更改为 gin-base/cmd/gen
- 更新 go.mod 文件中的模块声明
- 保持 Go 版本要求为 1.25.0 不变
2026-04-08 14:22:07 +08:00
maguodong c88ac8f871 移动main.go 2026-04-08 14:16:20 +08:00
maguodong fd1a6686b1 feat(generator): 添加代码生成模板常量定义
- 新增 consts.go 定义 DO NOT EDIT 标记常量
- 添加控制器生成模板相关常量定义
- 添加 SDK 客户端生成模板常量定义
- 添加数据访问对象(DAO)生成模板常量定义
- 添加枚举、协议缓冲区实体和服务生成模板常量定义
- 添加数据库表字段定义模板常量定义
2026-04-08 14:11:46 +08:00
maguodong d01b2973df feat(database): 添加ClickHouse数据库驱动支持
- 新增ClickHouse数据库驱动实现
- 更新数据库驱动注册包,添加对MySQL、PostgreSQL、SQL Server、Oracle、SQLite和ClickHouse的支持
- 修改Database函数返回类型从gdb.DB到DB
- 添加go.mod和go.sum依赖管理文件
2026-04-08 11:02:33 +08:00
maguodong 2a50b54e7d feat(database): 添加数据库驱动支持并更新依赖
- 新增 drivers 包用于注册 GF ORM 数据库驱动
- 集成 ClickHouse、MSSQL、MySQL、Oracle、PostgreSQL、SQLite 等数据库驱动
- 更新 go.mod 添加必要的数据库驱动依赖包
- 同步更新 go.sum 文件包含所有新增依赖的校验和
2026-04-08 10:33:56 +08:00
maguodong 36426dcf2e refactor(database): 将数据库初始化逻辑从main函数移至server模块
- 从main.go中删除数据库相关导入和初始化代码
- 在server.go中添加数据库包导入
- 将initDatabase函数从main.go迁移至server.go
- 在server的Run函数中调用数据库初始化逻辑
- 保持原有的数据库连接检查和错误处理机制
2026-04-08 10:08:47 +08:00
maguodong 0f878247de refactor(database): 移除 gdb.go 中的日志初始化
- 删除了 glog 包的导入
- 将 logger 字段设置为 nil,日志器将在 database.Database() 中设置
- 简化了数据库实例的初始化逻辑
2026-04-08 10:03:26 +08:00
maguodong e3d0275d3a refactor(database): 替换内部日志包为自定义日志包
- 将 gdb_model_delete.go 中的 intlog 包替换为 git.magicany.cc/black1552/gin-base/database/intlog
- 移除 github.com/gogf/gf/v2/internal/intlog 的导入
- 添加 git.magicany.cc/black1552/gin-base/database/intlog 的导入
2026-04-08 09:55:14 +08:00
maguodong ab2f85b8ed refactor(database): 移除 IDao 接口中的 Columns 方法
- 从 IDao 接口中删除了 Columns() 方法定义
- 简化了接口结构,移除了不再需要的列查询功能
- 保持了其他核心方法如 DB、TableName、Group 等不变
- 减少了接口的复杂性,提高了代码的可维护性
2026-04-08 09:47:36 +08:00
maguodong 550f82bd1b refactor(database): 更新 Dao 接口定义
- 将 Columns 方法返回类型从 any 改为 interface{}
- 添加 Group 方法用于获取分组信息
- 添加 Ctx 方法支持上下文操作
- 添加 Transaction 方法支持事务处理
- 引入 context 包以支持上下文传递
2026-04-08 09:43:23 +08:00
maguodong af0a8f4043 feat(database): 新增命令行参数解析、空值检查和数据库配置管理功能
- 实现了 command 包用于控制台参数和选项解析
- 添加了 empty 包提供变量空值/零值检查功能
- 集成了 Viper 库进行配置文件管理和环境变量支持
- 提供了数据库配置初始化和默认值设置功能
- 实现了配置值获取、设置和结构化解析方法
- 添加了服务器、数据库和JWT配置的便捷获取方法
- 实现了完整的数据库接口定义和事务管理功能
2026-04-08 09:33:59 +08:00
maguodong 6dcd564206 feat(db): 添加数据库缓存、DAO层和驱动管理功能
- 实现QueryCache缓存系统,支持自动清理过期缓存
- 添加DAO基类提供通用CRUD操作方法
- 实现字段值获取和反射相关工具函数
- 添加ClickHouse和MySQL数据库驱动支持
- 实现驱动管理器统一管理所有数据库驱动
- 添加Omit方法用于排除查询字段
- 补充完整的单元测试覆盖各项功能
2026-04-04 14:55:26 +08:00
maguodong 6bbe8928e7 refactor(crud): 更新CRUD模块以兼容新的ORM接口
- 替换原有的GORM依赖为自定义orm包
- 修改Crud结构体泛型参数,移除C类型参数
- 更新数据库操作方法以适配新ORM接口
- 调整字段名转换逻辑,使用自定义的驼峰下划线转换函数
- 重构分页查询方法参数类型和返回值处理
- 移除GORM特有的Preload关联查询功能
- 更新Where条件构建器以匹配新ORM语法
- 调整错误处理机制以符合新的数据库操作接口
2026-04-03 14:52:39 +08:00
black b52c4aa3c7 feat(db): 添加数据库配置自动查找和缓存功能
- 实现配置文件自动查找功能,支持yaml、yml、toml、ini、json格式
- 添加查询缓存机制,提高重复查询性能
- 新增构建脚本build.sh和build.bat用于跨平台编译
- 添加完整的数据库连接配置和时间字段配置功能
- 实现DAO基类提供通用CRUD操作方法
- 添加配置文件示例和相关测试用例
2026-04-03 07:39:18 +08:00
maguodong f50930ec74 refactor(database): 更新时间模型的钩子函数实现
- 将 BeforeCreate 中的时间设置从直接赋值改为使用 scope.Set 方法
- 将 BeforeUpdate 中的时间设置从直接赋值改为使用 scope.Set 方法
- 移除 AfterDelete 钩子函数并注释掉 AfterFind 钩子函数
- 统一使用 GORM 的 scope 机制处理时间字段更新
2026-03-30 10:32:50 +08:00
maguodong d50f150d98 fix(test): 修正Crud泛型类型声明
- 将Crud[interface{}]更改为Crud[interface{}, interface{}]以匹配正确的泛型参数数量
2026-03-28 18:18:10 +08:00
maguodong 0238ec9a01 docs(curd): 更新Crud结构体注释文档
- 为Crud结构体添加C参数的说明
- 明确C参数为对应模型结构体的字段结构体
- 完善泛型CURD封装的功能描述
2026-03-28 18:17:31 +08:00
maguodong 1cc976ed72 refactor(database): 重构基础模型包结构
- 将 model 包重命名为 base 包
- 移动 base.go 文件到 database/base 目录
- 更新包导入路径以匹配新的目录结构
2026-03-28 18:03:54 +08:00
maguodong 7d3ddc62e3 refactor(database): 重构基础模型结构和时间处理逻辑
- 将 BaseModel 拆分为 IdModel 和 TimeModel 两个独立结构体
- 替换标准库 time 包为 gf 框架的 gtime 包进行时间处理
- 修改字段标签定义,优化数据库列映射配置
- 重写 BeforeCreate、BeforeUpdate 钩子方法实现
- 新增 AfterDelete 钩子方法处理删除后的时间转换
- 统一时间格式化为字符串类型存储到数据库中
2026-03-28 18:01:44 +08:00
maguodong 427f568db6 fix(model): 修改BaseModel主键ID数据类型
- 将Id字段从uint类型改为int类型
- 保持GORM标签和JSON序列化配置不变
2026-03-28 16:22:53 +08:00
maguodong 828e19de93 refactor(database): 修改BaseModel中的ID字段命名规范
- 将ID字段名改为Id以符合Go语言命名约定
- 保持gorm标签和json标签的一致性
- 确保数据库映射功能不受影响
2026-03-28 16:21:02 +08:00
maguodong 1e18be8326 refactor(database): 简化基础模型时间处理逻辑
- 移除自定义 DateTime 类型及其 JSON 序列化/反序列化实现
- 将 CreateTime 和 UpdateTime 字段类型从 DateTime 改为 string
- 添加 GORM 的 BeforeCreate 和 BeforeUpdate 钩子函数
- 使用 time.Now().Format 直接格式化时间字符串
- 移除冗余的 driver.Valuer 和 sql.Scanner 接口实现
2026-03-28 16:13:54 +08:00
maguodong 21e9f7c79d refactor(database): 重构数据库基础模型时间类型
- 将 LocalTime 类型重命名为 DateTime 并改进实现
- 添加完整的 JSON 序列化和反序列化支持
- 实现了 MarshalJSON 和 UnmarshalJSON 方法
- 改进 Scan 方法以支持字符串类型转换
- 更新 BaseModel 结构体字段定义和标签
- 移除指针类型改为值类型并优化 GORM 标签配置
2026-03-28 15:58:46 +08:00
maguodong 93fbb99ee0 feat(database): 添加自定义时间类型支持空值
- 新增 LocalTime 自定义时间类型,支持 null 值处理
- 实现 MarshalJSON 方法支持 JSON 序列化
- 实现 Value 方法支持数据库存储
- 实现 Scan 方法支持数据库读取
- 修改 BaseModel 使用 LocalTime 类型替代原生 time.Time
- 移除 BaseModel 中的时间处理钩子函数
2026-03-28 15:52:33 +08:00
maguodong d41b554acf feat(database): 添加数据库模型查询后时间戳更新功能
- 在 BaseModel 中实现 AfterFind 钩子函数,用于查询后更新 UpdateTime 字段
- 集成 time 包支持时间操作
- 配置 GORM NowFunc 使用本地时间,确保时间戳准确性
- 统一数据库操作的时间处理逻辑,提高数据一致性
2026-03-28 15:34:10 +08:00
maguodong 7b6026950a refactor(database): 更新基础模型的时间字段配置
- 修改 CreateTime 字段的 JSON 标签从 created_at 到 create_time
- 修改 UpdateTime 字段的 JSON 标签从 updated_at 到 update_time
- 添加 autoCreateTime 和 autoUpdateTime GORM 标签实现自动时间戳
- 移除手动时间设置的相关注释
- 统一字段标签格式为 common 格式
2026-03-28 14:37:40 +08:00
maguodong 80ad00f98d feat(database): 添加基础数据模型
- 创建 BaseModel 结构体,包含主键 ID、创建时间和更新时间字段
- 实现 BeforeCreate 钩子函数,自动设置创建和更新时间为当前时间
- 实现 BeforeUpdate 钩子函数,自动更新更新时间为当前时间
- 配置 GORM 数据库映射标签,包括主键、列名、数据类型等
- 添加 JSON 序列化标签支持,便于 API 返回数据
2026-03-28 14:36:43 +08:00
maguodong 3209cfe830 feat(database): 添加数据库初始化和配置管理功能
- 实现了数据库连接初始化,支持 MySQL 和 SQLite 两种类型
- 添加了 GORM 配置构建,包含事务控制和命名策略设置
- 集成了查询日志功能,可配置是否开启 GORM 日志
- 创建了数据库配置管理模块,使用 Viper 进行配置读取
- 添加了配置文件自动生成和默认值设置功能
- 实现了配置变更监听和热更新机制
- 定义了基础配置结构体,包含服务器、数据库和 JWT 配置
2026-03-28 13:57:31 +08:00
maguodong ed7d18a72a feat(curd): 添加泛型CURD核心功能模块
- 实现基于GORM的泛型CURD操作接口
- 提供分页查询、条件构建、字段转换等核心功能
- 支持AND/OR混合查询条件构建器
- 集成事务处理和预加载关联查询功能
- 实现字段名风格转换(驼峰与下划线互转)
- 提供按主键和条件进行增删改查的完整操作集
2026-03-28 11:49:10 +08:00
maguodong f710f03be0 fix(server): 修复服务器启动日志输出时机问题
- 将服务器启动成功的日志输出移出goroutine确保正确显示
- 添加time.Sleep确保服务器完全启动后再输出日志
- 保持原有的地址检测逻辑和URL提示功能
2026-03-28 10:24:50 +08:00
maguodong 5d7e584ffd fix(server): 修复服务器启动成功后的日志输出逻辑
- 修复了服务器启动成功消息的条件判断逻辑
- 确保服务器正常启动时显示正确的访问地址提示
- 改进了 localhost 地址检测和显示格式
- 优化了代码执行流程避免异常退出时的错误提示
2026-03-28 10:09:18 +08:00
maguodong 6661ad7fb3 fix(server): 修复服务器启动日志输出位置
- 将服务器启动成功的日志输出移至正确的执行流程位置
- 确保地址检查逻辑在日志输出之前正确执行
- 保持原有的地址判断和提示信息功能不变
2026-03-28 09:59:06 +08:00
maguodong af31b688cf fix(server): 解决服务器启动时端口占用错误处理问题
- 提取配置地址到变量以避免重复调用
- 添加端口被占用的具体错误提示
- 区分不同类型的启动错误并提供相应信息
- 在启动失败时添加程序退出机制确保服务正常终止
2026-03-28 09:56:08 +08:00
maguodong abf5529019 feat(log): 添加日志文件自动清理功能
- 实现 cleanOldLogs 函数用于删除指定天数之前的日志文件
- 添加日志文件名格式匹配逻辑,只处理 log-YYYY-MM-DD.log 格式的文件
- 在日志文件切换时自动清理 30 天前的过期日志文件
- 在系统启动时执行一次日志清理操作
- 添加日志输出显示已删除的过期日志文件信息
2026-03-28 09:44:58 +08:00
maguodong 4a3339fcfb feat(log): 添加日志文件自动清理功能
- 实现 cleanOldLogs 函数用于删除指定天数之前的日志文件
- 添加日志文件名格式匹配逻辑,只处理 log-YYYY-MM-DD.log 格式的文件
- 在日志文件切换时自动清理 30 天前的过期日志文件
- 在系统启动时执行一次日志清理操作
- 添加日志输出显示已删除的过期日志文件信息
2026-03-28 09:33:03 +08:00
maguodong 7925439270 feat(log): 添加日志文件按天轮转功能
- 添加 currentDate 和 fileLogger 全局变量用于管理日志文件状态
- 实现 checkAndRotateLogFile 函数检查并切换跨天日志文件
- 集成 lumberjack 日志库支持文件大小和备份管理
- 重构 Init 函数添加日志文件轮转检查逻辑
- 更新日志配置参数为单个文件最大 2MB 最多保留 5 个备份 30 天
2026-03-28 09:25:35 +08:00
maguodong a656e00daa chore(deps): 更新项目依赖到最新版本
- 升级 git.magicany.cc/black1552/gf-common 从 v1.0.1011 到 v1.0.1017
- 升级 golang.org/x/crypto 从 v0.48.0 到 v0.49.0
- 移除 gorm.io/driver/sqlite 依赖
- 升级 filippo.io/edwards25519 从 v1.1.1 到 v1.2.0
- 升级 github.com/bytedance/gopkg 从 v0.1.3 到 v0.1.4
- 升级 github.com/bytedance/sonic/loader 从 v0.5.0 到 v0.5.1
- 新增 github.com/cespare/xxhash/v2 v2.3.0 依赖
- 新增 github.com/clipperhouse/displaywidth 和 uax29/v2 依赖
- 升级 github.com/fatih/color 从 v1.18.0 到 v1.19.0
- 升级 github.com/gabriel-vasile/mimetype 从 v1.4.12 到 v1.4.13
- 升级 github.com/go-sql-driver/mysql 从 v1.9.2 到 v1.9.3
- 升级 github.com/go-viper/mapstructure/v2 从 v2.4.0 到 v2.5.0
- 升级 github.com/goccy/go-json 从 v0.10.5 到 v0.10.6
- 升级 github.com/mattn/go-runewidth 从 v0.0.16 到 v0.0.21
- 移除 github.com/mattn/go-sqlite3 依赖
- 替换 olekukonko 相关包为新版本并新增 cat 包
- 升级 go.opentelemetry.io 系列包到 v1.42.0
- 升级 golang.org/x 相关包到最新版本
- 新增 golang.org/x/tools v0.43.0 依赖
- 升级 google.golang.org/protobuf 从 v1.36.10 到 v1.36.11
- 升级 modernc.org 相关包到最新版本
2026-03-28 09:17:11 +08:00
maguodong ca82c166d0 feat(log): 重构日志初始化逻辑并修复文件路径重复创建问题
- 将init函数重命名为Init以支持手动调用
- 添加filePath全局变量存储日志文件路径
- 在Init函数中检查日志文件是否存在,避免重复创建
- 在Info、Error、Warn、Debug函数中调用Init确保日志系统正确初始化
- 保持原有的日志格式化和颜色输出功能
2026-03-28 09:08:23 +08:00
maguodong 6805772746 feat(crud): 新增 AND/OR 查询条件构建器和相关测试
- 添加 BuildWhereAndOr 方法支持构建复杂的 AND/OR 查询条件
- 新增 WhereBuilder 流式构建 WHERE 条件功能
- 添加 BuildWhereGORM 支持 GORM 原生语法构建复杂查询
- 新增完整的单元测试覆盖所有核心功能
- 添加 SQLite 驱动支持用于测试环境
- 更新文档说明测试用例使用方法
2026-03-27 17:55:54 +08:00
black1552 eeb671cd0d fix(gateway): 修复反向代理错误处理和请求流程
- 添加 WebSocket 协议支持说明
- 移除不必要的 c.Abort() 调用以避免中断请求处理
- 使用标准 http.Error 替代 gin.JSON 进行错误响应
- 修复代理错误处理中的响应写入问题
2026-03-06 10:45:19 +08:00
black1552 3096d7dedd feat(server): 添加反向代理网关功能并升级依赖
- 新增 gateway.go 文件实现 HTTP 反向代理功能
- 添加 BuildRequest 函数用于创建反向代理处理器
- 实现自定义 Director 保留原始路径和查询参数
- 集成错误处理机制返回适当的 HTTP 状态码
- 升级 gf-common 依赖从 v1.0.1010 到 v1.0.1011
- 更新 go.mod 和 go.sum 文件依赖信息
- 更新 IDE 缓存配置文件中的路径映射信息
2026-03-06 10:40:19 +08:00
black1552 5affb5e653 feat(log): 实现带颜色的日志输出功能
- 添加了 ANSI 颜色代码常量定义
- 创建了正则表达式用于去除颜色码
- 实现了自定义 logWriter 结构体用于分离控制台和文件输出
- 控制台输出保留颜色,文件输出自动去除颜色码
- 更新了日志格式包含时间戳和颜色标识
- 修改了 Info、Error、Warn、Debug 函数的前缀格式
2026-03-06 10:18:31 +08:00
black1552 de8348e424 refactor(curd): 更新 GORM 预加载函数签名
- 将 ClearFieldPage 方法中的预加载函数参数从 func(db gorm.PreloadBuilder) error 更新为 func(db *gorm.DB) *gorm.DB
- 将 ClearFieldList 方法中的预加载函数参数从 func(db gorm.PreloadBuilder) error 更新为 func(db *gorm.DB) *gorm.DB
- 将 ClearFieldOne 方法中的预加载函数参数从 func(db gorm.PreloadBuilder) error 更新为 func(db *gorm.DB) *gorm.DB
- 将 FindPri 方法中的预加载函数参数从 func(db gorm.PreloadBuilder) error 更新为 func(db *gorm.DB) *gorm.DB
- 将 First 方法中的预加载函数参数从 func(db gorm.PreloadBuilder) error 更新为 func(db *gorm.DB) *gorm.DB
- 将 All 方法中的预加载函数参数从 func(db gorm.PreloadBuilder) error 更新为 func(db *gorm.DB) *gorm.DB
- 将 Paginate 方法中的预加载函数参数从 func(db gorm.PreloadBuilder) error 更新为 func(db *gorm.DB) *gorm.DB
- 更新 .idea/GOHCache.xml 中文件修改时间戳
2026-03-05 10:15:20 +08:00
black1552 1a33330214 refactor(curd): 修改关联查询参数类型支持预加载函数配置
- 将 ClearFieldPage 方法的 with 参数从 string 类型改为 map[string]func(db gorm.PreloadBuilder) error 类型
- 将 ClearFieldList 方法的 with 参数从 string 类型改为 map[string]func(db gorm.PreloadBuilder) error 类型
- 将 ClearFieldOne 方法的 with 参数从 string 类型改为 map[string]func(db gorm.PreloadBuilder) error 类型
- 将 FindPri 方法的 with 参数从 string 类型改为 map[string]func(db gorm.PreloadBuilder) error 类型
- 将 First 方法的 with 参数从 string 类型改为 map[string]func(db gorm.PreloadBuilder) error 类型
- 将 All 方法的 with 参数从 string 类型改为 map[string]func(db gorm.PreloadBuilder) error 类型
- 将 Paginate 方法的 with 参数从 string 类型改为 map[string]func(db gorm.PreloadBuilder) error 类型
- 修改所有方法中的关联查询逻辑,从单一字符串预加载改为循环遍历预加载函数映射
- 更新参数验证条件,从判断字符串非空改为判断映射不为nil
2026-03-05 09:47:46 +08:00