This is an automated email from the ASF dual-hosted git repository. linkinstar pushed a commit to branch feat/1.3.6/template in repository https://gitbox.apache.org/repos/asf/incubator-answer.git
commit c4318f1d18f96d73b9e2b90458f8ad5c2ece62e0 Author: LinkinStars <[email protected]> AuthorDate: Fri Jul 12 16:40:02 2024 +0800 feat(tag): recommend tags can't contain reserved tag --- internal/service/siteinfo/siteinfo_service.go | 20 ++++++++++++++++---- 1 file changed, 16 insertions(+), 4 deletions(-) diff --git a/internal/service/siteinfo/siteinfo_service.go b/internal/service/siteinfo/siteinfo_service.go index c7f1f9ce..ce71900d 100644 --- a/internal/service/siteinfo/siteinfo_service.go +++ b/internal/service/siteinfo/siteinfo_service.go @@ -181,11 +181,23 @@ func (s *SiteInfoService) SaveSiteBranding(ctx context.Context, req *schema.Site // SaveSiteWrite save site configuration about write func (s *SiteInfoService) SaveSiteWrite(ctx context.Context, req *schema.SiteWriteReq) (resp interface{}, err error) { recommendTags, reservedTags := make([]string, 0), make([]string, 0) - for _, tag := range req.RecommendTags { - recommendTags = append(recommendTags, tag.SlugName) - } + recommendTagMapping, reservedTagMapping := make(map[string]bool), make(map[string]bool) for _, tag := range req.ReservedTags { - reservedTags = append(reservedTags, tag.SlugName) + if !recommendTagMapping[tag.SlugName] { + reservedTagMapping[tag.SlugName] = true + reservedTags = append(reservedTags, tag.SlugName) + } + } + + // recommend tags can't contain reserved tag + for _, tag := range req.RecommendTags { + if reservedTagMapping[tag.SlugName] { + continue + } + if !recommendTagMapping[tag.SlugName] { + recommendTagMapping[tag.SlugName] = true + recommendTags = append(recommendTags, tag.SlugName) + } } errData, err := s.tagCommonService.SetSiteWriteTag(ctx, recommendTags, reservedTags, req.UserID) if err != nil {
