From 144db0a55b495e9737b408b128f407bac8f2116a Mon Sep 17 00:00:00 2001 From: merdan Date: Mon, 26 Sep 2022 13:46:10 +0500 Subject: [PATCH] cinsiyet eklenior --- controllers/ImportController.go | 39 +++++++++++++++++++-------------- 1 file changed, 23 insertions(+), 16 deletions(-) diff --git a/controllers/ImportController.go b/controllers/ImportController.go index c849d80..e93302f 100644 --- a/controllers/ImportController.go +++ b/controllers/ImportController.go @@ -39,10 +39,12 @@ func StartImport(w http.ResponseWriter, route *http.Request) { // lock the request if !atomic.CompareAndSwapUint32(&locker, stateUnlocked, stateLocked) { w.WriteHeader(http.StatusTooManyRequests) - json.NewEncoder(w).Encode(map[string]string{ - "msg": "Scraper or Updater in progress!", + err := json.NewEncoder(w).Encode(map[string]string{ + "msg": "Product import in progress!", }) + log.Println(err) + return } defer atomic.StoreUint32(&locker, stateUnlocked) @@ -62,7 +64,7 @@ func StartImport(w http.ResponseWriter, route *http.Request) { mainCategories = gm.GetMainCategories(baza) famAndSellerWG.Add(3) - //get attribute families from mysql with gorutine + //get attribute families from mysql go func() { defer famAndSellerWG.Done() @@ -74,7 +76,7 @@ func StartImport(w http.ResponseWriter, route *http.Request) { } }() - //get sellers families from mysql with gorutine + //get sellers families from mysql go func() { defer famAndSellerWG.Done() var vendors, err = gm.GetSellers(baza) @@ -98,17 +100,17 @@ func StartImport(w http.ResponseWriter, route *http.Request) { return } - for _, atrattribute := range attributes { - AttributesMap[atrattribute.Code] = atrattribute + for _, attribute := range attributes { + AttributesMap[attribute.Code] = attribute } }() mainImportWG.Add(len(mainCategories)) log.Println("Start Product delete") - delete := time.Now() + deleteTime := time.Now() errDel := gm.DeleteProducts(baza) - deleteElapsed := time.Since(delete) + deleteElapsed := time.Since(deleteTime) log.Printf("Delete products took %s", deleteElapsed) if errDel != nil { @@ -168,7 +170,7 @@ func importCategoryProducts(dbName string, db *gorm.DB) { continue } - //itearate 100 row products + //iterate 100 row products for _, element := range response.Rows { if err := ImportProduct(element.Doc, db); err != nil { @@ -208,9 +210,6 @@ func getTotalDocumentCount(db string) int { return response.DocCount } -// todo defailt variant -// productflat - func getCats(db *gorm.DB, catIDs []int) ([]gm.Category, string, error) { var categories []gm.Category var keywords string @@ -256,12 +255,14 @@ func ImportProduct(product models.Product, db *gorm.DB) error { attributes, mainProductFlat := prepearAttributesWithFlat(&product) colorOption := gm.GetAttributeOption(&tx, AttributesMap["color"].ID, product.Color) + cinsiyetOption := gm.GetAttributeOption(&tx, AttributesMap["cinsiyet"].ID, product.Cinsiyet) mainProductFlat.Color = int(colorOption.ID) mainProductFlat.ColorLabel = product.Color attributes = append(attributes, []gm.ProductAttributeValue{ {AttributeID: AttributesMap["color"].ID, IntegerValue: int(colorOption.ID)}, + {AttributeID: AttributesMap["cinsiyet"].ID, IntegerValue: int(cinsiyetOption.ID)}, {AttributeID: AttributesMap["meta_keywords"].ID, TextValue: keywords, Channel: "default", Locale: "tm"}}...) var productImages []gm.ProductImage @@ -380,6 +381,7 @@ func ImportProduct(product models.Product, db *gorm.DB) error { {ProductID: productVariant.ID, AttributeID: AttributesMap["meta_keywords"].ID, TextValue: keywords, Channel: "default", Locale: "tm"}, {ProductID: productVariant.ID, AttributeID: AttributesMap["description"].ID, TextValue: description, Channel: "default", Locale: "tm"}, {ProductID: productVariant.ID, AttributeID: AttributesMap["color"].ID, IntegerValue: int(colorOption.ID)}, + {ProductID: productVariant.ID, AttributeID: AttributesMap["cinsiyet"].ID, IntegerValue: int(cinsiyetOption.ID)}, {ProductID: productVariant.ID, AttributeID: AttributesMap["size"].ID, IntegerValue: int(sizeOption.ID)}, } @@ -453,10 +455,14 @@ func ImportProduct(product models.Product, db *gorm.DB) error { tx.SavePoint(colorSavePoint) colorOption := gm.GetAttributeOption(&tx, AttributesMap["color"].ID, colorVariant.Color) + cinsiyetOption := gm.GetAttributeOption(&tx, AttributesMap["cinsiyet"].ID, colorVariant.Cinsiyet) attributes, variantFlat := collectAttributes(&colorVariant, &colorOption) - attributes = append(attributes, gm.ProductAttributeValue{AttributeID: AttributesMap["meta_keywords"].ID, TextValue: keywords, Channel: "default", Locale: "tm"}) + attributes = append(attributes, []gm.ProductAttributeValue{ + {AttributeID: AttributesMap["meta_keywords"].ID, TextValue: keywords, Channel: "default", Locale: "tm"}, + {AttributeID: AttributesMap["cinsiyet"].ID, IntegerValue: int(cinsiyetOption.ID)}, + }...) - sku := fmt.Sprintf("%s-%s-%s-%s", iproduct.Sku, colorVariant.ProductNumber, colorIndex, colorVariant.Color) + sku := fmt.Sprintf("%s-%s-%d-%s", iproduct.Sku, colorVariant.ProductNumber, colorIndex, colorVariant.Color) productVariant := gm.Product{ ParentID: mainProductFlat.ProductID, @@ -537,6 +543,7 @@ func ImportProduct(product models.Product, db *gorm.DB) error { {AttributeID: AttributesMap["size"].ID, IntegerValue: int(sizeOption.ID)}, {AttributeID: AttributesMap["description"].ID, TextValue: mainProductFlat.Description, Channel: "default", Locale: "tm"}, {AttributeID: AttributesMap["color"].ID, IntegerValue: int(colorOption.ID)}, + {AttributeID: AttributesMap["cinsiyet"].ID, IntegerValue: int(cinsiyetOption.ID)}, } flatVariant := gm.ProductFlat{ @@ -739,9 +746,9 @@ func collectAttributes(variant *models.Product, option *gm.AttributeOption) ([]g func prepearAttributesWithFlat(data *models.Product) ([]gm.ProductAttributeValue, gm.ProductFlat) { - weight, wEror := strconv.ParseFloat(data.Weight, 64) + weight, wError := strconv.ParseFloat(data.Weight, 64) - if wEror != nil || weight == 0 { + if wError != nil || weight == 0 { weight = 0.5 }