/** * @Author: jager * @Email: lhj168os@gmail.com * @File: cache * @Date: 2021/12/20 6:39 下午 * @package: user * @Version: v1.0.0 * * @Description: * */ package user import ( "github.com/jageros/hawox/attribute" "sync" ) var users sync.Map func LoadAllUserIntoCache() error { attrs, err := attribute.LoadAll("user") if err != nil { return err } for _, attr := range attrs { u := &User{attr: attr} users.Store(attr.GetAttrID(), u) } return nil } func GetUser(openId string) (*User, error) { u, ok := users.Load(openId) if ok { return u.(*User), nil } us, err := newUser(openId) if err != nil { return nil, err } users.Store(openId, us) return us, nil }