package service import ( "encoding/json" "github.com/iancoleman/orderedmap" "go_sku_server/pkg/logger" "go_sku_server/pkg/mongo" "gopkg.in/mgo.v2" "gopkg.in/mgo.v2/bson" "strconv" ) //获取Spu的属性 func (ls *LyService) GetSpuAttr(spuId string) (attrsResult interface{}) { var spuAttr SpuAttr var attrsList []interface{} mongodb := mongo.Conn("default") defer func() { mongodb.Close() }() spuIdInt, _ := strconv.Atoi(spuId) err := mongodb.DB("ichunt").C("spu_attrs").Find(bson.M{"spu_id": spuIdInt}).One(&spuAttr) if err != nil && err != mgo.ErrNotFound { logger.Select("sku_query").Error(err.Error()) } //fmt.Println(spuAttr.AttrsExtend) //如果有attrs_extend,就去取attrs_extend if len(spuAttr.AttrsExtend) != 0 { return spuAttr.AttrsExtend } else if spuAttr.Attrs != "" { o := orderedmap.New() err := json.Unmarshal([]byte(spuAttr.Attrs), &o) if err != nil { logger.Select("sku_query").Error(err.Error()) } for _, value := range o.Keys() { data := make(map[string]interface{}) data["attr_name"] = value data["attr_value"], _ = o.Get(value) attrsList = append(attrsList, data) attrsResult = attrsList } return attrsResult } return false }