Merge branch 'jdshop' of https://e.coding.net/rosydev/jx-callback into jdshop
This commit is contained in:
@@ -937,6 +937,9 @@ func PruneMissingStoreSkus(ctx *jxcontext.Context, parentTask tasksch.ITask, ven
|
||||
}
|
||||
|
||||
func amendAndPruneStoreStuff(ctx *jxcontext.Context, parentTask tasksch.ITask, vendorID, storeID int, vendorStoreID string, isAsync, isContinueWhenError bool, opType int, isForceUpdate bool) (hint string, err error) {
|
||||
if vendorID == model.VendorIDDD {
|
||||
return "", nil
|
||||
}
|
||||
handler, _ := partner.GetPurchasePlatformFromVendorID(vendorID).(partner.ISingleStoreStoreSkuHandler)
|
||||
if handler == nil {
|
||||
return "", fmt.Errorf("平台:%s不支持此操作", model.VendorChineseNames[vendorID])
|
||||
|
||||
@@ -687,12 +687,9 @@ func GetStoreSkus2(db *DaoDB, vendorID, storeID int, skuIDs []int, mustDirty boo
|
||||
sql = fmt.Sprintf(sql, fmtParams...)
|
||||
sql += " ORDER BY t1.price"
|
||||
|
||||
globals.SugarLogger.Debugf("=======sql := %s", sql)
|
||||
globals.SugarLogger.Debugf("=====param := %s", utils.Format4Output(sqlParams, false))
|
||||
if err = GetRows(db, &skus, sql, sqlParams...); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
globals.SugarLogger.Debugf("=====skus := %s", utils.Format4Output(skus, false))
|
||||
return skus, err
|
||||
}
|
||||
|
||||
|
||||
@@ -663,6 +663,25 @@ func (c *PurchaseHandler) GetOrderRealMobile(ctx *jxcontext.Context, order *mode
|
||||
return "", err
|
||||
}
|
||||
|
||||
const (
|
||||
AfterSaleEmuAgreeToReturnOneApply = 101 // 同意退货申请(一次审核)不接 Logistics.ReceiverAddressId 或 Logistics.AfterSaleAddressDetail
|
||||
AfterSaleEmuRefuseToReturnOneApply = 102 // 拒绝退货申请(一次审核) reason , evidence
|
||||
AfterSaleEmuAgreeToReturnTwoApply = 111 // 同意退货(二次审核) 不接
|
||||
AfterSaleEmuRefuseToReturnTwoApply = 112 // 拒绝退货 (二次审核) reason , evidence
|
||||
AfterSaleEmuReturnGoodsToRefundApply = 121 // 退货转退款
|
||||
AfterSaleEmuAgreeOnlyRefundApply = 201 // 同意仅退款
|
||||
AfterSaleEmuRefuseOnlyRefundApply = 202 // 拒绝仅退款 reason , evidence
|
||||
AfterSaleEmuRefundAfterRefusalApply = 203 // 同意拒签后退款 不接
|
||||
AfterSaleEmuAgreeChangeGoodsOneApply = 301 // 同意换货申请(一次审核) 不接 Logistics.ReceiverAddressId 或 Logistics.AfterSaleAddressDetail
|
||||
AfterSaleEmuRefundChangeGoodsOneApply = 302 // 拒绝换货申请(一次审核) reason,evidence
|
||||
AfterSaleEmuAgreeChangeGoodsTwoApply = 311 // 同意换货(二次审核) logistics.companyCode,logistics.logisticsCode
|
||||
AfterSaleEmuRefundChangeGoodsTwoApply = 312 // 拒绝换货(二次审核) reason,evidence
|
||||
AfterSaleEmuChangeGoodsToRefundApply = 321 // 换货转退款
|
||||
AfterSaleEmuAgreePreSaleReturnApply = 401 // 同意售前退申请(拒绝售前退款请使用发货接口)
|
||||
AfterSaleEmuAgreeReissueApply = 501 // 同意补寄
|
||||
AfterSaleEmuRefundReissueApply = 502 // 拒绝补寄
|
||||
)
|
||||
|
||||
// AgreeOrRefuseCancel 同意或拒绝(退款)
|
||||
func (c *PurchaseHandler) AgreeOrRefuseCancel(ctx *jxcontext.Context, order *model.GoodsOrder, isAgree bool, reason string) (err error) {
|
||||
afsOrder, err := partner.CurOrderManager.LoadAfsOrder(order.VendorOrderID, order.VendorID)
|
||||
@@ -671,11 +690,49 @@ func (c *PurchaseHandler) AgreeOrRefuseCancel(ctx *jxcontext.Context, order *mod
|
||||
}
|
||||
if globals.EnableDdStoreWrite {
|
||||
if isAgree {
|
||||
errList := make([]string, 0, 0)
|
||||
// 同意仅退款
|
||||
err = getAPI(order.VendorOrgCode, jxutils.GetSaleStoreIDFromOrder(order), "").AfterSaleOperate(tiktokShop.AfterSaleEmuAgreeOnlyRefundApply, afsOrder.AfsOrderID, reason, utils.Str2Int64(order.VendorStoreID))
|
||||
if err = getAPI(order.VendorOrgCode, jxutils.GetSaleStoreIDFromOrder(order), "").AfterSaleOperate(tiktokShop.AfterSaleEmuAgreeOnlyRefundApply, afsOrder.AfsOrderID, reason, utils.Str2Int64(order.VendorStoreID)); err != nil {
|
||||
errList = append(errList, err.Error())
|
||||
} else {
|
||||
return nil
|
||||
}
|
||||
if err = getAPI(order.VendorOrgCode, jxutils.GetSaleStoreIDFromOrder(order), "").AfterSaleOperate(tiktokShop.AfterSaleEmuAgreeToReturnOneApply, afsOrder.AfsOrderID, reason, utils.Str2Int64(order.VendorStoreID)); err != nil {
|
||||
errList = append(errList, err.Error())
|
||||
} else {
|
||||
return nil
|
||||
}
|
||||
if err = getAPI(order.VendorOrgCode, jxutils.GetSaleStoreIDFromOrder(order), "").AfterSaleOperate(tiktokShop.AfterSaleEmuAgreeToReturnTwoApply, afsOrder.AfsOrderID, reason, utils.Str2Int64(order.VendorStoreID)); err != nil {
|
||||
errList = append(errList, err.Error())
|
||||
} else {
|
||||
return nil
|
||||
}
|
||||
if len(errList) < 3 {
|
||||
return nil
|
||||
}
|
||||
return fmt.Errorf("%s", strings.Join(errList, "--"))
|
||||
} else {
|
||||
errList := make([]string, 0, 0)
|
||||
// 拒绝退款
|
||||
err = getAPI(order.VendorOrgCode, jxutils.GetSaleStoreIDFromOrder(order), "").AfterSaleOperate(tiktokShop.AfterSaleEmuRefuseOnlyRefundApply, afsOrder.AfsOrderID, reason, utils.Str2Int64(order.VendorStoreID))
|
||||
if err = getAPI(order.VendorOrgCode, jxutils.GetSaleStoreIDFromOrder(order), "").AfterSaleOperate(tiktokShop.AfterSaleEmuRefuseOnlyRefundApply, afsOrder.AfsOrderID, reason, utils.Str2Int64(order.VendorStoreID)); err != nil {
|
||||
errList = append(errList, err.Error())
|
||||
} else {
|
||||
return nil
|
||||
}
|
||||
if err = getAPI(order.VendorOrgCode, jxutils.GetSaleStoreIDFromOrder(order), "").AfterSaleOperate(tiktokShop.AfterSaleEmuRefuseToReturnOneApply, afsOrder.AfsOrderID, reason, utils.Str2Int64(order.VendorStoreID)); err != nil {
|
||||
errList = append(errList, err.Error())
|
||||
} else {
|
||||
return nil
|
||||
}
|
||||
if err = getAPI(order.VendorOrgCode, jxutils.GetSaleStoreIDFromOrder(order), "").AfterSaleOperate(tiktokShop.AfterSaleEmuRefuseToReturnTwoApply, afsOrder.AfsOrderID, reason, utils.Str2Int64(order.VendorStoreID)); err != nil {
|
||||
errList = append(errList, err.Error())
|
||||
} else {
|
||||
return nil
|
||||
}
|
||||
if len(errList) < 3 {
|
||||
return nil
|
||||
}
|
||||
return fmt.Errorf("%s", strings.Join(errList, "--"))
|
||||
}
|
||||
}
|
||||
return err
|
||||
|
||||
@@ -8,6 +8,7 @@ import (
|
||||
"git.rosy.net.cn/jx-callback/business/model"
|
||||
"git.rosy.net.cn/jx-callback/business/partner"
|
||||
"git.rosy.net.cn/jx-callback/globals"
|
||||
"strings"
|
||||
)
|
||||
|
||||
var (
|
||||
@@ -114,9 +115,50 @@ var (
|
||||
func (c *PurchaseHandler) AgreeOrRefuseRefund(ctx *jxcontext.Context, order *model.AfsOrder, approveType int, reason string) (err error) {
|
||||
if globals.EnableDdStoreWrite {
|
||||
if approveType == partner.AfsApproveTypeRefused { // 拒绝退货
|
||||
err = getAPI(order.VendorOrgCode, order.JxStoreID, "").AfterSaleOperate(tiktokShop.AfterSaleEmuRefuseOnlyRefundApply, order.AfsOrderID, "拒绝退货", utils.Str2Int64(order.VendorStoreID))
|
||||
errList := make([]string, 0, 0)
|
||||
// 拒绝退款
|
||||
if err = getAPI(order.VendorOrgCode, order.JxStoreID, "").AfterSaleOperate(tiktokShop.AfterSaleEmuRefuseOnlyRefundApply, order.AfsOrderID, reason, utils.Str2Int64(order.VendorStoreID)); err != nil {
|
||||
errList = append(errList, err.Error())
|
||||
} else {
|
||||
return nil
|
||||
}
|
||||
if err = getAPI(order.VendorOrgCode, order.JxStoreID, "").AfterSaleOperate(tiktokShop.AfterSaleEmuRefuseToReturnOneApply, order.AfsOrderID, reason, utils.Str2Int64(order.VendorStoreID)); err != nil {
|
||||
errList = append(errList, err.Error())
|
||||
} else {
|
||||
return nil
|
||||
}
|
||||
if err = getAPI(order.VendorOrgCode, order.JxStoreID, "").AfterSaleOperate(tiktokShop.AfterSaleEmuRefuseToReturnTwoApply, order.AfsOrderID, reason, utils.Str2Int64(order.VendorStoreID)); err != nil {
|
||||
errList = append(errList, err.Error())
|
||||
} else {
|
||||
return nil
|
||||
}
|
||||
if len(errList) < 3 {
|
||||
return nil
|
||||
}
|
||||
return fmt.Errorf("%s", strings.Join(errList, "--"))
|
||||
} else if approveType == partner.AfsApproveTypeRefund { // 同意
|
||||
err = getAPI(order.VendorOrgCode, order.JxStoreID, "").AfterSaleOperate(tiktokShop.AfterSaleEmuAgreeOnlyRefundApply, order.AfsOrderID, "同意仅退款", utils.Str2Int64(order.VendorStoreID))
|
||||
errList := make([]string, 0, 0)
|
||||
// 同意仅退款
|
||||
if err = getAPI(order.VendorOrgCode, order.JxStoreID, "").AfterSaleOperate(tiktokShop.AfterSaleEmuAgreeOnlyRefundApply, order.AfsOrderID, reason, utils.Str2Int64(order.VendorStoreID)); err != nil {
|
||||
errList = append(errList, err.Error())
|
||||
} else {
|
||||
return nil
|
||||
}
|
||||
if err = getAPI(order.VendorOrgCode, order.JxStoreID, "").AfterSaleOperate(tiktokShop.AfterSaleEmuAgreeToReturnOneApply, order.AfsOrderID, reason, utils.Str2Int64(order.VendorStoreID)); err != nil {
|
||||
errList = append(errList, err.Error())
|
||||
} else {
|
||||
return nil
|
||||
}
|
||||
if err = getAPI(order.VendorOrgCode, order.JxStoreID, "").AfterSaleOperate(tiktokShop.AfterSaleEmuAgreeToReturnTwoApply, order.AfsOrderID, reason, utils.Str2Int64(order.VendorStoreID)); err != nil {
|
||||
errList = append(errList, err.Error())
|
||||
} else {
|
||||
return nil
|
||||
}
|
||||
|
||||
return fmt.Errorf("%s", strings.Join(errList, "--"))
|
||||
if len(errList) < 3 {
|
||||
return nil
|
||||
}
|
||||
} else if approveType == partner.AfsApproveTypeRefusedToRefundMoney { // 退货转退款
|
||||
err = getAPI(order.VendorOrgCode, order.JxStoreID, "").AfterSaleOperate(tiktokShop.AfterSaleEmuReturnGoodsToRefundApply, order.AfsOrderID, "退货转退款", utils.Str2Int64(order.VendorStoreID))
|
||||
}
|
||||
|
||||
@@ -7,6 +7,7 @@ import (
|
||||
"git.rosy.net.cn/jx-callback/business/model"
|
||||
"git.rosy.net.cn/jx-callback/business/model/dao"
|
||||
"git.rosy.net.cn/jx-callback/business/partner"
|
||||
"git.rosy.net.cn/jx-callback/globals"
|
||||
"strings"
|
||||
)
|
||||
|
||||
@@ -48,6 +49,7 @@ func (c *PurchaseHandler) OnAfsOrderMsg(msgId, orderId string, msg interface{})
|
||||
func (c *PurchaseHandler) onAfsOrderMsg(msgId string, msg interface{}) (retVal *tiktokShop.CallbackResponse) {
|
||||
var err error
|
||||
orderStatus, vendorOrgCode := c.callbackAfsMsg2Status(msgId, msg)
|
||||
globals.SugarLogger.Debugf("========onAfsOrderMsg====== : %s", utils.Format4Output(orderStatus, false))
|
||||
if orderStatus == nil {
|
||||
return tiktokShop.Err2CallbackResponse(nil, "")
|
||||
}
|
||||
@@ -279,7 +281,7 @@ func (c *PurchaseHandler) callbackAfsMsg2Status(msgId string, msg interface{}) (
|
||||
if k, ok := ReasonCodeMap[refundOrder.ReasonCode]; ok {
|
||||
orderMsg.Remark = k
|
||||
} else {
|
||||
orderMsg.Remark = "同意退款回调,抖音reason_code对应reason不足,需要更新.code:" + utils.Int2Str(refundOrder.ReasonCode)
|
||||
orderMsg.Remark = "同意退款消息,抖音reason_code对应reason不足,需要更新.code:" + utils.Int2Str(refundOrder.ReasonCode)
|
||||
}
|
||||
if refundOrder.AftersaleId > 0 {
|
||||
orderMsg.VendorOrderID = utils.Int64ToStr(refundOrder.AftersaleId)
|
||||
|
||||
@@ -4,6 +4,7 @@ import (
|
||||
"errors"
|
||||
"fmt"
|
||||
"git.rosy.net.cn/baseapi/platformapi/mtwmapi"
|
||||
product_listV2_request "git.rosy.net.cn/baseapi/platformapi/tiktok_shop/sdk-golang/api/product_listV2/request"
|
||||
sku_editPrice_request "git.rosy.net.cn/baseapi/platformapi/tiktok_shop/sdk-golang/api/sku_editPrice/request"
|
||||
sku_syncStock_request "git.rosy.net.cn/baseapi/platformapi/tiktok_shop/sdk-golang/api/sku_syncStock/request"
|
||||
tiktokShop "git.rosy.net.cn/baseapi/platformapi/tiktok_shop/tiktok_api"
|
||||
@@ -346,47 +347,58 @@ func (p *PurchaseHandler) UpdateStoreSkusStock(ctx *jxcontext.Context, vendorOrg
|
||||
|
||||
func (p *PurchaseHandler) GetStoreSkusFullInfo(ctx *jxcontext.Context, parentTask tasksch.ITask, storeID int, vendorStoreID string, storeSkuList []*partner.StoreSkuInfo) (skuNameList []*partner.SkuNameInfo, err error) {
|
||||
// 查询单个门店商品
|
||||
tiktokApi := getAPI(storeSkuList[0].VendorOrgCode, storeID, vendorStoreID)
|
||||
|
||||
for _, v := range storeSkuList {
|
||||
skuInfo, err := tiktokApi.GetSkuDetail(v.VendorSkuID, utils.Int2Str(v.SkuID))
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
if skuName := vendorSku2Jx(skuInfo); skuName != nil {
|
||||
skuNameList = append(skuNameList, skuName)
|
||||
}
|
||||
appOrgCode := ""
|
||||
if len(storeSkuList) == 0 {
|
||||
storeDetail, _ := dao.GetStoreDetail(dao.GetDB(), storeID, model.VendorIDDD, "")
|
||||
appOrgCode = storeDetail.VendorOrgCode
|
||||
} else {
|
||||
appOrgCode = storeSkuList[0].VendorOrgCode
|
||||
}
|
||||
//switch len(storeSkuList) {
|
||||
//case 1:
|
||||
//
|
||||
//default:
|
||||
// // 列表查询门店商品
|
||||
// //var storeSkuMap map[string]*partner.StoreSkuInfo
|
||||
// //if storeSkuList != nil {
|
||||
// // storeSkuMap = putils.StoreSkuList2MapByVendorSkuID(storeSkuList)
|
||||
// //}
|
||||
// //for {
|
||||
// // result, err := mtapi.RetailList(vendorStoreID, len(skuNameList), mtwmapi.GeneralMaxLimit)
|
||||
// // if err != nil {
|
||||
// // return nil, err
|
||||
// // }
|
||||
// // if storeSkuMap == nil {
|
||||
// // skuNameList = append(skuNameList, vendorSkuList2Jx(result)...)
|
||||
// // } else {
|
||||
// // for _, v := range result {
|
||||
// // if storeSkuMap[v.AppFoodCode] != nil {
|
||||
// // if skuName := vendorSku2Jx(v); skuName != nil {
|
||||
// // skuNameList = append(skuNameList, skuName)
|
||||
// // }
|
||||
// // }
|
||||
// // }
|
||||
// // }
|
||||
// // if len(result) < mtwmapi.GeneralMaxLimit {
|
||||
// // break
|
||||
// // }
|
||||
// //}
|
||||
//}
|
||||
tiktokApi := getAPI(appOrgCode, storeID, vendorStoreID)
|
||||
|
||||
if len(storeSkuList) != 0 {
|
||||
for _, v := range storeSkuList {
|
||||
skuInfo, err := tiktokApi.GetSkuDetail(v.VendorSkuID, utils.Int2Str(v.SkuID))
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
if skuName := vendorSku2Jx(skuInfo); skuName != nil {
|
||||
skuNameList = append(skuNameList, skuName)
|
||||
}
|
||||
}
|
||||
} else {
|
||||
var page int64 = 1
|
||||
var pageSize int64 = 100
|
||||
for {
|
||||
skuInfo, err := tiktokApi.GetSkuDetailList(&product_listV2_request.ProductListV2Param{
|
||||
Status: 0,
|
||||
CheckStatus: 3,
|
||||
ProductType: 0,
|
||||
Page: page,
|
||||
Size: pageSize,
|
||||
StoreId: utils.Str2Int64(vendorStoreID),
|
||||
})
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
for _, v := range skuInfo.Data {
|
||||
skuInfo, err := tiktokApi.GetSkuDetail(utils.Int64ToStr(v.ProductId), "")
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
if skuName := vendorSku2Jx(skuInfo); skuName != nil {
|
||||
skuNameList = append(skuNameList, skuName)
|
||||
}
|
||||
}
|
||||
if page*pageSize > skuInfo.Total {
|
||||
page++
|
||||
} else {
|
||||
break
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
return skuNameList, err
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user