diff --git a/business/jxcallback/orderman/order.go b/business/jxcallback/orderman/order.go index 1e3cb61ea..05f634ac3 100644 --- a/business/jxcallback/orderman/order.go +++ b/business/jxcallback/orderman/order.go @@ -476,7 +476,7 @@ func (c *OrderManager) updateOrderSkuOtherInfo(order *model.GoodsOrder, db *dao. } if len(vendorSkuIDs) > 0 { var vendorStoreID string - if order.VendorID == model.VendorIDJDShop { + if order.VendorID == model.VendorIDJDShop && order.VendorOrgCode == "1" { vendorStoreID = model.JdShopMainVendorStoreID } else { vendorStoreID = order.VendorStoreID @@ -1882,10 +1882,10 @@ func RefreshJdsOrderConsigneeInfo(ctx *jxcontext.Context, vendorOrderID string) if jdsOrder == nil { return fmt.Errorf("未查询到对应的京东商城订单!") } - order.ConsigneeAddress = jdshop.Decrypt(jdsOrder.ConsigneeInfo.FullAddress) - order.ConsigneeName = jdshop.Decrypt(jdsOrder.ConsigneeInfo.Fullname) - order.ConsigneeMobile = jdshop.Decrypt(jdsOrder.ConsigneeInfo.Mobile) - order.ConsigneeMobile2 = jdshop.Decrypt(jdsOrder.ConsigneeInfo.Telephone) + order.ConsigneeAddress = jdshop.Decrypt(jdsOrder.ConsigneeInfo.FullAddress, order.VendorOrgCode) + order.ConsigneeName = jdshop.Decrypt(jdsOrder.ConsigneeInfo.Fullname, order.VendorOrgCode) + order.ConsigneeMobile = jdshop.Decrypt(jdsOrder.ConsigneeInfo.Mobile, order.VendorOrgCode) + order.ConsigneeMobile2 = jdshop.Decrypt(jdsOrder.ConsigneeInfo.Telephone, order.VendorOrgCode) order.BuyerComment = jdsOrder.OrderRemark if order.ConsigneeAddress != "" { lng, lat, _ := api.AutonaviAPI.GetCoordinateFromAddress(order.ConsigneeAddress, "") diff --git a/business/partner/purchase/jdshop/callback.go b/business/partner/purchase/jdshop/callback.go index af3d77072..971f1d7a7 100644 --- a/business/partner/purchase/jdshop/callback.go +++ b/business/partner/purchase/jdshop/callback.go @@ -101,8 +101,8 @@ func result2Orders(msg *jdshopapi.CallBackResult) (order *model.GoodsOrder, err PickDeadline: utils.DefaultTimeValue, OriginalData: string(utils.MustMarshal(msg)), OrderCreatedAt: utils.Str2Time(msg.OrderStartTime), - ConsigneeAddress: Decrypt(msg.ConsigneeInfo.FullAddress), - ConsigneeName: Decrypt(msg.ConsigneeInfo.Fullname), + ConsigneeAddress: Decrypt(msg.ConsigneeInfo.FullAddress, msg.VendorOrgCode), + ConsigneeName: Decrypt(msg.ConsigneeInfo.Fullname, msg.VendorOrgCode), // ConsigneeMobile: Decrypt(msg.ConsigneeInfo.Mobile), // ConsigneeMobile2: Decrypt(msg.ConsigneeInfo.Telephone), ActualPayPrice: jxutils.StandardPrice2Int(utils.Str2Float64(msg.OrderPayment)), @@ -114,12 +114,12 @@ func result2Orders(msg *jdshopapi.CallBackResult) (order *model.GoodsOrder, err VendorOrgCode: msg.VendorOrgCode, } if len(msg.ConsigneeInfo.Mobile) != 11 { - order.ConsigneeMobile = Decrypt(msg.ConsigneeInfo.Mobile) + order.ConsigneeMobile = Decrypt(msg.ConsigneeInfo.Mobile, msg.VendorOrgCode) } else { order.ConsigneeMobile = msg.ConsigneeInfo.Mobile } if len(msg.ConsigneeInfo.Telephone) != 11 { - order.ConsigneeMobile2 = Decrypt(msg.ConsigneeInfo.Telephone) + order.ConsigneeMobile2 = Decrypt(msg.ConsigneeInfo.Telephone, msg.VendorOrgCode) } else { order.ConsigneeMobile2 = msg.ConsigneeInfo.Telephone } @@ -248,12 +248,27 @@ func result2Orders(msg *jdshopapi.CallBackResult) (order *model.GoodsOrder, err return nil, err } if msg.IDSopShipmenttype == jdshopapi.IdSopShipmenttypeTC { - if time2, err := getAPI(msg.VendorOrgCode).GetOrderExtInfoByOrderId(order.VendorOrderID2); err == nil { - order.BusinessType = model.BusinessTypeDingshida - if time2 == "" { - order.ExpectedDeliveredTime = order.OrderCreatedAt.Add(time.Hour) + if msg.VendorOrgCode == "1" { + if time2, err := getAPI(msg.VendorOrgCode).GetOrderExtInfoByOrderId(order.VendorOrderID2); err == nil { + order.BusinessType = model.BusinessTypeDingshida + if time2 == "" { + order.ExpectedDeliveredTime = order.OrderCreatedAt.Add(time.Hour) + } else { + order.ExpectedDeliveredTime = utils.Str2Time(time2) + } + } + } else { + order.BusinessType = model.BusinessTypeImmediate + if msg.OrderExt != nil && msg.OrderExt.O2ODeliveryTime != "" { + order.ExpectedDeliveredTime = utils.Str2Time(msg.OrderExt.O2ODeliveryTime) } else { - order.ExpectedDeliveredTime = utils.Str2Time(time2) + if time2, err := getAPI(msg.VendorOrgCode).GetOrderExtInfoByOrderId(order.VendorOrderID2); err == nil { + if time2 == "" { + order.ExpectedDeliveredTime = order.OrderCreatedAt.Add(time.Hour) + } else { + order.ExpectedDeliveredTime = utils.Str2Time(time2) + } + } } } } @@ -271,10 +286,17 @@ func result2Orders(msg *jdshopapi.CallBackResult) (order *model.GoodsOrder, err } func buildOrderTo102919(order *model.GoodsOrder) { - order.StoreID = 102919 - order.JxStoreID = 102919 - order.StoreName = "商城模板(成都发货)" - order.VendorStoreID = model.JdShopMainVendorStoreID + if order.VendorOrgCode == "1" { + order.StoreID = 102919 + order.JxStoreID = 102919 + order.StoreName = "商城模板(成都发货)" + order.VendorStoreID = model.JdShopMainVendorStoreID + } else { + order.StoreID = model.JdShopMainStoreID2 + order.JxStoreID = model.JdShopMainStoreID2 + order.StoreName = "商城模板店2" + order.VendorStoreID = model.JdShopMainVendorStoreID2 + } order.DeliveryFlag = model.OrderDeliveryFlagMaskScheduleDisabled } @@ -294,12 +316,12 @@ func setJdsOrderSeq(order *model.GoodsOrder) (err error) { return err } -func Decrypt(p string) (result string) { +func Decrypt(p, vendorOrgCode string) (result string) { if p == "" { return "" } data, _ := base64.StdEncoding.DecodeString(strings.ReplaceAll(p, " ", "+")) - key := GetKey(hex.EncodeToString(data)[4:36]) + key := GetKey(hex.EncodeToString(data)[4:36], vendorOrgCode) globals.SugarLogger.Debugf("Decrypt keys : %v", key) data2, _ := base64.StdEncoding.DecodeString(key) b := bytes.NewBuffer(data) diff --git a/business/partner/purchase/jdshop/key.go b/business/partner/purchase/jdshop/key.go index 2ecee39f7..3c6197512 100644 --- a/business/partner/purchase/jdshop/key.go +++ b/business/partner/purchase/jdshop/key.go @@ -11,7 +11,8 @@ import ( ) var ( - KeyList []*Key + KeyList []*Key + KeyList2 []*Key ) type Key struct { @@ -36,14 +37,33 @@ func InitKey() { err = json.Unmarshal(data, &vv) KeyList = append(KeyList, vv) } + keyResult2, err := api.JdShop2API.KeyGet() + if err != nil { + return + } + for _, v := range keyResult2.Response.ServiceKeyList[0].Keys { + data, _ := json.Marshal(v) + vv := &Key{} + err = json.Unmarshal(data, &vv) + KeyList2 = append(KeyList2, vv) + } globals.SugarLogger.Debugf("jdshop key refreshed..") } -func GetKey(keySign string) (key string) { - for _, v := range KeyList { - data, _ := base64.StdEncoding.DecodeString(v.ID) - if keySign == hex.EncodeToString(data) { - return v.KeyString +func GetKey(keySign, vendorOrgCode string) (key string) { + if vendorOrgCode == "1" { + for _, v := range KeyList { + data, _ := base64.StdEncoding.DecodeString(v.ID) + if keySign == hex.EncodeToString(data) { + return v.KeyString + } + } + } else { + for _, v := range KeyList2 { + data, _ := base64.StdEncoding.DecodeString(v.ID) + if keySign == hex.EncodeToString(data) { + return v.KeyString + } } } globals.SugarLogger.Debugf("no key can equal..")