This commit is contained in:
苏尹岚
2020-12-01 16:52:53 +08:00
parent 017ba5966a
commit 43186f5b12
3 changed files with 68 additions and 26 deletions

View File

@@ -476,7 +476,7 @@ func (c *OrderManager) updateOrderSkuOtherInfo(order *model.GoodsOrder, db *dao.
} }
if len(vendorSkuIDs) > 0 { if len(vendorSkuIDs) > 0 {
var vendorStoreID string var vendorStoreID string
if order.VendorID == model.VendorIDJDShop { if order.VendorID == model.VendorIDJDShop && order.VendorOrgCode == "1" {
vendorStoreID = model.JdShopMainVendorStoreID vendorStoreID = model.JdShopMainVendorStoreID
} else { } else {
vendorStoreID = order.VendorStoreID vendorStoreID = order.VendorStoreID
@@ -1882,10 +1882,10 @@ func RefreshJdsOrderConsigneeInfo(ctx *jxcontext.Context, vendorOrderID string)
if jdsOrder == nil { if jdsOrder == nil {
return fmt.Errorf("未查询到对应的京东商城订单!") return fmt.Errorf("未查询到对应的京东商城订单!")
} }
order.ConsigneeAddress = jdshop.Decrypt(jdsOrder.ConsigneeInfo.FullAddress) order.ConsigneeAddress = jdshop.Decrypt(jdsOrder.ConsigneeInfo.FullAddress, order.VendorOrgCode)
order.ConsigneeName = jdshop.Decrypt(jdsOrder.ConsigneeInfo.Fullname) order.ConsigneeName = jdshop.Decrypt(jdsOrder.ConsigneeInfo.Fullname, order.VendorOrgCode)
order.ConsigneeMobile = jdshop.Decrypt(jdsOrder.ConsigneeInfo.Mobile) order.ConsigneeMobile = jdshop.Decrypt(jdsOrder.ConsigneeInfo.Mobile, order.VendorOrgCode)
order.ConsigneeMobile2 = jdshop.Decrypt(jdsOrder.ConsigneeInfo.Telephone) order.ConsigneeMobile2 = jdshop.Decrypt(jdsOrder.ConsigneeInfo.Telephone, order.VendorOrgCode)
order.BuyerComment = jdsOrder.OrderRemark order.BuyerComment = jdsOrder.OrderRemark
if order.ConsigneeAddress != "" { if order.ConsigneeAddress != "" {
lng, lat, _ := api.AutonaviAPI.GetCoordinateFromAddress(order.ConsigneeAddress, "") lng, lat, _ := api.AutonaviAPI.GetCoordinateFromAddress(order.ConsigneeAddress, "")

View File

@@ -101,8 +101,8 @@ func result2Orders(msg *jdshopapi.CallBackResult) (order *model.GoodsOrder, err
PickDeadline: utils.DefaultTimeValue, PickDeadline: utils.DefaultTimeValue,
OriginalData: string(utils.MustMarshal(msg)), OriginalData: string(utils.MustMarshal(msg)),
OrderCreatedAt: utils.Str2Time(msg.OrderStartTime), OrderCreatedAt: utils.Str2Time(msg.OrderStartTime),
ConsigneeAddress: Decrypt(msg.ConsigneeInfo.FullAddress), ConsigneeAddress: Decrypt(msg.ConsigneeInfo.FullAddress, msg.VendorOrgCode),
ConsigneeName: Decrypt(msg.ConsigneeInfo.Fullname), ConsigneeName: Decrypt(msg.ConsigneeInfo.Fullname, msg.VendorOrgCode),
// ConsigneeMobile: Decrypt(msg.ConsigneeInfo.Mobile), // ConsigneeMobile: Decrypt(msg.ConsigneeInfo.Mobile),
// ConsigneeMobile2: Decrypt(msg.ConsigneeInfo.Telephone), // ConsigneeMobile2: Decrypt(msg.ConsigneeInfo.Telephone),
ActualPayPrice: jxutils.StandardPrice2Int(utils.Str2Float64(msg.OrderPayment)), ActualPayPrice: jxutils.StandardPrice2Int(utils.Str2Float64(msg.OrderPayment)),
@@ -114,12 +114,12 @@ func result2Orders(msg *jdshopapi.CallBackResult) (order *model.GoodsOrder, err
VendorOrgCode: msg.VendorOrgCode, VendorOrgCode: msg.VendorOrgCode,
} }
if len(msg.ConsigneeInfo.Mobile) != 11 { if len(msg.ConsigneeInfo.Mobile) != 11 {
order.ConsigneeMobile = Decrypt(msg.ConsigneeInfo.Mobile) order.ConsigneeMobile = Decrypt(msg.ConsigneeInfo.Mobile, msg.VendorOrgCode)
} else { } else {
order.ConsigneeMobile = msg.ConsigneeInfo.Mobile order.ConsigneeMobile = msg.ConsigneeInfo.Mobile
} }
if len(msg.ConsigneeInfo.Telephone) != 11 { if len(msg.ConsigneeInfo.Telephone) != 11 {
order.ConsigneeMobile2 = Decrypt(msg.ConsigneeInfo.Telephone) order.ConsigneeMobile2 = Decrypt(msg.ConsigneeInfo.Telephone, msg.VendorOrgCode)
} else { } else {
order.ConsigneeMobile2 = msg.ConsigneeInfo.Telephone order.ConsigneeMobile2 = msg.ConsigneeInfo.Telephone
} }
@@ -248,6 +248,7 @@ func result2Orders(msg *jdshopapi.CallBackResult) (order *model.GoodsOrder, err
return nil, err return nil, err
} }
if msg.IDSopShipmenttype == jdshopapi.IdSopShipmenttypeTC { if msg.IDSopShipmenttype == jdshopapi.IdSopShipmenttypeTC {
if msg.VendorOrgCode == "1" {
if time2, err := getAPI(msg.VendorOrgCode).GetOrderExtInfoByOrderId(order.VendorOrderID2); err == nil { if time2, err := getAPI(msg.VendorOrgCode).GetOrderExtInfoByOrderId(order.VendorOrderID2); err == nil {
order.BusinessType = model.BusinessTypeDingshida order.BusinessType = model.BusinessTypeDingshida
if time2 == "" { if time2 == "" {
@@ -256,6 +257,20 @@ func result2Orders(msg *jdshopapi.CallBackResult) (order *model.GoodsOrder, err
order.ExpectedDeliveredTime = utils.Str2Time(time2) 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 {
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)
}
}
}
}
} }
setJdsOrderSeq(order) setJdsOrderSeq(order)
if order.OrderType == model.OrderTypeAddressErr { if order.OrderType == model.OrderTypeAddressErr {
@@ -271,10 +286,17 @@ func result2Orders(msg *jdshopapi.CallBackResult) (order *model.GoodsOrder, err
} }
func buildOrderTo102919(order *model.GoodsOrder) { func buildOrderTo102919(order *model.GoodsOrder) {
if order.VendorOrgCode == "1" {
order.StoreID = 102919 order.StoreID = 102919
order.JxStoreID = 102919 order.JxStoreID = 102919
order.StoreName = "商城模板(成都发货)" order.StoreName = "商城模板(成都发货)"
order.VendorStoreID = model.JdShopMainVendorStoreID order.VendorStoreID = model.JdShopMainVendorStoreID
} else {
order.StoreID = model.JdShopMainStoreID2
order.JxStoreID = model.JdShopMainStoreID2
order.StoreName = "商城模板店2"
order.VendorStoreID = model.JdShopMainVendorStoreID2
}
order.DeliveryFlag = model.OrderDeliveryFlagMaskScheduleDisabled order.DeliveryFlag = model.OrderDeliveryFlagMaskScheduleDisabled
} }
@@ -294,12 +316,12 @@ func setJdsOrderSeq(order *model.GoodsOrder) (err error) {
return err return err
} }
func Decrypt(p string) (result string) { func Decrypt(p, vendorOrgCode string) (result string) {
if p == "" { if p == "" {
return "" return ""
} }
data, _ := base64.StdEncoding.DecodeString(strings.ReplaceAll(p, " ", "+")) 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) globals.SugarLogger.Debugf("Decrypt keys : %v", key)
data2, _ := base64.StdEncoding.DecodeString(key) data2, _ := base64.StdEncoding.DecodeString(key)
b := bytes.NewBuffer(data) b := bytes.NewBuffer(data)

View File

@@ -12,6 +12,7 @@ import (
var ( var (
KeyList []*Key KeyList []*Key
KeyList2 []*Key
) )
type Key struct { type Key struct {
@@ -36,16 +37,35 @@ func InitKey() {
err = json.Unmarshal(data, &vv) err = json.Unmarshal(data, &vv)
KeyList = append(KeyList, 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..") globals.SugarLogger.Debugf("jdshop key refreshed..")
} }
func GetKey(keySign string) (key string) { func GetKey(keySign, vendorOrgCode string) (key string) {
if vendorOrgCode == "1" {
for _, v := range KeyList { for _, v := range KeyList {
data, _ := base64.StdEncoding.DecodeString(v.ID) data, _ := base64.StdEncoding.DecodeString(v.ID)
if keySign == hex.EncodeToString(data) { if keySign == hex.EncodeToString(data) {
return v.KeyString 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..") globals.SugarLogger.Debugf("no key can equal..")
return key return key
} }