fix: send code

master
howell 4 years ago
parent 4b64c32752
commit 62cb7aba95

@ -2,9 +2,10 @@ package cache
import (
"fmt"
"github.com/go-redis/redis"
"recook/internal/dbc"
"time"
"github.com/go-redis/redis"
)
// SetUserSMSCode 缓存登录验证码
@ -65,6 +66,27 @@ func GetUserDestroySMSCode(user uint) string {
}
return v
}
func SetUpgradeSMSCode(user uint, code string) {
k := fmt.Sprintf("sms:upgrade:%v", user)
e := dbc.Rds.Set(k, code, time.Minute*10).Err()
if e != nil {
panic(e)
}
}
func GetUpgradeSMSCode(user uint) string {
k := fmt.Sprintf("sms:upgrade:%v", user)
v, err := dbc.Rds.Get(k).Result()
if err == redis.Nil {
return ""
} else if err != nil {
panic(err)
}
return v
}
func GetUserOrderSMSCode(user uint) string {
k := fmt.Sprintf("mbs:codes:%v", user)
v, err := dbc.Rds.Get(k).Result()

@ -3,7 +3,6 @@ package message
import (
"encoding/json"
"fmt"
"github.com/gin-gonic/gin"
"math/rand"
"recook/internal/cache"
"recook/internal/dbc"
@ -11,6 +10,8 @@ import (
"recook/internal/v2/lib/common"
"recook/internal/v2/model/recook/user"
"time"
"github.com/gin-gonic/gin"
)
type Message struct {
@ -26,8 +27,8 @@ func (m *Message) SendDestroyMessage(c *gin.Context) {
}
randString := fmt.Sprintf("%04v", rand.New(rand.NewSource(time.Now().UnixNano())).Int31n(10000))
request := ReturnRequest(u.Mobile, randString, loginTemplateCode)
response, err := client.ProcessCommonRequest(request)
request := ReturnRequest(u.Mobile, randString)
response, err := Client.ProcessCommonRequest(request)
if err != nil {
back.Err(c, err.Error())
return

@ -14,7 +14,7 @@ type AliResp struct {
Code string
}
var client *sdk.Client
var Client *sdk.Client
const (
regionId = "cn-hangzhou"
@ -28,13 +28,13 @@ func init() {
if err != nil {
panic(err)
}
client = c
Client = c
}
// ///////////////////////////////////////////////////////
// 私有
func ReturnRequest(mobile string, code string, templateCode string) *requests.CommonRequest {
func ReturnRequest(mobile string, code string) *requests.CommonRequest {
request := requests.NewCommonRequest()
request.Method = "POST"
request.Scheme = "https"
@ -43,7 +43,7 @@ func ReturnRequest(mobile string, code string, templateCode string) *requests.Co
request.ApiName = "SendSms"
request.QueryParams["RegionId"] = regionId
request.QueryParams["SignName"] = "左家右厨"
request.QueryParams["TemplateCode"] = templateCode
request.QueryParams["TemplateCode"] = loginTemplateCode
request.QueryParams["TemplateParam"] = fmt.Sprintf("{\"code\":\"%v\"}", code)
request.QueryParams["PhoneNumbers"] = mobile
return request

@ -1,11 +1,19 @@
package upgrade
import (
"encoding/json"
"fmt"
"math/rand"
"recook/internal/back"
"recook/internal/cache"
"recook/internal/v2/controller/app/message"
"recook/internal/v2/lib/common"
"recook/internal/v2/logic/app/upgrade"
"recook/internal/v2/model/recook/user"
"recook/tools"
"time"
"git.oa00.com/go/mysql"
"github.com/gin-gonic/gin"
)
@ -46,3 +54,38 @@ func (o Proxy) Create(c *gin.Context) {
back.Suc(c, "申请成功", "")
}
}
func (o Proxy) Send(c *gin.Context) {
id, _ := common.GetAppUserId(c)
var u user.RecookUserInfoModel
if err := mysql.Db.Table(u.TableName()).Where("id = ?", id).First(&u).Error; err != nil {
back.Err(c, err.Error())
return
}
randString := fmt.Sprintf("%04v", rand.New(rand.NewSource(time.Now().UnixNano())).Int31n(10000))
request := message.ReturnRequest(u.Mobile, randString)
response, err := message.Client.ProcessCommonRequest(request)
if err != nil {
back.Err(c, err.Error())
return
}
if response.IsSuccess() {
cache.SetUpgradeSMSCode(u.Id, randString)
var p message.AliResp
if err = json.Unmarshal(response.GetHttpContentBytes(), &p); err != nil {
back.Err(c, err.Error())
return
}
if p.Message != "OK" {
back.Err(c, "短信发送失败"+p.Message)
}
back.Suc(c, "发送成功", nil)
} else {
back.Err(c, "短信发送失败")
}
}

@ -3,6 +3,7 @@ package upgrade
import (
"errors"
"fmt"
"recook/internal/cache"
"recook/internal/define"
"recook/internal/service/baseCode"
"recook/internal/v2/model/recook/user"
@ -42,9 +43,13 @@ func (o logic) List(args ApplyList) (res []upgrade.ApplyEntry) {
}
type ApplyCreate struct {
Mobile string `json:"mobile" validate:"required"`
UserID uint `json:"-"`
Kind uint `json:"kind" validate:"required,oneof=1 2"`
Mobile string `json:"mobile" validate:"required"`
UserID uint `json:"-"`
Kind uint `json:"kind" validate:"required,oneof=1 2"`
Code string `json:"code"`
BusinessPhoto string `json:"business_photo"`
MainPhoto string `json:"main_photo"`
Address string `json:"address"`
}
func (o logic) Create(args ApplyCreate) error {
@ -75,14 +80,20 @@ func (o logic) Create(args ApplyCreate) error {
if args.Kind == 1 {
state = upgrade.Suc
}
if args.Code != cache.GetUpgradeSMSCode(u1.Id) {
return fmt.Errorf("验证码不正确")
}
if err := mysql.Db.Transaction(func(tx *gorm.DB) error {
obj := upgrade.ApplyEntry{
Mobile: args.Mobile,
ApplyUserID: args.UserID,
Kind: upgrade.Kind(args.Kind),
CreatedAt: formatime.NewSecondNow(),
State: state,
ParentID: parentID,
Mobile: args.Mobile,
ApplyUserID: args.UserID,
Kind: upgrade.Kind(args.Kind),
CreatedAt: formatime.NewSecondNow(),
State: state,
BusinessAddress: args.Address,
BusinessPhoto: args.BusinessPhoto,
MainPhoto: args.MainPhoto,
ParentID: parentID,
}
if err := tx.Create(&obj).Error; err != nil {
return err

@ -2582,7 +2582,7 @@ func init() {
func (g *goodsLogic) SendMobileMessage(phone string, uid uint) error {
randString := fmt.Sprintf("%04v", rand.New(rand.NewSource(time.Now().UnixNano())).Int31n(10000))
fmt.Println("随机验证码为:", randString)
request := message.ReturnRequest(phone, randString, loginTemplateCode)
request := message.ReturnRequest(phone, randString)
response, err := client.ProcessCommonRequest(request)
if err != nil {

@ -48,7 +48,7 @@ func (l logic) SendSms(phone string, id uint) error {
//产生4位随机数
num := fmt.Sprintf("%04v", rand.New(rand.NewSource(time.Now().UnixNano())).Int31n(10000))
fmt.Println(num)
request := message.ReturnRequest(phone, num, loginTemplateCode)
request := message.ReturnRequest(phone, num)
response, err := client.ProcessCommonRequest(request)
if err != nil {
fmt.Println(err)

@ -61,6 +61,7 @@ type ApplyEntry struct {
ApplyUserMobile string `json:"apply_user_mobile" gorm:"-"`
ParentID uint `json:"-"`
BusinessPhoto string `json:"business_photo"`
BusinessAddress string `json:"business_address"`
MainPhoto string `json:"main_photo"`
UserInfo user.RecookUserInfoModel `gorm:"foreignKey:mobile;references:mobile" json:"-"`
Nickname string `json:"nickname"`

@ -203,6 +203,7 @@ func routerApp(appRouter *gin.RouterGroup) {
{
upgradeRouter.POST("list", proxy.List)
upgradeRouter.POST("create", proxy.Create)
upgradeRouter.POST("send", proxy.Send)
}
}
}

Loading…
Cancel
Save