京东商城建商品开测

This commit is contained in:
苏尹岚
2020-05-13 09:43:27 +08:00
parent 7b05c7b87a
commit 5f901f8531
11 changed files with 243 additions and 34 deletions

View File

@@ -1146,7 +1146,7 @@ func AddStoreVendorMap(ctx *jxcontext.Context, db *dao.DaoDB, vendorID int, vend
storeMap.Status = model.StoreStatusOpened
storeMap.DeliveryType = model.StoreDeliveryTypeByStore
storeMap.SyncStatus = 0
if vendorID != model.VendorIDJX && vendorID != model.VendorIDYB {
if vendorID != model.VendorIDJX && vendorID != model.VendorIDYB && vendorID != model.VendorIDJDShop {
if storeMap.VendorOrgCode == "" {
return nil, fmt.Errorf("必须指定平台分账号信息")
}
@@ -1170,6 +1170,8 @@ func AddStoreVendorMap(ctx *jxcontext.Context, db *dao.DaoDB, vendorID int, vend
if err != nil {
return nil, err
}
} else if vendorID == model.VendorIDJDShop {
storeMap.SyncStatus = model.SyncFlagNewMask //京东商城要去建店
}
if err == nil {
dao.WrapAddIDCULDEntity(storeMap, userName)

View File

@@ -229,7 +229,7 @@ func (v *VendorSync) SyncStore2(ctx *jxcontext.Context, db *dao.DaoDB, vendorIDs
var failedList []*partner.StoreSkuInfoWithErr
handler := v.GetStoreHandler(loopMapInfo.VendorID)
if handler != nil {
if len(loopMapInfo.StoreMapList) > 1 {
if len(loopMapInfo.StoreMapList) > 0 {
loopStoreTask := tasksch.NewParallelTask(fmt.Sprintf("处理平台%s", model.VendorChineseNames[loopMapInfo.VendorID]), tasksch.NewParallelConfig().SetIsContinueWhenError(true), ctx,
func(task *tasksch.ParallelTask, batchItemList []interface{}, params ...interface{}) (retVal interface{}, err error) {
var resultList []interface{}
@@ -238,29 +238,52 @@ func (v *VendorSync) SyncStore2(ctx *jxcontext.Context, db *dao.DaoDB, vendorIDs
if len(loopMapInfo.StoreMapList) > 1 {
db2 = dao.GetDB()
}
if err = handler.UpdateStore(db2, storeMap.StoreID, userName); err == nil {
storeMap.SyncStatus = 0
_, err = dao.UpdateEntity(db2, storeMap, model.FieldSyncStatus)
resultList = append(resultList, 1)
if model.IsSyncStatusNew(storeMap.SyncStatus) {
if err = handler.CreateStore2(db2, storeMap.StoreID, userName); err == nil {
resultList = append(resultList, 1)
} else {
failedList = putils.GetErrMsg2FailedSingleList(nil, err, storeMap.StoreID, model.VendorChineseNames[storeMap.VendorID], "创建门店")
}
} else if model.IsSyncStatusDelete(storeMap.SyncStatus) {
if err = handler.DeleteStore(db2, storeMap.StoreID, userName); err == nil {
resultList = append(resultList, 1)
} else {
failedList = putils.GetErrMsg2FailedSingleList(nil, err, storeMap.StoreID, model.VendorChineseNames[storeMap.VendorID], "删除门店")
}
} else {
failedList = putils.GetErrMsg2FailedSingleList(nil, err, storeMap.StoreID, model.VendorChineseNames[storeMap.VendorID], "同步门店")
if err = handler.UpdateStore(db2, storeMap.StoreID, userName); err == nil {
resultList = append(resultList, 1)
} else {
failedList = putils.GetErrMsg2FailedSingleList(nil, err, storeMap.StoreID, model.VendorChineseNames[storeMap.VendorID], "更新门店")
}
}
if err == nil {
storeMap.SyncStatus = 0
_, err = dao.UpdateEntity(db, storeMap, model.FieldSyncStatus)
}
return resultList, err
}, loopMapInfo.StoreMapList)
t.AddChild(loopStoreTask).Run()
resultList, err = loopStoreTask.GetResult(0)
} else {
storeMap := loopMapInfo.StoreMapList[0]
if err = handler.UpdateStore(db, storeMap.StoreID, userName); err == nil {
storeMap.SyncStatus = 0
_, err = dao.UpdateEntity(db, storeMap, model.FieldSyncStatus)
} else {
failedList = putils.GetErrMsg2FailedSingleList(nil, err, storeMap.StoreID, model.VendorChineseNames[storeMap.VendorID], "同步门店")
}
if err == nil {
resultList = []interface{}{1}
}
}
// else {
// storeMap := loopMapInfo.StoreMapList[0]
// if model.IsSyncStatusNew(storeMap.SyncStatus) {
// } else if model.IsSyncStatusDelete(storeMap.SyncStatus) {
// } else {
// if err = handler.UpdateStore(db, storeMap.StoreID, userName); err == nil {
// storeMap.SyncStatus = 0
// _, err = dao.UpdateEntity(db, storeMap, model.FieldSyncStatus)
// } else {
// failedList = putils.GetErrMsg2FailedSingleList(nil, err, storeMap.StoreID, model.VendorChineseNames[storeMap.VendorID], "更新门店")
// }
// }
// if err == nil {
// resultList = []interface{}{1}
// }
// }
err = partner.AddVendorInfo2Err(err, loopMapInfo.VendorID)
}
if len(failedList) > 0 {

View File

@@ -398,9 +398,9 @@ func syncStoreSkuNew(ctx *jxcontext.Context, parentTask tasksch.ITask, causeFlag
formalizeStoreSkuList(skus)
//京东商城的商品名规则不同
//name空格comment约xxg
if vendorID == model.VendorIDJDShop {
formalizeStoreSkuListForJds(skus)
}
// if vendorID == model.VendorIDJDShop {
// formalizeStoreSkuListForJds(skus)
// }
singleStoreHandler, _ := partner.GetPurchasePlatformFromVendorID(vendorID).(partner.ISingleStoreStoreSkuHandler)
storeSkuHandler := partner.GetPurchasePlatformFromVendorID(vendorID).(partner.IPurchasePlatformStoreSkuHandler)
@@ -576,6 +576,14 @@ func syncStoreSkuNew(ctx *jxcontext.Context, parentTask tasksch.ITask, causeFlag
api.YinBaoAPI.SetCookie(".POSPALAUTH30220", yinbaoCookie)
}
}
//如果平台是京东商城则按商品skuname创建
if vendorID == model.VendorIDJDShop {
if len(createList) > 0 {
rList := changeList2Jds(createList)
createList = createList[:]
createList = rList
}
}
task := tasksch.NewParallelTask("syncStoreSkuNew", tasksch.NewParallelConfig().SetParallelCount(1).SetIsContinueWhenError(isContinueWhenError2), ctx,
func(task *tasksch.ParallelTask, batchItemList []interface{}, params ...interface{}) (retVal interface{}, err error) {
step := batchItemList[0].(int)
@@ -1346,3 +1354,26 @@ func changeList2Yb(list1 []*dao.StoreSkuSyncInfo, list2 []*partner.StoreSkuInfo)
}
return rList1, rList2
}
func changeList2Jds(list []*dao.StoreSkuSyncInfo) (rList []*dao.StoreSkuSyncInfo) {
var (
skuNameMap = make(map[int][]*dao.StoreSkuSyncInfo)
)
for _, v := range list {
skuNameMap[v.NameID] = append(skuNameMap[v.NameID], v)
}
for k, v := range skuNameMap {
storeSku := &dao.StoreSkuSyncInfo{
StoreSkuSyncInfoJds: v,
}
storeSku.NameID = k
storeSku.Name = v[0].Name
storeSku.VendorCatID = v[0].VendorCatID
storeSku.VendorVendorCatID = v[0].VendorVendorCatID
storeSku.UnitPrice = v[0].UnitPrice
storeSku.Img = v[0].Img
storeSku.Img2 = v[0].Img2
rList = append(rList, storeSku)
}
return rList
}