V 1.5.52 2022-07-09(最新版本)

bug修复:

  • 1.修复rabbitmq消费者端在linux系统会导致cpu单个核100%占用的情况。
  • 2.老版本修复方式,使用 app/utils/rabbitmq 目录全量覆盖老版本同目录即可.

V 1.5.51 2022-06-19

  • 1.修正全局 Golobal 单词拼写错误.
  • 2.需要特别注意的是:config/gorm_v2.yml 文件中,单词 IsInitGolobalGormMysql 修正为: IsInitGlobalGormMysql, 因此使用新版本编译后的软件,如果有旧的配置文件,必须及时更新.

    V 1.5.50 2022-06-09

  • 1.token相关的所有错误码统一为401.

  • 2.增加从上下文获取user_id的快捷函数,方便token鉴权下接口使用.
  • 3.全新的 GinSkeleton-Admin2 发布.

V 1.5.49 2022-05-04

  • 更新
  • 1.更新全部依赖包至最新版本。

V 1.5.48 2022-04-29

  • BUG 修复
  • 1.修复验证码存在的线程安全问题(只有在并发场景才有此bug)。

V 1.5.47 2022-04-18

  • 细节完善
  • 1.gorm hook完善细节:在开发者通过 gorm:”column:自定义字段” 时,也能自动给created_at和updated_at函数赋值。
  • 2.精简部分代码.
  • 3.其他地方主要是注释部分更新.

    V 1.5.46 2022-03-31

  • 细节完善

  • 1.rabbitmq 消息队列客户端掉线重连成功后,含有回调函数的旧协程及时释放.
  • 2.rabbitmq 消息队列相关的单元测试更新.

V 1.5.45 2022-03-22

  • 细节完善
  • 1.gorm 相关的回调函数增强条件判断, 加强程序严谨性。
  • 2.自带数据库文件更新, 给字段设置了默认值.

V 1.5.44 2022-02-27

  • 更新
  • 1.token 缓存到 redis 逻辑加强严谨性.
  • 2.与第一条相关的postgresqlsqlserver 备份文件更新.

V 1.5.42 2022-02-10

  • bug修复 : 受影响版本 ≥ V 1.5.40 .
  • 1.数据库连接没有及时释放的bug, 在高并发场景下容易导致系统卡住.
  • 2.增量更新方式:app/model/user.go 145行 函数 OauthCheckTokenIsOk 整体替换原有函数

    V 1.5.40 2022-01-25

  • 新增

  • 1.用户 token 缓存到 redis 功能,如果项目使用了 redis , 请直接在 config/config.yml 文件中设置 Token.IsCacheToRedis = 1
  • 2.项目初始化时增加设置信任代理服务器ip列表,gin(v1.7.7)新增功能,详情参见相关配置项说明.
  • 更新
  • 1.配置文件缓存时加锁,避免开发者频繁注册时,程序出现提示。
  • 2.用户token鉴权时,如果开启了redis缓存功能,优先查询redis.
  • 3.users_for_postgresql 、users_for_sqlserver 文件同步更新 .
  • 4.所有底层依赖包更新至最新版.

V 1.5.32 2021-12-29

  • 更新
  • 1.gorm 查询时,调整 created_at、updated_at 字段默认格式为 yyyy-mm-dd H:i:s (2021-12-29 11:20:00) 格式,不再需要手动转换,通俗地说,这两个字段在数据存储为 datetime,在 go 定义为 string 类型,查询后不需要任何转换。
  • 2.gorm 批量新增时支持自动给切片的中的created_at、updated_at字段赋值。

V 1.5.31 2021-12-20

  • 更新
    1.错误日志记录时同时记录调用链信息。
    2.rabbitmq 消息队列增加消息延迟发送功能.
    3.关于 rabbitmq 消息延迟使用请参考新版在线文档.
    4.老版本最快升级方式:
    4.1app/utils/rabbitmq 目录内的内容全部替换原有项目.
    4.2 消息发送函数 send 多一个延迟参数.
    4.3 配置文件: config/config.yml 文件 RabbitMq 项新增延迟交换机名称: DelayedExchangeName

    V 1.5.30 2021-11-28

  • 新增
    1.引入表单参数验证器全局自动翻译器,简化代码书写,提升开发效率.

  • 更新
    1.按照gin官方提示,当程序切换到生产模式时,对gin的路由进行二次封装、异常恢复中间件自定义重写,release模式经过并发测试可以获得5%的性能提升.
    1.1 当配置文件(config/config.yml)中的键 AppDebug 设置为 false 时,gin 路由默认启用 release 模式,并且不会记录接口访问日志,生产环境请使用 nginx 代理,也方便实现负载均衡.
    2.其他更新主要是一些细节:文档、程序注释方面.

V 1.5.29 2021-11-15

  • 新增
    1.多源数据库操作文档.
    2.在 cli 模式执行操作数据库命令时支持 created_atupdated_at 字段自动赋值.
    3.gorm v2 接入层 utils 增加 Create 函数的参数类型非指针时拦截检查逻辑, 避免发生 panic ,该函数官方没有针对数据类型做安全检查.
    4.gorm v2 接入层 utils 增加 Save、Update 函数的参数类型非指针时拦截检查逻辑,以便支持 gorm 的所有回调函数.
    5.为了完美支持第4条功能,今后开发者使用 gorm 函数 Create 、Save、Update 时请统一传递指针类型的参数, 如果老项目直接合并 ginskeleton 的代码, 原来调用 Save、Update 函数的参数需要手动修改为指针类型.
  • 更新
    1.验证码控制器文件单词拼写错误修正.
    2.路由中的一些注释更新.
    3.所有依赖包更新至最新版,与 gorm 包相关的接入层(utils)日志部分也同步更新.

V 1.5.28 2021-10-07

  • 更新
    1.文档更新,增加复杂表单参数提交的处理示例文档,文档其他完善更新.
    2.解决项目在 linux 环境启动时,如果 public 目录内有从 windows 环境复制过来的软连接无法删除的问题.
    3.token 刷新路由与其他路由逻辑分离.
  • 漏洞修复:
    1.≤ V1.5.24 包括此版本 token 认证中间件存在被恶意构造特殊 token 绕过的风险,请尽快升级到最新版.
    1.1 升级方法:使用最新的 app/http/middleware/authorization/auth.go 替换 V1.5.24以及之前的版本同位置代码即可.

V 1.5.27 2021-09-18

  • 更新
    1.app/model/users.go 中,操作数据库的函数参数,个别使用了 float64 ,全部统一为 int 系列,避免给开发者带来不必要的困扰.

V 1.5.26 2021-09-13

  • 更新
    1.精简合并代码.

V 1.5.25 2021-09-13

  • 新增
    1.cli命令模式增加简单示例,方便新用户快速上手,相关位置:./command/demo_simple/.
  • 更新
    1.过期token刷新逻辑增加延期时间范围,方便已经处于过期时间范围内的token刷新换取新token.
    2.交叉编译部分完善常用编译参数说明.

V 1.5.24 2021-09-03

  • 修复
    1.图形验证码逻辑:如果没有使用本系统封装的验证码中间件,而是直接调用了自定义验证逻辑部分代码,则一直提示没有获取验证码信息.
  • 更新
    1.编译部分,增加编译时参数的选项说明.
    2.websocket 完善文档使用说明.
    3.在安装有360软件的机器上本项目启动失败,增加提示原因.

V 1.5.23 2021-08-06

  • 修复
    1.postgresql文件 app/model/users_for_postgres.txt 中一处bug,登陆后,登陆次数+1时sql语句报错.
  • 更新
    1.为 http://github.com/casbin/gorm-adapter 依赖包提交pr,由于官方已经合并,此包更新至最新版,解决postgresql创建索引报错的bug.

V 1.5.22 2021-08-04

  • 新增
    1.项目部署方案.
    2.mysql主从同步快速部署方案.
    3.新增redis执行结果常用转换函数.
    4.新增postgresql数据库demo,至此,主线版本已经全面支持 mysql、sqlserver、postgresql数据库.
  • 更新
    1.项目依赖的所有包更新至最新版.
    2.项目使用文档.

V 1.5.21 2021-07-16

  • 更新
    1.项目依赖的所有包更新至最新版.
    2.项目日志对接到 elk 日志管理中心,增加 docker-compose.yml 集成环境快速部署脚本,详情参见常用开发模块第 13 项.
    3.增加项目部署文档.

V 1.5.20 2021-06-18

  • 更新
    1.表单参数验证器示例代码更新,提供了更加紧凑的书写示例代码,相关示例文档同步更新.
    2.一个用户同时允许最大在线的token, 查询时优先按照 expires_at 倒序排列,便于不同系统间对接时,那种长久有效的token不会被”踢”下线.
    3.command 命令示例 demo 调整为按照子目录创建 cli 命令,方便更清晰地组织更多的 command 命令代码.
    4.nginx 部署文档优化,在nginx处理请求时,相关的静态资源直接由nginx拦截响应,提升响应速度,这样 go 程序将更专注于处于api接口请求.
    5.自带的 mysql 数据库创建脚本字段 last_login_ip , 设置默认值为 ‘’ .

V 1.5.17 2021-06-06

  • 新增、更新
    1.sqlserver 数据库对应的用户模型,参见 app/model/users_for_sqlserver.txt.
    2.更新 database/db_demo_sqlserver.sql 数据库、表创建命令.
    修复
    1.修正常量定义处日期格式单词书写错误问题.

V 1.5.16 2021-05-28

  • 新增
    1.增加验证码中间件以及使用介绍.

V 1.5.15 2021-05-11

  • 完善
    1.文件上传后自动创建目录时,目录权限由(0666)调整为:os.ModePerm,解决可能遇到的权限问题 .
    2.cobra 文档增加创建子命令的示例链接.

V 1.5.14 2021-04-28

  • 完善
    1.更新 rabbitMq 排版
    2.更新 websocket 文档

V 1.5.13 2021-04-27

  • 完善
    1.表单参数验证器注册文件拆分为:api、web,当项目较大时,尽可能保持逻辑清晰、简洁.
    3.完善细节,避免mysql 函数 FROM_UNIXTIME 参数最大只能支持21亿的局限.
    3.核心依赖包升级至最新版.

V 1.5.12 2021-04-20

  • 完善
    1.app/model/users 增加注释,主要是主线版本操作数据库大量使用了原生sql,注释主要增加了 gorm_v2 自带语法操作数据库的链接地址.
    2.代码中涉及到的分页语法(limit offset,limit),参数 offset,limit 统一调整为 int 型,解决mysql8.x系列高版本的数据库不支持浮点型的问题.

V 1.5.11 2021-04-02

  • 变更
    1.app/model/BaseModel 文件中,UseDbConn 函数名首字符调整为大写,方便创建更多的子级目录.
  • 更新
    1.日志(nginx 的access.log)对接到 ELK 日志管理中心,相关文档更新,增加了ip转 经纬度功能,方便展示用户在世界地图的分布.
    2.针对上一条,补充了日志展示的整体效果图

V 1.5.10 2021-03-23

  • 完善
    1.form表单参数验证器完成验证后, 自动为上下文绑定三个键:created_at、updated_at、deleted_at ,相关值均为请求时的日期时间.
    2.baseModel 中 created_at、updated_at 修改为 string 类型,方便从上下文自动绑定对应的键值到 model .
    3.用户每次登录后,tb_users 表,登陆次数字段+1 .
    4.nginx 部署文档修正一处缺少单引号的错误.
    5.gorm 操作数据库精华版文档更新.
    6.删除其他小部分无关代码.
    7.增加自动创建连接功能,只为更好地处理静态资源.
    8.文件上传代码配置项增加部分参数,代码同步升级.
    9.GinSkeleton-Admin 系统同步发布.

V 1.5.00 2021-03-10

  • 新增
    1.为即将发布的 GinSkeleton-Admin 系统增加了基础支撑模块:casbin模块、gorm_v2 操作精华版文档,参见常用开发模块列表.
    2.token模块引用的部分常量值调整到配置文件.
    3.调整token校验中间件和casbin中间件名称.
    4.主线版本本次更新并不是很多,今后主线版本将依然保持简洁,后续的新功能模块都将以包的形式引入和调用.
    5.更多企业级的功能将在后续推出的 GinSkeleton-Admin 展现,欢迎关注本项目,反馈使用意见.