首页部分

This commit is contained in:
menxipeng
2025-07-17 23:08:37 +08:00
parent fd19d6acd0
commit 40f49732a6
8 changed files with 67 additions and 14 deletions

View File

@@ -4,7 +4,6 @@ package com.ruoyi.web.controller.client;
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;
import com.ruoyi.common.core.domain.entity.MusicInfo; import com.ruoyi.common.core.domain.entity.MusicInfo;
import com.ruoyi.common.core.domain.entity.RecommendInfo;
import com.ruoyi.common.core.page.TableDataInfo; import com.ruoyi.common.core.page.TableDataInfo;
import com.ruoyi.system.service.IBannerInfoService; import com.ruoyi.system.service.IBannerInfoService;
import com.ruoyi.system.service.ICategoryInfoService; import com.ruoyi.system.service.ICategoryInfoService;
@@ -17,7 +16,6 @@ import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController; import org.springframework.web.bind.annotation.RestController;
import java.util.List; import java.util.List;
import java.util.Map;
@RequestMapping("/client/index") @RequestMapping("/client/index")
@RestController @RestController
@@ -55,10 +53,18 @@ public class IndexController extends BaseController {
return getDataTable(list); return getDataTable(list);
} }
@GetMapping("/re/music")
// 获取推荐音乐
public TableDataInfo getRecommendMusic(){
startPage();
List<MusicInfo> list = recommendInfoService.findRecommendMusic();
return getDataTable(list);
}
@GetMapping("/re/bind/music")
// 获取推荐绑定音乐 // 获取推荐绑定音乐
public RecommendInfo getRecommendMusic(){ public AjaxResult getRecommendBindMusic(){
recommendInfoService.findRecommendMusic(); return AjaxResult.success(recommendInfoService.findRecommendBindMusic());
return null;
} }

View File

@@ -1,5 +1,6 @@
package com.ruoyi.common.core.domain.entity; package com.ruoyi.common.core.domain.entity;
import lombok.Data;
import org.apache.commons.lang3.builder.ToStringBuilder; import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle; import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.annotation.Excel; import com.ruoyi.common.annotation.Excel;
@@ -13,6 +14,7 @@ import java.util.List;
* @author ruoyi * @author ruoyi
* @date 2025-07-15 * @date 2025-07-15
*/ */
@Data
public class RecommendInfo extends BaseEntity public class RecommendInfo extends BaseEntity
{ {
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;

View File

@@ -64,4 +64,8 @@ public interface MusicInfoMapper
MusicInfo selectByCate(CategoryInfo categoryInfo); MusicInfo selectByCate(CategoryInfo categoryInfo);
List<MusicInfo> selectMusicInfoByCid(String categoryId); List<MusicInfo> selectMusicInfoByCid(String categoryId);
List<MusicInfo> selectMusicInfoByIds(List<Long> musicIdList);
List<MusicInfo> selectRecommendMusic();
} }

View File

@@ -65,5 +65,5 @@ public interface RecommendInfoMapper
int bindMusic(@Param("reId") String reId,@Param("musicIds") String[] musicIds); int bindMusic(@Param("reId") String reId,@Param("musicIds") String[] musicIds);
RecommendInfo selectMusicRecommend(); List<RecommendInfo> selectMusicRecommend();
} }

View File

@@ -1,5 +1,6 @@
package com.ruoyi.system.service; package com.ruoyi.system.service;
import com.ruoyi.common.core.domain.entity.MusicInfo;
import com.ruoyi.common.core.domain.entity.RecommendInfo; import com.ruoyi.common.core.domain.entity.RecommendInfo;
import java.util.List; import java.util.List;
@@ -62,5 +63,7 @@ public interface IRecommendInfoService
int bindMusic(String reId, String[] musicIds); int bindMusic(String reId, String[] musicIds);
RecommendInfo findRecommendMusic(); List<MusicInfo> findRecommendMusic();
List<RecommendInfo> findRecommendBindMusic();
} }

View File

@@ -1,14 +1,21 @@
package com.ruoyi.system.service.impl; package com.ruoyi.system.service.impl;
import com.ruoyi.common.core.domain.entity.MusicInfo;
import com.ruoyi.common.core.domain.entity.MusicRecommend;
import com.ruoyi.common.core.domain.entity.RecommendInfo; import com.ruoyi.common.core.domain.entity.RecommendInfo;
import com.ruoyi.common.utils.DateUtils; import com.ruoyi.common.utils.DateUtils;
import com.ruoyi.common.utils.SecurityUtils; import com.ruoyi.common.utils.SecurityUtils;
import com.ruoyi.system.mapper.MusicInfoMapper;
import com.ruoyi.system.mapper.MusicRecommendMapper;
import com.ruoyi.system.mapper.RecommendInfoMapper; import com.ruoyi.system.mapper.RecommendInfoMapper;
import com.ruoyi.system.service.IRecommendInfoService; import com.ruoyi.system.service.IRecommendInfoService;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.List; import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
/** /**
* 推荐Service业务层处理 * 推荐Service业务层处理
@@ -21,6 +28,10 @@ public class RecommendInfoServiceImpl implements IRecommendInfoService
{ {
@Autowired @Autowired
private RecommendInfoMapper recommendInfoMapper; private RecommendInfoMapper recommendInfoMapper;
@Autowired
private MusicRecommendMapper musicRecommendMapper;
@Autowired
private MusicInfoMapper musicInfoMapper;
/** /**
* 查询推荐 * 查询推荐
@@ -103,9 +114,25 @@ public class RecommendInfoServiceImpl implements IRecommendInfoService
} }
@Override @Override
public RecommendInfo findRecommendMusic() { public List<MusicInfo> findRecommendMusic() {
RecommendInfo recommendInfo = recommendInfoMapper.selectMusicRecommend(); return musicInfoMapper.selectRecommendMusic();
}
return null;
@Override
public List<RecommendInfo> findRecommendBindMusic() {
List<MusicRecommend> musicRecommends = musicRecommendMapper.selectMusicRecommendList(new MusicRecommend());
Map<Long, List<MusicRecommend>> reMusicMap = musicRecommends.stream().collect(Collectors.groupingBy(MusicRecommend::getRecommendId));
List<RecommendInfo> result = new ArrayList<>();
reMusicMap.forEach((reId,rmcs) -> {
RecommendInfo recommendInfo = recommendInfoMapper.selectRecommendInfoById(reId);
List<Long> musicIdList = rmcs.stream().map(MusicRecommend::getMusicId).collect(Collectors.toList());
List<MusicInfo> musicInfos = musicInfoMapper.selectMusicInfoByIds(musicIdList);
recommendInfo.setMusics(musicInfos);
result.add(recommendInfo);
});
return result;
} }
} }

View File

@@ -124,4 +124,15 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<select id="selectMusicInfoByCid" resultMap="MusicInfoResult"> <select id="selectMusicInfoByCid" resultMap="MusicInfoResult">
SELECT m.* FROM music_category mc left JOIN music_info m on mc.music_id = m.music_id WHERE mc.category_id = #{categoryId} and m.shelf=1 and m.is_del=0 SELECT m.* FROM music_category mc left JOIN music_info m on mc.music_id = m.music_id WHERE mc.category_id = #{categoryId} and m.shelf=1 and m.is_del=0
</select> </select>
<select id="selectMusicInfoByIds" resultMap="MusicInfoResult">
SELECT * from music_info where music_info.music_id in
<foreach item="id" collection="collection" open="(" close=")" separator=",">
#{id}
</foreach>
</select>
<select id="selectRecommendMusic" resultMap="MusicInfoResult">
SELECT mi.* FROM music_recommend mr LEFT JOIN music_info mi on mr.music_id = mi.music_id and mi.is_del=0
</select>
</mapper> </mapper>

View File

@@ -16,7 +16,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
</resultMap> </resultMap>
<sql id="selectRecommendInfoVo"> <sql id="selectRecommendInfoVo">
select id, name, creator, modify, create_time, update_time, is_del, desc from recommend_info select id, name, creator, modify, create_time, update_time, is_del, `desc` from recommend_info
</sql> </sql>
<select id="selectRecommendInfoList" parameterType="RecommendInfo" resultMap="RecommendInfoResult"> <select id="selectRecommendInfoList" parameterType="RecommendInfo" resultMap="RecommendInfoResult">
@@ -26,7 +26,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="creator != null and creator != ''"> and creator = #{creator}</if> <if test="creator != null and creator != ''"> and creator = #{creator}</if>
<if test="modify != null and modify != ''"> and modify = #{modify}</if> <if test="modify != null and modify != ''"> and modify = #{modify}</if>
<if test="isDel != null "> and is_del = #{isDel}</if> <if test="isDel != null "> and is_del = #{isDel}</if>
<if test="desc != null and desc != ''"> and desc = #{desc}</if> <if test="desc != null and desc != ''"> and `desc` = #{desc}</if>
</where> </where>
</select> </select>
@@ -87,7 +87,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<insert id="bindMusic"> <insert id="bindMusic">
insert into music_recommend(recommend_id,music_id) values insert into music_recommend(recommend_id,music_id) values
<foreach item="id" collection="musicIds" separator=","> <foreach item="id" collection="musicIds" separator=",">
(#{id},#{reId}) (#{reId},#{id})
</foreach> </foreach>
</insert> </insert>