/
admin_model.go
74 lines (65 loc) · 1.77 KB
/
admin_model.go
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
package models
import (
"errors"
"github.com/xiusin/pinecms/src/application/models/tables"
"github.com/xiusin/pinecms/src/common/helper"
"xorm.io/xorm"
)
type AdminModel struct {
orm *xorm.Engine
}
func NewAdminModel() *AdminModel {
return &AdminModel{orm: helper.GetORM()}
}
// Login 登录用户
func (a *AdminModel) Login(username, password, ip string) (tables.Admin, error) {
admin := tables.Admin{Username: username}
exist, _ := a.orm.Get(&admin)
if !exist {
return admin, errors.New("管理员不存在")
}
//password = helper.Password(password, admin.Encrypt)
//if password != admin.Password {
// return admin, errors.New("密码错误,请再次尝试!")
//}
admin.Lastloginip = ip
a.orm.ID(admin.Userid).Update(admin)
return admin, nil
}
//获取用户信息
func (a *AdminModel) GetUserInfo(userid int64) (tables.Admin, error) {
admin := tables.Admin{Userid: userid}
has, _ := a.orm.Get(&admin)
if has {
return admin, nil
}
return admin, errors.New("没有找到用户")
}
//编辑密码
func (a *AdminModel) EditPassword(userid int64, password string) bool {
admin := tables.Admin{Userid: userid}
res, _ := a.orm.Get(&admin)
encrypt := string(helper.Krand(8, 3))
if res {
admin.Password = helper.Password(password, encrypt)
admin.Encrypt = encrypt
result, _ := a.orm.ID(admin.Userid).Update(&admin)
if result == 0 {
return false
} else {
return true
}
}
return false
}
//获取管理员列表
func (a *AdminModel) GetList(where string, page, rows int, order string, sortType string) []tables.Admin {
start := (page - 1) * rows
admins := []tables.Admin{}
if sortType == "asc" {
a.orm.Where(where).Asc(order).Limit(rows, start).Find(&admins)
} else {
a.orm.Where(where).Desc(order).Limit(rows, start).Find(&admins)
}
return admins
}