user_auth.go
4.3 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
package models
import (
"fmt"
"time"
"github.com/astaxie/beego/orm"
)
type UserAuth struct {
Id int `orm:"column(id);auto" description:"唯一编号"`
UserId int64 `orm:"column(user_id)" description:"表user.id "`
RefreshToken string `orm:"column(refresh_token);size(64)" description:"refresh token "`
RefreshTokenExp time.Time `orm:"column(refresh_token_exp);type(timestamp)" description:"refresh token 过期时间"`
AccessToken string `orm:"column(access_token);size(64)" description:"access_token "`
AccessTokenExp time.Time `orm:"column(access_token_exp);type(timestamp)" description:"access token 过期时间"`
AuthCode string `orm:"column(auth_code);size(64)" description:"auth_code"`
AuthCodeExp time.Time `orm:"column(auth_code_exp);type(timestamp)" description:"auth_code过期时间"`
DeviceType int8 `orm:"column(device_type)" description:"设备类型 0:ios 1:安卓 2:web "`
ClientId string `orm:"column(client_id);size(100)" description:"设备识别码 推送标识"`
DeviceToken string `orm:"column(device_token);size(100)" description:"设备识别码 推送标识"`
CreateAt time.Time `orm:"column(create_at);type(timestamp)" description:"创建时间"`
UpdateAt time.Time `orm:"column(update_at);type(timestamp)" description:"更新时间"`
CurrentCompanyId int64 `orm:"column(current_company_id)" description:"当前登录的公司id "`
CurrentUserCompanyId int64 `orm:"column(current_user_company_id)" description:"当前登录的公司 user_company.id "`
}
func (t *UserAuth) TableName() string {
return "user_auth"
}
func init() {
orm.RegisterModel(new(UserAuth))
}
// AddUserAuth insert a new UserAuth into database and returns
// last inserted Id on success.
func AddUserAuth(m *UserAuth) (id int64, err error) {
o := orm.NewOrm()
id, err = o.Insert(m)
return
}
// GetUserAuthById retrieves UserAuth by Id. Returns error if
// Id doesn't exist
func GetUserAuthById(id int) (v *UserAuth, err error) {
o := orm.NewOrm()
v = &UserAuth{Id: id}
if err = o.Read(v); err == nil {
return v, nil
}
return nil, err
}
// UpdateUserAuth updates UserAuth by Id and returns error if
// the record to be updated doesn't exist
func UpdateUserAuthById(m *UserAuth) (err error) {
o := orm.NewOrm()
v := UserAuth{Id: m.Id}
// ascertain id exists in the database
if err = o.Read(&v); err == nil {
var num int64
if num, err = o.Update(m); err == nil {
fmt.Println("Number of records updated in database:", num)
}
}
return
}
// DeleteUserAuth deletes UserAuth by Id and returns error if
// the record to be deleted doesn't exist
func DeleteUserAuth(id int) (err error) {
o := orm.NewOrm()
v := UserAuth{Id: id}
// ascertain id exists in the database
if err = o.Read(&v); err == nil {
var num int64
if num, err = o.Delete(&UserAuth{Id: id}); err == nil {
fmt.Println("Number of records deleted in database:", num)
}
}
return
}
//按 authcode
//获取用户权限信息
func GetUserByAuthCode(authCode string) (v *UserAuth, err error) {
o := orm.NewOrm()
sql := "select * from user_auth where auth_code=? and auth_code_exp >= Now()"
if err = o.Raw(sql, authCode).QueryRow(&v); err == nil {
return v, nil
}
return nil, err
}
//按 refreshToken
//获取用户权限信息
func GetUserAuthByRefreshToken(refreshToken string) (v *UserAuth, err error) {
o := orm.NewOrm()
sql := "select * from user_auth where refresh_token=? and refresh_token_exp >= Now()" //
if err = o.Raw(sql, refreshToken).QueryRow(&v); err == nil {
return v, nil
}
return nil, err
}
//按 token
//获取用户权限信息
func GetUserAuthByToken(token string) (v *UserAuth, err error) {
o := orm.NewOrm()
sql := "select * from user_auth where access_token=? and access_token_exp >= Now()"
if err = o.Raw(sql, token).QueryRow(&v); err == nil {
return v, nil
}
return nil, err
}
// GetUserAuthById retrieves UserAuth by Id. Returns error if
// 获取用户权限信息
func GetUserAuthByUserId(uid int64, deviceType int) (v *UserAuth, err error) {
o := orm.NewOrm()
sql := "select * from user_auth where user_id=? and device_type=?"
if err = o.Raw(sql, uid, deviceType).QueryRow(&v); err == nil {
return v, nil
}
return nil, err
}