-
Notifications
You must be signed in to change notification settings - Fork 43
/
activeHandler.go
132 lines (106 loc) · 2.87 KB
/
activeHandler.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
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 main
import (
"db"
"excel"
"strings"
"zeus/dbservice"
"github.com/ant0ine/go-json-rest/rest"
log "github.com/cihub/seelog"
)
// AccountActive 账号激活
func (s *Server) AccountActive(w rest.ResponseWriter, r *rest.Request) {
msg := AccountActiveReq{}
err := r.DecodeJsonPayload(&msg)
if err != nil {
log.Error(err)
rest.Error(w, "参数错误", 400)
return
}
log.Info("请求账号激活 ", msg.Activatetype, msg.User, msg.Password, msg.CDKEY)
ret := AccountActiveRet{
RetCode: ACTIVECDKEYINUSE,
}
result := s.ChannelVerifyCDKEY(&msg)
if result == db.CDKEYEXIST {
// 判断账号是否已经存在
if uid, _ := dbservice.GetUID(msg.User); uid != 0 {
ret.RetCode = ACTIVEACCOUNTEXIST
} else {
_, err = s.App.DoCreateNewUser(msg.User, msg.Password, uint32(s.initGrade))
if err != nil {
log.Error(err)
rest.Error(w, "服务器错误", 500)
return
}
ret.RetCode = ACTIVESUCCUESS
if msg.Activatetype == 0 { // 手机号激活
db.SetCDKEYUse(msg.User, msg.User)
} else if msg.Activatetype == 1 { // 激活码激活
db.SetCDKEYUse(msg.CDKEY, msg.User)
}
}
} else if result == db.CDKEYINUSE {
ret.RetCode = ACTIVECDKEYINUSE
} else if result == db.CDKEYABSEND {
ret.RetCode = ACTIVEABSEND
}
w.WriteJson(&ret)
log.Info("账号激活结果 ", msg.Activatetype, msg.User, msg.Password, msg.CDKEY, ret.RetCode)
}
// ChannelVerifyCDKEY 验证激活码
func (s *Server) ChannelVerifyCDKEY(msg interface{}) int {
info, ok := msg.(*AccountActiveReq)
if !ok {
return db.CDKEYABSEND
}
if info.Activatetype == 0 { // 手机号激活
if db.JudgeCDKEYInUse(info.User) {
return db.CDKEYINUSE
}
for _, accData := range excel.GetPhonenumberMap() {
if accData.Phonenumber == info.User {
return db.CDKEYEXIST
}
}
} else if info.Activatetype == 1 { // 激活码激活
if db.JudgeCDKEYInUse(info.CDKEY) {
return db.CDKEYINUSE
}
for _, accData := range excel.GetAdkeyMap() {
if accData.Adkey == info.CDKEY {
return db.CDKEYEXIST
}
}
}
return db.CDKEYABSEND
}
// cdkeyVerify 激活码验证
func (s *Server) cdkeyVerify(w rest.ResponseWriter, r *rest.Request) {
msg := AccountActiveReq{}
err := r.DecodeJsonPayload(&msg)
if err != nil {
log.Error(err)
rest.Error(w, "参数错误", 400)
return
}
msg.CDKEY = strings.ToUpper(msg.CDKEY)
ret := AccountActiveRet{
RetCode: ACTIVECDKEYINUSE,
}
result := db.GetCDKEYState(msg.CDKEY)
if result == db.CDKEYEXIST {
// 判断账号是否已经存在
if uid, _ := dbservice.GetUID(msg.User); uid != 0 {
if db.SetCDKEYBeUsed(msg.CDKEY, msg.User) {
dbservice.Account(uid).SetGrade(2)
ret.RetCode = ACTIVESUCCUESS
}
}
} else if result == db.CDKEYINUSE {
ret.RetCode = ACTIVECDKEYINUSE
} else if result == db.CDKEYABSEND {
ret.RetCode = ACTIVEABSEND
}
w.WriteJson(&ret)
log.Info("cdkeyVerify ", msg, ret.RetCode)
}