筛选功能
This commit is contained in:
@@ -1,6 +1,7 @@
|
||||
package com.ruoyi.web.controller.client;
|
||||
|
||||
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
import com.ruoyi.common.constant.HttpStatus;
|
||||
import com.ruoyi.common.core.controller.BaseController;
|
||||
import com.ruoyi.common.core.domain.AjaxResult;
|
||||
@@ -15,6 +16,7 @@ import com.ruoyi.system.service.IMusicSceneService;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
@@ -156,5 +158,19 @@ public class MusicController extends BaseController {
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 根据作者名称或音乐名称 模糊搜索音乐
|
||||
* @param search 作者名称 或 音乐名称
|
||||
* @return 音乐信息,增加是否是我喜欢的标识
|
||||
*/
|
||||
@GetMapping("/find")
|
||||
public AjaxResult findLikeSearch(@RequestParam("search") String search){
|
||||
if (search == null || StrUtil.isEmpty(search)){
|
||||
return AjaxResult.success(new ArrayList<>());
|
||||
}
|
||||
// 根据作者名称或音乐名称 模糊搜索音乐,返回信息要包含是否是我喜欢的标识
|
||||
List<MusicInfo> musicInfos = musicService.findLikeSearch(search);
|
||||
return AjaxResult.success(musicInfos);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -28,7 +28,11 @@ public class SecurityUtils
|
||||
{
|
||||
try
|
||||
{
|
||||
return getLoginUser().getUserId();
|
||||
LoginUser logUse = getLoginUser();
|
||||
if (logUse != null){
|
||||
return logUse.getUserId();
|
||||
}
|
||||
return null;
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
@@ -75,7 +79,10 @@ public class SecurityUtils
|
||||
{
|
||||
try
|
||||
{
|
||||
return (LoginUser) getAuthentication().getPrincipal();
|
||||
if (getAuthentication().getPrincipal() instanceof LoginUser){
|
||||
return (LoginUser) getAuthentication().getPrincipal();
|
||||
}
|
||||
return null;
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
|
||||
@@ -99,4 +99,12 @@ public interface MusicInfoMapper
|
||||
* @return 音乐图片URL
|
||||
*/
|
||||
String selectLikeMusicImageByUserId(@Param("userId") Long userId);
|
||||
|
||||
/**
|
||||
* 根据作者名称或音乐名称模糊搜索音乐
|
||||
*
|
||||
* @param search 搜索关键词
|
||||
* @return 音乐信息列表
|
||||
*/
|
||||
List<MusicInfo> selectMusicInfoBySearch(@Param("search") String search);
|
||||
}
|
||||
|
||||
@@ -116,4 +116,12 @@ public interface IMusicInfoService
|
||||
* @return 音乐图片URL
|
||||
*/
|
||||
String findLikeMusicImageByUserId(Long userId);
|
||||
|
||||
/**
|
||||
* 根据作者名称或音乐名称模糊搜索音乐
|
||||
*
|
||||
* @param search 搜索关键词
|
||||
* @return 音乐信息列表,包含是否是当前用户喜欢的标识
|
||||
*/
|
||||
List<MusicInfo> findLikeSearch(String search);
|
||||
}
|
||||
|
||||
@@ -18,6 +18,7 @@ import org.springframework.web.multipart.MultipartFile;
|
||||
import java.io.IOException;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
/**
|
||||
* 音乐信息Service业务层处理
|
||||
@@ -382,6 +383,38 @@ public class MusicInfoServiceImpl implements IMusicInfoService
|
||||
public String findLikeMusicImageByUserId(Long userId) {
|
||||
return musicInfoMapper.selectLikeMusicImageByUserId(userId);
|
||||
}
|
||||
|
||||
/**
|
||||
* 根据作者名称或音乐名称模糊搜索音乐
|
||||
*
|
||||
* @param search 搜索关键词
|
||||
* @return 音乐信息列表,包含是否是当前用户喜欢的标识
|
||||
*/
|
||||
@Override
|
||||
public List<MusicInfo> findLikeSearch(String search) {
|
||||
|
||||
|
||||
// 根据作者名称或音乐名称模糊搜索音乐
|
||||
List<MusicInfo> musicList = musicInfoMapper.selectMusicInfoBySearch(search);
|
||||
|
||||
// 获取当前用户ID
|
||||
Long userId = SecurityUtils.getUserId();
|
||||
if (userId != null) {
|
||||
// 查询用户喜欢的音乐列表
|
||||
List<MusicInfo> likeList = musicInfoMapper.selectLikeMusicByUser(userId);
|
||||
List<Long> likeMusicIds = likeList.stream().map(MusicInfo::getMusicId).collect(Collectors.toList());
|
||||
|
||||
// 设置是否是用户喜欢的标识
|
||||
for (MusicInfo music : musicList) {
|
||||
if (likeMusicIds.contains(music.getMusicId())) {
|
||||
music.setLike(true);
|
||||
} else {
|
||||
music.setLike(false);
|
||||
}
|
||||
}
|
||||
}
|
||||
return musicList;
|
||||
}
|
||||
|
||||
//TODO: 待完善
|
||||
public Map<String, String> getMixMusicInfo(String musicId){
|
||||
|
||||
@@ -195,4 +195,10 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||
WHERE ulm.user_id = #{userId} AND mi.is_del = 0 AND mi.img_addr IS NOT NULL AND mi.img_addr != ''
|
||||
LIMIT 1
|
||||
</select>
|
||||
|
||||
<select id="selectMusicInfoBySearch" resultMap="MusicInfoResult">
|
||||
<include refid="selectMusicInfoVo"/>
|
||||
WHERE (name LIKE concat(#{search}, '%') OR author LIKE concat(#{search}, '%'))
|
||||
AND is_del = 0 AND shelf = 1
|
||||
</select>
|
||||
</mapper>
|
||||
Reference in New Issue
Block a user