link parse fx4
This commit is contained in:
parent
dcf5f5c73c
commit
247ad16440
|
|
@ -735,6 +735,66 @@ func prepearAttributesWithFlat(data *models.Product) ([]gm.ProductAttributeValue
|
|||
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){
|
||||
//
|
||||
// var description string
|
||||
|
|
|
|||
|
|
@ -1,6 +1,7 @@
|
|||
package controller
|
||||
|
||||
import (
|
||||
gm "db_service/gorm_models"
|
||||
helper "db_service/pkg"
|
||||
"db_service/repositories"
|
||||
"encoding/json"
|
||||
|
|
@ -48,7 +49,23 @@ func ParseLink(w http.ResponseWriter, route *http.Request) {
|
|||
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 {
|
||||
helper.Error(err)
|
||||
|
|
|
|||
Loading…
Reference in New Issue