Files
baseapi/platformapi/gome_live_show/order.go
2025-11-20 14:27:08 +08:00

168 lines
5.4 KiB
Go
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
package gome_live_show
import (
"encoding/json"
"errors"
"gitrosy.jxc4.com/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
}