123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899 |
- package user
- import (
- logger "eta_mini_ht_api/common/component/log"
- "eta_mini_ht_api/common/exception"
- authUtils "eta_mini_ht_api/common/utils/auth"
- "eta_mini_ht_api/controllers"
- "eta_mini_ht_api/service/auth"
- )
- type AuthController struct {
- controllers.BaseController
- }
- // LoginReq 获取验证码请求
- type LoginReq struct {
- Code string `json:"code"`
- VerifyCode string `json:"verify_code"`
- Mobile string `json:"mobile"`
- }
- // Login 小程序登录接口
- // @Summary 小程序用户登录
- // @Description 用户通过微信小程序登录
- // @Param mobile body LoginReq true "登录请求体"
- // @Success 200 {object} controllers.BaseResponse
- // @router /login [post]
- func (a *AuthController) Login() {
- controllers.Wrap(&a.BaseController, func() (result *controllers.WrapData, err error) {
- result = a.InitWrapData("登录失败")
- loginReq := new(LoginReq)
- a.GetPostParams(loginReq)
- if !authUtils.IsValidMobile(loginReq.Mobile) {
- a.FailedResult("登录失败", result)
- err = exception.New(exception.IllegalPhoneNumber)
- return
- }
- err = auth.CheckUser(loginReq.Mobile, loginReq.VerifyCode)
- if err != nil {
- a.FailedResult("登录失败", result)
- logger.Warn("验证码校验失败:%v", err)
- return
- }
- //注册用户或者登录
- var token string
- token, err = auth.Login(auth.LoginDTO{
- VerifyCode: loginReq.VerifyCode,
- Code: loginReq.Code,
- Mobile: loginReq.Mobile,
- })
- if err != nil {
- a.FailedResult("登录失败", result)
- return
- }
- a.SuccessResult("登录成功", &LoginResp{
- Token: token,
- }, result)
- return
- })
- }
- type LoginResp struct {
- Token string
- }
- // SmsCodeReq 获取验证码请求
- type SmsCodeReq struct {
- Mobile string `json:"mobile"`
- }
- // SMSCode 小程序手机验证码接口
- // @Summary 获取手机验证码
- // @Param mobile body SmsCodeReq true "小程序手机验证码接口"
- // @Success 200 {object} controllers.BaseResponse
- // @Description 用户发送手机验证码
- // @router /sendCode [post]
- func (a *AuthController) SMSCode() {
- controllers.Wrap(&a.BaseController, func() (result *controllers.WrapData, err error) {
- result = a.InitWrapData("发送短信失败")
- mobile := new(SmsCodeReq)
- a.GetPostParams(mobile)
- phoneNum := mobile.Mobile
- if !authUtils.IsValidMobile(phoneNum) {
- return result, exception.New(exception.IllegalPhoneNumber)
- }
- //
- //发送短息
- err = auth.SendSMSCode(phoneNum)
- if err != nil {
- logger.Warn("发送短信失败:%v", err)
- return result, err
- }
- if err != nil {
- return result, err
- }
- result = &controllers.WrapData{Msg: "验证码发送成功"}
- return result, nil
- })
- }
|