diff --git a/model/gmodel/fs_product_template_tags_logic.go b/model/gmodel/fs_product_template_tags_logic.go index b2529fcf..8c931575 100755 --- a/model/gmodel/fs_product_template_tags_logic.go +++ b/model/gmodel/fs_product_template_tags_logic.go @@ -43,8 +43,8 @@ func (pt *FsProductTemplateTagsModel) GetListByTagNames(ctx context.Context, tag err = db.Limit(limit).Find(&resp).Error return resp, err } -func (pt *FsProductTemplateTagsModel) FindOneByTagName(ctx context.Context, tagName string, fields ...string) (resp *FsProductTemplateTags, err error) { - db := pt.db.WithContext(ctx).Model(&FsProductTemplateTags{}).Where("`template_tag` = ? and `status` = ?", tagName, 1) +func (pt *FsProductTemplateTagsModel) FindOneByTagName(ctx context.Context, templateTagName string, fields ...string) (resp *FsProductTemplateTags, err error) { + db := pt.db.WithContext(ctx).Model(&FsProductTemplateTags{}).Where("`template_tag` = ? and `status` = ?", templateTagName, 1) if len(fields) != 0 { db = db.Select(fields[0]) } diff --git a/server/product-template-tag/internal/logic/gettemplatetagcolorlogic.go b/server/product-template-tag/internal/logic/gettemplatetagcolorlogic.go index 4913e396..40875df6 100644 --- a/server/product-template-tag/internal/logic/gettemplatetagcolorlogic.go +++ b/server/product-template-tag/internal/logic/gettemplatetagcolorlogic.go @@ -46,9 +46,19 @@ func (l *GetTemplateTagColorLogic) GetTemplateTagColor(req *types.GetTemplateTag } resourceId := s[len(s)-1] var ( - userMaterial *gmodel.FsUserMaterial - err error + userMaterial *gmodel.FsUserMaterial + templateTagInfo *gmodel.FsProductTemplateTags + err error ) + //获取模板标签信息 + templateTagInfo, err = l.svcCtx.AllModels.FsProductTemplateTags.FindOneByTagName(l.ctx, req.TemplateTag) + if err != nil { + if errors.Is(err, gorm.ErrRecordNotFound) { + return resp.SetStatusWithMessage(basic.CodeDbRecordNotFoundErr, "the template tag is not exists") + } + logx.Error(err) + return resp.SetStatusWithMessage(basic.CodeDbSqlErr, "failed to get template tag info") + } //游客或者用户 if userinfo.IsUser() || userinfo.IsGuest() { userMaterial, err = l.svcCtx.AllModels.FsUserMaterial.FindOneByUserAndLogoUrl(l.ctx, userinfo.UserId, userinfo.GuestId, resourceId) @@ -85,9 +95,17 @@ func (l *GetTemplateTagColorLogic) GetTemplateTagColor(req *types.GetTemplateTag if req.SelectedColorIndex >= len(colors) { return resp.SetStatusWithMessage(basic.CodeRequestParamsErr, "select color index is out of range !!") } + var templateTagGroups interface{} + if templateTagInfo.Groups != nil && *templateTagInfo.Groups != "" { + if err = json.Unmarshal([]byte(*templateTagInfo.Groups), &templateTagGroups); err != nil { + logx.Error(err) + return resp.SetStatusWithMessage(basic.CodeJsonErr, "failed to parse template tag`s groups info") + } + } return resp.SetStatusWithMessage(basic.CodeOK, "success", types.GetTemplateTagColorRsp{ Colors: colors, SelectedColorIndex: req.SelectedColorIndex, + TemplateTagGroups: templateTagGroups, }) } diff --git a/server/product-template-tag/internal/types/types.go b/server/product-template-tag/internal/types/types.go index f5f6493a..0a83336c 100644 --- a/server/product-template-tag/internal/types/types.go +++ b/server/product-template-tag/internal/types/types.go @@ -27,8 +27,9 @@ type GetTemplateTagColorReq struct { } type GetTemplateTagColorRsp struct { - Colors [][]string `json:"colors"` - SelectedColorIndex int `json:"selected_color_index"` + Colors [][]string `json:"colors"` + SelectedColorIndex int `json:"selected_color_index"` + TemplateTagGroups interface{} `json:"template_tag_groups"` } type Request struct { diff --git a/server_api/product-template-tag.api b/server_api/product-template-tag.api index d074f921..c424cd91 100644 --- a/server_api/product-template-tag.api +++ b/server_api/product-template-tag.api @@ -39,6 +39,7 @@ type GetTemplateTagColorReq { SelectedColorIndex int `form:"selected_color_index"` } type GetTemplateTagColorRsp { - Colors [][]string `json:"colors"` - SelectedColorIndex int `json:"selected_color_index"` + Colors [][]string `json:"colors"` + SelectedColorIndex int `json:"selected_color_index"` + TemplateTagGroups interface{} `json:"template_tag_groups"` } \ No newline at end of file