From 7aad8398cf80b7f526e75ec7ebf5ce462e952b08 Mon Sep 17 00:00:00 2001 From: gazebo Date: Fri, 13 Dec 2019 17:28:04 +0800 Subject: [PATCH 01/11] jd.isSkuMustHaveUpc --- business/partner/purchase/jd/sku2.go | 102 ++++++++++++++++++++++++++- 1 file changed, 100 insertions(+), 2 deletions(-) diff --git a/business/partner/purchase/jd/sku2.go b/business/partner/purchase/jd/sku2.go index 1376a23f6..1418da194 100644 --- a/business/partner/purchase/jd/sku2.go +++ b/business/partner/purchase/jd/sku2.go @@ -167,8 +167,8 @@ func skuInfo2Param(ctx *jxcontext.Context, sku *dao.StoreSkuSyncInfo) (param *jd Upc: sku.Upc, Images: jxutils.BatchString2Slice(sku.Img, sku.Img2), } - // 不为份的SKU,如果没有设置upc,自动生成一个假的 - if sku.Unit != model.SpecialUnit && param.Upc == "" { + // 京东强制要求upc的商品,如果没有设置upc,自动生成一个假的 + if param.Upc == "" && isSkuMustHaveUpc(sku) { param.Upc = jxutils.GenFakeUPC(sku.SkuID) } if param.CategoryID == 0 { @@ -362,3 +362,101 @@ func jxStatus2jdStatus(jxStatus int) (jdStatus int) { } return jdStatus } + +func isSkuMustHaveUpc(sku *dao.StoreSkuSyncInfo) bool { + return sku.Unit != model.SpecialUnit || !upcLessMap[sku.VendorVendorCatID] +} + +var ( + upcLessMap = map[int64]bool{ + 20250: true, + 20252: true, + 20258: true, + 20259: true, + 20261: true, + 20262: true, + 20263: true, + 20264: true, + 20265: true, + 20266: true, + 20267: true, + 22822: true, + 20269: true, + 20270: true, + 20271: true, + 20272: true, + 20273: true, + 20275: true, + 20276: true, + 20277: true, + 20278: true, + 20279: true, + 20281: true, + 20282: true, + 20283: true, + 20285: true, + 20286: true, + 20287: true, + 22821: true, + 20289: true, + 20290: true, + 23018: true, + 20354: true, + 20355: true, + 20357: true, + 20359: true, + 23019: true, + 20294: true, + 20295: true, + 20296: true, + 20297: true, + 20298: true, + 20299: true, + 20300: true, + 20302: true, + 20303: true, + 20304: true, + 22840: true, + 22841: true, + 20317: true, + 20320: true, + 20321: true, + 20323: true, + 20325: true, + 20326: true, + 20328: true, + 20329: true, + 20331: true, + 20335: true, + 20337: true, + 20338: true, + 20339: true, + 22842: true, + 22843: true, + 23020: true, + 20309: true, + 20310: true, + 20311: true, + 20312: true, + 20313: true, + 20314: true, + 20315: true, + 22410: true, + 23050: true, + 20319: true, + 20322: true, + 20330: true, + 20332: true, + 20334: true, + 20336: true, + 20340: true, + 20342: true, + 23049: true, + 20356: true, + 20358: true, + 20360: true, + 20361: true, + 20362: true, + 20364: true, + } +) From a5763899939253c4f92bacd1bb8c33f7de4c90f0 Mon Sep 17 00:00:00 2001 From: gazebo Date: Fri, 13 Dec 2019 17:34:15 +0800 Subject: [PATCH 02/11] up --- business/partner/purchase/jd/sku2.go | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/business/partner/purchase/jd/sku2.go b/business/partner/purchase/jd/sku2.go index 1418da194..87679c2d6 100644 --- a/business/partner/purchase/jd/sku2.go +++ b/business/partner/purchase/jd/sku2.go @@ -167,13 +167,13 @@ func skuInfo2Param(ctx *jxcontext.Context, sku *dao.StoreSkuSyncInfo) (param *jd Upc: sku.Upc, Images: jxutils.BatchString2Slice(sku.Img, sku.Img2), } - // 京东强制要求upc的商品,如果没有设置upc,自动生成一个假的 - if param.Upc == "" && isSkuMustHaveUpc(sku) { - param.Upc = jxutils.GenFakeUPC(sku.SkuID) - } if param.CategoryID == 0 { param.CategoryID = int64(getDefJdCategoryID()) } + // 京东强制要求upc的商品,如果没有设置upc,自动生成一个假的 + if param.Upc == "" && isSkuMustHaveUpc(sku.Unit, param.CategoryID) { + param.Upc = jxutils.GenFakeUPC(sku.SkuID) + } if sku.IsGlobal == 0 && len(sku.SellCities) > 0 { param.SellCities = utils.StringSlice2Int64(sku.SellCities) } @@ -363,8 +363,8 @@ func jxStatus2jdStatus(jxStatus int) (jdStatus int) { return jdStatus } -func isSkuMustHaveUpc(sku *dao.StoreSkuSyncInfo) bool { - return sku.Unit != model.SpecialUnit || !upcLessMap[sku.VendorVendorCatID] +func isSkuMustHaveUpc(unit string, vendorVendorCatID int64) bool { + return unit != model.SpecialUnit || !upcLessMap[vendorVendorCatID] } var ( From f7418d258172484ff6ff9c24f5a918296c9239ca Mon Sep 17 00:00:00 2001 From: gazebo Date: Fri, 13 Dec 2019 17:58:29 +0800 Subject: [PATCH 03/11] =?UTF-8?q?=E9=83=A8=E7=BD=B2=E6=97=B6=EF=BC=8C?= =?UTF-8?q?=E4=B8=8D=E5=86=8D=E5=A4=87=E4=BB=BD=E5=8F=AF=E6=89=A7=E8=A1=8C?= =?UTF-8?q?=E6=96=87=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- deploy/ansible.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/deploy/ansible.yml b/deploy/ansible.yml index cc372ac79..f9b033a69 100644 --- a/deploy/ansible.yml +++ b/deploy/ansible.yml @@ -9,8 +9,8 @@ owner: ubuntu group: ubuntu mode: 0777 - - name: cleanup previous backup files - shell: cd {{ deploy_dir }} && ./cleanup.sh + # - name: cleanup previous backup files + # shell: cd {{ deploy_dir }} && ./cleanup.sh - name: copy execute file to dest copy: src: ../jx-callback @@ -18,7 +18,7 @@ owner: ubuntu group: ubuntu mode: 0755 - backup: yes + backup: no - name: copy conf file to dest copy: src: ../conf/ From b428c0236e74b043e4141db7a228837c349d4573 Mon Sep 17 00:00:00 2001 From: gazebo Date: Fri, 13 Dec 2019 18:39:54 +0800 Subject: [PATCH 04/11] =?UTF-8?q?GenFakeUPC=E8=80=83=E8=99=91=E6=A0=A1?= =?UTF-8?q?=E9=AA=8C=E8=A7=84=E5=88=99?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/jxutils/jxutils.go | 23 ++++++++++++++++++++++- business/jxutils/jxutils_test.go | 12 +++++++++--- 2 files changed, 31 insertions(+), 4 deletions(-) diff --git a/business/jxutils/jxutils.go b/business/jxutils/jxutils.go index e6662dd29..65f23bdc7 100644 --- a/business/jxutils/jxutils.go +++ b/business/jxutils/jxutils.go @@ -409,8 +409,29 @@ func SplitSkuName(skuName string) (prefix, name, comment, specUnit, unit string, return prefix, name, comment, specUnit, unit, specQuality } +// https://my.oschina.net/hyller/blog/700414 +func CalUpcCheckSum(upc12 int64) (checkSum int) { + var sum [2]int + for i := 0; i < 12; i++ { + base := int64(math.Pow10(i)) + sum[i%2] += int((upc12 / base) % 10) + } + sum[0] *= 3 + return (10 - (sum[0]+sum[1])%10) +} + +func IsUpcValid(upc string) bool { + if len(upc) != 13 { + return false + } + upcInt := utils.Str2Int64WithDefault(upc, 0) + checkSum := CalUpcCheckSum(upcInt / 10) + return int(utils.Str2Int64(upc[12:])) == checkSum +} + func GenFakeUPC(skuID int) string { - return fmt.Sprintf("%013d", int64(skuID)+6666000000000) + id := int64(skuID) + 666600000000 + return fmt.Sprintf("%012d%d", id, CalUpcCheckSum(id)) } func MakeValidationMapFromSlice(validValues []string, flag int) map[string]int { diff --git a/business/jxutils/jxutils_test.go b/business/jxutils/jxutils_test.go index f1bab58e6..d6ecd5e26 100644 --- a/business/jxutils/jxutils_test.go +++ b/business/jxutils/jxutils_test.go @@ -288,11 +288,11 @@ func TestGetOneEmailFromStr(t *testing.T) { func TestGenFakeUPC(t *testing.T) { for _, v := range [][]string{ []string{ - "6666000000123", - "123", + "6666000298034", + "29803", }, []string{ - "6666007654321", + "6666076543212", "7654321", }, } { @@ -300,4 +300,10 @@ func TestGenFakeUPC(t *testing.T) { t.Errorf("%s failed, result:%s, expect:%s", v[1], str, v[0]) } } + if !IsUpcValid("6666076543212") { + t.Fatal("wrong1") + } + if IsUpcValid("6666076543210") { + t.Fatal("wrong2") + } } From fb7e3566ea965bfa244a9ed4775f61b9902a8635 Mon Sep 17 00:00:00 2001 From: gazebo Date: Fri, 13 Dec 2019 20:00:53 +0800 Subject: [PATCH 05/11] =?UTF-8?q?=E4=BF=AE=E5=A4=8DCalUpcCheckSum=E7=BB=93?= =?UTF-8?q?=E6=9E=9C=E4=B8=BA10=E7=9A=84bug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/jxutils/jxutils.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/business/jxutils/jxutils.go b/business/jxutils/jxutils.go index 65f23bdc7..02d8816ae 100644 --- a/business/jxutils/jxutils.go +++ b/business/jxutils/jxutils.go @@ -417,7 +417,7 @@ func CalUpcCheckSum(upc12 int64) (checkSum int) { sum[i%2] += int((upc12 / base) % 10) } sum[0] *= 3 - return (10 - (sum[0]+sum[1])%10) + return (10 - (sum[0]+sum[1])%10) % 10 } func IsUpcValid(upc string) bool { From 99efedfd922e1f7312a512942099d5b2f80a3122 Mon Sep 17 00:00:00 2001 From: gazebo Date: Fri, 13 Dec 2019 21:24:27 +0800 Subject: [PATCH 06/11] =?UTF-8?q?=E5=A4=9A=E9=97=A8=E5=BA=97=E5=B9=B3?= =?UTF-8?q?=E5=8F=B0=E5=90=8C=E6=AD=A5=E9=97=A8=E5=BA=97=E5=95=86=E5=93=81?= =?UTF-8?q?=E6=97=B6=EF=BC=8C=E5=A4=84=E7=90=86=E5=95=86=E5=93=81=E5=BA=93?= =?UTF-8?q?=E6=B2=A1=E6=9C=89=E5=88=9B=E5=BB=BA=E7=9A=84=E6=83=85=E5=86=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/jxstore/cms/sync_store_sku.go | 22 +++++++++++++++------- 1 file changed, 15 insertions(+), 7 deletions(-) diff --git a/business/jxstore/cms/sync_store_sku.go b/business/jxstore/cms/sync_store_sku.go index ef718fc4d..cca96846f 100644 --- a/business/jxstore/cms/sync_store_sku.go +++ b/business/jxstore/cms/sync_store_sku.go @@ -355,14 +355,22 @@ func syncStoreSkuNew(ctx *jxcontext.Context, parentTask tasksch.ITask, isFull bo } else if model.IsSyncStatusNew(sku.SkuSyncStatus) { calVendorPrice4StoreSku(sku, storeDetail.PricePercentagePackObj, int(storeDetail.PricePercentage)) if singleStoreHandler == nil { - sku.SkuSyncStatus |= model.SyncFlagSaleMask | model.SyncFlagPriceMask - bareSku = storeSkuSyncInfo2Bare(sku) - stockList = append(stockList, bareSku) - priceList = append(priceList, bareSku) - if sku.MergedStatus == model.SkuStatusNormal { - onlineList = append(onlineList, bareSku) + if dao.IsVendorThingIDEmpty(sku.VendorSkuID) { + err = fmt.Errorf("门店:%d,修改没有创建的商品:%d", storeID, sku.SkuID) + if parentTask == nil { + return err + } + parentTask.AddBatchErr(err) } else { - offlineList = append(offlineList, bareSku) + sku.SkuSyncStatus |= model.SyncFlagSaleMask | model.SyncFlagPriceMask + bareSku = storeSkuSyncInfo2Bare(sku) + stockList = append(stockList, bareSku) + priceList = append(priceList, bareSku) + if sku.MergedStatus == model.SkuStatusNormal { + onlineList = append(onlineList, bareSku) + } else { + offlineList = append(offlineList, bareSku) + } } } else { if sku.MergedStatus == model.SkuStatusNormal { From 572fc64d7d7e396a0869e87dcb5c4e14ca6f5b0a Mon Sep 17 00:00:00 2001 From: gazebo Date: Fri, 13 Dec 2019 21:36:38 +0800 Subject: [PATCH 07/11] =?UTF-8?q?=E5=A4=9A=E5=B9=B3=E5=8F=B0=E5=95=86?= =?UTF-8?q?=E5=93=81=E5=BA=93=E6=B2=A1=E6=9C=89=E6=AD=A3=E5=B8=B8=E5=88=9B?= =?UTF-8?q?=E5=BB=BA=EF=BC=8C=E7=9B=B4=E6=8E=A5=E8=B7=B3=E8=BF=87?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/jxstore/cms/sync_store_sku.go | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/business/jxstore/cms/sync_store_sku.go b/business/jxstore/cms/sync_store_sku.go index cca96846f..b42377490 100644 --- a/business/jxstore/cms/sync_store_sku.go +++ b/business/jxstore/cms/sync_store_sku.go @@ -356,11 +356,7 @@ func syncStoreSkuNew(ctx *jxcontext.Context, parentTask tasksch.ITask, isFull bo calVendorPrice4StoreSku(sku, storeDetail.PricePercentagePackObj, int(storeDetail.PricePercentage)) if singleStoreHandler == nil { if dao.IsVendorThingIDEmpty(sku.VendorSkuID) { - err = fmt.Errorf("门店:%d,修改没有创建的商品:%d", storeID, sku.SkuID) - if parentTask == nil { - return err - } - parentTask.AddBatchErr(err) + // todo 多平台商品库没有正常创建,直接跳过 } else { sku.SkuSyncStatus |= model.SyncFlagSaleMask | model.SyncFlagPriceMask bareSku = storeSkuSyncInfo2Bare(sku) From 0ea872ab39900c748f52c5a25223e516b64e675b Mon Sep 17 00:00:00 2001 From: gazebo Date: Fri, 13 Dec 2019 22:23:17 +0800 Subject: [PATCH 08/11] =?UTF-8?q?newGetFullStoreSkus=E8=B0=83=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/model/dao/store_sku.go | 26 +++++++++++++------------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/business/model/dao/store_sku.go b/business/model/dao/store_sku.go index bef89ed5c..fa160da6b 100644 --- a/business/model/dao/store_sku.go +++ b/business/model/dao/store_sku.go @@ -351,7 +351,7 @@ func newGetStoreSkus2(db *DaoDB, vendorID, storeID int, skuIDs []int, mustDirty } else { sql += ` LEFT JOIN sku_category t5sku ON t5sku.id = t2.category_id - LEFT JOIN thing_map t2m ON t2m.thing_id = t1.sku_id AND t2m.vendor_org_code = t14.vendor_org_code AND t2m.thing_type = ? AND t2m.vendor_id = ? AND t2m.deleted_at = ? + JOIN thing_map t2m ON t2m.thing_id = t1.sku_id AND t2m.vendor_org_code = t14.vendor_org_code AND t2m.thing_type = ? AND t2m.vendor_id = ? AND t2m.deleted_at = ? LEFT JOIN thing_map t4m ON t4m.thing_id = t3.category_id AND t4m.vendor_org_code = t14.vendor_org_code AND t4m.thing_type = ? AND t4m.vendor_id = ? AND t4m.deleted_at = ? LEFT JOIN thing_map t5skum ON t5skum.thing_id = t5sku.id AND t5skum.vendor_org_code = t14.vendor_org_code AND t5skum.thing_type = ? AND t5skum.vendor_id = ? AND t5skum.deleted_at = ? ` @@ -504,8 +504,11 @@ func GetFullStoreSkus(db *DaoDB, vendorID, storeID int) (skus []*StoreSkuSyncInf func newGetFullStoreSkus(db *DaoDB, vendorID, storeID int) (skus []*StoreSkuSyncInfo, err error) { globals.SugarLogger.Debugf("GetFullStoreSkus, storeID:%d, vendorID:%d", storeID, vendorID) + // 对于多门店平台,商品库删除后,不需要操作门店商品,所以sku_name用JOIN, sku与sku_name也可以直接排除下架的 sql := ` - SELECT t1.id bind_id, t1.price, t1.unit_price, t1.status store_sku_status, + SELECT + sm.vendor_id, sm.vendor_org_code, + t1.id bind_id, t1.price, t1.unit_price, t1.status store_sku_status, t1.%s_sync_status sku_sync_status, t1.store_id, t1.deleted_at bind_deleted_at, t2.*, t2.id sku_id, t2m.vendor_thing_id vendor_sku_id, t3.id name_id, t3.prefix, t3.name, t3.unit, t3.upc, @@ -516,12 +519,12 @@ func newGetFullStoreSkus(db *DaoDB, vendorID, storeID int) (skus []*StoreSkuSync t4m.sync_status cat_sync_status, t4m.vendor_thing_id vendor_cat_id, t5skum.sync_status sku_cat_sync_status, t5skum.vendor_thing_id sku_vendor_cat_id FROM sku t2 - LEFT JOIN store_sku_bind t1 ON t1.sku_id = t2.id AND t1.store_id = ? AND t1.deleted_at = ? - LEFT JOIN store_map sm ON sm.store_id = t1.store_id AND sm.vendor_id = ? AND sm.deleted_at = ? - LEFT JOIN thing_map t2m ON t2m.thing_id = t2.id AND t2m.vendor_org_code = sm.vendor_org_code AND t2m.thing_type = ? AND t2m.vendor_id = ? AND t2m.deleted_at = ? JOIN sku_name t3 ON t2.name_id = t3.id AND t3.deleted_at = ? AND t3.status = ? JOIN sku_category t4 ON t3.category_id = t4.id AND t4.deleted_at = ? - LEFT JOIN thing_map t4m ON t4m.thing_id = t3.category_id AND t4m.vendor_org_code = sm.vendor_org_code AND t4m.thing_type = ? AND t4m.vendor_id = ? AND t4m.deleted_at = ? + JOIN store_map sm ON sm.vendor_id = ? AND sm.store_id = ? AND sm.deleted_at = ? + JOIN thing_map t2m ON t2m.thing_id = t2.id AND t2m.vendor_org_code = sm.vendor_org_code AND t2m.thing_type = ? AND t2m.vendor_id = ? AND t2m.deleted_at = ? + JOIN thing_map t4m ON t4m.thing_id = t3.category_id AND t4m.vendor_org_code = sm.vendor_org_code AND t4m.thing_type = ? AND t4m.vendor_id = ? AND t4m.deleted_at = ? + LEFT JOIN store_sku_bind t1 ON sm.store_id = t1.store_id AND t1.sku_id = t2.id AND t1.deleted_at = ? LEFT JOIN sku_category t5sku ON t2.category_id = t5sku.id LEFT JOIN thing_map t5skum ON t5skum.thing_id = t2.category_id AND t5skum.vendor_org_code = sm.vendor_org_code AND t5skum.thing_type = ? AND t5skum.vendor_id = ? AND t5skum.deleted_at = ? LEFT JOIN data_resource t11 ON t11.main_url = t3.img @@ -530,17 +533,14 @@ func newGetFullStoreSkus(db *DaoDB, vendorID, storeID int) (skus []*StoreSkuSync WHERE t2.deleted_at = ? AND t2.status = ? AND t2m.vendor_thing_id <> '' ORDER BY t1.price DESC` sqlParams := []interface{}{ - storeID, + utils.DefaultTimeValue, model.SkuStatusNormal, utils.DefaultTimeValue, - vendorID, utils.DefaultTimeValue, + vendorID, storeID, utils.DefaultTimeValue, model.ThingTypeSku, vendorID, utils.DefaultTimeValue, - utils.DefaultTimeValue, - model.SkuStatusNormal, - utils.DefaultTimeValue, - model.ThingTypeCategory, vendorID, utils.DefaultTimeValue, model.ThingTypeCategory, vendorID, utils.DefaultTimeValue, utils.DefaultTimeValue, - model.SkuStatusNormal, + model.ThingTypeCategory, vendorID, utils.DefaultTimeValue, + utils.DefaultTimeValue, model.SkuStatusNormal, } fieldPrefix := ConvertDBFieldPrefix(model.VendorNames[vendorID]) sql = fmt.Sprintf(sql, From f1a7440e3eb839a69233c119fe69c7dca5059b07 Mon Sep 17 00:00:00 2001 From: gazebo Date: Mon, 16 Dec 2019 09:21:25 +0800 Subject: [PATCH 09/11] debug AppKey2OrgCode --- business/model/dao/sku.go | 3 +++ business/partner/purchase/jd/jd.go | 5 ++++- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/business/model/dao/sku.go b/business/model/dao/sku.go index f49b9b3e6..137b98c1d 100644 --- a/business/model/dao/sku.go +++ b/business/model/dao/sku.go @@ -175,6 +175,9 @@ func SetSkuSyncStatus(db *DaoDB, vendorID int, skuIDs []int, syncStatus int) (nu return ExecuteSQL(db, sql, sqlParams...) } +// todo, GetSkuCategoryWithVendor与GetSkusWithVendor, +// 如果mustDirty为true,应该是要thing_map为基表,LEFT JOIN原始实体表,否则当原始实体记录在未同步前被物理删除后,无法真正同步 + // 多门店平台使用,当前只有京东 func GetSkuCategoryWithVendor(db *DaoDB, vendorIDs []int, appOrgCodes []string, parentCatID int, catIDs []int, mustDirty bool) (catList []*SkuStoreCatInfo, err error) { sql := ` diff --git a/business/partner/purchase/jd/jd.go b/business/partner/purchase/jd/jd.go index 580f56d95..035c16e50 100644 --- a/business/partner/purchase/jd/jd.go +++ b/business/partner/purchase/jd/jd.go @@ -24,7 +24,7 @@ func init() { func getAPI(appOrgCode string) (apiObj *jdapi.API) { if appOrgCode == "" { - globals.SugarLogger.Warnf("getAPI appOrgCode is empty") + // globals.SugarLogger.Warnf("getAPI appOrgCode is empty") } return partner.CurAPIManager.GetAPI(model.VendorIDJD, appOrgCode).(*jdapi.API) } @@ -42,6 +42,9 @@ func AppKey2OrgCode(appKey string) (vendorOrgCode string) { break } } + if vendorOrgCode == "" { + globals.SugarLogger.Warnf("AppKey2OrgCode appKey:%s get empty vendorOrgCode", appKey) + } return vendorOrgCode } From cd267503f804277154c823a5e2a31856c6eeffee Mon Sep 17 00:00:00 2001 From: gazebo Date: Mon, 16 Dec 2019 09:35:05 +0800 Subject: [PATCH 10/11] fk --- business/partner/purchase/jd/store.go | 2 ++ 1 file changed, 2 insertions(+) diff --git a/business/partner/purchase/jd/store.go b/business/partner/purchase/jd/store.go index ba0de3170..446c003d2 100644 --- a/business/partner/purchase/jd/store.go +++ b/business/partner/purchase/jd/store.go @@ -113,6 +113,8 @@ func (p *PurchaseHandler) ReadStore(ctx *jxcontext.Context, vendorOrgCode, vendo retVal.DeliveryRange = utils.Int2Str(deliveryRange.DeliveryRangeRadius) } return retVal, nil + } else { + globals.SugarLogger.Warnf("jd vendorOrgCode:%s vendorStoreID:%s", vendorOrgCode, vendorStoreID) } } return nil, err From ff6cd228a6e3a932898e79ed52035e29520864b6 Mon Sep 17 00:00:00 2001 From: gazebo Date: Mon, 16 Dec 2019 10:19:54 +0800 Subject: [PATCH 11/11] =?UTF-8?q?jd.postFakeMsg=E4=B8=AD=E6=AD=A3=E7=A1=AE?= =?UTF-8?q?=E8=AE=BE=E7=BD=AEAppKey?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/jxstore/cms/store.go | 1 + business/partner/purchase/jd/jd.go | 2 +- business/partner/purchase/jd/order.go | 20 +++++++++++--------- business/partner/purchase/jd/store.go | 2 -- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/business/jxstore/cms/store.go b/business/jxstore/cms/store.go index fb06b8ae1..004928fc9 100644 --- a/business/jxstore/cms/store.go +++ b/business/jxstore/cms/store.go @@ -1043,6 +1043,7 @@ func AddStoreVendorMap(ctx *jxcontext.Context, db *dao.DaoDB, vendorID int, vend userName := ctx.GetUserName() storeMap.StoreID = storeID storeMap.VendorID = vendorID + storeMap.VendorOrgCode = vendorOrgCode storeMap.Status = model.StoreStatusOpened storeMap.DeliveryType = model.StoreDeliveryTypeByStore storeMap.SyncStatus = 0 diff --git a/business/partner/purchase/jd/jd.go b/business/partner/purchase/jd/jd.go index 035c16e50..c463e2f95 100644 --- a/business/partner/purchase/jd/jd.go +++ b/business/partner/purchase/jd/jd.go @@ -24,7 +24,7 @@ func init() { func getAPI(appOrgCode string) (apiObj *jdapi.API) { if appOrgCode == "" { - // globals.SugarLogger.Warnf("getAPI appOrgCode is empty") + globals.SugarLogger.Warnf("getAPI appOrgCode is empty") } return partner.CurAPIManager.GetAPI(model.VendorIDJD, appOrgCode).(*jdapi.API) } diff --git a/business/partner/purchase/jd/order.go b/business/partner/purchase/jd/order.go index dc658c7a9..1ceb17ea5 100644 --- a/business/partner/purchase/jd/order.go +++ b/business/partner/purchase/jd/order.go @@ -284,12 +284,14 @@ func (c *PurchaseHandler) callbackMsg2Status(msg *jdapi.CallbackOrderMsg) *model return orderStatus } -func (c *PurchaseHandler) postFakeMsg(vendorOrderID, vendorStatus string) { +func (c *PurchaseHandler) postFakeMsg(vendorOrgCode, vendorOrderID, vendorStatus string) { msg := &jdapi.CallbackOrderMsg{ - CallbackMsg: &jdapi.CallbackMsg{}, - BillID: vendorOrderID, - StatusID: vendorStatus, - Timestamp: utils.Time2Str(time.Now()), + CallbackMsg: &jdapi.CallbackMsg{ + AppKey: getAPI(vendorOrgCode).GetAppKey(), + }, + BillID: vendorOrderID, + StatusID: vendorStatus, + Timestamp: utils.Time2Str(time.Now()), } utils.CallFuncAsync(func() { OnOrderMsg(msg) @@ -309,14 +311,14 @@ func (c *PurchaseHandler) AcceptOrRefuseOrder(order *model.GoodsOrder, isAcceptI if globals.EnableJdStoreWrite { err = getAPI(order.VendorOrgCode).OrderAcceptOperate(order.VendorOrderID, isAcceptIt, userName) if isAcceptIt && err == nil { - c.postFakeMsg(order.VendorOrderID, jdapi.StatusIDWaitOutStore) + c.postFakeMsg(order.VendorOrgCode, order.VendorOrderID, jdapi.StatusIDWaitOutStore) } } else { if isAcceptIt { - c.postFakeMsg(order.VendorOrderID, jdapi.StatusIDWaitOutStore) + c.postFakeMsg(order.VendorOrgCode, order.VendorOrderID, jdapi.StatusIDWaitOutStore) } else { - c.postFakeMsg(order.VendorOrderID, jdapi.OrderStatusCanceled) + c.postFakeMsg(order.VendorOrgCode, order.VendorOrderID, jdapi.OrderStatusCanceled) } } return err @@ -327,7 +329,7 @@ func (c *PurchaseHandler) PickupGoods(order *model.GoodsOrder, isSelfDelivery bo if !isSelfDelivery && globals.EnableJdStoreWrite { _, err = getAPI(order.VendorOrgCode).OrderJDZBDelivery(order.VendorOrderID, userName) } else { - c.postFakeMsg(order.VendorOrderID, jdapi.OrderStatusFinishedPickup) + c.postFakeMsg(order.VendorOrgCode, order.VendorOrderID, jdapi.OrderStatusFinishedPickup) } return err } diff --git a/business/partner/purchase/jd/store.go b/business/partner/purchase/jd/store.go index 446c003d2..ba0de3170 100644 --- a/business/partner/purchase/jd/store.go +++ b/business/partner/purchase/jd/store.go @@ -113,8 +113,6 @@ func (p *PurchaseHandler) ReadStore(ctx *jxcontext.Context, vendorOrgCode, vendo retVal.DeliveryRange = utils.Int2Str(deliveryRange.DeliveryRangeRadius) } return retVal, nil - } else { - globals.SugarLogger.Warnf("jd vendorOrgCode:%s vendorStoreID:%s", vendorOrgCode, vendorStoreID) } } return nil, err