This commit is contained in:
邹宗楠
2023-07-05 11:58:10 +08:00
parent ac479e7c3f
commit e69dba2101
4 changed files with 69 additions and 16 deletions

View File

@@ -578,32 +578,62 @@ func (c *PurchaseHandler) GetOrderRealMobile(ctx *jxcontext.Context, order *mode
} }
func (c *PurchaseHandler) AgreeOrRefuseCancel(ctx *jxcontext.Context, order *model.GoodsOrder, isAgree bool, reason string) (err error) { func (c *PurchaseHandler) AgreeOrRefuseCancel(ctx *jxcontext.Context, order *model.GoodsOrder, isAgree bool, reason string) (err error) {
db := dao.GetDB()
afsOrder, err := partner.CurOrderManager.LoadAfsOrder(order.VendorOrderID, order.VendorID)
if err != nil {
return err
}
if isAgree { if isAgree {
// 加载子订单号
orderDetail, _ := partner.CurOrderManager.LoadOrder(order.VendorOrderID, model.VendorIDTaoVegetable)
// 加载退款商品
afsSkuOrder, _ := dao.GetOrderRefundSkuList(db, []string{order.VendorOrderID})
param := &request3156.AlibabaTclsAelophyRefundAgreeRequest{ param := &request3156.AlibabaTclsAelophyRefundAgreeRequest{
StoreId: utils.String2Pointer(order.VendorStoreID), StoreId: utils.String2Pointer(order.VendorStoreID),
OutOrderId: utils.String2Pointer(order.VendorOrderID), OutOrderId: utils.String2Pointer(orderDetail.VendorOrderID2),
RefundId: utils.String2Pointer(afsOrder.AfsOrderID),
OrderFrom: utils.Int64ToPointer(utils.Str2Int64(tao_vegetable.TaoVegetableChannelCode)), OrderFrom: utils.Int64ToPointer(utils.Str2Int64(tao_vegetable.TaoVegetableChannelCode)),
} }
// 加载购买商品
sku, _ := dao.GetSimpleOrderSkus(db, order.VendorOrderID, nil)
skuCount := 0
for _, v := range sku {
skuCount += v.Count
}
refundSkuCount := 0
subRefundList := make([]domain3156.AlibabaTclsAelophyRefundAgreeSubrefundlist, 0, len(afsSkuOrder))
for _, v := range afsSkuOrder {
subRefundList = append(subRefundList, domain3156.AlibabaTclsAelophyRefundAgreeSubrefundlist{
OutSubOrderId: utils.String2Pointer(v.VendorSubOrderID),
RefundFee: utils.Int64ToPointer(v.UserMoney),
})
refundSkuCount += v.Count
}
// 全退退运费
if skuCount == refundSkuCount {
}
param.SubRefundList = &subRefundList
param.AuditMemo = utils.String2Pointer(fmt.Sprintf("商户同意退款")) param.AuditMemo = utils.String2Pointer(fmt.Sprintf("商户同意退款"))
if reason != "" { if reason != "" {
param.AuditMemo = utils.String2Pointer(*param.AuditMemo + fmt.Sprintf(",%s", reason)) param.AuditMemo = utils.String2Pointer(*param.AuditMemo + fmt.Sprintf(",%s", reason))
} }
err = getAPI(order.VendorOrgCode, jxutils.GetSaleStoreIDFromOrder(order), "").AgreeUserCancel(param) err = getAPI(order.VendorOrgCode, jxutils.GetSaleStoreIDFromAfsOrder(afsOrder), order.VendorStoreID).AgreeUserCancel(param)
} else { } else {
afsOrder, err := partner.CurOrderManager.LoadAfsOrder(order.VendorOrderID, order.VendorID)
if err != nil {
return err
}
param := &request3156.AlibabaTclsAelophyRefundDisagreeRequest{ param := &request3156.AlibabaTclsAelophyRefundDisagreeRequest{
RefundId: utils.String2Pointer(afsOrder.AfsOrderID), RefundId: utils.String2Pointer(afsOrder.AfsOrderID),
RejectReason: utils.String2Pointer(reason), RejectReason: utils.String2Pointer(reason),
OrderFrom: utils.Int64ToPointer(utils.Str2Int64(tao_vegetable.TaoVegetableChannelCode)), OrderFrom: utils.Int64ToPointer(utils.Str2Int64(tao_vegetable.TaoVegetableChannelCode)),
} }
err = getAPI(order.VendorOrgCode, jxutils.GetSaleStoreIDFromOrder(order), "").DisAgreeUserCancel(param) err = getAPI(order.VendorOrgCode, jxutils.GetSaleStoreIDFromAfsOrder(afsOrder), order.VendorStoreID).DisAgreeUserCancel(param)
if err != nil { if err != nil {
afsOrder.Status = model.AfsOrderStatusFailed afsOrder.Status = model.AfsOrderStatusFailed
afsOrder.VendorStatus = "老板拒绝" afsOrder.VendorStatus = "老板拒绝"
afsOrder.ReasonDesc += reason + "," afsOrder.ReasonDesc += "," + reason
dao.UpdateEntity(dao.GetDB(), afsOrder, "Status", "ReasonDesc", "VendorStatus") dao.UpdateEntity(dao.GetDB(), afsOrder, "Status", "ReasonDesc", "VendorStatus")
} }
} }

View File

@@ -260,24 +260,40 @@ func (c *PurchaseHandler) GetAfsStatusFromVendorStatus(notifyType string) int {
// 审核售后单申请 // 审核售后单申请
func (c *PurchaseHandler) AgreeOrRefuseRefund(ctx *jxcontext.Context, order *model.AfsOrder, approveType int, reason string) (err error) { func (c *PurchaseHandler) AgreeOrRefuseRefund(ctx *jxcontext.Context, order *model.AfsOrder, approveType int, reason string) (err error) {
db := dao.GetDB()
if approveType == partner.AfsApproveTypeRefused { if approveType == partner.AfsApproveTypeRefused {
// 加载子订单号 // 加载子订单号
orderDetail, _ := partner.CurOrderManager.LoadOrder(order.VendorOrderID, model.VendorIDTaoVegetable) orderDetail, _ := partner.CurOrderManager.LoadOrder(order.VendorOrderID, model.VendorIDTaoVegetable)
// 加载退款商品 // 加载退款商品
afsSkuOrder, _ := dao.GetOrderRefundSkuList(dao.GetDB(), []string{order.VendorOrderID}) afsSkuOrder, _ := dao.GetOrderRefundSkuList(db, []string{order.VendorOrderID})
param := &request3156.AlibabaTclsAelophyRefundAgreeRequest{ param := &request3156.AlibabaTclsAelophyRefundAgreeRequest{
StoreId: utils.String2Pointer(order.VendorStoreID), StoreId: utils.String2Pointer(order.VendorStoreID),
OutOrderId: utils.String2Pointer(orderDetail.VendorOrderID2), OutOrderId: utils.String2Pointer(orderDetail.VendorOrderID2),
RefundId: utils.String2Pointer(order.AfsOrderID), RefundId: utils.String2Pointer(order.AfsOrderID),
OrderFrom: utils.Int64ToPointer(utils.Str2Int64(tao_vegetable.TaoVegetableChannelCode)), OrderFrom: utils.Int64ToPointer(utils.Str2Int64(tao_vegetable.TaoVegetableChannelCode)),
} }
// 加载购买商品
sku, _ := dao.GetSimpleOrderSkus(db, order.VendorOrderID, nil)
skuCount := 0
for _, v := range sku {
skuCount += v.Count
}
refundSkuCount := 0
subRefundList := make([]domain3156.AlibabaTclsAelophyRefundAgreeSubrefundlist, 0, len(afsSkuOrder)) subRefundList := make([]domain3156.AlibabaTclsAelophyRefundAgreeSubrefundlist, 0, len(afsSkuOrder))
for _, v := range afsSkuOrder { for _, v := range afsSkuOrder {
subRefundList = append(subRefundList, domain3156.AlibabaTclsAelophyRefundAgreeSubrefundlist{ subRefundList = append(subRefundList, domain3156.AlibabaTclsAelophyRefundAgreeSubrefundlist{
OutSubOrderId: utils.String2Pointer(v.VendorSubOrderID), OutSubOrderId: utils.String2Pointer(v.VendorSubOrderID),
RefundFee: utils.Int64ToPointer(v.UserMoney), RefundFee: utils.Int64ToPointer(v.UserMoney),
}) })
refundSkuCount += v.Count
} }
// 全退退运费
if skuCount == refundSkuCount {
}
param.SubRefundList = &subRefundList param.SubRefundList = &subRefundList
param.AuditMemo = utils.String2Pointer(fmt.Sprintf("商户同意退款")) param.AuditMemo = utils.String2Pointer(fmt.Sprintf("商户同意退款"))
if reason != "" { if reason != "" {
@@ -296,7 +312,7 @@ func (c *PurchaseHandler) AgreeOrRefuseRefund(ctx *jxcontext.Context, order *mod
if err != nil { if err != nil {
order.Status = model.AfsOrderStatusFailed order.Status = model.AfsOrderStatusFailed
order.VendorStatus = "老板拒绝" order.VendorStatus = "老板拒绝"
order.ReasonDesc += reason + "," order.ReasonDesc += "," + reason
dao.UpdateEntity(dao.GetDB(), order, "Status", "ReasonDesc", "VendorStatus") dao.UpdateEntity(dao.GetDB(), order, "Status", "ReasonDesc", "VendorStatus")
} }
} }

View File

@@ -31,12 +31,19 @@ func orderStatusChangeNotice(order *model.GoodsOrder, orderStatus string) (*requ
if len(skuList) == model.NO { if len(skuList) == model.NO {
return nil, fmt.Errorf("订单商品列表为零,请管理员检查") return nil, fmt.Errorf("订单商品列表为零,请管理员检查")
} }
for _, v := range skuList { orderDetail, err := getAPI(order.VendorOrgCode, 0, "").QueryOrderDetail(&request591.AlibabaAelophyOrderGetRequest{OrderGetRequest: &domain591.AlibabaAelophyOrderGetOrderGetRequest{
StoreId: utils.String2Pointer(order.VendorStoreID),
BizOrderId: utils.Int64ToPointer(utils.Str2Int64(order.VendorOrderID)),
}})
if err != nil {
return nil, err
}
for _, v := range *orderDetail.SubOrderResponseList {
workCallbackSubOrderInfo := domain591.AlibabaAelophyOrderWorkCallbackWorkCallbackSubOrderInfo{ workCallbackSubOrderInfo := domain591.AlibabaAelophyOrderWorkCallbackWorkCallbackSubOrderInfo{
BizSubOrderId: utils.Int64ToPointer(utils.Str2Int64(v.VendorSubOrderID)), BizSubOrderId: v.BizSubOrderId,
SkuCode: utils.String2Pointer(v.VendorSkuID), SkuCode: v.SkuCode,
PickSaleQuantity: utils.String2Pointer(utils.Int2Str(v.Count)), PickSaleQuantity: utils.String2Pointer(utils.Float64ToStr(*v.BuySaleQuantity)),
PickStockQuantity: utils.String2Pointer(utils.Int2Str(v.Count)), PickStockQuantity: utils.String2Pointer(utils.Float64ToStr(*v.BuyStockQuantity)),
} }
workCallbackSubOrderInfoList = append(workCallbackSubOrderInfoList, workCallbackSubOrderInfo) workCallbackSubOrderInfoList = append(workCallbackSubOrderInfoList, workCallbackSubOrderInfo)
} }

View File

@@ -699,7 +699,7 @@ func (c *OrderController) ConfirmReceiveGoods() {
}) })
} }
// @Title 同意或拒绝用户取消订单申请 // @Title 同意或拒绝用户取消订单申请 (饿百)
// @Description 同意或拒绝用户取消订单申请 // @Description 同意或拒绝用户取消订单申请
// @Param token header string true "认证token" // @Param token header string true "认证token"
// @Param vendorOrderID formData string true "订单ID" // @Param vendorOrderID formData string true "订单ID"