Blame view

cmd/httpserver/AccountAction.go 2.2 KB
0e5d52de   zhangqijia   reactor: 重构底层框架1.0
1
  package main
9644352a   zhangqijia   登录服改为http,游戏服改为长连...
2
3
  
  import (
15864203   zhangqijia   feat: 增加短信接口
4
  	"fmt"
9644352a   zhangqijia   登录服改为http,游戏服改为长连...
5
  	"github.com/gin-gonic/gin"
765431a4   zhangqijia   增加schema接口, 抽象 mo...
6
  	"pro2d/common"
15864203   zhangqijia   feat: 增加短信接口
7
  	"pro2d/common/db/redisproxy"
f415f471   zhangqijia   fix: roleID自增加上限制...
8
  	"pro2d/common/etcd"
15864203   zhangqijia   feat: 增加短信接口
9
  	"pro2d/common/sms"
0e5d52de   zhangqijia   reactor: 重构底层框架1.0
10
  	"pro2d/models"
7f269318   zhangqijia   add pb.go; 添加关闭连接...
11
  	"pro2d/pb"
9644352a   zhangqijia   登录服改为http,游戏服改为长连...
12
13
  )
  
62d5d847   zhangqijia   http服务只用写actionSt...
14
  type AccountAction struct {
0e5d52de   zhangqijia   reactor: 重构底层框架1.0
15
  	HttpServer *AccountServer
9644352a   zhangqijia   登录服改为http,游戏服改为长连...
16
17
  }
  
944a2ef6   zhangqijia   fix: 注册增加验证码,暂时使用...
18
  func (h *AccountAction) Register(c *gin.Context) (int, interface{}) {
9644352a   zhangqijia   登录服改为http,游戏服改为长连...
19
20
  	var register pb.Register
  	if err := c.ShouldBindJSON(&register); err != nil {
436e0af4   zhangqijia   reactor: dir; Ac...
21
22
23
  		return 1, err.Error()
  	}
  
944a2ef6   zhangqijia   fix: 注册增加验证码,暂时使用...
24
25
26
27
28
29
30
31
32
  	key := fmt.Sprintf(common.SMSCode, register.Phone)
  
  	relay, err := redisproxy.GET(key)
  	if err != nil {
  		return 2, err.Error()
  	}
  	code := relay.(string)
  
  	if register.Code != code {
436e0af4   zhangqijia   reactor: dir; Ac...
33
  		return 2, "code error"
9644352a   zhangqijia   登录服改为http,游戏服改为长连...
34
35
36
37
  	}
  
  	account := models.NewAccount(register.Phone)
  	if err := account.Load(); err == nil {
944a2ef6   zhangqijia   fix: 注册增加验证码,暂时使用...
38
  		return 3, "account exists: " + register.Phone
9644352a   zhangqijia   登录服改为http,游戏服改为长连...
39
40
  	}
  
101d1cc1   zhangqijia   feat: 一个基于redis的自...
41
42
43
44
45
  	uid, err := common.GetNextUId()
  	if err != nil {
  		return 4, "uid get error: " + err.Error()
  	}
  	account.Uid = uid
29a163be   zhangqijia   fix: CreateReq ui...
46
  	account.Password = common.Md5V(register.Password)
101d1cc1   zhangqijia   feat: 一个基于redis的自...
47
  	if err = account.Create(); err != nil {
436e0af4   zhangqijia   reactor: dir; Ac...
48
  		return 4, "account register err: " + err.Error()
9644352a   zhangqijia   登录服改为http,游戏服改为长连...
49
50
  	}
  	account.Password = register.Password
436e0af4   zhangqijia   reactor: dir; Ac...
51
  	return 0, "success"
9644352a   zhangqijia   登录服改为http,游戏服改为长连...
52
53
  }
  
944a2ef6   zhangqijia   fix: 注册增加验证码,暂时使用...
54
  func (h *AccountAction) Login(c *gin.Context) (int, interface{}) {
9644352a   zhangqijia   登录服改为http,游戏服改为长连...
55
56
  	var login pb.Account
  	if err := c.ShouldBindJSON(&login); err != nil {
436e0af4   zhangqijia   reactor: dir; Ac...
57
  		return 1, err.Error()
9644352a   zhangqijia   登录服改为http,游戏服改为长连...
58
59
60
  	}
  	account := models.NewAccount(login.Phone)
  	if err := account.Load(); err != nil {
436e0af4   zhangqijia   reactor: dir; Ac...
61
  		return 2, err.Error()
9644352a   zhangqijia   登录服改为http,游戏服改为长连...
62
63
  	}
  
29a163be   zhangqijia   fix: CreateReq ui...
64
  	if common.Md5V(login.Password) != account.Password {
436e0af4   zhangqijia   reactor: dir; Ac...
65
  		return 3, "password error"
9644352a   zhangqijia   登录服改为http,游戏服改为长连...
66
67
  	}
  
a0c46341   zhangqijia   fix: http login
68
  	var gs []*pb.ServiceInfo
f415f471   zhangqijia   fix: roleID自增加上限制...
69
  	for k, v := range etcd.GEtcdClient().GetByPrefix(common.GlobalSconf.Name) {
a0c46341   zhangqijia   fix: http login
70
71
  		gs = append(gs, &pb.ServiceInfo{
  			Id:      k,
765431a4   zhangqijia   增加schema接口, 抽象 mo...
72
  			Name:    common.GlobalConf.GameConf.Name,
a0c46341   zhangqijia   fix: http login
73
74
75
76
  			Address: v,
  		})
  	}
  	rsp := &pb.LoginRsp{
944a2ef6   zhangqijia   fix: 注册增加验证码,暂时使用...
77
  		Token:       account.Uid,
a0c46341   zhangqijia   fix: http login
78
79
  		GameService: gs,
  	}
62d5d847   zhangqijia   http服务只用写actionSt...
80
  	return 0, rsp
9644352a   zhangqijia   登录服改为http,游戏服改为长连...
81
  }
15864203   zhangqijia   feat: 增加短信接口
82
  
944a2ef6   zhangqijia   fix: 注册增加验证码,暂时使用...
83
  func (h *AccountAction) Sms(c *gin.Context) (int, interface{}) {
15864203   zhangqijia   feat: 增加短信接口
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
  	c.Request.ParseForm()
  	phone, ok := c.GetPostForm("phone")
  	if !ok {
  		return 1, "phone not exists"
  	}
  	code := common.RandomCode()
  	key := fmt.Sprintf(common.SMSCode, phone)
  
  	relay, err := redisproxy.SETNX(key, code)
  	if relay.(int64) == 0 {
  		return 2, "send frequently"
  	}
  	redisproxy.ExpireKey(key, 60)
  
  	err = sms.SendSms(phone, code)
  	if err != nil {
  		redisproxy.DEL(key)
  		return 3, err.Error()
  	}
  
  	return 0, nil
  }