package models import ( "github.com/beego/beego/v2/client/orm" "time" ) type CygxSession struct { SessionId int `orm:"column(session_id);pk"` UnionId string UserId int OpenId string AccessToken string ExpireTime time.Time CreatedTime time.Time LastUpdatedTime time.Time } func GetSessionByToken(token string) (item *CygxSession, err error) { sql := `SELECT * FROM cygx_session WHERE access_token=? AND expire_time> NOW() ORDER BY session_id DESC LIMIT 1 ` o := orm.NewOrm() err = o.Raw(sql, token).QueryRow(&item) return } func GetSessionCountByToken(token string) (count int, err error) { sql := `SELECT COUNT(1) AS count FROM cygx_session WHERE access_token=? AND expire_time> NOW() ORDER BY session_id DESC LIMIT 1 ` o := orm.NewOrm() err = o.Raw(sql, token).QueryRow(&count) return } //添加用户session信息 func AddSession(item *CygxSession) (err error) { o := orm.NewOrm() _, err = o.Insert(item) return } func GetTokenByUid(uid int) (item *CygxSession, err error) { sql := `SELECT * FROM cygx_session WHERE user_id=? AND expire_time> NOW() ORDER BY session_id DESC LIMIT 1 ` o := orm.NewOrm() err = o.Raw(sql, uid).QueryRow(&item) return } //根据用户id获取token func GetTokenByOpenId(openId string) (item *CygxSession, err error) { sql := `SELECT * FROM cygx_session WHERE open_id=? AND expire_time> NOW() ORDER BY session_id DESC LIMIT 1 ` o := orm.NewOrm() err = o.Raw(sql, openId).QueryRow(&item) return }