3 Star 15 Fork 13

联犀/中台模块

加入 Gitee
与超过 1400万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
克隆/下载
tenant.go 1.31 KB
一键复制 编辑 原始数据 按行查看 历史
package caches
import (
"context"
"encoding/json"
"gitee.com/unitedrhino/core/share/domain/tenant"
"gitee.com/unitedrhino/share/caches"
)
// 生产用户数据权限缓存key
func genTenantKey() string {
return "tenant"
}
func InitTenant(ctx context.Context, tenants ...*tenant.Info) error {
if len(tenants) == 0 {
return nil
}
return caches.GetStore().HmsetCtx(ctx, genTenantKey(), DoToTenantMap(tenants...))
}
func SetTenant(ctx context.Context, t *tenant.Info) error {
val, _ := json.Marshal(t)
return caches.GetStore().HsetCtx(ctx, genTenantKey(), t.Code, string(val))
}
func DelTenant(ctx context.Context, code string) error {
_, err := caches.GetStore().HdelCtx(ctx, genTenantKey(), code)
return err
}
func GetTenant(ctx context.Context, code string) (*tenant.Info, error) {
val, err := caches.GetStore().HgetCtx(ctx, genTenantKey(), code)
if err != nil {
return nil, err
}
var ret tenant.Info
err = json.Unmarshal([]byte(val), &ret)
if err != nil {
return nil, err
}
return &ret, nil
}
func GetTenantCodes(ctx context.Context) ([]string, error) {
return caches.GetStore().HkeysCtx(ctx, genTenantKey())
}
func DoToTenantMap(tenants ...*tenant.Info) map[string]string {
var ret = map[string]string{}
for _, v := range tenants {
val, _ := json.Marshal(v)
ret[v.Code] = string(val)
}
return ret
}
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
Go
1
https://gitee.com/unitedrhino/core.git
git@gitee.com:unitedrhino/core.git
unitedrhino
core
中台模块
v1.5.4

搜索帮助