diff --git a/luoo_music/src/main/java/com/luoo/music/controller/JournalController.java b/luoo_music/src/main/java/com/luoo/music/controller/JournalController.java index dc0de6b..1e2571e 100644 --- a/luoo_music/src/main/java/com/luoo/music/controller/JournalController.java +++ b/luoo_music/src/main/java/com/luoo/music/controller/JournalController.java @@ -1,40 +1,22 @@ package com.luoo.music.controller; -import java.io.BufferedReader; -import java.io.IOException; -import java.io.InputStream; -import java.io.InputStreamReader; -import java.time.LocalDateTime; -import java.util.Arrays; import java.util.Collections; -import java.util.HashMap; import java.util.HashSet; import java.util.List; -import java.util.Map; import java.util.Set; import java.util.stream.Collectors; -import javax.annotation.PostConstruct; - -import com.apifan.common.random.RandomSource; -import com.apifan.common.random.entity.Poem; import com.luoo.music.dao.CommentDao; -import com.luoo.music.dao.TagDao; +import com.luoo.music.dto.mapper.JournalMapper; import com.luoo.music.dto.request.JournalQueryReq; import com.luoo.music.dto.response.JournalFilterDTO; import com.luoo.music.dto.response.JournalRespDTO; import com.luoo.music.dto.response.TagDTO; -import com.luoo.music.dto.response.TotalCommentVo; -import com.luoo.music.pojo.Comment; import io.swagger.annotations.*; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.core.io.ClassPathResource; import org.springframework.data.domain.PageRequest; import org.springframework.data.domain.Pageable; import org.springframework.data.mongodb.core.MongoTemplate; -import org.springframework.data.mongodb.core.aggregation.Aggregation; -import org.springframework.data.mongodb.core.aggregation.AggregationResults; -import org.springframework.data.mongodb.core.query.Criteria; import org.springframework.web.bind.annotation.*; import com.luoo.music.pojo.Journal; import com.luoo.music.pojo.Tag; @@ -45,14 +27,9 @@ import annotation.GlobalInterceptor; import annotation.VerifyParam; import api.PageResult; import api.Result; -import constants.Constants; import dto.UserLoginDto; import enums.CollectTypeEnum; -import enums.DateTimePatternEnum; -import lombok.SneakyThrows; -import util.DateUtil; import util.JwtUtil; -import util.StringTools; /** * 控制器层 @@ -71,16 +48,12 @@ public class JournalController { @Autowired private JournalService journalService; - @Autowired - private TagDao tagDao; - @Autowired private TagService tagService; @Autowired private JwtUtil jwtUtil; - @Autowired private MongoTemplate mongoTemplate; @@ -88,30 +61,6 @@ public class JournalController { private CommentDao commentDao; private static final int JOURNAL_FILTER_NUMBER_RANGE=100; - // mock data - private static final String JOURNAL_TAG_FILE_PATH = "journalTags.txt"; - private Map> journalTagMap = new HashMap<>(); - private static final String[] EDITOR = new String[] { "左岸以西", "落在低处" }; - - @PostConstruct - @SneakyThrows - private void init() { - getLines(JOURNAL_TAG_FILE_PATH).forEach(s -> { - String[] segs = s.split("\\|"); - List tags = Arrays.stream(segs[1].split(",")).collect(Collectors.toList()); - journalTagMap.put(segs[0], tags); - }); - } - - private static List getLines(String filePath) { - try (InputStream is = new ClassPathResource(filePath).getInputStream(); - BufferedReader reader = new BufferedReader(new InputStreamReader(is));) { - return reader.lines().collect(Collectors.toList()); - } catch (IOException e) { - e.printStackTrace(); - } - return Collections.emptyList(); - } @ApiOperation(value = "1.查询期刊信息", notes = "若authorization为空或authorization校验失败,默认返回最新的10期,期刊筛选条件对游客不可用") @GetMapping("/list") @@ -129,7 +78,7 @@ public class JournalController { List ids=pageList.stream().map(Journal::getId).collect(Collectors.toList()); Set journalCollectSet = null == user ? Collections.emptySet() : userCollectInfoService.getCollectSet(user.getUserId(),ids, CollectTypeEnum.JOURNAL); - List list = pageList.stream().map(a -> getJournalRespDTO(a, journalCollectSet)) + List list = pageList.stream().map(a -> JournalMapper.getJournalRespDTO(a, journalCollectSet,mongoTemplate,commentDao)) .collect(Collectors.toList()); return Result.success(new PageResult(Long.valueOf(list.size()), list)); } @@ -152,7 +101,7 @@ public class JournalController { } List pageList = journalService.orderByField(objectIds); Set journalCollectSet = new HashSet<>(objectIds); - List list = pageList.stream().map(a -> getJournalRespDTO(a, journalCollectSet)) + List list = pageList.stream().map(a -> JournalMapper.getJournalRespDTO(a, journalCollectSet,mongoTemplate,commentDao)) .collect(Collectors.toList()); return Result.success(new PageResult(Long.valueOf(list.size()), list)); } @@ -165,7 +114,7 @@ public class JournalController { @PathVariable @VerifyParam(required = true) String id) { UserLoginDto user = jwtUtil.getUserLoginDto(authorization); Journal journal = journalService.findById(id); - JournalRespDTO journalRespDTO=getJournalRespDTO(journal, Collections.emptySet()); + JournalRespDTO journalRespDTO=JournalMapper.getJournalRespDTO(journal, Collections.emptySet(),mongoTemplate,commentDao); boolean isCollect=null == user ? false:userCollectInfoService.isCollect(user.getUserId(),id, CollectTypeEnum.JOURNAL); journalRespDTO.setHaveCollect(isCollect); return Result.success(journalRespDTO); @@ -179,91 +128,16 @@ public class JournalController { JournalFilterDTO journalFilterDTO=new JournalFilterDTO(); journalFilterDTO.setJournalNoList(journalService.getJournalNoList(JOURNAL_FILTER_NUMBER_RANGE)); - journalFilterDTO.setLanguageList(tagService.getLanguageList().stream().map(this::getTagDto).collect(Collectors.toList())); - journalFilterDTO.setStyleList(tagService.getStyleList().stream().map(this::getTagDto).collect(Collectors.toList())); + journalFilterDTO.setLanguageList(tagService.getLanguageList().stream().map(this::getTagDTO).collect(Collectors.toList())); + journalFilterDTO.setStyleList(tagService.getStyleList().stream().map(this::getTagDTO).collect(Collectors.toList())); return Result.success(journalFilterDTO); } - private TagDTO getTagDto(Tag tag) { + private TagDTO getTagDTO(Tag tag) { TagDTO tagDTO=new TagDTO(); tagDTO.setName(tag.getNameCh()); tagDTO.setId(tag.getId()); return tagDTO; } - private JournalRespDTO getJournalRespDTO(Journal journal, Set journalCollectSet) { - JournalRespDTO journalRespDTO = new JournalRespDTO(); - journalRespDTO.setId(journal.getId()); - journalRespDTO.setJournalNo(journal.getJournalNo()); - journalRespDTO.setTitle(journal.getTitle()); - journalRespDTO.setImage(Constants.MUSIC_RESOURCE_PREFIX + journal.getImage()); - journalRespDTO.setDate(getEditDate(journal)); - journalRespDTO.setHaveCollect(journalCollectSet.contains(journalRespDTO.getId())); - journalRespDTO.setIpLocation("广东"); - - journalRespDTO.setTags(getTags(journalRespDTO.getJournalNo())); - String content = journal.getContent(); - if (StringTools.isEmpty(content)) { - Poem poem = RandomSource.languageSource().randomTangPoem(); - journalRespDTO.setEditor(poem.getAuthor()); - journalRespDTO.setContent(Arrays.stream(poem.getContent()).collect(Collectors.joining("\r\n"))); - } else { - journalRespDTO.setContent(content); - - journalRespDTO.setEditor(getEditor(journal.getUserName())); - } - - /** - *显示期刊点赞最多5条评论,该五条评论随机显示,每次进入刷新新,超过部分显示为“...”点击评论进入期刊详情页并自动定位到该评论,点击用户头像同上,若为空数据则显示“暂无评论,快去抢沙发吧! - */ - - List commentList = commentDao.findTop5ByJournalIdOrderByThumbupCountDesc(journal.getId()); - - journalRespDTO.setCommentList(commentList); - - /** - * 获取期刊总评论数 一级评论数加上父评论的总回复数 - */ - Criteria criteria = Criteria.where("journalId").is(journal.getId()); - Aggregation agg = Aggregation.newAggregation( - Aggregation.match(criteria),//匹配条件 - Aggregation.group().sum("commentCount").as("totalComment") - ); - AggregationResults results = mongoTemplate.aggregate(agg,"comment", TotalCommentVo.class); - TotalCommentVo totalCommentVo = results.getUniqueMappedResult(); - journalRespDTO.setTotalCommentReply("0"); - List list =commentDao.findByJournalId(journal.getId()); - int total = 0; - if(null != list && list.size()>0) { - total = list.size(); - } - if (null != totalCommentVo) { - total = total + totalCommentVo.getTotalComment(); - journalRespDTO.setTotalCommentReply(total+""); - if (total>99) { - journalRespDTO.setTotalCommentReply("99+"); - } - } - - return journalRespDTO; - } - - private String getEditor(String userName) { - return StringTools.isEmpty(userName)?EDITOR[RandomSource.numberSource().randomInt(0, EDITOR.length)]:userName; - } - - private List getTags(String journalNo) { - return journalTagMap.computeIfAbsent(journalNo, a -> getTags()); - } - - private List getTags() { - int limit = RandomSource.numberSource().randomInt(1, 3); - return tagDao.random(limit).stream().map(Tag::getNameCh).sorted().collect(Collectors.toList()); - } - - private String getEditDate(Journal journal) { - LocalDateTime date = null == journal.getUpdateTime() ? journal.getCreateTime() : journal.getUpdateTime(); - return DateUtil.format(date, DateTimePatternEnum.YYYY_DOT_MM_DOT_DD.getPattern()); - } - @ApiOperation(value = "统计期刊的浏览数", notes = "APP端打开期刊调用一次统计接口") @RequestMapping(value="/stat/visits/{id}", method= RequestMethod.PUT) public Result statVisitsCount(@ApiParam(value = "期刊ID", required = true) @PathVariable String id) { diff --git a/luoo_music/src/main/java/com/luoo/music/controller/SearchController.java b/luoo_music/src/main/java/com/luoo/music/controller/SearchController.java index 8ba89a4..88fb9fa 100644 --- a/luoo_music/src/main/java/com/luoo/music/controller/SearchController.java +++ b/luoo_music/src/main/java/com/luoo/music/controller/SearchController.java @@ -20,10 +20,13 @@ import com.apifan.common.random.RandomSource; import com.apifan.common.random.entity.Poem; import com.luoo.music.dao.CommentDao; import com.luoo.music.dao.TagDao; +import com.luoo.music.dto.mapper.JournalMapper; +import com.luoo.music.dto.mapper.SongMapper; import com.luoo.music.dto.request.JournalQueryReq; import com.luoo.music.dto.response.JournalFilterDTO; import com.luoo.music.dto.response.JournalRespDTO; import com.luoo.music.dto.response.SearchCategoryDTO; +import com.luoo.music.dto.response.SearchResultDTO; import com.luoo.music.dto.response.TotalCommentVo; import com.luoo.music.pojo.Comment; import io.swagger.annotations.*; @@ -39,6 +42,7 @@ import org.springframework.data.mongodb.core.aggregation.AggregationResults; import org.springframework.data.mongodb.core.query.Criteria; import org.springframework.web.bind.annotation.*; import com.luoo.music.pojo.Journal; +import com.luoo.music.pojo.JournalSong; import com.luoo.music.pojo.Tag; import com.luoo.music.service.JournalService; import com.luoo.music.service.JournalSongService; @@ -68,32 +72,42 @@ import util.StringTools; @Api(tags = "雀跃APP搜索 APIs") @RequestMapping("/search") public class SearchController { - @Autowired - private UserCollectInfoService userCollectInfoService; - - @Autowired - private JournalController journalController; - @Autowired private JournalService journalService; - + @Autowired private JournalSongService journalSongService; - + @Autowired private TagService tagService; - @ApiOperation(value = "1.查询搜索大类", notes = "如 ‘民谣’,‘电子’") @GetMapping("/category") @GlobalInterceptor public Result> getCategory() { - List tags=tagService.getLevel1Tags(); - List searchCategoryDTOs=tags.stream().map(this::getSearchCategoryDTO).collect(Collectors.toList()); + List tags = tagService.getLevel1Tags(); + List searchCategoryDTOs = tags.stream().map(this::getSearchCategoryDTO) + .collect(Collectors.toList()); return Result.success(searchCategoryDTOs); } + + @ApiOperation(value = "2.搜索期刊/歌曲", notes = "根据关键词模糊搜索,如 期刊号,歌曲名 等") + @ApiImplicitParams({ @ApiImplicitParam(name = "keyword", value = "搜索关键词", required = true) }) + @GetMapping("/fuzzy/{keyword}") + @GlobalInterceptor + public Result fuzzySearch( + @RequestHeader(value = "Authorization", required = false) String authorization, + @PathVariable @VerifyParam(required = true) String keyword) { + SearchResultDTO searchResultDTO = new SearchResultDTO(); + List journals = journalService.fuzzySearch(keyword); + List songs = journalSongService.fuzzySearch(keyword); + searchResultDTO.setJournals(journals.stream().map(JournalMapper::getJournalRespDTO).collect(Collectors.toList())); + searchResultDTO.setSongs(songs.stream().map(SongMapper::getSongRespDTO).collect(Collectors.toList())); + return Result.success(searchResultDTO); + } + private SearchCategoryDTO getSearchCategoryDTO(Tag tag) { - SearchCategoryDTO searchCategoryDTO=new SearchCategoryDTO(); + SearchCategoryDTO searchCategoryDTO = new SearchCategoryDTO(); BeanUtils.copyProperties(tag, searchCategoryDTO); return searchCategoryDTO; } diff --git a/luoo_music/src/main/java/com/luoo/music/controller/SongController.java b/luoo_music/src/main/java/com/luoo/music/controller/SongController.java index 70c44fe..ae9bdb2 100644 --- a/luoo_music/src/main/java/com/luoo/music/controller/SongController.java +++ b/luoo_music/src/main/java/com/luoo/music/controller/SongController.java @@ -1,5 +1,6 @@ package com.luoo.music.controller; +import com.luoo.music.dto.mapper.SongMapper; import com.luoo.music.dto.response.SongRespDTO; import com.luoo.music.pojo.JournalSong; import com.luoo.music.service.JournalService; @@ -9,7 +10,6 @@ import annotation.GlobalInterceptor; import annotation.VerifyParam; import api.PageResult; import api.Result; -import constants.Constants; import dto.UserLoginDto; import enums.CollectTypeEnum; import enums.VerifyRegexEnum; @@ -68,7 +68,7 @@ public class SongController { List ids=songs.stream().map(JournalSong::getId).collect(Collectors.toList()); Set songCollectSet = null == user ? Collections.emptySet() : userCollectInfoService.getCollectSet(user.getUserId(),ids, CollectTypeEnum.SONG); - List results = songs.stream().map(s -> getSongRespDTO(s, songCollectSet)) + List results = songs.stream().map(s -> SongMapper.getSongRespDTO(s, songCollectSet)) .collect(Collectors.toList()); return Result.success(results); } @@ -97,7 +97,7 @@ public class SongController { List songs = journalSongService.orderByField(objectIds); Set songCollectSet = new HashSet<>(objectIds); - List results = songs.stream().map(s -> getSongRespDTO(s, songCollectSet)) + List results = songs.stream().map(s -> SongMapper.getSongRespDTO(s, songCollectSet)) .collect(Collectors.toList()); return Result.success(new PageResult(Long.valueOf(results.size()), results)); } @@ -116,7 +116,7 @@ public class SongController { Set songCollectSet = null == user ? Collections.emptySet() : userCollectInfoService.getCollectSet(user.getUserId(),ids, CollectTypeEnum.SONG); - List results = songs.stream().map(s -> getSongRespDTO(s, songCollectSet)) + List results = songs.stream().map(s -> SongMapper.getSongRespDTO(s, songCollectSet)) .collect(Collectors.toList()); return Result.success(results); } @@ -129,24 +129,11 @@ public class SongController { UserLoginDto user = jwtUtil.getUserLoginDto(authorization); JournalSong song = journalSongService.findById(id); - SongRespDTO songRespDTO=getSongRespDTO(song, Collections.emptySet()); + SongRespDTO songRespDTO=SongMapper.getSongRespDTO(song); boolean isCollect=null == user ? false:userCollectInfoService.isCollect(user.getUserId(),id, CollectTypeEnum.SONG); songRespDTO.setHaveCollect(isCollect); return Result.success(songRespDTO); } - private SongRespDTO getSongRespDTO(JournalSong song, Set songCollectSet) { - SongRespDTO songRespDTO = new SongRespDTO(); - songRespDTO.setJournalNo(song.getJournalNo()); - songRespDTO.setAlbum(song.getAlbum()); - songRespDTO.setArtist(song.getArtist()); - songRespDTO.setId(song.getId()); - songRespDTO.setTitle(song.getName()); - songRespDTO.setSrc(Constants.MUSIC_RESOURCE_PREFIX + song.getUrl()); - songRespDTO.setPic(Constants.MUSIC_RESOURCE_PREFIX + song.getUrl().replace(".mp3", ".jpg")); - songRespDTO.setLrc(Constants.MUSIC_RESOURCE_PREFIX + song.getUrl().replace(".mp3", ".lyric")); - songRespDTO.setSongNo(song.getSongNo()); - songRespDTO.setHaveCollect(songCollectSet.contains(songRespDTO.getId())); - return songRespDTO; - } + } diff --git a/luoo_music/src/main/java/com/luoo/music/dto/mapper/JournalMapper.java b/luoo_music/src/main/java/com/luoo/music/dto/mapper/JournalMapper.java new file mode 100644 index 0000000..0a3304c --- /dev/null +++ b/luoo_music/src/main/java/com/luoo/music/dto/mapper/JournalMapper.java @@ -0,0 +1,135 @@ +package com.luoo.music.dto.mapper; + +import java.io.BufferedReader; +import java.io.IOException; +import java.io.InputStream; +import java.io.InputStreamReader; +import java.time.LocalDateTime; +import java.util.Arrays; +import java.util.Collections; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.Set; +import java.util.stream.Collectors; + +import org.springframework.core.io.ClassPathResource; +import org.springframework.data.mongodb.core.MongoTemplate; +import org.springframework.data.mongodb.core.aggregation.Aggregation; +import org.springframework.data.mongodb.core.aggregation.AggregationResults; +import org.springframework.data.mongodb.core.query.Criteria; + +import com.apifan.common.random.RandomSource; +import com.apifan.common.random.entity.Poem; +import com.luoo.music.dao.CommentDao; +import com.luoo.music.dto.response.JournalRespDTO; +import com.luoo.music.dto.response.TotalCommentVo; +import com.luoo.music.pojo.Comment; +import com.luoo.music.pojo.Journal; +import constants.Constants; +import enums.DateTimePatternEnum; +import util.DateUtil; +import util.StringTools; + +public class JournalMapper { + // mock data + private static final String JOURNAL_TAG_FILE_PATH = "journalTags.txt"; + private static final Map> journalTagMap = new HashMap<>(); + private static final String[] EDITOR = new String[] { "左岸以西", "落在低处" }; + + static { + getLines(JOURNAL_TAG_FILE_PATH).forEach(s -> { + String[] segs = s.split("\\|"); + List tags = Arrays.stream(segs[1].split(",")).collect(Collectors.toList()); + journalTagMap.put(segs[0], tags); + }); + } + + private static List getLines(String filePath) { + try (InputStream is = new ClassPathResource(filePath).getInputStream(); + BufferedReader reader = new BufferedReader(new InputStreamReader(is));) { + return reader.lines().collect(Collectors.toList()); + } catch (IOException e) { + e.printStackTrace(); + } + return Collections.emptyList(); + } + + public static JournalRespDTO getJournalRespDTO(Journal journal) { + return getJournalRespDTO(journal,Collections.emptySet()); + } + + public static JournalRespDTO getJournalRespDTO(Journal journal, Set journalCollectSet) { + JournalRespDTO journalRespDTO = new JournalRespDTO(); + journalRespDTO.setId(journal.getId()); + journalRespDTO.setJournalNo(journal.getJournalNo()); + journalRespDTO.setTitle(journal.getTitle()); + journalRespDTO.setImage(Constants.MUSIC_RESOURCE_PREFIX + journal.getImage()); + journalRespDTO.setDate(getEditDate(journal)); + journalRespDTO.setHaveCollect(journalCollectSet.contains(journalRespDTO.getId())); + journalRespDTO.setIpLocation("广东"); + + journalRespDTO.setTags(getTags(journalRespDTO.getJournalNo())); + String content = journal.getContent(); + if (StringTools.isEmpty(content)) { + Poem poem = RandomSource.languageSource().randomTangPoem(); + journalRespDTO.setEditor(poem.getAuthor()); + journalRespDTO.setContent(Arrays.stream(poem.getContent()).collect(Collectors.joining("\r\n"))); + } else { + journalRespDTO.setContent(content); + + journalRespDTO.setEditor(getEditor(journal.getUserName())); + } + return journalRespDTO; + } + public static JournalRespDTO getJournalRespDTO(Journal journal, Set journalCollectSet, + MongoTemplate mongoTemplate, CommentDao commentDao) { + JournalRespDTO journalRespDTO = getJournalRespDTO(journal,journalCollectSet); + + /** + * 显示期刊点赞最多5条评论,该五条评论随机显示,每次进入刷新新,超过部分显示为“...”点击评论进入期刊详情页并自动定位到该评论,点击用户头像同上,若为空数据则显示“暂无评论,快去抢沙发吧! + */ + + List commentList = commentDao.findTop5ByJournalIdOrderByThumbupCountDesc(journal.getId()); + + journalRespDTO.setCommentList(commentList); + + /** + * 获取期刊总评论数 一级评论数加上父评论的总回复数 + */ + Criteria criteria = Criteria.where("journalId").is(journal.getId()); + Aggregation agg = Aggregation.newAggregation(Aggregation.match(criteria), // 匹配条件 + Aggregation.group().sum("commentCount").as("totalComment")); + AggregationResults results = mongoTemplate.aggregate(agg, "comment", TotalCommentVo.class); + TotalCommentVo totalCommentVo = results.getUniqueMappedResult(); + journalRespDTO.setTotalCommentReply("0"); + List list = commentDao.findByJournalId(journal.getId()); + int total = 0; + if (null != list && list.size() > 0) { + total = list.size(); + } + if (null != totalCommentVo) { + total = total + totalCommentVo.getTotalComment(); + journalRespDTO.setTotalCommentReply(total + ""); + if (total > 99) { + journalRespDTO.setTotalCommentReply("99+"); + } + } + + return journalRespDTO; + } + + private static String getEditor(String userName) { + return StringTools.isEmpty(userName) ? EDITOR[RandomSource.numberSource().randomInt(0, EDITOR.length)] + : userName; + } + + private static List getTags(String journalNo) { + return journalTagMap.getOrDefault(journalNo, Collections.emptyList()); + } + + private static String getEditDate(Journal journal) { + LocalDateTime date = null == journal.getUpdateTime() ? journal.getCreateTime() : journal.getUpdateTime(); + return DateUtil.format(date, DateTimePatternEnum.YYYY_DOT_MM_DOT_DD.getPattern()); + } +} diff --git a/luoo_music/src/main/java/com/luoo/music/dto/mapper/SongMapper.java b/luoo_music/src/main/java/com/luoo/music/dto/mapper/SongMapper.java new file mode 100644 index 0000000..61a2c52 --- /dev/null +++ b/luoo_music/src/main/java/com/luoo/music/dto/mapper/SongMapper.java @@ -0,0 +1,30 @@ +package com.luoo.music.dto.mapper; + +import java.util.Collections; +import java.util.Set; + +import com.luoo.music.dto.response.SongRespDTO; +import com.luoo.music.pojo.JournalSong; + +import constants.Constants; + +public class SongMapper { + public static SongRespDTO getSongRespDTO(JournalSong song, Set songCollectSet) { + SongRespDTO songRespDTO = new SongRespDTO(); + songRespDTO.setJournalNo(song.getJournalNo()); + songRespDTO.setAlbum(song.getAlbum()); + songRespDTO.setArtist(song.getArtist()); + songRespDTO.setId(song.getId()); + songRespDTO.setTitle(song.getName()); + songRespDTO.setSrc(Constants.MUSIC_RESOURCE_PREFIX + song.getUrl()); + songRespDTO.setPic(Constants.MUSIC_RESOURCE_PREFIX + song.getUrl().replace(".mp3", ".jpg")); + songRespDTO.setLrc(Constants.MUSIC_RESOURCE_PREFIX + song.getUrl().replace(".mp3", ".lyric")); + songRespDTO.setSongNo(song.getSongNo()); + songRespDTO.setHaveCollect(songCollectSet.contains(songRespDTO.getId())); + return songRespDTO; + } + + public static SongRespDTO getSongRespDTO(JournalSong song) { + return getSongRespDTO(song, Collections.emptySet()); + } +} diff --git a/luoo_music/src/main/java/com/luoo/music/dto/response/SearchResultDTO.java b/luoo_music/src/main/java/com/luoo/music/dto/response/SearchResultDTO.java new file mode 100644 index 0000000..a18d5c4 --- /dev/null +++ b/luoo_music/src/main/java/com/luoo/music/dto/response/SearchResultDTO.java @@ -0,0 +1,14 @@ +package com.luoo.music.dto.response; + +import java.util.List; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +@Data +public class SearchResultDTO { + @ApiModelProperty(value = "歌曲") + private List songs; + @ApiModelProperty(value = "期刊") + private List journals; +} diff --git a/luoo_music/src/main/java/com/luoo/music/service/JournalService.java b/luoo_music/src/main/java/com/luoo/music/service/JournalService.java index 57aa4e7..1816eaa 100644 --- a/luoo_music/src/main/java/com/luoo/music/service/JournalService.java +++ b/luoo_music/src/main/java/com/luoo/music/service/JournalService.java @@ -275,4 +275,10 @@ public class JournalService { JOURNAL_RANGE_MAP.put(maxJournalNo, journalNoList); return journalNoList; } + + + public List fuzzySearch(String keyword) { + // TODO Auto-generated method stub + return Collections.emptyList(); + } } diff --git a/luoo_music/src/main/java/com/luoo/music/service/JournalSongService.java b/luoo_music/src/main/java/com/luoo/music/service/JournalSongService.java index 86f2be4..ba297cd 100644 --- a/luoo_music/src/main/java/com/luoo/music/service/JournalSongService.java +++ b/luoo_music/src/main/java/com/luoo/music/service/JournalSongService.java @@ -17,6 +17,7 @@ import javax.persistence.criteria.CriteriaQuery; import javax.persistence.criteria.Predicate; import javax.persistence.criteria.Root; import java.util.ArrayList; +import java.util.Collections; import java.util.List; import java.util.Map; @@ -152,4 +153,9 @@ public class JournalSongService { public List orderByField(List objectIds) { return journalSongDao.orderByField(objectIds); } + + public List fuzzySearch(String keyword) { + // TODO Auto-generated method stub + return Collections.emptyList(); + } }