diff --git a/business/model/dao/thing_map.go b/business/model/dao/thing_map.go index cf99464ea..2eafc33c1 100644 --- a/business/model/dao/thing_map.go +++ b/business/model/dao/thing_map.go @@ -82,9 +82,9 @@ func GetThingToTiktokMapList(db *DaoDB, vendorId int, thingId int64, vendorOrgCo } // DeleteThingToTiktokMapList 删除同步关联关系 -func DeleteThingToTiktokMapList(vendorId int, vendorThingId string) error { - sql := ` DELETE FROM thing_map t1 WHERE vendor_thing_id = ? AND vendor_id = ? ` - param := []interface{}{vendorThingId, vendorId} +func DeleteThingToTiktokMapList(vendorId int, vendorThingId string, skuId int) error { + sql := ` DELETE FROM thing_map t1 WHERE vendor_thing_id = ? AND vendor_id = ? AND thing_id = ? ` + param := []interface{}{vendorThingId, vendorId, skuId} _, err := ExecuteSQL(GetDB(), sql, param...) return err } diff --git a/business/partner/purchase/mtwm/callback.go b/business/partner/purchase/mtwm/callback.go index 6575a7a49..ff1c42e4b 100644 --- a/business/partner/purchase/mtwm/callback.go +++ b/business/partner/purchase/mtwm/callback.go @@ -7,14 +7,18 @@ import ( "git.rosy.net.cn/jx-callback/business/jxutils/netprinter" "git.rosy.net.cn/jx-callback/business/model" "git.rosy.net.cn/jx-callback/business/model/dao" + "git.rosy.net.cn/jx-callback/globals" + "net/http" + "strings" ) // 美团回调接口 -func OnCallbackMsg(msg *mtwmapi.CallbackMsg) (response *mtwmapi.CallbackResponse) { +func OnCallbackMsg(msg *mtwmapi.CallbackMsg, msgType string) (response *mtwmapi.CallbackResponse) { // 获取平台门店id - //store, err := dao.GetStoreDetailByVendorStoreID(dao.GetDB(), GetVendorStoreIDFromMsg(msg), model.VendorIDMTWM, GetVendorAppIdFromMsg(msg)) + //_, err := dao.GetStoreDetailByVendorStoreID(dao.GetDB(), GetVendorStoreIDFromMsg(msg), model.VendorIDMTWM, GetVendorAppIdFromMsg(msg)) //if err != nil && strings.Contains(err.Error(), "no row found") { - // + // forwardOrderToGy(msg, msgType) + // return mtwmapi.SuccessResponse //} if CurPurchaseHandler != nil { if msg.Cmd == mtwmapi.MsgTypeStoreStatusChanged || msg.Cmd == mtwmapi.MsgTypeStoreAuditStatusChanged { @@ -60,27 +64,54 @@ func GetVendorAppIdFromMsg(msg *mtwmapi.CallbackMsg) string { return msg.FormData.Get(mtwmapi.KeyAppID) } -// -//func forwardOrderToGy(msg *mtwmapi.CallbackMsg) { -// cl := http.Client{} -// params := make(map[string]interface{}) -// params["mt_peisong_id"] = msg.MtPeisongID -// params["courier_name"] = msg.CourierName -// params["delivery_id"] = msg.DeliveryID -// params["appkey"] = msg.AppKey -// params["order_id"] = msg.OrderID -// params["courier_phone"] = msg.CourierPhone -// params["status"] = msg.Status -// params["timestamp"] = msg.Timestamp -// params["cancel_reason_id"] = msg.CancelReasonId -// params["cancel_reason"] = msg.CancelReason -// urls := utils.Map2URLValues(params) -// sign := signParams(urls) -// params["sign"] = sign -// request, err := http.NewRequest(http.MethodPost, "http://callback-jxgy.jxc4.com/mtps/status", strings.NewReader(utils.Map2URLValues(params).Encode())) -// if err != nil { -// return -// } -// request.Header.Set("Content-Type", "application/x-www-form-urlencoded; charset=UTF-8") -// cl.Do(request) -//} +func forwardOrderToGy(msg *mtwmapi.CallbackMsg, msgType string) { + cl := http.Client{} + callbackUrl := GetMsgCallBackUrl(msgType, msg.AppID) + request, err := http.NewRequest(http.MethodPost, "http://callback-jxgy.jxc4.com/mtwm/"+callbackUrl, strings.NewReader(msg.FormData.Encode())) + if err != nil { + return + } + request.Header.Set("Content-Type", "application/x-www-form-urlencoded; charset=UTF-8") + cl.Do(request) +} + +func GetMsgCallBackUrl(msgType, appId string) string { + interfaceUrl := "" + switch msgType { + case mtwmapi.MsgTypeWaybillStatus: + interfaceUrl = "/waybillStatus" + case mtwmapi.MsgTypeNewOrder: + interfaceUrl = "/newOrder" + case mtwmapi.MsgTypeOrderAccepted: + interfaceUrl = "/orderAccepted" + case mtwmapi.MsgTypeOrderFinished: + interfaceUrl = "/orderFinished" + case mtwmapi.MsgTypeOrderFinancial: + interfaceUrl = "/orderFinancial" + case mtwmapi.MsgTypeOrderCanceled: + interfaceUrl = "/orderCanceled" + case mtwmapi.MsgTypeUserUrgeOrder: + interfaceUrl = "/userUrgeOrder" + case mtwmapi.MsgTypePrivateNumberDowngrade: + interfaceUrl = "/numberDowngrade" + case mtwmapi.MsgTypeOrderModified: + interfaceUrl = "/orderModified" + case mtwmapi.MsgTypeOrderRefund: + interfaceUrl = "/orderRefund" + case mtwmapi.MsgTypeOrderPartialRefund: + interfaceUrl = "/orderPartialRefund" + case mtwmapi.MsgTypeOrderFinishedPickup: + interfaceUrl = "/orderFinishedPickup" + case mtwmapi.MsgTypeStoreStatusChanged: + interfaceUrl = "/storeStatusChanged" + case mtwmapi.MsgTypeStoreAuditStatusChanged: + interfaceUrl = "/storeAuditStatusChanged" + case mtwmapi.MsgTypeSkuDelete: + interfaceUrl = "/skuDelete" + case mtwmapi.MsgTypeStoreBind: + interfaceUrl = "/storeBind" + default: + globals.SugarLogger.Errorf("美团超市[app_id :=%s ,callbackUrl := %s ]回调推送到果园错误,回调地址不正确", appId, msgType) + } + return interfaceUrl +} diff --git a/business/partner/purchase/tiktok_store/store_sku2_utils.go b/business/partner/purchase/tiktok_store/store_sku2_utils.go index f37ccedde..b35fd7207 100644 --- a/business/partner/purchase/tiktok_store/store_sku2_utils.go +++ b/business/partner/purchase/tiktok_store/store_sku2_utils.go @@ -209,6 +209,9 @@ func (p *PurchaseHandler) createOrUpdateStoreSkus(ctx *jxcontext.Context, storeI storeSku.VendorSonSkuID = utils.Int2Str(storeSku.SkuID) // 还没同步子商品 failedList = putils.GetErrMsg2FailedSingleList(storeSku, errors.New("只创建了主商品,没创建子商品"), storeID, model.VendorChineseNames[model.VendorIDDD], syncType) } else if localThing[0].SyncStatus == model.ThingTypeSyncing { + if time.Now().Unix()-localThing[0].CreatedAt.Unix() > 300 { + dao.DeleteThingToTiktokMapList(model.VendorIDDD, localThing[0].VendorThingID, storeSku.SkuID) + } continue } else if localThing[0].SyncStatus == model.ThingTypeSyncSuccess { // 主商品存在,直接同步子商品 @@ -258,6 +261,7 @@ func (p *PurchaseHandler) createOrUpdateStoreSkus(ctx *jxcontext.Context, storeI } if (err != nil || childrenProductId == 0) && !strings.Contains(err.Error(), "2010001") { // 2010001:重复创建渠道商品,就去更新 + failedList = putils.GetErrMsg2FailedSingleList(storeSku, err, storeID, model.VendorChineseNames[model.VendorIDDD], syncType) continue } diff --git a/controllers/auth2.go b/controllers/auth2.go index ca91c579a..2b73a70ea 100644 --- a/controllers/auth2.go +++ b/controllers/auth2.go @@ -3,7 +3,6 @@ package controllers import ( "encoding/base64" "fmt" - "git.rosy.net.cn/jx-callback/globals" "net/http" "strings" @@ -225,14 +224,14 @@ func (c *Auth2Controller) WeixinMPOAuth2() { } } if params.Block != "" { - if moblie := params.Block[strings.LastIndex(params.Block, "=")+1:]; moblie != "" { - if user, err := dao.GetUserByID(dao.GetDB(), "mobile", moblie); err == nil { + if mobile := params.Block[strings.LastIndex(params.Block, "=")+1:]; mobile != "" { + if user, err := dao.GetUserByID(dao.GetDB(), "mobile", mobile); err == nil { if user != nil { authInfo.AuthBindInfo.UserID = user.UserID authInfo.AuthBindInfo.AuthBind.UserID = user.UserID auth2.AddAuthBind(user, authInfo) } else { - return retVal, errCode, fmt.Errorf("未查询到用户!mobile :%v", moblie) + return retVal, errCode, fmt.Errorf("未查询到用户!mobile :%v", mobile) } } } @@ -241,8 +240,6 @@ func (c *Auth2Controller) WeixinMPOAuth2() { params.Block = params.Block[:strings.LastIndex(params.Block, "?")] } redirectURL = fmt.Sprintf("%s?info=%s", params.Block, base64.StdEncoding.EncodeToString(utils.MustMarshal(callResult))) - globals.SugarLogger.Debugf("===redirectURL=== %s", redirectURL) - globals.SugarLogger.Debugf("===retVal=== %s", utils.Format4Output(retVal, false)) return retVal, model.ErrorCodeIgnore, err }) c.Redirect(redirectURL, http.StatusTemporaryRedirect) diff --git a/controllers/mtwm_callback.go b/controllers/mtwm_callback.go index c498901aa..c505227cc 100644 --- a/controllers/mtwm_callback.go +++ b/controllers/mtwm_callback.go @@ -15,7 +15,7 @@ func (c *MtwmController) onCallbackMsg(msgType string) { c.Data["json"] = mtwmapi.Err2CallbackResponse(nil, "") msg, callbackResponse := api.MtwmAPI.GetCallbackMsg(c.Ctx.Request) if callbackResponse == nil { - callbackResponse = mtwm.OnCallbackMsg(msg) + callbackResponse = mtwm.OnCallbackMsg(msg, msgType) if callbackResponse == nil { callbackResponse = mtwmapi.Err2CallbackResponse(nil, "") }