user_auth.go
3.7 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
128
129
130
131
132
package models
import (
"fmt"
"oppmg/common/log"
"time"
"github.com/astaxie/beego/orm"
)
type UserAuth struct {
Id int64 `orm:"column(id);auto"`
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:"设备类型 1:ios 2:安卓 3: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)"`
}
func (t *UserAuth) TableName() string {
return "user_auth"
}
func init() {
orm.RegisterModel(new(UserAuth))
}
//设备类型 1:ios 2:安卓 3:web
const (
_ int8 = iota
DEVICE_TYPE_IOS
DEVICE_TYPE_ANDROID
DEVICE_TYPE_WEB
)
// 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 int64) (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, col []string, om ...orm.Ormer) (err error) {
var o orm.Ormer
if len(om) > 0 {
o = om[0]
} else {
o = orm.NewOrm()
}
// ascertain id exists in the database
var num int64
if num, err = o.Update(m, col...); err == nil {
log.Info("Number of records updated in database:%d", num)
}
return
}
// DeleteUserAuth deletes UserAuth by Id and returns error if
// the record to be deleted doesn't exist
func DeleteUserAuth(id int64) (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
}
func ValidateDdevice(deviceType int8) bool {
switch deviceType {
case DEVICE_TYPE_IOS:
return true
case DEVICE_TYPE_ANDROID:
return true
case DEVICE_TYPE_WEB:
return true
}
return false
}
//ReadUserAuthByDevice 读取或创建
func GetUserAuthByUser(userId int64) (*UserAuth, error) {
o := orm.NewOrm()
uAuth := &UserAuth{
UserId: userId,
DeviceType: DEVICE_TYPE_WEB,
}
err := o.Read(uAuth, "UserId", "DeviceType")
if err == nil {
return uAuth, nil
}
return nil, err
}
func GetUserAuthByDeviceTye(userId int64, devType int8) (*UserAuth, error) {
o := orm.NewOrm()
uAuth := &UserAuth{
UserId: userId,
DeviceType: devType,
}
err := o.Read(uAuth, "UserId", "DeviceType")
if err == nil {
return uAuth, nil
}
return nil, err
}