From 029c8611556aa3b77cdae78376842e8531521c9f Mon Sep 17 00:00:00 2001 From: lishihai <dslsh@dscom> Date: 星期四, 20 六月 2024 22:24:01 +0800 Subject: [PATCH] 产品->动态属性增改查 --- controllers/product_controller.go | 49 ++++++++++++++++++++++++++++++++++++++++--------- 1 files changed, 40 insertions(+), 9 deletions(-) diff --git a/controllers/product_controller.go b/controllers/product_controller.go index cb0e7fc..dea98e2 100644 --- a/controllers/product_controller.go +++ b/controllers/product_controller.go @@ -181,6 +181,37 @@ product.MaxInventoryRule = reorderRules[0].MaxInventory } product.ReorderRuleNum = rulesTotal + attributeValues, err := models.NewAttributeValueSearch().SetEntityID(product.ID).FindNotTotal() + aids := make([]uint, 0) + for _, v := range attributeValues { + aids = append(aids, v.AttributeID) + } + attributes, err := models.NewAttributeSearch().SetIDs(aids).FindNotTotal() + attributesMap := make(map[uint]*models.Attribute, len(attributes)) + for _, v := range attributes { + attributesMap[v.ID] = v + } + if err != nil { + util.ResponseFormat(c, code.RequestParamError, "鏈煡鍔ㄦ�佸睘鎬�") + } + for _, v1 := range attributeValues { + attribute := attributesMap[v1.AttributeID] + if attribute == nil { + continue + } + //product.Attributes = append(product.Attributes,v1) + product.Attributes = append(product.Attributes, models.Attribute{ + Model: gorm.Model{ID: v1.ID, CreatedAt: v1.CreatedAt, UpdatedAt: v1.UpdatedAt, DeletedAt: v1.DeletedAt}, + Name: attribute.Name, + DataType: attribute.DataType, + EntityType: attribute.EntityType, + SelectValues: attribute.SelectValues, + SelectValue: attribute.SelectValue, + //Value: v1.Value, + Value: v1.Value, + }) + } + } util.ResponseFormatList(c, code.Success, products, int(total)) } @@ -268,25 +299,25 @@ } } - attributeValueSearch := models.NewAttributeValueSearch() + /*attributeValueSearch := models.NewAttributeValueSearch() //鍒犻櫎浠庢柊鎻掑叆 if err := attributeValueSearch.SetOrm(tx).SetEntityID(params.ID).Delete(); err != nil { return err - } - avs := make([]*models.AttributeValue, 0) + }*/ + //avs := make([]*models.AttributeValue, 0) for _, v := range params.Attributes { av := models.AttributeValue{ - Model: gorm.Model{}, + Model: gorm.Model{ID: v.ID}, EntityID: params.ID, AttributeID: v.ID, Value: v.Value, } - avs = append(avs, &av) + //avs = append(avs, &av) + if err := models.NewAttributeValueSearch().SetOrm(tx).Save(&av); err != nil { + return err + } + } - } - if err := models.NewAttributeValueSearch().SetOrm(tx).CreateBatch(avs); err != nil { - return err - } return nil }) if err != nil { -- Gitblit v1.8.0