创建标品优化,同步物料测试
This commit is contained in:
@@ -2145,6 +2145,11 @@ func CreateUpcSkuByExcelBin(ctx *jxcontext.Context, reader io.Reader, categoryID
|
||||
skuName.CategoryID = categoryID
|
||||
}
|
||||
skuName.Skus[0].Status = model.SkuStatusNormal
|
||||
if resBinary, _, err := jxutils.DownloadFileByURL(skuName.Img); err == nil {
|
||||
if model.ValidMimeTypes[http.DetectContentType(resBinary)] == 0 {
|
||||
skuName.Img = model.NOSkuNameImg
|
||||
}
|
||||
}
|
||||
_, err = AddSkuName(ctx, skuName, ctx.GetUserName())
|
||||
if err != nil {
|
||||
retVal = []*CreateUpcSkuByExcelErr{buildCreateUpcSkuByExcelErr(v, err.Error())}
|
||||
|
||||
@@ -4286,3 +4286,146 @@ func CreateSkusAndFocusFromWx(ctx *jxcontext.Context, productInfo *jdapi.Product
|
||||
}
|
||||
return err
|
||||
}
|
||||
|
||||
func SyncMatterC4ToGy(ctx *jxcontext.Context, isContinueWhenError, isAsync bool) (hint string, err error) {
|
||||
var (
|
||||
db = dao.GetDB()
|
||||
skus []*model.Sku
|
||||
skusgy []*model.Sku
|
||||
skuIDs []int
|
||||
addMatters []*model.Sku
|
||||
deleteMatters []*model.Sku
|
||||
updateMatters []*model.Sku
|
||||
)
|
||||
task := tasksch.NewParallelTask("同步物料商品从菜市到果园", tasksch.NewParallelConfig().SetParallelCount(1).SetIsContinueWhenError(isContinueWhenError), ctx,
|
||||
func(task *tasksch.ParallelTask, batchItemList []interface{}, params ...interface{}) (retVal interface{}, err error) {
|
||||
step := batchItemList[0].(int)
|
||||
var (
|
||||
skusMap = make(map[int]*model.Sku)
|
||||
skusgyMap = make(map[int]*model.Sku)
|
||||
)
|
||||
switch step {
|
||||
case 0:
|
||||
sql := "SELECT * FROM jxd_dev_0.sku WHERE deleted_at = ? AND eclp_id <> ''"
|
||||
sqlParams := []interface{}{utils.DefaultTimeValue}
|
||||
err = dao.GetRows(db, &skus, sql, sqlParams)
|
||||
for _, c4 := range skus {
|
||||
skuIDs = append(skuIDs, c4.ID)
|
||||
skusMap[c4.ID] = c4
|
||||
}
|
||||
sql2 := "SELECT * FROM sku WHERE deleted_at = ? AND id IN (" + dao.GenQuestionMarks(len(skuIDs)) + ")"
|
||||
sqlParams = append(sqlParams, skuIDs)
|
||||
err = dao.GetRows(db, &skusgy, sql2, sqlParams)
|
||||
for _, gy := range skusgy {
|
||||
skusgyMap[gy.ID] = gy
|
||||
if skusMap[gy.ID] == nil {
|
||||
deleteMatters = append(deleteMatters, skusgyMap[gy.ID])
|
||||
}
|
||||
}
|
||||
for _, c4 := range skus {
|
||||
if skusgyMap[c4.ID] == nil {
|
||||
addMatters = append(addMatters, skusMap[c4.ID])
|
||||
} else {
|
||||
updateMatters = append(updateMatters, skusMap[c4.ID])
|
||||
}
|
||||
}
|
||||
fmt.Println("deleteMatters", utils.Format4Output(deleteMatters, false))
|
||||
fmt.Println("addMatters", utils.Format4Output(addMatters, false))
|
||||
fmt.Println("updateMatters", utils.Format4Output(updateMatters, false))
|
||||
case 1:
|
||||
// if len(deleteMatters) > 0 {
|
||||
// for _, v := range deleteMatters {
|
||||
// _, err = DeleteSkuName(ctx, v.NameID, ctx.GetUserName())
|
||||
// }
|
||||
// }
|
||||
// if len(addMatters) > 0 {
|
||||
// for _, v := range addMatters {
|
||||
// var (
|
||||
// skuName *model.SkuName
|
||||
// storeSkus []*model.StoreSkuBind
|
||||
// )
|
||||
// skuNames, _ := dao.GetSkuNames(db, []int{v.NameID}, nil, "", false)
|
||||
// if len(skuNames) > 0 {
|
||||
// skuName = skuNames[0]
|
||||
// }
|
||||
// skuNameExt := &model.SkuNameExt{
|
||||
// SkuName: model.SkuName{},
|
||||
// Skus: []*model.SkuWithVendor{
|
||||
// &model.SkuWithVendor{
|
||||
// Sku: &model.Sku{},
|
||||
// },
|
||||
// },
|
||||
// }
|
||||
// skuNameExt.Unit = skuName.Unit
|
||||
// skuNameExt.Name = skuName.Name
|
||||
// skuNameExt.Upc = skuName.Upc
|
||||
// skuNameExt.SkuName.Status = model.SkuStatusNormal
|
||||
// skuNameExt.Skus[0].SpecQuality = v.SpecQuality
|
||||
// skuNameExt.Skus[0].SpecUnit = v.SpecUnit
|
||||
// skuNameExt.Img = skuName.Img
|
||||
// skuNameExt.Img2 = skuName.Img2
|
||||
// skuNameExt.DescImg = skuName.DescImg
|
||||
// skuNameExt.ID = v.NameID
|
||||
// skuNameExt.CategoryID = skuName.CategoryID
|
||||
// skuNameExt.Skus[0].ID = v.ID
|
||||
// _, err = AddSkuName(ctx, skuNameExt, ctx.GetUserName())
|
||||
// if err != nil {
|
||||
// return retVal, err
|
||||
// }
|
||||
// sql := "SELECT * FROM jxd_dev_0.store_sku_bind WHERE store_id = ? AND sku_id = ? "
|
||||
// sqlParams := []interface{}{model.MatterStoreID, v.ID}
|
||||
// err = dao.GetRows(db, &storeSkus, sql, sqlParams)
|
||||
// if err != nil {
|
||||
// return retVal, err
|
||||
// }
|
||||
// if len(storeSkus) > 0 {
|
||||
// var skuBindInfos []*StoreSkuBindInfo
|
||||
// skuBindInfo := &StoreSkuBindInfo{
|
||||
// NameID: skuName.ID,
|
||||
// IsFocus: 1,
|
||||
// IsSale: 1,
|
||||
// }
|
||||
// skuBindInfos = append(skuBindInfos, skuBindInfo)
|
||||
// updateStoresSkusWithoutSync(ctx, db, []int{model.MatterStoreID}, skuBindInfos, false)
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
// if len(updateMatters) > 0 {
|
||||
// for _, v := range updateMatters {
|
||||
// var skuName *model.SkuName
|
||||
// skuNames, _ := dao.GetSkuNames(db, []int{v.NameID}, nil, "", false)
|
||||
// if len(skuNames) > 0 {
|
||||
// skuName = skuNames[0]
|
||||
// }
|
||||
// dao.Begin(db)
|
||||
// defer func() {
|
||||
// if r := recover(); r != nil {
|
||||
// dao.Rollback(db)
|
||||
// panic(r)
|
||||
// }
|
||||
// }()
|
||||
// dao.WrapAddIDCULEntity(v, ctx.GetUserName())
|
||||
// if _, err = dao.UpdateEntity(db, v, "SpecQuality", "SpecUnit", "EclpID"); err != nil {
|
||||
// dao.Rollback(db)
|
||||
// return retVal, err
|
||||
// }
|
||||
// dao.WrapAddIDCULEntity(skuName, ctx.GetUserName())
|
||||
// if _, err = dao.UpdateEntity(db, skuName, "Name", "Img", "Img2", "DescImg", "Unit", "CategoryID"); err != nil {
|
||||
// dao.Rollback(db)
|
||||
// return retVal, err
|
||||
// }
|
||||
// dao.Commit(db)
|
||||
// }
|
||||
// }
|
||||
}
|
||||
return retVal, err
|
||||
}, []int{0, 1})
|
||||
tasksch.HandleTask(task, nil, true).Run()
|
||||
if !isAsync {
|
||||
_, err = task.GetResult(0)
|
||||
hint = "1"
|
||||
} else {
|
||||
hint = task.GetID()
|
||||
}
|
||||
return hint, err
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user