From 627964796f29d0487c195b453bbb4ad496270089 Mon Sep 17 00:00:00 2001 From: merdan Date: Thu, 22 Sep 2022 17:24:35 +0500 Subject: [PATCH] transaction --- controllers/ImportController.go | 38 +++++++++++++++++++++------------ 1 file changed, 24 insertions(+), 14 deletions(-) diff --git a/controllers/ImportController.go b/controllers/ImportController.go index 19f2390..c0f4c26 100644 --- a/controllers/ImportController.go +++ b/controllers/ImportController.go @@ -213,10 +213,20 @@ func getCats(db *gorm.DB, catIDs []int) ([]gm.Category, string, error) { var categories []gm.Category var keywords string - errCat := db.Preload("Translations").Find(&categories, catIDs).Error + if len(mainCategories) > 0 { + for _, item := range mainCategories { + for _, id := range catIDs { + if item.ID == uint(id) { + categories = append(categories, item) + } + } + } + } else { + errCat := db.Preload("Translations").Find(&categories, catIDs).Error - if errCat != nil { - return categories, keywords, errCat + if errCat != nil { + return categories, keywords, errCat + } } for _, cat := range categories { @@ -301,7 +311,7 @@ func ImportProduct(product models.Product, db *gorm.DB) error { tx := db.Begin() if errMainProduct := tx.Omit("Categories.*", "SuperAttributes.*", "ParentID").Create(&iproduct).Error; errMainProduct != nil { - log.Println(errMainProduct.Error()) + log.Println("ERR1" + errMainProduct.Error()) tx.Rollback() return errMainProduct } @@ -312,7 +322,7 @@ func ImportProduct(product models.Product, db *gorm.DB) error { if errProductMainFlat := tx.Create(&mainProductFlat).Error; errProductMainFlat != nil { tx.Rollback() - log.Println(errProductMainFlat) + log.Println("ERR2" + errProductMainFlat.Error()) return errProductMainFlat } @@ -352,7 +362,7 @@ func ImportProduct(product models.Product, db *gorm.DB) error { } if errProdVariant := tx.Omit("Categories.*").Create(&productVariant).Error; errProdVariant != nil { - log.Println(errProdVariant) + log.Println("ERR3" + errProdVariant.Error()) tx.RollbackTo(savePoint) continue } @@ -419,7 +429,7 @@ func ImportProduct(product models.Product, db *gorm.DB) error { if attError := tx.Create(&attributes).Error; attError != nil { tx.RollbackTo(savePoint) - log.Println(attError) + log.Println("ERR4" + attError.Error()) continue } @@ -432,7 +442,7 @@ func ImportProduct(product models.Product, db *gorm.DB) error { } if errVariant := tx.Create(&flatVariant).Error; errVariant != nil { - log.Println(errVariant) + log.Println("ERR5" + errVariant.Error()) tx.RollbackTo(savePoint) continue } @@ -472,7 +482,7 @@ func ImportProduct(product models.Product, db *gorm.DB) error { } if errProdVariant := tx.Omit("Categories.*").Create(&productVariant).Error; errProdVariant != nil { - log.Println(errProdVariant) + log.Println("ERR5" + errProdVariant.Error()) continue } @@ -483,7 +493,7 @@ func ImportProduct(product models.Product, db *gorm.DB) error { variantFlat.ParentID = mainProductFlat.ID if errVariant := tx.Create(&variantFlat).Error; errVariant != nil { - log.Println(errVariant) + log.Println("ERR6" + errVariant.Error()) tx.RollbackTo(colorSavePoint) continue } @@ -591,14 +601,14 @@ func ImportProduct(product models.Product, db *gorm.DB) error { } if errSizeVar := tx.Omit("Categories.*").Create(&sizeVariantProduct).Error; errSizeVar != nil { - log.Println(errSizeVar) + log.Println("ERR7" + errSizeVar.Error()) continue } flatVariant.ProductID = sizeVariantProduct.ID if errVariant := tx.Create(&flatVariant).Error; errVariant != nil { - log.Println(errVariant) + log.Println("ERR8" + errVariant.Error()) tx.RollbackTo(sizeSavePoint) continue } @@ -620,7 +630,7 @@ func ImportProduct(product models.Product, db *gorm.DB) error { } if errFlat != nil { - log.Println(errFlat) + log.Println("ERR9" + errFlat.Error()) tx.Rollback() return errFlat } @@ -630,7 +640,7 @@ func ImportProduct(product models.Product, db *gorm.DB) error { errSProduct := tx.Create(&sProduct).Error if errSProduct != nil { - log.Println(errSProduct) + log.Println("ERR10" + errSProduct.Error()) tx.Rollback() return errSProduct }