mirror of
				https://github.com/bufanyun/hotgo.git
				synced 2025-11-04 08:13:45 +08:00 
			
		
		
		
	perf: 数据库表名硬编码替换
This commit is contained in:
		@@ -9,15 +9,18 @@ import (
 | 
			
		||||
	"context"
 | 
			
		||||
	"errors"
 | 
			
		||||
	"fmt"
 | 
			
		||||
	"hotgo/internal/dao"
 | 
			
		||||
	"math"
 | 
			
		||||
	"strings"
 | 
			
		||||
 | 
			
		||||
	"github.com/casbin/casbin/v2/model"
 | 
			
		||||
	"github.com/casbin/casbin/v2/persist"
 | 
			
		||||
	"github.com/gogf/gf/v2/database/gdb"
 | 
			
		||||
	"math"
 | 
			
		||||
	"strings"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
var defaultTableName = dao.AdminRoleCasbin.Table()
 | 
			
		||||
 | 
			
		||||
const (
 | 
			
		||||
	defaultTableName     = "hg_admin_role_casbin"
 | 
			
		||||
	dropPolicyTableSql   = `DROP TABLE IF EXISTS %s`
 | 
			
		||||
	createPolicyTableSql = `
 | 
			
		||||
CREATE TABLE IF NOT EXISTS %s (
 | 
			
		||||
 
 | 
			
		||||
@@ -7,15 +7,18 @@ package casbin
 | 
			
		||||
 | 
			
		||||
import (
 | 
			
		||||
	"context"
 | 
			
		||||
	"hotgo/internal/consts"
 | 
			
		||||
	"hotgo/internal/dao"
 | 
			
		||||
	"net/http"
 | 
			
		||||
	"strings"
 | 
			
		||||
 | 
			
		||||
	"github.com/casbin/casbin/v2"
 | 
			
		||||
	"github.com/casbin/casbin/v2/model"
 | 
			
		||||
	_ "github.com/gogf/gf/contrib/drivers/mysql/v2"
 | 
			
		||||
	"github.com/gogf/gf/v2/frame/g"
 | 
			
		||||
	"github.com/gogf/gf/v2/os/gfile"
 | 
			
		||||
	"github.com/gogf/gf/v2/os/gres"
 | 
			
		||||
	"hotgo/internal/consts"
 | 
			
		||||
	"net/http"
 | 
			
		||||
	"strings"
 | 
			
		||||
	"github.com/gogf/gf/v2/text/gstr"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
const (
 | 
			
		||||
@@ -76,10 +79,9 @@ func loadPermissions(ctx context.Context) {
 | 
			
		||||
		polices []*Policy
 | 
			
		||||
		err     error
 | 
			
		||||
	)
 | 
			
		||||
 | 
			
		||||
	err = g.Model("hg_admin_role r").
 | 
			
		||||
		LeftJoin("hg_admin_role_menu rm", "r.id=rm.role_id").
 | 
			
		||||
		LeftJoin("hg_admin_menu m", "rm.menu_id=m.id").
 | 
			
		||||
	err = g.Model(gstr.Join([]string{dao.AdminRole.Table(), "r"}, " ")).
 | 
			
		||||
		LeftJoin(gstr.Join([]string{dao.AdminRoleMenu.Table(), "rm"}, " "), "r.id=rm.role_id").
 | 
			
		||||
		LeftJoin(gstr.Join([]string{dao.AdminMenu.Table(), "m"}, " "), "rm.menu_id=m.id").
 | 
			
		||||
		Fields("r.key,m.permissions").
 | 
			
		||||
		Where("r.status", consts.StatusEnabled).
 | 
			
		||||
		Where("m.status", consts.StatusEnabled).
 | 
			
		||||
 
 | 
			
		||||
@@ -8,10 +8,12 @@ package hgorm
 | 
			
		||||
import (
 | 
			
		||||
	"context"
 | 
			
		||||
	"hotgo/internal/consts"
 | 
			
		||||
	"hotgo/internal/dao"
 | 
			
		||||
	"hotgo/utility/tree"
 | 
			
		||||
 | 
			
		||||
	"github.com/gogf/gf/v2/errors/gerror"
 | 
			
		||||
	"github.com/gogf/gf/v2/frame/g"
 | 
			
		||||
	"github.com/gogf/gf/v2/text/gstr"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
// TenantRelation 租户关系
 | 
			
		||||
@@ -24,8 +26,9 @@ type TenantRelation struct {
 | 
			
		||||
 | 
			
		||||
// GetTenantRelation 获取租户关系
 | 
			
		||||
func GetTenantRelation(ctx context.Context, memberId int64) (tr *TenantRelation, err error) {
 | 
			
		||||
	data, err := g.Model("hg_admin_member u").Ctx(ctx).
 | 
			
		||||
		LeftJoin("hg_admin_dept d", "u.dept_id=d.id").
 | 
			
		||||
 | 
			
		||||
	data, err := g.Model(gstr.Join([]string{dao.AdminMember.Table(), "u"}, " ")).Ctx(ctx).
 | 
			
		||||
		LeftJoin(gstr.Join([]string{dao.AdminDept.Table(), "d"}, " "), "u.dept_id=d.id").
 | 
			
		||||
		Fields("u.tree,d.type").
 | 
			
		||||
		Where("u.id", memberId).One()
 | 
			
		||||
	if err != nil {
 | 
			
		||||
@@ -40,8 +43,8 @@ func GetTenantRelation(ctx context.Context, memberId int64) (tr *TenantRelation,
 | 
			
		||||
	ids := tree.GetIds(data["tree"].String())
 | 
			
		||||
 | 
			
		||||
	getRelationId := func(deptType string) (int64, error) {
 | 
			
		||||
		id, err := g.Model("hg_admin_member u").Ctx(ctx).
 | 
			
		||||
			LeftJoin("hg_admin_dept d", "u.dept_id=d.id").
 | 
			
		||||
		id, err := g.Model(gstr.Join([]string{dao.AdminMember.Table(), "u"}, " ")).Ctx(ctx).
 | 
			
		||||
			LeftJoin(gstr.Join([]string{dao.AdminDept.Table(), "d"}, " "), "u.dept_id=d.id").
 | 
			
		||||
			Fields("u.id").
 | 
			
		||||
			WhereIn("u.id", ids).Where("d.type", deptType).
 | 
			
		||||
			OrderAsc("u.level"). // 确保是第一关系
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user