link parse fx4

This commit is contained in:
merdan 2022-09-09 14:43:25 +05:00
parent dcf5f5c73c
commit 247ad16440
2 changed files with 78 additions and 1 deletions

View File

@ -735,6 +735,66 @@ func prepearAttributesWithFlat(data *models.Product) ([]gm.ProductAttributeValue
return productAttributeValues, flat return productAttributeValues, flat
} }
func UpdateProduct(product models.Product, db *gorm.DB, productFlat gm.ProductFlat) error {
productFlat.Status = true
if len(product.ColorVariants) == 0 && len(product.SizeVariants) == 0 {
if product.Price.OriginalPrice.Value > product.Price.DiscountedPrice.Value {
//productAttributeValues = append(productAttributeValues, []gm.ProductAttributeValue{
// {AttributeID: attributesMap["price"].ID, FloatValue: data.Price.OriginalPrice.Value},
// {AttributeID: attributesMap["special_price"].ID, FloatValue: data.Price.DiscountedPrice.Value},
//}...)
if productFlat.Price != product.Price.OriginalPrice.Value {
productFlat.Price = product.Price.OriginalPrice.Value
productFlat.MaxPrice = product.Price.OriginalPrice.Value
//db.Model(&User{}).Where("active = ?", true).Update("name", "hello")
err := db.Model(gm.ProductAttributeValue{}).
Where("attribute_id = ? AND product_id = ?", 11, productFlat.ProductID).
Update("float_value", product.Price.OriginalPrice.Value).Error
if err != nil {
return err
}
}
if productFlat.SpecialPrice != product.Price.DiscountedPrice.Value {
productFlat.SpecialPrice = product.Price.DiscountedPrice.Value
productFlat.MinPrice = product.Price.DiscountedPrice.Value
err := db.Model(gm.ProductAttributeValue{}).
Where("attribute_id = ? AND product_id = ?", 13, productFlat.ProductID).
Update("float_value", product.Price.OriginalPrice.Value).Error
if err != nil {
return err
}
}
} else {
if productFlat.Price != product.Price.OriginalPrice.Value {
productFlat.Price = product.Price.OriginalPrice.Value
productFlat.MaxPrice = product.Price.OriginalPrice.Value
productFlat.MinPrice = product.Price.OriginalPrice.Value
err := db.Model(gm.ProductAttributeValue{}).
Where("attribute_id = ? AND product_id = ?", 11, productFlat.ProductID).
Update("float_value", product.Price.OriginalPrice.Value).Error
if err != nil {
return err
}
}
}
} else {
}
errFlat := baza.Omit("Product", "ParentID", "CreatedAt").Save(&productFlat).Error
return errFlat
}
//func productAttributesAndFlat(data *models.Product) ([]gm.ProductAttributeValue,gm.ProductFlat){ //func productAttributesAndFlat(data *models.Product) ([]gm.ProductAttributeValue,gm.ProductFlat){
// //
// var description string // var description string

View File

@ -1,6 +1,7 @@
package controller package controller
import ( import (
gm "db_service/gorm_models"
helper "db_service/pkg" helper "db_service/pkg"
"db_service/repositories" "db_service/repositories"
"encoding/json" "encoding/json"
@ -48,7 +49,23 @@ func ParseLink(w http.ResponseWriter, route *http.Request) {
return return
} }
err = ImportProduct(jsonProduct, baza) var productFlat gm.ProductFlat
err = baza.Preload("Variants").
//Preload("Product").
//Preload("Proudct.AttributeValues","attribute_id in(11,13)").
First(&productFlat, "sku = ?", jsonProduct.ProductGroupID).Error
if err != nil {
helper.Error(err)
return
}
if productFlat.Sku == "" {
err = ImportProduct(jsonProduct, baza)
} else {
err = UpdateProduct(jsonProduct, baza, productFlat)
}
if err != nil { if err != nil {
helper.Error(err) helper.Error(err)