You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

124 lines
6.0 KiB

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

package otosaas
import "git.oa00.com/go/otosaas/request"
const (
afsApply = "/mall/v1/refundOrder/create" // 申请退款
afsDetail = "/mall/v1/refundOrder/detail" // 退款详情
afsRefund = "/mall/v1/refundOrder/refundSuccess" // 退款完成
afsLogisticsAddress = "/mall/v1/refundOrder/queryShopLogistics" // 退款寄回地址
afsBackLogisticsBill = "/mall/v1/refundOrder/saveReturnLogistics" // 提交退款物流
)
type afs struct {
}
type AfsApply struct {
UserId string `json:"userId"` // 用户id
CommodityStatus int `json:"commodityStatus"` // 订单状态 1=未收货 2=已收货
OrderId string `json:"orderId"` // 订单id
ItemOrderIds []string `json:"itemOrderIds"` // 子订单号
Pics []string `json:"pics"` // 上传图片最多4张
ReturnReasonValue string `json:"returnReasonValue"` // 退款原因
ReturnRemark string `json:"returnRemark"` // 退款备注
Type int `json:"type"` // 退款方式 1=仅退款 2=退货退款
ReturnType int `json:"returnType"` // 退款类型 0=整单退 1=单个退
}
type respAfsApply struct {
ReturnOrderId string `json:"returnOrderId"`
}
// Apply @Title 申请退款
func (a *afs) Apply(data AfsApply) (afsOrderId string, err error) {
apply := respAfsApply{}
err = request.Exec(afsApply, data, &apply)
return apply.ReturnOrderId, err
}
type AfsDetail struct {
OrderId string `json:"orderId"` // 订单id
PassTime string `json:"passTime"` // 审核通过时间
ReceiverProvince string `json:"receiverProvince"` // 省
ReceiverCity string `json:"receiverCity"` // 市
FreightType int `json:"freightType"` // 是否退运费1 - 退2 - 不退
RealAmount float64 `json:"realAmount"` // 申请退款金额
ReceiverPhone string `json:"receiverPhone"` // 收货人联系方式
ReceiverPostCode string `json:"receiverPostCode"` // 收货人邮编
ReceiverRegion string `json:"receiverRegion"` // 区
CommodityStatus int `json:"commodityStatus"` // 商品状态 1=未收货 2=已收货
ReturnReason string `json:"returnReason"` // 退款原因
ReturnRemark string `json:"returnRemark"` // 退款备注
ReturnOrderId string `json:"returnOrderId"` // 退款单号
ReturnAmount float64 `json:"returnAmount"` // 实际退款金额
FreightAmount float64 `json:"freightAmount"` // 运费
ReceiverName string `json:"receiverName"` // 收件人
ReceiverDetailAddress string `json:"receiverDetailAddress"` // 详细地址
List []struct {
CommoditySpecCode string `json:"commoditySpecCode"` // 规格编码
CommodityPic string `json:"commodityPic"` // 商品图片
FreightAmount float64 `json:"freightAmount"` // 子订单运费
CommoditySellingPrice float64 `json:"commoditySellingPrice"` // 商品价格
Num int `json:"num"` // 购买数量
ItemOrderId string `json:"itemOrderId"` // 子订单编号
RealAmount float64 `json:"realAmount"` // 实际付款金额
TotalAmount float64 `json:"totalAmount"` // 子订单总金额
CommodityCode string `json:"commodityCode"` // 商品编码
CommodityName string `json:"commodityName"` // 商品名称
} `json:"list"`
CreateTime string `json:"createTime"` // 提交时间
LogisticsStatus int `json:"logisticsStatus"` // 0=未发货 1=已发货 2=已收货
Status int `json:"status"` // 退款状态 1->待审核2->审核通过3->退款成功 ;4 ->审核驳回5 关闭 , 6退货退款申请通过
}
// Detail @Title 售后详情
func (a *afs) Detail(afsOrderId, userId string) (result AfsDetail, err error) {
err = request.Exec(afsDetail, map[string]interface{}{
"returnOrderId": afsOrderId,
"userId": userId,
}, &result)
return
}
// Refund @Title 退款完成
func (a *afs) Refund(afsOrderId, userId string) (result AfsDetail, err error) {
err = request.Exec(afsRefund, map[string]interface{}{
"returnOrderId": afsOrderId,
"userId": userId,
}, &result)
return
}
type LogisticsAddress struct {
ShopCode string `json:"shopCode"` // 店铺编码
ReceiverPhone string `json:"receiverPhone"` // 收件人手机号
ReceiverRegion string `json:"receiverRegion"` // 地区
ReceiverName string `json:"receiverName"` // 收件人
DetailAddress string `json:"detailAddress"` // 地址
ReceiverProvince string `json:"receiverProvince"` // 省
ReceiverDetailAddress string `json:"receiverDetailAddress"` // 详细地址
ReceiverCity string `json:"receiverCity"` // 城市
Id int `json:"id"`
}
// LogisticsAddress @Title 退款寄回地址
func (a *afs) LogisticsAddress(afsOrderId, userId string) (result LogisticsAddress, err error) {
err = request.Exec(afsLogisticsAddress, map[string]interface{}{
"returnOrderId": afsOrderId,
"userId": userId,
}, &result)
return
}
type BackLogisticsBill struct {
UserId string `json:"userId"` // 用户id
ReturnOrderId string `json:"returnOrderId"` // 退款订单id
LogisticsNum string `json:"logisticsNum"` // 物流单号
LogisticsCode string `json:"logisticsCode"` // 物流编码
LogisticsName string `json:"logisticsName"` // 物流名称
ReturnAddress string `json:"returnAddress"` // 退款地址
}
// BackLogisticsBill @Title 提交退款物流
func (a *afs) BackLogisticsBill(data BackLogisticsBill) error {
return request.Exec(afsBackLogisticsBill, data, nil)
}