49 lines
1.1 KiB
Go
49 lines
1.1 KiB
Go
package user
|
|
|
|
import (
|
|
"go_dreamfactory/comm"
|
|
"go_dreamfactory/lego/core"
|
|
"go_dreamfactory/lego/sys/log"
|
|
"go_dreamfactory/modules"
|
|
"go_dreamfactory/pb"
|
|
)
|
|
|
|
type ModelSession struct {
|
|
modules.MCompModel
|
|
module *User
|
|
}
|
|
|
|
func (this *ModelSession) Init(service core.IService, module core.IModule, comp core.IModuleComp, options core.IModuleOptions) (err error) {
|
|
err = this.MCompModel.Init(service, module, comp, options)
|
|
this.module = module.(*User)
|
|
this.TableName = comm.TableSession
|
|
this.Expired = 0 //不自动过期
|
|
this.clean()
|
|
return
|
|
}
|
|
|
|
//获取用户
|
|
func (this *ModelSession) getUserSession(uid string) (user *pb.CacheUser) {
|
|
user = &pb.CacheUser{}
|
|
if err := this.GetListObj(comm.RDS_SESSION, uid, user); err != nil {
|
|
this.module.Errorln(err)
|
|
return nil
|
|
}
|
|
return user
|
|
}
|
|
|
|
// 启动时清理session
|
|
func (this *ModelSession) clean() {
|
|
keys, err := this.Redis.Keys("session:*")
|
|
if err != nil {
|
|
log.Errorf("redis keys err:%v", err)
|
|
return
|
|
}
|
|
|
|
for _, k := range keys {
|
|
if err := this.Redis.Delete(k); err != nil {
|
|
log.Errorf("redis delete key err:%v", err)
|
|
}
|
|
}
|
|
}
|