168 lines
5.4 KiB
Go
168 lines
5.4 KiB
Go
package gome_live_show
|
||
|
||
import (
|
||
"encoding/json"
|
||
"errors"
|
||
"git.rosy.net.cn/baseapi/utils"
|
||
"net/http"
|
||
)
|
||
|
||
// 根据创建时间查询订单的列表信息
|
||
// 为了防止访问及返回的压力过大,可支持的时间区间查询范围,
|
||
// 不允许超过 30 分钟,每页显示 10 条;正常频率查询:增量查询,建议1~3 分钟查询一次,
|
||
// 查询开始时间为上次查询结束时间,查询结束时间为当前 1~3 分钟之前;补充频率查询:为了防止数据遗漏,
|
||
// 建议10分钟查询一次。例如当前时间为 10:50,查询区间为10:10~10:30,具体细节有调用方把握,减少数据遗漏的可能性
|
||
func (a *API) QueryOrderListByTime(req *QueryOrderListForTimeReq) (*QueryOrderListForTimeRes, error) {
|
||
byteReq, err := json.Marshal(req)
|
||
if err != nil {
|
||
return nil, err
|
||
}
|
||
|
||
gomeResult, err := a.AccessAPI(gomeUrl, QueryOrderList, http.MethodPost, utils.Struct2FlatMap(a.MakeRequestParam(byteReq)))
|
||
if err != nil {
|
||
return nil, err
|
||
}
|
||
|
||
result := &QueryOrderListForTimeRes{}
|
||
if err := utils.Map2StructByJson(gomeResult, result, false); err != nil {
|
||
return nil, err
|
||
}
|
||
if result.Code != 200 {
|
||
return nil, errors.New(result.Message)
|
||
}
|
||
return result, nil
|
||
}
|
||
|
||
// 查询订单详情接口
|
||
// 此接口主要用于订单下单后获取订单详细信息,包括订单基础信息、商品信息、配送信息、物流信息等
|
||
func (a *API) QueryOrderDetail(orderNo string) (*QueryOrderDetailRes, error) {
|
||
byteReq, err := json.Marshal(map[string]string{"orderNo": orderNo})
|
||
if err != nil {
|
||
return nil, err
|
||
}
|
||
|
||
gomeResult, err := a.AccessAPI(gomeUrl, QueryOrderDetail, http.MethodPost, utils.Struct2FlatMap(a.MakeRequestParam(byteReq)))
|
||
if err != nil {
|
||
return nil, err
|
||
}
|
||
|
||
result := &QueryOrderDetailRes{}
|
||
if err := utils.Map2StructByJson(gomeResult, result, false); err != nil {
|
||
return nil, err
|
||
}
|
||
if result.Code != 200 {
|
||
return nil, errors.New(result.Message)
|
||
}
|
||
return result, nil
|
||
}
|
||
|
||
// 商家取消订单 ,订单处于待备货或待发货的情况下,商家可主动操作取消订单,取消成功后订单变成支付后取消状态
|
||
func (a *API) CancelOrder(orderNo string) (*SystemParameterRes, error) {
|
||
byteReq, err := json.Marshal(map[string]string{"orderNo": orderNo})
|
||
if err != nil {
|
||
return nil, err
|
||
}
|
||
|
||
gomeResult, err := a.AccessAPI(gomeUrl, CancelOrder, http.MethodPost, utils.Struct2FlatMap(a.MakeRequestParam(byteReq)))
|
||
if err != nil {
|
||
return nil, err
|
||
}
|
||
|
||
result := &SystemParameterRes{}
|
||
if err := utils.Map2StructByJson(gomeResult, result, false); err != nil {
|
||
return nil, err
|
||
}
|
||
if result.Code != 200 {
|
||
return nil, errors.New(result.Message)
|
||
}
|
||
return result, nil
|
||
}
|
||
|
||
// 接单
|
||
func (a *API) ConfirmOrder(orderNo string) (*SystemParameterRes, error) {
|
||
byteReq, err := json.Marshal(map[string]string{"orderNo": orderNo})
|
||
if err != nil {
|
||
return nil, err
|
||
}
|
||
|
||
gomeResult, err := a.AccessAPI(gomeUrl, ConfirmOrder, http.MethodPost, utils.Struct2FlatMap(a.MakeRequestParam(byteReq)))
|
||
if err != nil {
|
||
return nil, err
|
||
}
|
||
|
||
result := &SystemParameterRes{}
|
||
if err := utils.Map2StructByJson(gomeResult, result, false); err != nil {
|
||
return nil, err
|
||
}
|
||
if result.Code != 200 {
|
||
return nil, errors.New(result.Message)
|
||
}
|
||
return result, nil
|
||
}
|
||
|
||
// 发货接口 此接口主要用于商户基于订单发货场景,第三方平台调用成功后,订单状态将变为待收货
|
||
func (a *API) DeliveryOrder(param *DeliveryOrderReq) (*SystemParameterRes, error) {
|
||
byteReq, err := json.Marshal(param)
|
||
if err != nil {
|
||
return nil, err
|
||
}
|
||
|
||
gomeResult, err := a.AccessAPI(gomeUrl, DeliveryOrder, http.MethodPost, utils.Struct2FlatMap(a.MakeRequestParam(byteReq)))
|
||
if err != nil {
|
||
return nil, err
|
||
}
|
||
|
||
result := &SystemParameterRes{}
|
||
if err := utils.Map2StructByJson(gomeResult, result, false); err != nil {
|
||
return nil, err
|
||
}
|
||
if result.Code != 200 {
|
||
return nil, errors.New(result.Message)
|
||
}
|
||
return result, nil
|
||
}
|
||
|
||
// 核销接口此接口主要用于 C 端用户下单自提,商家核销场景,核销成功订单状态变成已完成(订单号/核销码)
|
||
func (a *API) CheckOrder(orderNo, deliverCheckCode string) (*SystemParameterRes, error) {
|
||
byteReq, err := json.Marshal(map[string]string{"orderNo": orderNo, "deliverCheckCode": deliverCheckCode})
|
||
if err != nil {
|
||
return nil, err
|
||
}
|
||
|
||
gomeResult, err := a.AccessAPI(gomeUrl, CheckOutOrder, http.MethodPost, utils.Struct2FlatMap(a.MakeRequestParam(byteReq)))
|
||
if err != nil {
|
||
return nil, err
|
||
}
|
||
|
||
result := &SystemParameterRes{}
|
||
if err := utils.Map2StructByJson(gomeResult, result, false); err != nil {
|
||
return nil, err
|
||
}
|
||
if result.Code != 200 {
|
||
return nil, errors.New(result.Message)
|
||
}
|
||
return result, nil
|
||
}
|
||
|
||
// 此接口主要用于,售中(待发货状态)订单,用户发起全单取消,申请后进行商家审核场景,商家审核通过订单将变成备货后取消状态,商家拒绝订单则进行走正向流程
|
||
func (a *API) OrderAgreeOrRefuseAfterApply(req *AgreeOrRefuseCheck) (*SystemParameterRes, error) {
|
||
byteReq, err := json.Marshal(req)
|
||
if err != nil {
|
||
return nil, err
|
||
}
|
||
|
||
gomeResult, err := a.AccessAPI(gomeUrl, CancelAgreeOrRefuseAfterApply, http.MethodPost, utils.Struct2FlatMap(a.MakeRequestParam(byteReq)))
|
||
if err != nil {
|
||
return nil, err
|
||
}
|
||
|
||
result := &SystemParameterRes{}
|
||
if err := utils.Map2StructByJson(gomeResult, result, false); err != nil {
|
||
return nil, err
|
||
}
|
||
if result.Code != 200 {
|
||
return nil, errors.New(result.Message)
|
||
}
|
||
return result, nil
|
||
}
|