Merge branch 'jdshop' of https://e.coding.net/rosydev/jx-callback into jdshop

This commit is contained in:
richboo111
2023-02-14 14:34:00 +08:00
15 changed files with 222 additions and 106 deletions

View File

@@ -387,17 +387,19 @@ func (p *PurchaseHandler) ConfirmReceiveGoods(ctx *jxcontext.Context, order *mod
// 将订单从购物平台配送转为自送
func (p *PurchaseHandler) Swtich2SelfDeliver(order *model.GoodsOrder, userName string) (err error) {
if globals.EnableEbaiStoreWrite {
if err = api.EbaiAPI.OrderSwitchselfdelivery(order.VendorOrderID); err != nil {
if strings.Contains(err.Error(), "301251") {
api.EbaiAPI.OrderCancelDelivery(order.VendorOrderID) // 取消呼叫众包骑手
}
if utils.IsErrMatch(err, "301251", nil) {
if deliveryStatus, err2 := api.EbaiAPI.OrderDeliveryGet(order.VendorOrderID); err2 == nil {
deliveryStatus := utils.Int64ToStr(utils.MustInterface2Int64(deliveryStatus["status"]))
if deliveryStatus == ebaiapi.WaybillStatusSelfDelivery {
err = nil
} else if deliveryStatus == ebaiapi.WaybillStatusDeliveryCancled {
p.trySyncCancelStatus(order.VendorOrderID)
if order.DeliveryType == model.OrderDeliveryTypePlatform {
if err = api.EbaiAPI.OrderSwitchselfdelivery(order.VendorOrderID); err != nil {
if strings.Contains(err.Error(), "301251") {
api.EbaiAPI.OrderCancelDelivery(order.VendorOrderID) // 取消呼叫众包骑手
}
if utils.IsErrMatch(err, "301251", nil) {
if deliveryStatus, err2 := api.EbaiAPI.OrderDeliveryGet(order.VendorOrderID); err2 == nil {
deliveryStatus := utils.Int64ToStr(utils.MustInterface2Int64(deliveryStatus["status"]))
if deliveryStatus == ebaiapi.WaybillStatusSelfDelivery {
err = nil
} else if deliveryStatus == ebaiapi.WaybillStatusDeliveryCancled {
p.trySyncCancelStatus(order.VendorOrderID)
}
}
}
}

View File

@@ -14,29 +14,31 @@ import (
// OnOrderMsg 抖音
func OnOrderMsg(msgId string, msg interface{}) (response *tiktokShop.CallbackResponse) {
globals.SugarLogger.Debugf("GetCallbackOrderId tiktok msg %s", utils.Format4Output(msg, false))
if CurPurchaseHandler != nil {
orderId, shopId, _ := api.TiktokStore.GetCallbackOrderId(msgId, msg)
globals.SugarLogger.Debugf("shopId %d", shopId)
//if shopId != 0 {
//storeDetail, err := dao.GetStoreDetailByVendorStoreID(dao.GetDB(), utils.Int64ToStr(shopId), model.VendorIDDD, "")
//globals.SugarLogger.Debugf("==storeDetail=: %s", utils.Format4Output(storeDetail, false))
//globals.SugarLogger.Debugf("==err=: %s", utils.Format4Output(err, false))
//if err != nil || storeDetail == nil || storeDetail.Store.ID == 0 {
// // 当前订单所属门店不属于菜市时,将消息推送到果园
// gyMsg := map[string]interface{}{"tag": msgId, "msg_id": utils.Int64ToStr(time.Now().Unix()) + msgId, "data": msg}
// // 通知到果园
// gyResult, err := HttpToGuoYuan(gyMsg, "order")
// if err != nil {
// return tiktokShop.Err2CallbackResponse(err, "")
// }
// result, _ := ioutil.ReadAll(gyResult.Body)
// var guoYuan *tiktokShop.CallbackResponse
// if err := json.Unmarshal(result, guoYuan); err != nil {
// return tiktokShop.Err2CallbackResponse(err, "")
// }
// return guoYuan
globals.SugarLogger.Debugf("order_id %s,%s", orderId, shopId)
//orderDetail, err := GetTiktokApi(utils.Int64ToStr(shopId), 0, "").GetTiktokOrderDetail(orderId)
//if err != nil {
// return tiktokShop.Err2CallbackResponse(err, "")
//}
//vendorStoreID := orderDetail.ShopId
//if vendorStoreID != 0 {
// storeDetail, err := dao.GetStoreDetailByVendorStoreID(dao.GetDB(), utils.Int64ToStr(vendorStoreID), model.VendorIDDD, "")
// if err != nil || storeDetail == nil || storeDetail.Store.ID == 0 {
// // 当前订单所属门店不属于菜市时,将消息推送到果园
// gyMsg := map[string]interface{}{"tag": msgId, "msg_id": utils.Int64ToStr(time.Now().Unix()) + msgId, "data": msg}
// // 通知到果园
// gyResult, err := HttpToGuoYuan(gyMsg, "order")
// if err != nil {
// return tiktokShop.Err2CallbackResponse(err, "")
// }
// result, _ := ioutil.ReadAll(gyResult.Body)
// var guoYuan *tiktokShop.CallbackResponse
// if err := json.Unmarshal(result, guoYuan); err != nil {
// return tiktokShop.Err2CallbackResponse(err, "")
// }
// return guoYuan
// }
//}
jxutils.CallMsgHandler(func() {
response = CurPurchaseHandler.onOrderMsg(msgId, orderId, msg)
@@ -46,6 +48,7 @@ func OnOrderMsg(msgId string, msg interface{}) (response *tiktokShop.CallbackRes
}
func HttpToGuoYuan(param map[string]interface{}, requestType string) (*http.Response, error) {
globals.SugarLogger.Debugf("=========param %s", utils.Format4Output(param, false))
paramData, err := json.Marshal(param)
if err != nil {
return nil, err
@@ -58,7 +61,8 @@ func HttpToGuoYuan(param map[string]interface{}, requestType string) (*http.Resp
case "order": // 订单相关
url = "http://callback-jxgy.jxc4.com/tiktok/callbackTiktokOrderMsg"
case "token": // 授权相关
case "wayBill": // 授权相关
url = "http://callback-jxgy.jxc4.com/tiktokShop/jxcsToGyTiktokToken"
case "wayBill": // 运单消息
}
httpReq, err := http.NewRequest(http.MethodPost, url, body)

View File

@@ -221,19 +221,11 @@ func (p *PurchaseHandler) getUploadImgPoiCode() (poiCode string) {
}
func getAPI(appOrgCode string, storeID int, vendorStoreID string) (apiObj *tiktok_api.API) {
apiObj = partner.CurAPIManager.GetAPI(model.VendorIDDD, appOrgCode).(*tiktok_api.API)
//if appOrgCode == globals.TiktokShopCode {
// var storeDetail *dao.StoreDetail
// if storeID != 0 {
// storeDetail, _ = dao.GetStoreDetail(dao.GetDB(), storeID, model.VendorIDDD, appOrgCode)
// } else if vendorStoreID != "" {
// storeDetail, _ = dao.GetStoreDetailByVendorStoreID(dao.GetDB(), vendorStoreID, model.VendorIDDD, appOrgCode)
// }
// if storeDetail != nil {
// apiObj.SetToken(storeDetail.MtwmToken)
// }
//}
return apiObj
return partner.CurAPIManager.GetAPI(model.VendorIDDD, appOrgCode).(*tiktok_api.API)
}
func GetTiktokApi(appOrgCode string, storeID int, vendorStoreID string) *tiktok_api.API {
return getAPI(appOrgCode, storeID, vendorStoreID)
}
func getAPIWithoutToken(appOrgCode string) (apiObj *tiktok_api.API) {

View File

@@ -703,21 +703,22 @@ func (c *PurchaseHandler) AgreeOrRefuseCancel(ctx *jxcontext.Context, order *mod
if err != nil {
return err
}
api := getAPI(order.VendorOrgCode, jxutils.GetSaleStoreIDFromOrder(order), "")
if globals.EnableDdStoreWrite {
if isAgree {
errList := make([]string, 0, 0)
// 同意仅退款
if err = getAPI(order.VendorOrgCode, jxutils.GetSaleStoreIDFromOrder(order), "").AfterSaleOperate(tiktokShop.AfterSaleEmuAgreeOnlyRefundApply, afsOrder.AfsOrderID, reason, utils.Str2Int64(order.VendorStoreID)); err != nil {
if err = api.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 {
if err = api.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 {
if err = api.AfterSaleOperate(tiktokShop.AfterSaleEmuAgreeToReturnTwoApply, afsOrder.AfsOrderID, reason, utils.Str2Int64(order.VendorStoreID)); err != nil {
errList = append(errList, err.Error())
} else {
return nil
@@ -729,17 +730,17 @@ func (c *PurchaseHandler) AgreeOrRefuseCancel(ctx *jxcontext.Context, order *mod
} else {
errList := make([]string, 0, 0)
// 拒绝退款
if err = getAPI(order.VendorOrgCode, jxutils.GetSaleStoreIDFromOrder(order), "").AfterSaleOperate(tiktokShop.AfterSaleEmuRefuseOnlyRefundApply, afsOrder.AfsOrderID, reason, utils.Str2Int64(order.VendorStoreID)); err != nil {
if err = api.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 {
if err = api.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 {
if err = api.AfterSaleOperate(tiktokShop.AfterSaleEmuRefuseToReturnTwoApply, afsOrder.AfsOrderID, reason, utils.Str2Int64(order.VendorStoreID)); err != nil {
errList = append(errList, err.Error())
} else {
return nil