@@ -6,8 +6,10 @@ import (
66 "github.com/sirupsen/logrus"
77 "net/http"
88 "strings"
9+ "time"
910)
1011
12+ const UserKey = "user"
1113const UserIdKey = "user_id"
1214
1315// UserModel 不能赋值指针
@@ -28,33 +30,33 @@ type Ctx struct {
2830 UserInfo interface {}
2931}
3032
31- func (receiver Ctx ) Success (data interface {}) {
33+ func (receiver * Ctx ) Success (data interface {}) {
3234 receiver .JSON (http .StatusOK , map [string ]interface {}{
3335 "data" : data ,
3436 "code" : 0 ,
3537 "msg" : "" ,
3638 })
3739}
3840
39- func (receiver Ctx ) Fail (err error ) {
41+ func (receiver * Ctx ) Fail (err error ) {
4042 receiver .JSON (http .StatusOK , map [string ]interface {}{
4143 "code" : 1 ,
4244 "msg" : err .Error (),
4345 })
4446}
4547
46- func (receiver Ctx ) Gin () * gin.Context {
48+ func (receiver * Ctx ) Gin () * gin.Context {
4749 return receiver .Context
4850}
4951
50- func (receiver Ctx ) User () interface {} {
52+ func (receiver * Ctx ) User () interface {} {
5153 if receiver .UserInfo == nil {
5254 receiver .InitUser ()
5355 }
5456 return receiver .UserInfo
5557}
5658
57- func (receiver Ctx ) Id () uint64 {
59+ func (receiver * Ctx ) Id () uint64 {
5860 u , ok := receiver .Context .Get (UserIdKey )
5961 if ! ok {
6062 logrus .Fatal ("id 不存在, todo Context.Set(UserIdKey, Uid)" )
@@ -63,15 +65,15 @@ func (receiver Ctx) Id() uint64 {
6365 return u .(uint64 )
6466}
6567
66- func (receiver Ctx ) IdStr () string {
68+ func (receiver * Ctx ) IdStr () string {
6769 u , ok := receiver .Context .Get (UserIdKey )
6870 if ! ok {
6971 return ""
7072 }
7173 return u .(string )
7274}
7375
74- func (receiver Ctx ) Token () string {
76+ func (receiver * Ctx ) Token () string {
7577 tokenString := receiver .Context .GetHeader ("Authorization" )
7678
7779 if strings .HasPrefix (tokenString , "Bearer " ) {
@@ -80,9 +82,15 @@ func (receiver Ctx) Token() string {
8082 return tokenString
8183}
8284
83- func (receiver Ctx ) InitUser () {
85+ func (receiver * Ctx ) InitUser () {
8486 if receiver .UserInfo == nil {
85- uid , ok := receiver .Context .Get (UserIdKey )
87+ u , ok := receiver .Context .Get (UserKey )
88+ if ok {
89+ receiver .UserInfo = u
90+ return
91+ }
92+
93+ uid , ok := receiver .Get (UserIdKey )
8694 if ok {
8795 user := UserModel
8896 database .DB ().Model (UserModel ).First (& user , uid )
@@ -100,4 +108,30 @@ type Context interface {
100108 Id () uint64
101109 IdStr () string
102110 User () interface {}
111+
112+ // 下面是补充 gin.Context 的方法
113+
114+ JSON (code int , obj interface {})
115+ String (code int , format string , values ... interface {})
116+ Param (key string ) string
117+ Query (key string ) string
118+ PostForm (key string ) string
119+ BindJSON (obj interface {}) error
120+ Status (code int )
121+ Set (key string , value interface {})
122+ Get (key string ) (value interface {}, exists bool )
123+ AbortWithStatus (code int )
124+ Next ()
125+
126+ GetString (key string ) string
127+ GetBool (key string ) bool
128+ GetInt (key string ) int
129+ GetInt64 (key string ) int64
130+ GetFloat64 (key string ) float64
131+ GetTime (key string ) time.Time
132+ GetDuration (key string ) time.Duration
133+ GetStringSlice (key string ) []string
134+ GetStringMap (key string ) map [string ]interface {}
135+ GetStringMapString (key string ) map [string ]string
136+ GetStringMapStringSlice (key string ) map [string ][]string
103137}
0 commit comments