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
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
package service
import (
"errors"
"fmt"
"gin-vue-admin/global"
"gin-vue-admin/model"
"gin-vue-admin/model/request"
uuid "github.com/satori/go.uuid"
"gorm.io/gorm"
"strconv"
"time"
)
func UserRegister(u model.SysUser) (err error, userInter model.SysUser) {
var user model.SysUser
if !errors.Is(global.GVA_DB.Where("mobile = ?", u.Mobile).First(&user).Error, gorm.ErrRecordNotFound) { // 判断用户名是否注册
return errors.New("手机已注册"), userInter
}
// 否则 附加uuid 密码md5简单加密 注册
u.UUID = uuid.NewV4()
err = global.GVA_DB.Create(&u).Error
return err, u
}
func IsRegister(u model.SysUser) int64 {
var user model.SysUser
if !errors.Is(global.GVA_DB.Where("mobile = ?", u.Mobile).First(&user).Error, gorm.ErrRecordNotFound) { // 判断用户名是否注册
return 1
}
return 2
}
func IsBindCode(u model.SysUser) int64 {
var user model.SysUser
if !errors.Is(global.GVA_DB.Where("mobile = ? and hospital_code = ?", u.Mobile, u.HospitalCode).First(&user).Error, gorm.ErrRecordNotFound) { // 判断用户名是否注册
return 1
}
return 2
}
func FindUserByMobile(mobile string) model.SysUser {
var user model.SysUser
global.GVA_DB.Where("mobile = ?", mobile).First(&user) // 判断用户名是否注册
return user
}
func IsAuthe(userId int) int64 {
var totalItem int64 = 0
sqlStr := "SELECT count(id) as totalItem FROM sys_user_authe where user_id='" + strconv.Itoa(userId) + "'"
global.GVA_DB.Raw(sqlStr).Count(&totalItem) //获取总条数
if totalItem > 0 { // 判断用户名是否注册
return 1
}
return 2
}
func UpdateUserHospitalCode(mobile, hospitalCode string) error {
sqlStr := "UPDATE sys_users SET hospital_code=? WHERE mobile=?"
global.GVA_DB.Exec(sqlStr, hospitalCode, mobile)
return global.GVA_DB.Error
}
func UpdateUserOpenid(user model.SysUser, userId int) error {
sqlStr := "UPDATE sys_users SET openid=? WHERE id=?"
global.GVA_DB.Exec(sqlStr, user.Openid, userId)
return global.GVA_DB.Error
}
func UpdateUser(user model.SysUser, userId int) error {
sqlStr := "UPDATE sys_users SET header_img=?,nick_name=? WHERE id=?"
global.GVA_DB.Exec(sqlStr, user.HeaderImg, user.NickName, userId)
return global.GVA_DB.Error
}
func GetUserInfo(userId uint) (error, model.SysUser) {
data := new(model.SysUser)
table := " sys_users "
field := " id, mobile, openid, points_num, points_num_freeze, user_type "
sqlStr := "SELECT " + field +
" FROM " + table +
" WHERE id =?"
global.GVA_DB.Raw(sqlStr, userId).Find(&data)
if global.GVA_DB.Error != nil {
return global.GVA_DB.Error, model.SysUser{}
}
return nil, *data
}
func UpdateUserPoints(userId int, setType int, pointsNum int) error {
sqlStr := "UPDATE sys_users "
if setType == 1 {
sqlStr += " SET points_num = points_num+?"
} else {
sqlStr += " SET points_num = points_num-?"
}
sqlStr += " WHERE id = ?"
global.GVA_DB.Exec(sqlStr, pointsNum, userId)
return global.GVA_DB.Error
}
func UpdateUserPointsFreeze(userId int, setType int, pointsNum int) error {
sqlStr := "UPDATE sys_users "
if setType == 1 {
sqlStr += " SET points_num_freeze = points_num_freeze+?"
} else {
sqlStr += " SET points_num_freeze = points_num_freeze-?"
}
sqlStr += " WHERE id = ?"
global.GVA_DB.Exec(sqlStr, pointsNum, userId)
return global.GVA_DB.Error
}
func GetUserName(mobile string) (error, request.GetUserNameReply) {
data := new(request.GetUserNameReply)
table := " sys_users as su left join sys_user_authe as sua on su.id = sua.user_id "
field := " su.id, su.mobile, sua.name, su.nick_name "
sqlStr := "SELECT " + field +
" FROM " + table +
" WHERE su.mobile = ?"
global.GVA_DB.Raw(sqlStr, mobile).Find(&data)
if global.GVA_DB.Error != nil {
return global.GVA_DB.Error, request.GetUserNameReply{}
}
return nil, *data
}
func SetMobileCode(req model.MobileCode) error {
err := global.GVA_DB.Table("mobile_code").Create(&req).Error
return err
}
func GetMobileCode(mobile string) model.MobileCode {
nowtime := time.Now()
d, _ := time.ParseDuration("-180s")
beforetime := nowtime.Add(d)
data := new(model.MobileCode)
table := " mobile_code "
field := " id, mobile, code, status "
sqlStr := "SELECT " + field +
" FROM " + table +
" WHERE mobile = ? and status = 1 and create_time > ?" +
" ORDER BY create_time desc "
err := global.GVA_DB.Raw(sqlStr, mobile, beforetime).Find(&data)
if err != nil {
fmt.Println(err)
}
return *data
}