Skip to content
项目
群组
代码片段
帮助
正在加载...
帮助
为 GitLab 提交贡献
登录
切换导航
L
library
项目
项目
详情
活动
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
分枝图
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
计划
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
分枝图
统计图
创建新议题
作业
提交
议题看板
打开侧边栏
stbz
library
Commits
81fb5865
提交
81fb5865
authored
8月 06, 2024
作者:
张立波
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
盛创汇联
上级
43ef66e4
显示空白字符变更
内嵌
并排
正在显示
10 个修改的文件
包含
91 行增加
和
84 行删除
+91
-84
schl.go
upstream/schl/schl.go
+23
-27
schl_brand.go
upstream/schl/schl_brand.go
+4
-1
schl_category.go
upstream/schl/schl_category.go
+3
-0
schl_goods_event.go
upstream/schl/schl_goods_event.go
+3
-0
schl_goods_list.go
upstream/schl/schl_goods_list.go
+13
-12
schl_logistics.go
upstream/schl/schl_logistics.go
+2
-2
schl_order_before.go
upstream/schl/schl_order_before.go
+2
-2
schl_order_create.go
upstream/schl/schl_order_create.go
+2
-2
schl_order_event.go
upstream/schl/schl_order_event.go
+1
-2
schl_order_list.go
upstream/schl/schl_order_list.go
+38
-36
没有找到文件。
upstream/schl/schl.go
浏览文件 @
81fb5865
...
...
@@ -12,13 +12,16 @@ import (
"github.com/gogf/gf/text/gregex"
"github.com/gogf/gf/util/gconv"
"github.com/gogf/gf/util/grand"
"
regexp
"
"
net/url
"
"sort"
"strings"
"time"
)
var
server
*
Config
const
Host
=
"https://schl-api.szbaoly.com"
type
Config
struct
{
ApiUrl
string
AppKey
string
...
...
@@ -32,7 +35,7 @@ type CommonRes struct {
}
type
PubilcParams
struct
{
AppID
string
`json:"app
I
d"`
AppID
string
`json:"app
i
d"`
Nonce
string
`json:"nonce"`
Timestamp
string
`json:"timestamp"`
Signature
string
`json:"signature"`
...
...
@@ -45,18 +48,17 @@ func New(config *Config) {
return
}
func
(
c
*
Config
)
Post
(
ctx
context
.
Context
,
api
string
,
bodyMap
g
.
Map
)
(
result
string
,
err
error
)
{
func
(
c
*
Config
)
Post
(
ctx
context
.
Context
,
URL
string
,
bodyMap
g
.
Map
)
(
result
string
,
err
error
)
{
Start
:=
gtime
.
TimestampMilli
()
pubilcParams
:=
new
(
PubilcParams
)
pubilcParams
.
AppID
=
c
.
AppKey
pubilcParams
.
Timestamp
=
gtime
.
TimestampStr
()
pubilcParams
.
Nonce
=
grand
.
S
(
16
,
false
)
secret
:=
c
.
AppSecret
sign
:=
c
.
Sign
(
ctx
,
*
pubilcParams
,
bodyMap
,
secret
)
c
.
Sign
(
pubilcParams
)
defer
func
()
{
ctx
=
context
.
WithValue
(
ctx
,
"URI"
,
api
)
ctx
=
context
.
WithValue
(
ctx
,
"URI"
,
URL
)
if
err
!=
nil
{
g
.
Log
()
.
Ctx
(
ctx
)
.
Cat
(
pkgName
)
.
Cat
(
"error"
)
.
Infof
(
"参数【%v】错误【%v】响应时间:【%v ms】"
,
gjson
.
New
(
bodyMap
)
.
MustToJsonString
(),
err
.
Error
(),
gtime
.
TimestampMilli
()
-
Start
)
...
...
@@ -65,15 +67,16 @@ func (c *Config) Post(ctx context.Context, api string, bodyMap g.Map) (result st
Infof
(
"参数【%v】响应【%v】响应时间:【%v ms】"
,
gjson
.
New
(
bodyMap
)
.
MustToJsonString
(),
result
,
gtime
.
TimestampMilli
()
-
Start
)
}
}()
pubilcParams
.
Signature
=
sign
pubilcParamsMap
:=
gconv
.
Map
(
pubilcParams
)
for
k
,
v
:=
range
pubilcParamsMap
{
bodyMap
[
k
]
=
v
}
response
,
err
:=
g
.
Client
()
.
Ctx
(
ctx
)
.
Post
(
c
.
ApiUrl
+
api
,
bodyMap
)
var
value
=
url
.
Values
{}
value
.
Add
(
"appid"
,
pubilcParams
.
AppID
)
value
.
Add
(
"nonce"
,
pubilcParams
.
Nonce
)
value
.
Add
(
"timestamp"
,
pubilcParams
.
Timestamp
)
value
.
Add
(
"signature"
,
pubilcParams
.
Signature
)
response
,
err
:=
g
.
Client
()
.
Timeout
(
time
.
Second
*
3
)
.
ContentJson
()
.
Post
(
Host
+
URL
+
"?"
+
value
.
Encode
(),
bodyMap
)
defer
func
()
{
_
=
response
.
Close
()
}()
...
...
@@ -84,21 +87,14 @@ func (c *Config) Post(ctx context.Context, api string, bodyMap g.Map) (result st
return
}
func
(
c
*
Config
)
Sign
(
ctx
context
.
Context
,
pubilcParams
PubilcParams
,
params
g
.
Map
,
secret
string
)
(
sign
string
)
{
func
(
c
*
Config
)
Sign
(
pubilcParams
*
PubilcParams
)
{
allMaps
:=
make
(
map
[
string
]
string
)
var
arr
=
garray
.
New
()
.
Append
(
"app
I
d"
,
"timestamp"
,
"nonce"
)
var
arr
=
garray
.
New
()
.
Append
(
"app
i
d"
,
"timestamp"
,
"nonce"
)
for
k
,
v
:=
range
gconv
.
MapStrStr
(
pubilcParams
)
{
if
arr
.
Contains
(
k
)
{
allMaps
[
k
]
=
v
}
}
allMaps
[
"secret"
]
=
secret
for
k
,
v
:=
range
params
{
re3
,
_
:=
regexp
.
Compile
(
`\s`
)
allMaps
[
k
]
=
re3
.
ReplaceAllString
(
gconv
.
String
(
v
),
""
)
}
keys
:=
make
([]
string
,
0
)
for
k
:=
range
allMaps
{
...
...
@@ -114,11 +110,11 @@ func (c *Config) Sign(ctx context.Context, pubilcParams PubilcParams, params g.M
paramsString
+=
v
+
"="
+
allMaps
[
v
]
}
paramsString
+=
"&key="
+
secret
paramsString
+=
"&key="
+
se
rver
.
AppSe
cret
hmacSha256String
:=
hmacSha256
(
paramsString
,
secret
)
hmacSha256String
:=
hmacSha256
(
paramsString
,
se
rver
.
AppSe
cret
)
sign
=
strings
.
ToUpper
(
hmacSha256String
)
pubilcParams
.
Signature
=
strings
.
ToUpper
(
hmacSha256String
)
return
}
...
...
upstream/schl/schl_brand.go
浏览文件 @
81fb5865
...
...
@@ -22,7 +22,10 @@ type BrandListRes struct {
// List 获取商品品牌
func
(
*
brandLogic
)
List
(
ctx
context
.
Context
)
(
res
*
BrandListRes
,
err
error
)
{
result
,
err
:=
server
.
Post
(
ctx
,
"/open/xdxt/api/v2/goods/listGoodsCategory"
,
g
.
Map
{})
result
,
err
:=
server
.
Post
(
ctx
,
"/open/xdxt/api/v2/goods/listGoodsBrand"
,
g
.
Map
{})
if
err
!=
nil
{
return
}
err
=
gjson
.
New
(
result
)
.
Scan
(
&
res
)
return
}
upstream/schl/schl_category.go
浏览文件 @
81fb5865
...
...
@@ -24,6 +24,9 @@ type CategoryListRes struct {
// List 获取商品分类
func
(
*
categoryLogic
)
List
(
ctx
context
.
Context
)
(
res
*
CategoryListRes
,
err
error
)
{
result
,
err
:=
server
.
Post
(
ctx
,
"/open/xdxt/api/v2/goods/listGoodsCategory"
,
g
.
Map
{})
if
err
!=
nil
{
return
}
err
=
gjson
.
New
(
result
)
.
Scan
(
&
res
)
return
}
upstream/schl/schl_goods_event.go
浏览文件 @
81fb5865
...
...
@@ -23,6 +23,9 @@ type GoodsEventRes struct {
func
(
*
goodsLogic
)
Event
(
ctx
context
.
Context
)
(
res
*
GoodsEventRes
,
err
error
)
{
result
,
err
:=
server
.
Post
(
ctx
,
"/open/xdxt/api/v2/goods/listGoodsChangeEvent"
,
g
.
Map
{})
if
err
!=
nil
{
return
}
err
=
gjson
.
New
(
result
)
.
Scan
(
&
res
)
return
...
...
upstream/schl/schl_goods_list.go
浏览文件 @
81fb5865
...
...
@@ -9,14 +9,16 @@ import (
type
GoodsListReq
struct
{
Current
int
`json:"current,omitempty"`
Size
int
`json:"size,omitempty"`
Query
struct
{
Query
GoodsListQuery
`json:"query"`
}
type
GoodsListQuery
struct
{
QueryType
int
`json:"queryType"`
//1:全量商品查询 2:选品库商品查询
GoodsIds
[]
int
`json:"goodsIds,omitempty"`
//商品id数组,长度最大为100
GoodsCode
string
`json:"goodsCode,omitempty"`
//商品规格编码
CategoryId1
int
`json:"categoryId,omitempty"`
//商品分类id
CategoryId2
int
`json:"twoCategoryId,omitempty"`
//二级分类id
CategoryId3
int
`json:"treeCategoryId,omitempty"`
//二级分类id
}
`json:"query"`
}
type
GoodsListRes
struct
{
...
...
@@ -70,10 +72,9 @@ type GoodsListRes struct {
func
(
*
goodsLogic
)
List
(
ctx
context
.
Context
,
req
GoodsListReq
)
(
res
*
GoodsListRes
,
err
error
)
{
result
,
err
:=
server
.
Post
(
ctx
,
"/open/xdxt/api/v2/goods/listGoods"
,
gconv
.
Map
(
req
))
err
=
gjson
.
New
(
result
)
.
Scan
(
&
res
)
if
err
!=
nil
{
return
}
err
=
gjson
.
New
(
result
)
.
Scan
(
&
res
)
return
}
upstream/schl/schl_logistics.go
浏览文件 @
81fb5865
...
...
@@ -37,10 +37,10 @@ type LogisticsTraceRes struct {
func
(
s
*
logisticsLogic
)
Trace
(
ctx
context
.
Context
,
req
LogisticsTraceReq
)
(
res
*
LogisticsTraceRes
,
err
error
)
{
result
,
err
:=
server
.
Post
(
ctx
,
"/open/xdxt/api/v2/order/queryExpTrack"
,
gconv
.
Map
(
req
))
err
=
gjson
.
New
(
result
)
.
Scan
(
&
res
)
if
err
!=
nil
{
return
}
err
=
gjson
.
New
(
result
)
.
Scan
(
&
res
)
return
}
upstream/schl/schl_order_before.go
浏览文件 @
81fb5865
...
...
@@ -35,10 +35,10 @@ type OrderBeforeRes struct {
func
(
s
*
orderLogic
)
Before
(
ctx
context
.
Context
,
req
OrderBeforeReq
)
(
res
*
OrderBeforeRes
,
err
error
)
{
result
,
err
:=
server
.
Post
(
ctx
,
"/open/xdxt/api/v2/order/orderFreightPreview"
,
gconv
.
Map
(
req
))
err
=
gjson
.
New
(
result
)
.
Scan
(
&
res
)
if
err
!=
nil
{
return
}
err
=
gjson
.
New
(
result
)
.
Scan
(
&
res
)
return
}
upstream/schl/schl_order_create.go
浏览文件 @
81fb5865
...
...
@@ -55,10 +55,10 @@ type OrderCreateRes struct {
func
(
s
*
orderLogic
)
Create
(
ctx
context
.
Context
,
req
OrderCreateReq
)
(
res
*
OrderCreateRes
,
err
error
)
{
result
,
err
:=
server
.
Post
(
ctx
,
"/open/xdxt/api/v2/order/createOrder"
,
gconv
.
Map
(
req
))
err
=
gjson
.
New
(
result
)
.
Scan
(
&
res
)
if
err
!=
nil
{
return
}
err
=
gjson
.
New
(
result
)
.
Scan
(
&
res
)
return
}
upstream/schl/schl_order_event.go
浏览文件 @
81fb5865
...
...
@@ -30,10 +30,9 @@ type OrderEventRes struct {
func
(
s
*
orderLogic
)
Event
(
ctx
context
.
Context
)
(
res
*
OrderEventRes
,
err
error
)
{
result
,
err
:=
server
.
Post
(
ctx
,
"/open/xdxt/api/v2/order/listOrderChangeEvent"
,
g
.
Map
{})
err
=
gjson
.
New
(
result
)
.
Scan
(
&
res
)
if
err
!=
nil
{
return
}
err
=
gjson
.
New
(
result
)
.
Scan
(
&
res
)
return
}
upstream/schl/schl_order_list.go
浏览文件 @
81fb5865
...
...
@@ -7,66 +7,68 @@ import (
)
type
OrderListReq
struct
{
UnionNos
[]
int
`json:"unionNos,omitempty"`
PlatformOrderNos
[]
int
`json:"platformOrderNos,omitempty"`
UnionNos
[]
string
`json:"unionNos,omitempty"`
//平台订单号数组,最大长度为100
PlatformOrderNos
[]
string
`json:"platformOrderNos,omitempty"`
//商户平台订单号数组,最大长度为100
}
type
OrderListRes
struct
{
CommonRes
Result
[]
struct
{
UnionNo
string
`json:"unionNo"`
PlatformOrderNo
string
`json:"platformOrderNo"`
TotalNum
int
`json:"totalNum"`
TotalAmount
int
`json:"totalAmount"`
TotalFreightAmount
float64
`json:"totalFreightAmount"`
PayAmount
float64
`json:"payAmount"`
PayNo
string
`json:"payNo"`
CustName
string
`json:"custName"`
CustMobile
string
`json:"custMobile"`
Province
string
`json:"province"`
City
string
`json:"city"`
District
string
`json:"district"`
AddressDetail
string
`json:"addressDetail"`
Remark
string
`json:"remark"`
CreateTime
string
`json:"createTime"`
PayTime
string
`json:"payTime"`
UnionNo
string
`json:"unionNo"`
//平台订单号
PlatformOrderNo
string
`json:"platformOrderNo"`
//商户平台订单号
TotalAmount
float64
`json:"totalAmount"`
//订单商品总金额
TotalFreightAmount
float64
`json:"totalFreightAmount"`
//订单总运费 如开票则含13%税金
TotalNum
int
`json:"totalNum"`
//订单商品总数
Province
string
`json:"province"`
//收件人省份
City
string
`json:"city"`
//收件人城市
District
string
`json:"district"`
//收件人地区
AddressDetail
string
`json:"addressDetail"`
//收件人详细地址
CreateTime
string
`json:"createTime"`
//创建时间
PayTime
string
`json:"payTime"`
//支付时间
PayNo
string
`json:"payNo"`
//支付流水号
CustMobile
string
`json:"custMobile"`
//收件人名称
CustName
string
`json:"custName"`
//收件人名称
OrderList
[]
struct
{
SuborderId
int
`json:"suborderId"`
TotalGoodsAmount
int
`json:"totalGoodsAmount"`
FreightAmount
float64
`json:"freightAmount"`
TotalAmount
float64
`json:"totalAmount"`
State
int
`json:"state"`
OrderDetailList
[]
struct
{
OrderDetailId
int
`json:"orderDetailId"`
SpecCode
string
`json:"specCode"`
SpecName
string
`json:"specName"`
SpecInfo
string
`json:"specInfo"`
Num
int
`json:"num"`
UnitPrice
int
`json:"unitPrice"`
TotalAmount
int
`json:"totalAmount"`
}
`json:"orderDetailList"`
FreightAmount
float64
`json:"freightAmount"`
//子单运费
FreightPayer
int
`json:"freightPayer"`
InvoiceType
int
`json:"invoiceType"`
OrderDeliveredList
[]
struct
{
ExpCode
string
`json:"expCode"`
ExpName
string
`json:"expName"`
ExpNo
string
`json:"expNo"`
PackageList
[]
struct
{
OrderDetailId
int
`json:"orderDetailId"`
DeliveredNum
int
`json:"deliveredNum"`
DeliveredTime
string
`json:"deliveredTime"`
OrderDetailId
int
`json:"orderDetailId"`
}
`json:"packageList"`
}
`json:"orderDeliveredList"`
OrderDetailList
[]
struct
{
Num
int
`json:"num"`
OrderDetailId
int
`json:"orderDetailId"`
SpecCode
string
`json:"specCode"`
SpecInfo
string
`json:"specInfo"`
SpecName
string
`json:"specName"`
TaxAmount
float64
`json:"taxAmount"`
TotalAmount
float64
`json:"totalAmount"`
TotalTaxAmount
float64
`json:"totalTaxAmount"`
UnitPrice
float64
`json:"unitPrice"`
}
`json:"orderDetailList"`
State
int
`json:"state"`
//订单状态 -2:已退款 1:已支付 2:已发货 3:已完成
SuborderId
int
`json:"suborderId"`
//子订单id
TotalAmount
float64
`json:"totalAmount"`
//子单总金额
TotalGoodsAmount
float64
`json:"totalGoodsAmount"`
//子单商品总金额
TotalTaxAmount
float64
`json:"totalTaxAmount"`
}
`json:"orderList"`
PayAmount
float64
`json:"payAmount"`
}
`json:"result"`
TraceId
string
`json:"traceId"`
}
func
(
s
*
orderLogic
)
List
(
ctx
context
.
Context
,
req
OrderListReq
)
(
res
*
OrderListRes
,
err
error
)
{
result
,
err
:=
server
.
Post
(
ctx
,
"/open/xdxt/api/v2/order/listOrderInfo"
,
gconv
.
Map
(
req
))
err
=
gjson
.
New
(
result
)
.
Scan
(
&
res
)
if
err
!=
nil
{
return
}
err
=
gjson
.
New
(
result
)
.
Scan
(
&
res
)
return
}
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论