Merge branch 'v2.0' of https://github.com/zhangshican/hotgo into v2.0

* 'v2.0' of https://github.com/zhangshican/hotgo:
  修复 goframe 配置读写分离后,获取不到数据库链接
  修复 多处基础错误 现在可以直接使用gf run .\main.go 运行程序
  恢复配置文件api  接口地址
  后台界面
  后台菜单搜索功能

# Conflicts:
#	server/internal/controller/admin/common/ems.go
#	server/internal/controller/admin/common/sms.go
This commit is contained in:
ss
2025-07-13 00:00:52 +08:00
57 changed files with 1859 additions and 987 deletions

View File

@@ -16,6 +16,7 @@ import (
"github.com/casbin/casbin/v2"
"github.com/casbin/casbin/v2/model"
_ "github.com/gogf/gf/contrib/drivers/mysql/v2"
"github.com/gogf/gf/v2/container/gvar"
"github.com/gogf/gf/v2/frame/g"
"github.com/gogf/gf/v2/os/gfile"
"github.com/gogf/gf/v2/os/gres"
@@ -35,7 +36,7 @@ var Enforcer *casbin.Enforcer
// InitEnforcer 初始化
func InitEnforcer(ctx context.Context) {
var (
link = g.Cfg().MustGet(ctx, "database.default.link")
link = getDbLink(ctx)
a, err = NewAdapter(link.String())
)
@@ -70,6 +71,26 @@ func InitEnforcer(ctx context.Context) {
loadPermissions(ctx)
}
// GetDbLink 获取数据库链接
func getDbLink(ctx context.Context) *gvar.Var {
link := g.Cfg().MustGet(ctx, "database.default")
//读写分离
if !link.IsSlice() {
return g.Cfg().MustGet(ctx, "database.default.link")
}
for _, v := range link.Array() {
// 只获取主库
val := v.(map[string]interface{})
if val["role"] == "master" {
return gvar.New(val["link"])
}
}
return gvar.New("database.default.0.link")
}
func loadPermissions(ctx context.Context) {
type Policy struct {
Key string `json:"key"`