提交 cb5d7f7b authored 作者: 屈传平's avatar 屈传平

ikucun

上级 dd40b0f1
...@@ -8,6 +8,7 @@ import ( ...@@ -8,6 +8,7 @@ import (
"github.com/gogf/gf/encoding/gjson" "github.com/gogf/gf/encoding/gjson"
"github.com/gogf/gf/frame/g" "github.com/gogf/gf/frame/g"
"github.com/gogf/gf/os/gtime" "github.com/gogf/gf/os/gtime"
"github.com/gogf/gf/util/gconv"
"math/rand" "math/rand"
"net/url" "net/url"
"sort" "sort"
...@@ -105,7 +106,7 @@ func beforeSignBuild(nonceStr, interfaceName string, queryParams map[string]stri ...@@ -105,7 +106,7 @@ func beforeSignBuild(nonceStr, interfaceName string, queryParams map[string]stri
return builder.String() return builder.String()
} }
func getQueryParams(interfaceName, body string) map[string]string { func getQueryParams(interfaceName, body string, queryParamsTemp map[string]interface{}) map[string]string {
// 生成 nonce 并添加到查询参数 // 生成 nonce 并添加到查询参数
nonceStr := makeNonceStr() nonceStr := makeNonceStr()
...@@ -119,6 +120,13 @@ func getQueryParams(interfaceName, body string) map[string]string { ...@@ -119,6 +120,13 @@ func getQueryParams(interfaceName, body string) map[string]string {
"accessToken": server.AccessToken, "accessToken": server.AccessToken,
// 其他查询参数... // 其他查询参数...
} }
if nil != queryParamsTemp {
for k, v := range queryParamsTemp {
queryParams[k] = gconv.String(v)
}
}
queryParams["noncestr"] = nonceStr queryParams["noncestr"] = nonceStr
// 构建签名前字符串 // 构建签名前字符串
...@@ -168,7 +176,7 @@ func mapToSortedQuery(params map[string]string) string { ...@@ -168,7 +176,7 @@ func mapToSortedQuery(params map[string]string) string {
func post(ctx context.Context, method string, req interface{}) (res string, err error) { func post(ctx context.Context, method string, req interface{}) (res string, err error) {
Start := gtime.TimestampMilli() Start := gtime.TimestampMilli()
param := gjson.New(req) param := gjson.New(req)
queryParam := getQueryParams(method, param.MustToJsonString()) queryParam := getQueryParams(method, param.MustToJsonString(), nil)
Url := server.ApiUrl + "?" + mapToSortedQuery(queryParam) Url := server.ApiUrl + "?" + mapToSortedQuery(queryParam)
Request := g.Client() Request := g.Client()
Request.SetHeader("Content-Type", "application/json") Request.SetHeader("Content-Type", "application/json")
...@@ -186,3 +194,25 @@ func post(ctx context.Context, method string, req interface{}) (res string, err ...@@ -186,3 +194,25 @@ func post(ctx context.Context, method string, req interface{}) (res string, err
res = resp.ReadAllString() res = resp.ReadAllString()
return return
} }
func get(ctx context.Context, method string, req interface{}) (res string, err error) {
Start := gtime.TimestampMilli()
param := gjson.New(req)
queryParam := getQueryParams(method, "", gconv.Map(req))
Url := server.ApiUrl + "?" + mapToSortedQuery(queryParam)
Request := g.Client()
Request.SetHeader("Content-Type", "application/json")
resp, err := Request.Timeout(time.Second*5).Get(Url, param.MustToJsonString())
defer func() {
_ = resp.Close()
ctx = context.WithValue(ctx, "Method", "GET")
ctx = context.WithValue(ctx, "URI", Url)
if err != nil {
g.Log().Ctx(ctx).Cat(pkgName).Cat("error").Infof("参数【%v】错误【%v】响应时间【%v ms】", param.MustToJsonString(), err.Error(), gtime.TimestampMilli()-Start)
} else {
g.Log().Ctx(ctx).Cat(pkgName).Infof("参数【%v】响应【%v】响应时间【%v ms】", param.MustToJsonString(), res, gtime.TimestampMilli()-Start)
}
}()
res = resp.ReadAllString()
return
}
...@@ -24,9 +24,9 @@ type AddressProvinceRes struct { ...@@ -24,9 +24,9 @@ type AddressProvinceRes struct {
} `json:"data"` } `json:"data"`
} }
func (s *msg) Province(ctx context.Context) (res *AddressProvinceRes, err error) { func (s *address) Province(ctx context.Context) (res *AddressProvinceRes, err error) {
method := "aikucun.base.address.province.list" method := "aikucun.base.address.province.list"
result, err := post(ctx, method, g.Map{}) result, err := get(ctx, method, g.Map{})
_ = gjson.New(result).Scan(&res) _ = gjson.New(result).Scan(&res)
return return
} }
...@@ -48,9 +48,9 @@ type AddressCityRes struct { ...@@ -48,9 +48,9 @@ type AddressCityRes struct {
} `json:"data"` } `json:"data"`
} }
func (s *msg) City(ctx context.Context, req *AddressCityReq) (res *AddressCityRes, err error) { func (s *address) City(ctx context.Context, req *AddressCityReq) (res *AddressCityRes, err error) {
method := "aikucun.base.address.city.list" method := "aikucun.base.address.city.list"
result, err := post(ctx, method, req) result, err := get(ctx, method, req)
_ = gjson.New(result).Scan(&res) _ = gjson.New(result).Scan(&res)
return return
} }
...@@ -72,9 +72,9 @@ type AddressAreaRes struct { ...@@ -72,9 +72,9 @@ type AddressAreaRes struct {
} `json:"data"` } `json:"data"`
} }
func (s *msg) Area(ctx context.Context, req *AddressAreaReq) (res *AddressAreaRes, err error) { func (s *address) Area(ctx context.Context, req *AddressAreaReq) (res *AddressAreaRes, err error) {
method := "aikucun.base.address.district.list" method := "aikucun.base.address.district.list"
result, err := post(ctx, method, req) result, err := get(ctx, method, req)
_ = gjson.New(result).Scan(&res) _ = gjson.New(result).Scan(&res)
return return
} }
...@@ -105,9 +105,9 @@ type AddressStreetRes struct { ...@@ -105,9 +105,9 @@ type AddressStreetRes struct {
} `json:"data"` } `json:"data"`
} }
func (s *msg) Street(ctx context.Context, req *AddressStreetReq) (res *AddressStreetRes, err error) { func (s *address) Street(ctx context.Context, req *AddressStreetReq) (res *AddressStreetRes, err error) {
method := "aikucun.base.address.villages.list" method := "aikucun.base.address.villages.list"
result, err := post(ctx, method, req) result, err := get(ctx, method, req)
_ = gjson.New(result).Scan(&res) _ = gjson.New(result).Scan(&res)
return return
} }
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论