From 02561cf1498f98a715c39c9deba77edc5d5c7dcd Mon Sep 17 00:00:00 2001 From: wucongxing8150 <815046773@qq.com> Date: Tue, 5 Mar 2024 16:07:42 +0800 Subject: [PATCH] =?UTF-8?q?=E6=96=B0=E5=A2=9E=E5=BE=AE=E4=BF=A1=E5=85=AC?= =?UTF-8?q?=E4=BC=97=E5=B9=B3=E5=8F=B0=E5=AF=B9=E6=8E=A5=EF=BC=8C=E5=A2=9E?= =?UTF-8?q?=E5=8A=A0=E7=BC=93=E5=AD=98=E3=80=82=E9=BB=98=E8=AE=A410?= =?UTF-8?q?=E5=A4=A9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- api/controller/v1/weChat.go | 12 +++++++++--- api/requests/v1/WeChat.go | 5 ++--- extend/weChat/Scheme/Scheme.go | 7 +++++++ 3 files changed, 18 insertions(+), 6 deletions(-) diff --git a/api/controller/v1/weChat.go b/api/controller/v1/weChat.go index dafd55d..128cde6 100644 --- a/api/controller/v1/weChat.go +++ b/api/controller/v1/weChat.go @@ -1,7 +1,7 @@ package v1 import ( - "fmt" + "context" "github.com/gin-gonic/gin" v1 "hospital-open-api/api/requests/v1" "hospital-open-api/api/responses" @@ -53,7 +53,13 @@ func (r *WeChat) GetScheme(c *gin.Context) { envVersion = "release" } - fmt.Println(req.Query) + // 获取缓存 + redisKey := "c:official_account.scheme." + req.Path + "." + req.Query + scheme, _ := global.Redis.Get(context.Background(), redisKey).Result() + if scheme != "" { + responses.OkWithData(scheme, c) + return + } // 构建请求数据 JumpWxaData := &Scheme.GetSchemeJumpWxaRequest{ @@ -66,7 +72,7 @@ func (r *WeChat) GetScheme(c *gin.Context) { JumpWxa: JumpWxaData, ExpireType: 1, ExpireTime: 0, - ExpireInterval: req.ExpireInterval, + ExpireInterval: 10, } openLink, err := GetSchemeRequest.GetScheme(1) diff --git a/api/requests/v1/WeChat.go b/api/requests/v1/WeChat.go index 1167871..b24e240 100644 --- a/api/requests/v1/WeChat.go +++ b/api/requests/v1/WeChat.go @@ -6,7 +6,6 @@ type WeChatRequest struct { // GetScheme 获取页面加密scheme码 type GetScheme struct { - Path string `json:"path" form:"path" validate:"required" label:"页面路径"` - Query string `json:"query" form:"query" validate:"required" label:"参数"` - ExpireInterval int `json:"expire_interval" form:"expire_interval" validate:"required" label:"有效天数"` + Path string `json:"path" form:"path" validate:"required" label:"页面路径"` + Query string `json:"query" form:"query" validate:"required" label:"参数"` } diff --git a/extend/weChat/Scheme/Scheme.go b/extend/weChat/Scheme/Scheme.go index 26129a1..e605ce6 100644 --- a/extend/weChat/Scheme/Scheme.go +++ b/extend/weChat/Scheme/Scheme.go @@ -1,11 +1,14 @@ package Scheme import ( + "context" "encoding/json" "errors" "fmt" "hospital-open-api/extend/weChat" + "hospital-open-api/global" "strings" + "time" ) // GetSchemeJumpWxaRequest 跳转到的目标小程序信息 @@ -74,5 +77,9 @@ func (r *GetSchemeRequest) GetScheme(userType int) (string, error) { return "", errors.New("失败") } + // 加入缓存 + redisKey := "c:official_account.scheme." + r.JumpWxa.Path + "." + r.JumpWxa.Query + global.Redis.Set(context.Background(), redisKey, GetSchemeResponse.OpenLink, 60*60*24*10*time.Second) + return GetSchemeResponse.OpenLink, nil }