diff --git a/server/product-template-tag/internal/logic/getproducttemplatetagslogic.go b/server/product-template-tag/internal/logic/getproducttemplatetagslogic.go index fd123c82..c76f2048 100644 --- a/server/product-template-tag/internal/logic/getproducttemplatetagslogic.go +++ b/server/product-template-tag/internal/logic/getproducttemplatetagslogic.go @@ -48,6 +48,7 @@ type logoSelect struct { } func (l *GetProductTemplateTagsLogic) GetProductTemplateTags(req *types.GetProductTemplateTagsReq, userinfo *auth.UserInfo) (resp *basic.Response) { + userinfo.UserId = 127 if req.Limit <= 0 || req.Limit > 100 { req.Limit = 5 } @@ -73,13 +74,14 @@ func (l *GetProductTemplateTagsLogic) GetProductTemplateTags(req *types.GetProdu logx.Error(err) return resp.SetStatusWithMessage(basic.CodeJsonErr, "failed to parse user metadata") } - var mapTemplateTag map[string][]types.ColorsItem + var mapTemplateTag map[string][][]string b, _ := json.Marshal(metaData["template_tag"]) if err = json.Unmarshal(b, &mapTemplateTag); err != nil { logx.Error(err) - return resp.SetStatusWithMessage(basic.CodeJsonErr, "invalid format of metadata`s colors") + return resp.SetStatusWithMessage(basic.CodeJsonErr, "invalid format of metadata`s template_tag") } //获取选中的颜色数据 + mapSelectColor := make(map[string]int) //key是模板标签val是选中的索引 if logoInfo.UserInfoMetadata != nil && *logoInfo.UserInfoMetadata != "" { var logoSelectInfo logoSelect if err = json.Unmarshal([]byte(*logoInfo.UserInfoMetadata), &logoSelectInfo); err != nil { @@ -88,9 +90,8 @@ func (l *GetProductTemplateTagsLogic) GetProductTemplateTags(req *types.GetProdu } //设置选中 key := logoSelectInfo.LogoSelected.TemplateTagSelected.TemplateTag - index := logoSelectInfo.LogoSelected.TemplateTagSelected.SelectedIndex if _, ok := mapTemplateTag[key]; ok { - mapTemplateTag[key][index].Selected = true + mapSelectColor[key] = logoSelectInfo.LogoSelected.TemplateTagSelected.SelectedIndex } } var templateTagNameList []string @@ -122,14 +123,25 @@ func (l *GetProductTemplateTagsLogic) GetProductTemplateTags(req *types.GetProdu mapResourceMetadata[*v.ResourceUrl] = metadata } list := make([]types.GetProductTemplateTagsRsp, 0, len(productTemplateTags)) - for _, v := range productTemplateTags { + for _, templateInfo := range productTemplateTags { colors := make([]types.ColorsItem, 0, 10) - colors = append(colors, mapTemplateTag[*v.TemplateTag]...) + for index, v := range mapTemplateTag[*templateInfo.TemplateTag] { + selected := false + if selectIndex, ok := mapSelectColor[*templateInfo.TemplateTag]; ok { + if index == selectIndex { + selected = true + } + } + colors = append(colors, types.ColorsItem{ + Color: v, + Selected: selected, + }) + } list = append(list, types.GetProductTemplateTagsRsp{ - Id: v.Id, - TemplateTag: *v.TemplateTag, - Cover: *v.Cover, - CoverMetadata: mapResourceMetadata[*v.Cover], + Id: templateInfo.Id, + TemplateTag: *templateInfo.TemplateTag, + Cover: *templateInfo.Cover, + CoverMetadata: mapResourceMetadata[*templateInfo.Cover], Colors: colors, }) }