cinsiyet eklenior

This commit is contained in:
merdan 2022-09-26 13:46:10 +05:00
parent ac2578d1fc
commit 144db0a55b
1 changed files with 23 additions and 16 deletions

View File

@ -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
}