筛选功能
This commit is contained in:
@@ -1,6 +1,7 @@
|
|||||||
package com.ruoyi.web.controller.client;
|
package com.ruoyi.web.controller.client;
|
||||||
|
|
||||||
|
|
||||||
|
import cn.hutool.core.util.StrUtil;
|
||||||
import com.ruoyi.common.constant.HttpStatus;
|
import com.ruoyi.common.constant.HttpStatus;
|
||||||
import com.ruoyi.common.core.controller.BaseController;
|
import com.ruoyi.common.core.controller.BaseController;
|
||||||
import com.ruoyi.common.core.domain.AjaxResult;
|
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.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.web.bind.annotation.*;
|
import org.springframework.web.bind.annotation.*;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
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
|
try
|
||||||
{
|
{
|
||||||
return getLoginUser().getUserId();
|
LoginUser logUse = getLoginUser();
|
||||||
|
if (logUse != null){
|
||||||
|
return logUse.getUserId();
|
||||||
|
}
|
||||||
|
return null;
|
||||||
}
|
}
|
||||||
catch (Exception e)
|
catch (Exception e)
|
||||||
{
|
{
|
||||||
@@ -75,8 +79,11 @@ public class SecurityUtils
|
|||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
|
if (getAuthentication().getPrincipal() instanceof LoginUser){
|
||||||
return (LoginUser) getAuthentication().getPrincipal();
|
return (LoginUser) getAuthentication().getPrincipal();
|
||||||
}
|
}
|
||||||
|
return null;
|
||||||
|
}
|
||||||
catch (Exception e)
|
catch (Exception e)
|
||||||
{
|
{
|
||||||
throw new ServiceException("获取用户信息异常", HttpStatus.UNAUTHORIZED);
|
throw new ServiceException("获取用户信息异常", HttpStatus.UNAUTHORIZED);
|
||||||
|
|||||||
@@ -99,4 +99,12 @@ public interface MusicInfoMapper
|
|||||||
* @return 音乐图片URL
|
* @return 音乐图片URL
|
||||||
*/
|
*/
|
||||||
String selectLikeMusicImageByUserId(@Param("userId") Long userId);
|
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
|
* @return 音乐图片URL
|
||||||
*/
|
*/
|
||||||
String findLikeMusicImageByUserId(Long userId);
|
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.io.IOException;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 音乐信息Service业务层处理
|
* 音乐信息Service业务层处理
|
||||||
@@ -383,6 +384,38 @@ public class MusicInfoServiceImpl implements IMusicInfoService
|
|||||||
return musicInfoMapper.selectLikeMusicImageByUserId(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: 待完善
|
//TODO: 待完善
|
||||||
public Map<String, String> getMixMusicInfo(String musicId){
|
public Map<String, String> getMixMusicInfo(String musicId){
|
||||||
MusicInfo musicInfo = musicInfoMapper.selectByMusicId(musicId);
|
MusicInfo musicInfo = musicInfoMapper.selectByMusicId(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 != ''
|
WHERE ulm.user_id = #{userId} AND mi.is_del = 0 AND mi.img_addr IS NOT NULL AND mi.img_addr != ''
|
||||||
LIMIT 1
|
LIMIT 1
|
||||||
</select>
|
</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>
|
</mapper>
|
||||||
Reference in New Issue
Block a user