Files
baseapi/platformapi/tao_vegetable/order_afs.go
2025-11-21 09:09:09 +08:00

226 lines
6.6 KiB
Go

package tao_vegetable
import (
"encoding/json"
"fmt"
"git.rosy.net.cn/baseapi/platformapi/tao_vegetable/sdk/ability3156"
"git.rosy.net.cn/baseapi/platformapi/tao_vegetable/sdk/ability3156/domain"
request2 "git.rosy.net.cn/baseapi/platformapi/tao_vegetable/sdk/ability3156/request"
"git.rosy.net.cn/baseapi/platformapi/tao_vegetable/sdk/ability591"
domain591 "git.rosy.net.cn/baseapi/platformapi/tao_vegetable/sdk/ability591/domain"
request591 "git.rosy.net.cn/baseapi/platformapi/tao_vegetable/sdk/ability591/request"
"git.rosy.net.cn/baseapi/platformapi/tao_vegetable/sdk/util"
"git.rosy.net.cn/baseapi/utils"
"io/ioutil"
"net/http"
"time"
)
// AgreeUserCancel 同意用户售后申请
func (a *API) AgreeUserCancel(req *request2.AlibabaTclsAelophyRefundAgreeRequest) error {
client := ability3156.NewAbility3156(&a.client)
data, _ := client.AlibabaTclsAelophyRefundAgree(req, a.token)
if !*data.Result.IsSuccess {
return fmt.Errorf(*data.Result.ReturnMsg)
}
return nil
}
// DisAgreeUserCancel 拒绝用户售后申请
func (a *API) DisAgreeUserCancel(req *request2.AlibabaTclsAelophyRefundDisagreeRequest) error {
client := ability3156.NewAbility3156(&a.client)
data, _ := client.AlibabaTclsAelophyRefundDisagree(req, a.token)
if !*data.Result.IsSuccess {
return fmt.Errorf(*data.Result.ReturnMsg)
}
return nil
}
// PartialRefundReason 商户逆向取消订单数据渲染(获取订单商品列表已经取消原因:部分退款)
func (a *API) PartialRefundReason(req *request2.AlibabaTclsAelophyRefundCsapplyrenderRequest) (*domain.AlibabaTclsAelophyRefundCsapplyrenderRefundCsApplyRenderResponseDto, error) {
client := ability3156.NewAbility3156(&a.client)
data, _ := client.AlibabaTclsAelophyRefundCsapplyrender(req, a.token)
if !*data.ApiResult.Success {
return nil, fmt.Errorf(*data.ApiResult.ErrMsg)
}
return data.ApiResult.Model, nil
}
// PartialRefund 商户逆向取消订单
func (a *API) PartialRefund(req *request2.AlibabaTclsAelophyRefundCsapplyNewRequest) error {
client := ability3156.NewAbility3156(&a.client)
data, _ := client.AlibabaTclsAelophyRefundCsapplyNew(req, a.token)
if !*data.ApiResult.Success {
return fmt.Errorf(*data.ApiResult.ErrMsg)
}
return nil
}
// UserApplyRefund 用户申请售后单消息通知
func (a *API) UserApplyRefund(c *http.Request) (*UserApplyRefundCallBack, string, error) {
data, err := ioutil.ReadAll(c.Body)
if err != nil {
return nil, "", err
}
if len(data) == 0 {
return nil, "", err
}
var result *UserApplyRefundCallBack
if err := json.Unmarshal(data, &result); err != nil {
return nil, "", err
}
return result, string(data), nil
}
// UserCancelRefundApply 用户取消售后申请
func (a *API) UserCancelRefundApply(c *http.Request) (*UserCancelRefundApply, string, error) {
data, err := ioutil.ReadAll(c.Body)
if err != nil {
return nil, "", err
}
if len(data) == 0 {
return nil, "", err
}
var result *UserCancelRefundApply
if err := json.Unmarshal(data, &result); err != nil {
return nil, "", err
}
return result, string(data), nil
}
// OnSaleRefundOrder 用户售中取消
func (a *API) OnSaleRefundOrder(c *http.Request) (*OnSaleCancel, string, error) {
body, _ := ioutil.ReadAll(c.Body)
if len(body) == 0 {
return nil, "", nil
}
var onSaleOrder *OnSaleCancel
if err := json.Unmarshal(body, &onSaleOrder); err != nil {
return nil, "", err
}
return onSaleOrder, string(body), nil
}
// RefundOrderFinish 同城零售逆向订单状态完成接口(退款完成)
func (a *API) RefundOrderFinish(c *http.Request) (*RefundOrderFinish, string, error) {
data, err := ioutil.ReadAll(c.Body)
if err != nil {
return nil, "", err
}
if len(data) == 0 {
return nil, "", nil
}
var result *RefundOrderFinish
if err := json.Unmarshal(data, &result); err != nil {
return nil, "", err
}
return result, string(data), nil
}
// QueryAfsOrderDetail 获取订单退款详情
func (a *API) QueryAfsOrderDetail(req *request591.AlibabaWdkOrderRefundGetRequest) (*domain591.AlibabaWdkOrderRefundGetOrderSyncRefundListResult, error) {
client := ability591.NewAbility591(&a.client)
data, _ := client.AlibabaWdkOrderRefundGet(req, a.token)
if !*data.Result.Success {
return nil, fmt.Errorf(*data.Result.ReturnMsg)
}
return &data.Result, nil
}
// QueryAfsOrderDetailList 批量获取订单退款详情
func (a *API) QueryAfsOrderDetailList(req *request591.AlibabaWdkOrderRefundListRequest) (*domain591.AlibabaWdkOrderRefundListOrderSyncRefundListResult, error) {
client := ability591.NewAbility591(&a.client)
data, _ := client.AlibabaWdkOrderRefundList(req, a.token)
if !*data.Result.Success {
return nil, fmt.Errorf(*data.Result.ReturnMsg)
}
return &data.Result, nil
}
// GetTransactionOrderListByTime 获取门店当天订单
func (a *API) GetTransactionOrderListByTime(storeId string, queryData time.Time) ([]string, error) {
createTime := util.LocalTime(time.Date(queryData.Year(), queryData.Month(), queryData.Day(), 0, 0, 0, 0, queryData.Location()))
endTime := util.LocalTime(time.Date(queryData.Year(), queryData.Month(), queryData.Day(), 23, 59, 59, 59, queryData.Location()))
var pageIndex int64 = 1
var PageSize int64 = 200
param := &request591.AlibabaWdkOrderListRequest{
BatchQueryRequest: &domain591.AlibabaWdkOrderListBatchQueryRequest{
StoreIds: &[]string{storeId},
StartTime: &createTime,
EndTime: &endTime,
OrderFrom: utils.Int64ToPointer(ChannelCome),
ShopId: nil,
StoreId: nil,
BizType: nil,
},
}
vendorOrderList := make([]string, 0, 0)
for {
param.BatchQueryRequest.SetPageSize(PageSize)
param.BatchQueryRequest.SetPageIndex(pageIndex)
result, err := a.GetTransactionOrderList(param)
if err != nil {
return nil, err
}
for _, v := range *result.Orders {
vendorOrderList = append(vendorOrderList, utils.Int64ToStr(*v.BizOrderId))
}
if *result.NextIndex != -1 {
pageIndex += 1
} else {
break
}
}
return vendorOrderList, nil
}
// GetTransactionOrderList 实时拉取交易列表
func (a *API) GetTransactionOrderList(req *request591.AlibabaWdkOrderListRequest) (*domain591.AlibabaWdkOrderListResult, error) {
client := ability591.NewAbility591(&a.client)
data, _ := client.AlibabaWdkOrderList(req, a.token)
if data.Result.Orders == nil {
return nil, fmt.Errorf("未查询到订单信息")
}
return &data.Result, nil
}
// QueryBillList 获取账单信息
func (a *API) QueryBillList(req *request591.AlibabaWdkBillListRequest) (*domain591.AlibabaWdkBillListTxdBillListGetResult, error) {
client := ability591.NewAbility591(&a.client)
data, _ := client.AlibabaWdkBillList(req, a.token)
if data != nil && !*data.ApiResult.Success {
return nil, fmt.Errorf(*data.ApiResult.ErrMsg)
}
return data.ApiResult.Model, nil
}