- fix bug in jxutils.ComposeSkuName

- mtwm SyncStoreSkus almost ok
This commit is contained in:
gazebo
2018-11-27 19:26:36 +08:00
parent 33742dc7f8
commit fe01f60e2d
3 changed files with 50 additions and 37 deletions

View File

@@ -192,43 +192,48 @@ func (p *PurchaseHandler) SyncStoreSkus(ctx *jxcontext.Context, parentTask tasks
skus, err := dao.GetStoreSkus(db, model.VendorIDMTWM, storeID, skuIDs)
// globals.SugarLogger.Debug(utils.Format4Output(skus, false))
strStoreID := utils.Int2Str(storeID)
rootTask := tasksch.NewParallelTask("mtwm SyncStoreSkus", tasksch.NewParallelConfig().SetBatchSize(200), ctx.GetUserName(), func(rootTask *tasksch.ParallelTask, batchItemList []interface{}, params ...interface{}) (retVal interface{}, err error) {
rootTask := tasksch.NewParallelTask("mtwm SyncStoreSkus", tasksch.NewParallelConfig().SetIsContinueWhenError(isContinueWhenError), ctx.GetUserName(), func(rootTask *tasksch.ParallelTask, batchItemList []interface{}, params ...interface{}) (retVal interface{}, err error) {
foodDataList := make([]map[string]interface{}, len(batchItemList))
for k, v := range batchItemList {
skuItem := v.(*dao.StoreSkuSyncInfo)
foodDataList[k] = make(map[string]interface{})
// globals.SugarLogger.Debug(utils.Format4Output(skuItem, false))
foodDataList[k][mtwmapi.KeyAppFoodCode] = utils.Int2Str(skuItem.ID)
foodDataList[k]["name"] = skuItem.Name
foodDataList[k]["description"] = skuItem.Comment
foodDataList[k]["price"] = jxutils.IntPrice2Standard(skuItem.Price)
foodDataList[k]["min_order_count"] = 1
foodDataList[k]["unit"] = skuItem.Unit
foodDataList[k]["box_num"] = 0
foodDataList[k]["box_price"] = 0
foodDataList[k]["category_name"] = skuItem.VendorCatID
foodDataList[k]["is_sold_out"] = skuStatusJX2Mtwm(jxutils.MergeSkuStatus(skuItem.Status, skuItem.StoreSkuStatus))
foodDataList[k]["picture"] = skuItem.Img
// for k, v := range batchItemList {
v := batchItemList[0]
skuItem := v.(*dao.StoreSkuSyncInfo)
if skuItem.SkuSyncStatus&model.SyncFlagDeletedMask != 0 {
err = api.MtwmAPI.RetailDelete(strStoreID, utils.Int2Str(skuItem.ID))
} else if skuItem.SkuSyncStatus&(model.SyncFlagModifiedMask|model.SyncFlagNewMask) != 0 {
foodData := make(map[string]interface{})
foodDataList[0] = foodData
foodData[mtwmapi.KeyAppFoodCode] = utils.Int2Str(skuItem.ID)
foodData["name"] = jxutils.ComposeSkuName(skuItem.Prefix, skuItem.Name, skuItem.Comment, skuItem.Unit, skuItem.SpecQuality, skuItem.SpecUnit, 30)
foodData["description"] = skuItem.Comment
foodData["price"] = jxutils.IntPrice2Standard(skuItem.Price)
foodData["min_order_count"] = 1
foodData["unit"] = skuItem.Unit
foodData["box_num"] = 0
foodData["box_price"] = 0
foodData["category_name"] = skuItem.VendorCatID
foodData["is_sold_out"] = skuStatusJX2Mtwm(jxutils.MergeSkuStatus(skuItem.Status, skuItem.StoreSkuStatus))
foodData["picture"] = skuItem.Img
if skuItem.VendorVendorCatID != 0 {
foodDataList[k]["tag_id"] = utils.Int64ToStr(skuItem.VendorVendorCatID)
foodData["tag_id"] = utils.Int64ToStr(skuItem.VendorVendorCatID)
} else {
foodDataList[k]["tag_id"] = utils.Int64ToStr(defVendorCatID)
foodData["tag_id"] = utils.Int64ToStr(defVendorCatID)
}
foodDataList[k]["skus"] = []map[string]interface{}{
foodData["skus"] = []map[string]interface{}{
map[string]interface{}{
"sku_id": foodDataList[k][mtwmapi.KeyAppFoodCode],
"spec": "大",
"sku_id": foodData[mtwmapi.KeyAppFoodCode],
"spec": jxutils.ComposeSkuSpec(skuItem.SpecQuality, skuItem.SpecUnit),
"weight": skuItem.Weight,
"price": foodDataList[k]["price"],
"price": foodData["price"],
"stock": "*",
},
}
// if err = api.MtwmAPI.RetailInitData(strStoreID, utils.Int2Str(skuItem.ID), foodDataList[k]); err != nil {
// return nil, err
// }
err = api.MtwmAPI.RetailBatchInitData(strStoreID, foodDataList)
}
if err == nil {
storeSkuBind := &model.StoreSkuBind{}
storeSkuBind.ID = skuItem.BindID
_, err = dao.UpdateEntity(nil, storeSkuBind, model.FieldMtwmSyncStatus)
}
// globals.SugarLogger.Debug(utils.Format4Output(foodDataList, false))
err = api.MtwmAPI.RetailBatchInitData(strStoreID, foodDataList)
return nil, err
}, skus)
if parentTask != nil {