From 1bdc71998b42a64d0e185e0b22680958d555922a Mon Sep 17 00:00:00 2001 From: xupei Date: Tue, 8 Oct 2024 13:13:13 +0800 Subject: [PATCH] =?UTF-8?q?=E6=8C=89=E6=A0=87=E7=AD=BE=E6=9F=A5=E8=AF=A2?= =?UTF-8?q?=E4=BD=9C=E5=93=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ai/da/controller/PortfolioController.java | 12 ++++---- .../com/ai/da/model/dto/PortfolioDTO.java | 6 ++-- .../com/ai/da/service/PortfolioService.java | 4 +-- .../java/com/ai/da/service/TagsService.java | 4 +++ .../da/service/impl/PortfolioServiceImpl.java | 28 ++++++++++++++----- .../ai/da/service/impl/TagsServiceImpl.java | 2 +- 6 files changed, 37 insertions(+), 19 deletions(-) diff --git a/src/main/java/com/ai/da/controller/PortfolioController.java b/src/main/java/com/ai/da/controller/PortfolioController.java index 506390da..b86be181 100644 --- a/src/main/java/com/ai/da/controller/PortfolioController.java +++ b/src/main/java/com/ai/da/controller/PortfolioController.java @@ -6,7 +6,6 @@ import com.ai.da.model.dto.*; import com.ai.da.model.vo.CommentVO; import com.ai.da.model.vo.PortfolioVO; import com.ai.da.model.vo.UserLikeChooseVO; -import com.ai.da.model.vo.UserLikeGroupVO; import com.ai.da.service.PortfolioService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; @@ -29,8 +28,8 @@ public class PortfolioController { @ApiOperation(value = "发布作品集") @PostMapping("/publish") - public Response preLogin(@RequestParam("file") MultipartFile canvas, @RequestParam("data") String data, @RequestParam("tags") List tagsDTOS) { - return Response.success(portfolioService.publish(canvas, data, tagsDTOS)); + public Response preLogin(@RequestParam("file") MultipartFile canvas, @RequestParam("data") String data) { + return Response.success(portfolioService.publish(canvas, data)); } @ApiOperation(value = "删除作品集") @@ -120,8 +119,9 @@ public class PortfolioController { } @ApiOperation(value = "按标签名查询作品") - @PostMapping("/queryPortfolioByTag") - public Response> queryPortfolioByTag(@RequestParam("tagName") String tagName) { - return Response.success(portfolioService.queryPortfolioByTag(tagName)); + @GetMapping("/queryPortfolioByTag") + public Response> queryPortfolioByTag(@RequestParam(value = "tagName", required = false) String tagName, + @RequestParam(value = "tagId", required = false) Long tagId) { + return Response.success(portfolioService.queryPortfolioByTag(tagName, tagId)); } } diff --git a/src/main/java/com/ai/da/model/dto/PortfolioDTO.java b/src/main/java/com/ai/da/model/dto/PortfolioDTO.java index add1d0c9..a395dc75 100644 --- a/src/main/java/com/ai/da/model/dto/PortfolioDTO.java +++ b/src/main/java/com/ai/da/model/dto/PortfolioDTO.java @@ -2,11 +2,11 @@ package com.ai.da.model.dto; import com.ai.da.mapper.primary.entity.Portfolio; import lombok.Data; -import org.springframework.web.multipart.MultipartFile; - -import java.io.File; +import java.util.List; @Data public class PortfolioDTO extends Portfolio { private Long userLikeGroupId; + + private List tagsDTO; } diff --git a/src/main/java/com/ai/da/service/PortfolioService.java b/src/main/java/com/ai/da/service/PortfolioService.java index 4231839c..344f27fd 100644 --- a/src/main/java/com/ai/da/service/PortfolioService.java +++ b/src/main/java/com/ai/da/service/PortfolioService.java @@ -12,7 +12,7 @@ import org.springframework.web.multipart.MultipartFile; import java.util.List; public interface PortfolioService extends IService { - Boolean publish(MultipartFile canvas, String data, List tagsDTOS); + Boolean publish(MultipartFile canvas, String data); PortfolioVO update(PortfolioDTO portfolioDTO); @@ -44,5 +44,5 @@ public interface PortfolioService extends IService { Portfolio getByIdAll(Long originalPortfolioId); - List queryPortfolioByTag(String tagName); + List queryPortfolioByTag(String tagName, Long tagId); } diff --git a/src/main/java/com/ai/da/service/TagsService.java b/src/main/java/com/ai/da/service/TagsService.java index 9fd6bedf..ee9a91a6 100644 --- a/src/main/java/com/ai/da/service/TagsService.java +++ b/src/main/java/com/ai/da/service/TagsService.java @@ -3,6 +3,10 @@ package com.ai.da.service; import com.ai.da.mapper.primary.entity.Tags; import com.baomidou.mybatisplus.extension.service.IService; +import java.util.List; + public interface TagsService extends IService { + List getTags(String tagPrefix); + } diff --git a/src/main/java/com/ai/da/service/impl/PortfolioServiceImpl.java b/src/main/java/com/ai/da/service/impl/PortfolioServiceImpl.java index ac4ba85d..1d2792ea 100644 --- a/src/main/java/com/ai/da/service/impl/PortfolioServiceImpl.java +++ b/src/main/java/com/ai/da/service/impl/PortfolioServiceImpl.java @@ -121,7 +121,7 @@ public class PortfolioServiceImpl extends ServiceImpl tagsDTOS) { + public Boolean publish(MultipartFile file, String data) { AuthPrincipalVo authPrincipalVo = UserContext.getUserHolder(); PortfolioDTO portfolioDTO = JSONObject.parseObject(data, PortfolioDTO.class); QueryWrapper existSameNameQw = new QueryWrapper<>(); @@ -296,7 +296,9 @@ public class PortfolioServiceImpl extends ServiceImpl tagsDTOS, Long portfolioId) { // 遍历数组,添加到t_portfolio_tags表中,没有id的tag,添加到t_tags表中 + + // todo 1、如何处理重复的tag tagsDTOS.forEach(tag -> { PortfolioTags portfolioTags = new PortfolioTags(); if (Objects.isNull(tag.getId())){ Tags newTag = new Tags(); - newTag.setTagName(tag.getTagName()); + String tagName = tag.getTagName(); + /*if (tagName.startsWith("#")){ + tagName = tagName.replace("#", ""); + }*/ + newTag.setTagName(tagName); newTag.setCreateTime(LocalDateTime.now()); tagsService.save(newTag); portfolioTags.setTagId(newTag.getId()); @@ -1076,11 +1084,17 @@ public class PortfolioServiceImpl extends ServiceImpl queryPortfolioByTag(String tagName){ + public List queryPortfolioByTag(String tagName, Long tagId){ ArrayList portfolioVOS = new ArrayList<>(); - List> matchingTags = tagsMapper.getMatchingTags(tagName); - Map tagMap = matchingTags.get(0); - long bestMatchTagId = Long.parseLong(tagMap.get("id")); + long bestMatchTagId; + if (Objects.isNull(tagId)){ + + List> matchingTags = tagsMapper.getMatchingTags(tagName); + Map tagMap = matchingTags.get(0); + bestMatchTagId = Long.parseLong(tagMap.get("id")); + }else { + bestMatchTagId = tagId; + } QueryWrapper queryWrapper = new QueryWrapper<>(); queryWrapper.eq("tag_id", bestMatchTagId).select("portfolio_id"); diff --git a/src/main/java/com/ai/da/service/impl/TagsServiceImpl.java b/src/main/java/com/ai/da/service/impl/TagsServiceImpl.java index 339417e2..c0a1182c 100644 --- a/src/main/java/com/ai/da/service/impl/TagsServiceImpl.java +++ b/src/main/java/com/ai/da/service/impl/TagsServiceImpl.java @@ -19,7 +19,7 @@ public class TagsServiceImpl extends ServiceImpl implements Ta public List getTags(String tagPrefix){ // 1、根据tag前缀,查询 QueryWrapper queryWrapper = new QueryWrapper<>(); - queryWrapper.likeLeft("tag_name", tagPrefix); + queryWrapper.likeRight("tag_name", tagPrefix); // 需返回标签内容和id return baseMapper.selectList(queryWrapper);