提交 a2ae7f16 authored 作者: 张立波's avatar 张立波

淘特

上级 5d7cc674
...@@ -8,9 +8,7 @@ import ( ...@@ -8,9 +8,7 @@ import (
"github.com/gogf/gf/encoding/gjson" "github.com/gogf/gf/encoding/gjson"
"github.com/gogf/gf/errors/gerror" "github.com/gogf/gf/errors/gerror"
"github.com/gogf/gf/frame/g" "github.com/gogf/gf/frame/g"
"github.com/gogf/gf/os/gctx"
"github.com/gogf/gf/os/gtime" "github.com/gogf/gf/os/gtime"
"github.com/gogf/gf/os/gtimer"
"github.com/gogf/gf/util/gconv" "github.com/gogf/gf/util/gconv"
"net/url" "net/url"
"sort" "sort"
...@@ -32,10 +30,6 @@ const Host = "https://open.huoju6.com/openapi/param2/1/com.huoju6.open/" ...@@ -32,10 +30,6 @@ const Host = "https://open.huoju6.com/openapi/param2/1/com.huoju6.open/"
func New(req *Config) { func New(req *Config) {
server = req server = req
gtimer.Add(time.Hour, func() {
var ctx = gctx.New()
_, _ = server.accessToken(ctx)
})
return return
} }
...@@ -78,7 +72,7 @@ func sign(method string, req g.Map) (err error) { ...@@ -78,7 +72,7 @@ func sign(method string, req g.Map) (err error) {
} }
func (s *Config) Post(ctx context.Context, method string, params g.Map) (str string, err error) { func (s *Config) Post(ctx context.Context, method string, params g.Map) (str string, err error) {
params["access_token"], err = s.GetAccessToken(ctx) params["access_token"], err = AccessToken(ctx)
if err != nil { if err != nil {
return return
} }
...@@ -116,7 +110,7 @@ func Post(ctx context.Context, method string, params g.Map) (str string, err err ...@@ -116,7 +110,7 @@ func Post(ctx context.Context, method string, params g.Map) (str string, err err
} }
func (s *Config) Get(ctx context.Context, method string, params g.Map) (str string, err error) { func (s *Config) Get(ctx context.Context, method string, params g.Map) (str string, err error) {
params["access_token"], err = s.GetAccessToken(ctx) params["access_token"], err = AccessToken(ctx)
if err != nil { if err != nil {
return return
} }
...@@ -157,7 +151,7 @@ func Get(ctx context.Context, method string, params g.Map) (str string, err erro ...@@ -157,7 +151,7 @@ func Get(ctx context.Context, method string, params g.Map) (str string, err erro
} }
func (s *Config) GetAccessToken(ctx context.Context) (res string, err error) { func AccessToken(ctx context.Context) (res string, err error) {
var conn = g.Redis().Conn() var conn = g.Redis().Conn()
defer func() { defer func() {
_ = conn.Close() _ = conn.Close()
...@@ -165,17 +159,19 @@ func (s *Config) GetAccessToken(ctx context.Context) (res string, err error) { ...@@ -165,17 +159,19 @@ func (s *Config) GetAccessToken(ctx context.Context) (res string, err error) {
_, _ = conn.DoVar("SELECT", 10) _, _ = conn.DoVar("SELECT", 10)
cache, _ := conn.DoVar("HGETALL", CacheKey) cache, _ := conn.DoVar("HGETALL", CacheKey)
if cache.IsEmpty() { if cache.IsEmpty() {
err = gerror.New("获取token 失败") g.Log().Ctx(ctx).Cat(PkgName).Line(true).Info("获取token失败")
err = gerror.New("获取token失败")
return return
} }
var result *AuthTokenRes var result *AuthTokenRes
_ = gjson.New(cache).Scan(&result) _ = gjson.New(cache).Scan(&result)
if result == nil || result.AccessToken == "" { if result == nil || result.AccessToken == "" {
err = gerror.New("获取token 失败") g.Log().Ctx(ctx).Cat(PkgName).Line(true).Info("获取token失败")
err = gerror.New("获取token失败")
return return
} }
if result.AccessTokenExpireTime < gtime.TimestampMilli() { if result.AccessTokenExpireTime < gtime.TimestampMilli() {
result, err = s.accessToken(ctx) result, err = RefreshToken(ctx)
if err != nil { if err != nil {
return return
} }
...@@ -184,8 +180,8 @@ func (s *Config) GetAccessToken(ctx context.Context) (res string, err error) { ...@@ -184,8 +180,8 @@ func (s *Config) GetAccessToken(ctx context.Context) (res string, err error) {
return return
} }
//accessToken 刷新 //RefreshToken 刷新
func (s *Config) accessToken(ctx context.Context) (res *AuthTokenRes, err error) { func RefreshToken(ctx context.Context) (res *AuthTokenRes, err error) {
var conn = g.Redis().Conn() var conn = g.Redis().Conn()
defer func() { defer func() {
_ = conn.Close() _ = conn.Close()
...@@ -193,7 +189,8 @@ func (s *Config) accessToken(ctx context.Context) (res *AuthTokenRes, err error) ...@@ -193,7 +189,8 @@ func (s *Config) accessToken(ctx context.Context) (res *AuthTokenRes, err error)
_, _ = conn.DoVar("SELECT", 10) _, _ = conn.DoVar("SELECT", 10)
cache, _ := conn.DoVar("HGETALL", CacheKey) cache, _ := conn.DoVar("HGETALL", CacheKey)
if cache.IsEmpty() { if cache.IsEmpty() {
err = gerror.New("获取token 失败") g.Log().Ctx(ctx).Cat(PkgName).Line(true).Info("获取token失败")
err = gerror.New("获取token失败")
return return
} }
_ = gjson.New(cache).Scan(&res) _ = gjson.New(cache).Scan(&res)
...@@ -205,7 +202,8 @@ func (s *Config) accessToken(ctx context.Context) (res *AuthTokenRes, err error) ...@@ -205,7 +202,8 @@ func (s *Config) accessToken(ctx context.Context) (res *AuthTokenRes, err error)
return return
} }
if res.Code != "success" { if res.Code != "success" {
err = gerror.New("获取token 失败") g.Log().Ctx(ctx).Cat(PkgName).Line(true).Info("获取token失败")
err = gerror.New("获取token失败")
return return
} }
_, _ = conn.Do("HMSET", CacheKey, "accessToken", res.AccessToken, "accessTokenExpireTime", res.AccessTokenExpireTime) _, _ = conn.Do("HMSET", CacheKey, "accessToken", res.AccessToken, "accessTokenExpireTime", res.AccessTokenExpireTime)
......
...@@ -12,8 +12,14 @@ type logistics struct { ...@@ -12,8 +12,14 @@ type logistics struct {
var Logistics = logistics{} var Logistics = logistics{}
type LogisticsTraceRes struct { type LogisticsTraceRes struct {
Result struct { Success bool `json:"success"`
ErrMsg string `json:"errMsg"`
ErrCode string `json:"errCode"`
Result []struct { Result []struct {
CompanyList []struct {
BrandCode string `json:"brandCode"`
CompanyName string `json:"companyName"`
} `json:"companyList"`
DetailList []struct { DetailList []struct {
Action string `json:"action"` Action string `json:"action"`
GmtCreate string `json:"gmtCreate"` GmtCreate string `json:"gmtCreate"`
...@@ -38,10 +44,6 @@ type LogisticsTraceRes struct { ...@@ -38,10 +44,6 @@ type LogisticsTraceRes struct {
StatusDesc string `json:"statusDesc"` StatusDesc string `json:"statusDesc"`
} `json:"status"` } `json:"status"`
} `json:"result"` } `json:"result"`
Success bool `json:"success"`
ErrMsg string `json:"errMsg"`
ErrCode string `json:"errCode"`
} `json:"result"`
} }
//Trace 物流轨迹 //Trace 物流轨迹
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论