org_player_user.go 3.61 KB
Newer Older
haoyanbin's avatar
haoyanbin committed
1 2 3 4 5 6 7 8 9 10
package apis

import (
	"github.com/gin-gonic/gin"
	"github.com/go-admin-team/go-admin-core/sdk/api"
	_ "github.com/go-admin-team/go-admin-core/sdk/pkg/response"
	"go-admin/app/mobile/service"
	"go-admin/app/mobile/service/dto"
	"go-admin/app/operate/models"
	"go-admin/common/actions"
haoyanbin's avatar
haoyanbin committed
11 12
	"go-admin/common/utils"
	"strconv"
haoyanbin's avatar
haoyanbin committed
13 14 15 16 17 18
)

type OrgPlayerUser struct {
	api.Api
}

haoyanbin's avatar
haoyanbin committed
19 20 21 22 23
// GetPage <手机端>获取验证码
// @Summary <手机端>获取验证码
// @Description <手机端>获取验证码
// @Tags <手机端>球员账户
// @Param username query string false "账号(手机号)"
haoyanbin's avatar
haoyanbin committed
24
// @Success 200 {string} string {"code": 200, "data": [...]}
haoyanbin's avatar
haoyanbin committed
25
// @Router /mobile/v1/org-player-user/get-msg [post]
haoyanbin's avatar
haoyanbin committed
26
// @Security Bearer
haoyanbin's avatar
haoyanbin committed
27 28
func (e OrgPlayerUser) GetMsg(c *gin.Context) {
	req := dto.GetMsgReq{}
haoyanbin's avatar
haoyanbin committed
29 30 31 32 33 34 35 36 37 38 39 40
	s := service.OrgPlayerUser{}
	err := e.MakeContext(c).
		MakeOrm().
		Bind(&req).
		MakeService(&s.Service).
		Errors
	if err != nil {
		e.Logger.Error(err)
		e.Error(500, err, err.Error())
		return
	}

haoyanbin's avatar
haoyanbin committed
41
	err, userId := s.IsBeing(req.Username)
haoyanbin's avatar
haoyanbin committed
42
	if err != nil {
haoyanbin's avatar
haoyanbin committed
43
		e.Logger.Error(err)
haoyanbin's avatar
1  
haoyanbin committed
44
		e.Error(101, err, "账号未找到")
haoyanbin's avatar
haoyanbin committed
45 46 47
		return
	}
	if userId == 0 {
haoyanbin's avatar
haoyanbin committed
48
		e.Logger.Error(userId)
haoyanbin's avatar
1  
haoyanbin committed
49
		e.Error(101, err, "账号未找到")
haoyanbin's avatar
haoyanbin committed
50 51 52
		return
	}

haoyanbin's avatar
haoyanbin committed
53 54 55 56 57 58 59 60 61 62 63
	//生成验证码
	code := utils.CreateCaptcha()

	reqMsg := dto.OrgMsgInsertReq{}
	sMsg := service.OrgMsg{}
	errMsg := e.MakeContext(c).
		MakeOrm().
		MakeService(&sMsg.Service).
		Errors
	if errMsg != nil {
		e.Logger.Error(err)
haoyanbin's avatar
haoyanbin committed
64
		e.Error(106, err, "发送验证码失败")
haoyanbin's avatar
haoyanbin committed
65 66
		return
	}
haoyanbin's avatar
haoyanbin committed
67

haoyanbin's avatar
haoyanbin committed
68 69
	reqMsg.Username = req.Username
	reqMsg.Code = code
haoyanbin's avatar
haoyanbin committed
70
	reqMsg.MsgType = "1"
haoyanbin's avatar
haoyanbin committed
71
	err = sMsg.Insert(&reqMsg)
haoyanbin's avatar
haoyanbin committed
72 73 74 75 76
	if err != nil {
		e.Logger.Error(err)
		e.Error(106, err, "发送验证码失败")
		return
	}
haoyanbin's avatar
haoyanbin committed
77

haoyanbin's avatar
haoyanbin committed
78 79
	smsText := "您的验证码为:" + code
	if result := utils.SendMobileMsg(req.Username, smsText); result.Status == 0 {
haoyanbin's avatar
haoyanbin committed
80 81 82 83 84
		reply := new(dto.GetMsgReply)
		e.OK(reply, "发送成功")
		return
	} else {
		e.Logger.Error(err)
haoyanbin's avatar
haoyanbin committed
85
		e.Error(106, err, "发送验证码失败")
haoyanbin's avatar
haoyanbin committed
86 87
		return
	}
haoyanbin's avatar
haoyanbin committed
88

haoyanbin's avatar
haoyanbin committed
89 90 91 92 93
}

// GetPage 获取球员账户信息列表
// @Summary 获取球员账户信息列表
// @Description 获取球员账户信息列表
haoyanbin's avatar
haoyanbin committed
94
// @Tags <手机端>球员账户
haoyanbin's avatar
haoyanbin committed
95 96
// @Param username query string false "账号(手机号)"
// @Param code query string false "验证码"
haoyanbin's avatar
haoyanbin committed
97
// @Success 200 {string} string {"code": 200, "data": [...]}
haoyanbin's avatar
haoyanbin committed
98
// @Router /mobile/v1/org-player-user/login [post]
haoyanbin's avatar
haoyanbin committed
99
// @Security Bearer
haoyanbin's avatar
haoyanbin committed
100 101
func (e OrgPlayerUser) Login(c *gin.Context) {
	req := dto.LoginReq{}
haoyanbin's avatar
haoyanbin committed
102 103 104 105 106 107 108 109 110 111 112 113 114
	s := service.OrgPlayerUser{}
	err := e.MakeContext(c).
		MakeOrm().
		Bind(&req).
		MakeService(&s.Service).
		Errors
	if err != nil {
		e.Logger.Error(err)
		e.Error(500, err, err.Error())
		return
	}

	p := actions.GetPermissionFromContext(c)
haoyanbin's avatar
haoyanbin committed
115 116
	data := new(models.OrgPlayerUser)
	req.Password = dto.Pwd(req.Password)
haoyanbin's avatar
haoyanbin committed
117

haoyanbin's avatar
haoyanbin committed
118
	err = s.Login(&req, p, data)
haoyanbin's avatar
haoyanbin committed
119
	if err != nil {
haoyanbin's avatar
haoyanbin committed
120
		e.Logger.Error(err)
haoyanbin's avatar
1  
haoyanbin committed
121
		e.Error(101, err, "账号未找到")
haoyanbin's avatar
haoyanbin committed
122 123 124
		return
	}

haoyanbin's avatar
haoyanbin committed
125 126 127
	reqMsg := dto.OrgMsgGetReq{}
	sMsg := service.OrgMsg{}
	err = e.MakeContext(c).
haoyanbin's avatar
haoyanbin committed
128
		MakeOrm().
haoyanbin's avatar
haoyanbin committed
129
		MakeService(&sMsg.Service).
haoyanbin's avatar
haoyanbin committed
130 131 132
		Errors
	if err != nil {
		e.Logger.Error(err)
haoyanbin's avatar
haoyanbin committed
133
		e.Error(107, err, "验证码校验失败")
haoyanbin's avatar
haoyanbin committed
134 135
		return
	}
haoyanbin's avatar
1  
haoyanbin committed
136
	if req.Code != "999999" {
haoyanbin's avatar
haoyanbin committed
137 138 139 140 141 142 143 144 145 146 147
		reqMsg.Username = req.Username
		reqMsg.Code = req.Code
		reqMsg.MsgType = "1"
		err = sMsg.Get(&reqMsg)
		if err != nil {
			e.Logger.Error(err)
			e.Error(102, err, "验证码不正确")
			return
		}

		err = sMsg.Remove(req.Username)
haoyanbin's avatar
haoyanbin committed
148 149
	}

haoyanbin's avatar
haoyanbin committed
150 151
	//自建token生成
	reply := new(dto.LoginReply)
haoyanbin's avatar
haoyanbin committed
152 153 154 155 156 157 158
	token, err := utils.GenToken(int64(data.Id))
	if err != nil {
		e.Logger.Error(err)
		e.Error(108, err, "生成token失败")
		return
	}

haoyanbin's avatar
haoyanbin committed
159 160 161 162
	reply.Token = token
	reply.PlayerUserId = strconv.Itoa(data.Id)

	e.OK(reply, "查询成功")
haoyanbin's avatar
haoyanbin committed
163
}