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 {
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, "")

View File

@@ -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)

View File

@@ -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..")