fix
This commit is contained in:
parent
3a9de995b2
commit
c8e6467e9a
|
@ -132,7 +132,7 @@ func (l *GetTagProductListLogic) GetTagProductList(req *types.GetTagProductListR
|
|||
return resp.SetStatusAddMessage(basic.CodeServiceErr, "failed to deal with tag data")
|
||||
}
|
||||
//组装等级从属关系
|
||||
rspTagList, TotalCategoryProduct := l.organizationLevelRelation(minLevel, mapTagLevel)
|
||||
rspTagList, TotalCategoryProduct := l.organizationLevelRelation(minLevel, mapTagLevel, productList)
|
||||
return resp.SetStatusWithMessage(basic.CodeOK, "success", types.GetTagProductListRsp{
|
||||
TotalCategoryProduct: TotalCategoryProduct,
|
||||
TagList: rspTagList,
|
||||
|
@ -308,7 +308,7 @@ func (l *GetTagProductListLogic) dealWithTagMenuData(req dealWithTagMenuDataReq)
|
|||
})
|
||||
//tag中产品
|
||||
for _, tmpProduct := range productListRsp {
|
||||
tagTem.TagProductList = append(tagTem.TagProductList, tmpProduct)
|
||||
tagTem.TagProductList = append(tagTem.TagProductList, tmpProduct.ProductId)
|
||||
}
|
||||
}
|
||||
//加入分类
|
||||
|
@ -318,7 +318,7 @@ func (l *GetTagProductListLogic) dealWithTagMenuData(req dealWithTagMenuDataReq)
|
|||
}
|
||||
|
||||
// 组织等级从属关系
|
||||
func (l *GetTagProductListLogic) organizationLevelRelation(minLevel int, mapTagLevel map[string]*types.TagItem) (rspTagList []types.TagItem, productCount int) {
|
||||
func (l *GetTagProductListLogic) organizationLevelRelation(minLevel int, mapTagLevel map[string]*types.TagItem, productList []gmodel.FsProduct) (rspTagList []types.TagItem, productCount int) {
|
||||
mapTop := make(map[string]struct{})
|
||||
//设置归属关系
|
||||
for prefix, tagItem := range mapTagLevel {
|
||||
|
@ -341,16 +341,25 @@ func (l *GetTagProductListLogic) organizationLevelRelation(minLevel int, mapTagL
|
|||
})
|
||||
mapTagLevel[parentPrefix] = parent
|
||||
}
|
||||
//把子类的产品列表变成产品id列表并且把产品列表都放到最顶级父级中
|
||||
//父类聚合子类所有产品
|
||||
for _, v := range mapTagLevel {
|
||||
if _, ok := mapTop[v.LevelPrefix]; ok {
|
||||
continue
|
||||
}
|
||||
topPrefixSlic := strings.Split(v.LevelPrefix, "/")[:minLevel]
|
||||
topPrefix := strings.Join(topPrefixSlic, "/")
|
||||
for k, tmpProduct := range v.TagProductList {
|
||||
v.TagProductList[k] = tmpProduct.(types.TagProduct).ProductId
|
||||
mapTagLevel[topPrefix].TagProductList = append(mapTagLevel[topPrefix].TagProductList, tmpProduct)
|
||||
mapTypeId := make(map[int64]struct{})
|
||||
for _, v2 := range mapTagLevel {
|
||||
//包含主路径,则属于该类型
|
||||
if strings.Contains(v2.LevelPrefix, v.LevelPrefix) {
|
||||
mapTypeId[v2.TypeId] = struct{}{}
|
||||
}
|
||||
}
|
||||
//循环产品放入
|
||||
for _, p := range productList {
|
||||
_, ok := mapTypeId[*p.Type]
|
||||
if !ok {
|
||||
continue
|
||||
}
|
||||
mapTagLevel[v.LevelPrefix].TagProductList = append(mapTagLevel[v.LevelPrefix].TagProductList, p)
|
||||
}
|
||||
}
|
||||
//最终值提取最高级别那一层出来
|
||||
|
|
Loading…
Reference in New Issue
Block a user