package processor import ( "github.com/gin-gonic/gin" "net/http" "strconv" "wss-pool/internal" "wss-pool/internal/data/mysqlbusiness" "wss-pool/logging/applogger" "wss-pool/pkg/model" "wss-pool/pkg/msg" ) /* MsgSend 1、Users can only submit once within 1 minute 2、The verification code will not expire within five minutes */ func MsgSend(c *gin.Context) { var tmp model.LoginPost if err := c.BindJSON(&tmp); err != nil { c.JSON(http.StatusOK, internal.GinResult(http.StatusBadRequest, internal.ResultStr, internal.ParameterError)) return } phoneNumber := tmp.PhoneNumber if len(phoneNumber) <= 0 { c.JSON(http.StatusOK, internal.GinResult(http.StatusBadRequest, internal.ResultStr, internal.PhoneError)) return } msgCode, err := msg.RunSendSms(phoneNumber) if err != nil { applogger.Error("msg RunSendSms info err: %v", err) c.JSON(http.StatusOK, internal.GinResult(http.StatusBadRequest, err.Error(), internal.QueryError)) return } c.JSON(http.StatusOK, internal.GinResult(http.StatusOK, msgCode, internal.QuerySuccess)) } // MobileLogin 用户手机号登录 func MobileLogin(c *gin.Context) { var tmp model.LoginPost if err := c.BindJSON(&tmp); err != nil { c.JSON(http.StatusOK, internal.GinResult(http.StatusBadRequest, internal.ResultStr, internal.ParameterError)) return } phoneNumber := tmp.PhoneNumber password := tmp.Password if len(phoneNumber) <= 0 { c.JSON(http.StatusOK, internal.GinResult(http.StatusBadRequest, internal.ResultStr, internal.PhoneError)) return } if len(password) <= 0 { c.JSON(http.StatusOK, internal.GinResult(http.StatusBadRequest, internal.ResultStr, internal.PassWordError)) return } check, err := mysqlbusiness.GetBoUsersByPhoneAndPassWord(phoneNumber, password) if err != nil { c.JSON(http.StatusOK, internal.GinResult(http.StatusBadRequest, internal.ResultStr, check)) return } c.JSON(http.StatusOK, internal.GinResult(http.StatusOK, check, internal.TokenError)) } // ForgetPassWord 手机验证码修改密码 func PhoneNumberByPassWord(c *gin.Context) { var tmp model.LoginPost if err := c.BindJSON(&tmp); err != nil { c.JSON(http.StatusOK, internal.GinResult(http.StatusBadRequest, internal.ResultStr, internal.ParameterError)) return } check := tmp.Check phoneNumber := tmp.PhoneNumber //code := tmp.Code password := tmp.Password if len(check) == 0 { c.JSON(http.StatusOK, internal.GinResult(http.StatusBadRequest, internal.ResultStr, internal.ParameterError)) return } if len(phoneNumber) <= 0 { c.JSON(http.StatusOK, internal.GinResult(http.StatusBadRequest, internal.ResultStr, internal.PhoneError)) return } if len(password) <= 0 { c.JSON(http.StatusOK, internal.GinResult(http.StatusBadRequest, internal.ResultStr, internal.PassWordError)) return } //if len(code) <= 0 { // c.JSON(http.StatusOK, internal.GinResult(http.StatusBadRequest, internal.ResultStr, internal.CodeError)) // return //} //codeData, err := redis.Get_Cache_Data(phoneNumber) //if err != nil { // c.JSON(http.StatusOK, internal.GinResult(http.StatusBadRequest, internal.ResultStr, internal.CodeError)) // return //} //if codeData != code { // c.JSON(http.StatusOK, internal.GinResult(http.StatusBadRequest, internal.ResultStr, internal.CodeError)) // return //} dataMsg, err := mysqlbusiness.UpdateBoUsersById(phoneNumber, password) if err != nil { c.JSON(http.StatusOK, internal.GinResult(http.StatusBadRequest, internal.ResultStr, dataMsg)) return } c.JSON(http.StatusOK, internal.GinResult(http.StatusOK, internal.ResultStr, dataMsg)) } // Registration 手机号注册|验证码|密码|邀请码 func Registration(c *gin.Context) { var tmp model.LoginPost if err := c.BindJSON(&tmp); err != nil { c.JSON(http.StatusOK, internal.GinResult(http.StatusBadRequest, internal.ResultStr, internal.ParameterError)) return } phoneNumber := tmp.PhoneNumber //code := tmp.Code password := tmp.Password invitationCode := tmp.InvitationCode if len(phoneNumber) <= 0 { c.JSON(http.StatusOK, internal.GinResult(http.StatusBadRequest, internal.ResultStr, internal.PhoneError)) return } if len(password) <= 0 { c.JSON(http.StatusOK, internal.GinResult(http.StatusBadRequest, internal.ResultStr, internal.PassWordError)) return } //if len(code) <= 0 { // c.JSON(http.StatusOK, internal.GinResult(http.StatusBadRequest, internal.ResultStr, internal.CodeError)) // return //} //codeData, err := redis.Get_Cache_Data(phoneNumber) //if err != nil { // c.JSON(http.StatusOK, internal.GinResult(http.StatusBadRequest, internal.ResultStr,internal.CodeError)) // return //} //if codeData != code { // c.JSON(http.StatusOK, internal.GinResult(http.StatusBadRequest, internal.ResultStr, internal.CodeError)) // return //} // Check if the user exists user, err := mysqlbusiness.GetBoUsersByPhoneNumber(phoneNumber) if err != nil || len(user) > 0 { c.JSON(http.StatusOK, internal.GinResult(http.StatusBadRequest, internal.ResultStr, user)) return } dataMsg, err := mysqlbusiness.SaveBoUsers(phoneNumber, password, invitationCode) if err != nil { c.JSON(http.StatusOK, internal.GinResult(http.StatusBadRequest, internal.ResultStr, dataMsg)) return } //TODO: 注册创建用户账号、创建数字币账号、写入设备、注册写用户信息缓存、写入缓存 c.JSON(http.StatusOK, internal.GinResult(http.StatusOK, internal.ResultStr, dataMsg)) } // ForgetPassWore 忘记密码-通过手机重新设置密码 func ForgetPassWore(c *gin.Context) { var tmp model.LoginPost if err := c.BindJSON(&tmp); err != nil { c.JSON(http.StatusOK, internal.GinResult(http.StatusBadRequest, internal.ResultStr, internal.ParameterError)) return } phoneNumber := tmp.PhoneNumber //code := tmp.Code password := tmp.Password if len(phoneNumber) <= 0 { c.JSON(http.StatusOK, internal.GinResult(http.StatusBadRequest, internal.ResultStr, internal.PhoneError)) return } if len(password) <= 0 { c.JSON(http.StatusOK, internal.GinResult(http.StatusBadRequest, internal.ResultStr, internal.PassWordError)) return } //if len(code) <= 0 { // c.JSON(http.StatusOK, internal.GinResult(http.StatusBadRequest, internal.ResultStr, internal.CodeError)) // return //} //codeData, err := redis.Get_Cache_Data(phoneNumber) //if err != nil { // c.JSON(http.StatusOK, internal.GinResult(http.StatusBadRequest, internal.ResultStr, "internal.CodeError)) // return //} //if codeData != code { // c.JSON(http.StatusOK, internal.GinResult(http.StatusBadRequest, internal.ResultStr, internal.CodeError)) // return //} dataMsg, err := mysqlbusiness.UpdateBoUsersPassWordByPhoneNumber(phoneNumber, password) if err != nil { c.JSON(http.StatusOK, internal.GinResult(http.StatusBadRequest, internal.ResultStr, dataMsg)) return } c.JSON(http.StatusOK, internal.GinResult(http.StatusOK, internal.ResultStr, dataMsg)) } // SetPhoneNumber 设置手机号 func SetPhoneNumber(c *gin.Context) { var tmp model.LoginPost if err := c.BindJSON(&tmp); err != nil { c.JSON(http.StatusOK, internal.GinResult(http.StatusBadRequest, internal.ResultStr, internal.ParameterError)) return } //code :=tmp.Code phoneNumber := tmp.PhoneNumber id, err := strconv.Atoi(tmp.Id) if err != nil { c.JSON(http.StatusOK, internal.GinResult(http.StatusBadRequest, internal.ResultStr, internal.ParameterError)) return } if len(phoneNumber) <= 0 { c.JSON(http.StatusOK, internal.GinResult(http.StatusBadRequest, internal.ResultStr, internal.PhoneError)) return } if id <= 0 { c.JSON(http.StatusOK, internal.GinResult(http.StatusBadRequest, internal.ResultStr, internal.UserIdError)) return } //if len(code) <= 0 { // c.JSON(http.StatusOK, internal.GinResult(http.StatusBadRequest, internal.ResultStr, internal.CodeError)) // return //} //codeData, err := redis.Get_Cache_Data(phoneNumber) //if err != nil { // c.JSON(http.StatusOK, internal.GinResult(http.StatusBadRequest, internal.ResultStr, internal.CodeError)) // return //} //if codeData != code { // c.JSON(http.StatusOK, internal.GinResult(http.StatusBadRequest, internal.ResultStr, internal.CodeError)) // return //} dateMsg, err := mysqlbusiness.UpdateBoUsersPhoneNumberById(phoneNumber, int64(id)) if err != nil { c.JSON(http.StatusOK, internal.GinResult(http.StatusBadRequest, internal.ResultStr, dateMsg)) return } c.JSON(http.StatusOK, internal.GinResult(http.StatusOK, internal.ResultStr, dateMsg)) }