package common import ( "context" "fmt" "dashoo.cn/common_definition/admin/dict_def" "dashoo.cn/common_definition/admin/permission_def" "dashoo.cn/micro_libary/micro_srv" ) func Dict(tenant, code string) ([]*dict_def.DictData, error) { dictService := micro_srv.InitMicroSrvClient("Dict", "micro_srv.admin") defer dictService.Close() rsp := &dict_def.DictDataResp{} err := dictService.Call(context.TODO(), "GetDictDataByType", &dict_def.DictReq{ Tenant: tenant, DictCode: code, }, rsp) if err != nil { return nil, fmt.Errorf("获取字典失败 %s %s", code, err.Error()) } return rsp.List, nil } func DictAsMap(tenant, code string) (map[string]string, error) { data, err := Dict(tenant, code) if err != nil { return nil, err } m := map[string]string{} for _, v := range data { m[v.Key] = v.Value } return m, nil } func Allow(tenant, uuid, permission string) (bool, error) { permissionSrv := micro_srv.InitMicroSrvClient("Permission", "micro_srv.admin") defer permissionSrv.Close() rsp := &permission_def.PermissionResp{} err := permissionSrv.Call(context.TODO(), "GetAllPermissionByUser", &permission_def.UuidReq{ Tenant: tenant, Uuid: uuid, }, rsp) if err != nil { return false, fmt.Errorf("获取权限失败 %s", err.Error()) } for _, p := range rsp.UserPermissions { if p == permission { return true, nil } } return false, nil }