完善c端接口

This commit is contained in:
menxipeng
2025-08-01 16:06:05 +08:00
parent f8a898687b
commit 0c82bef933
10 changed files with 466 additions and 8 deletions

View File

@@ -4,11 +4,13 @@ import com.ruoyi.common.annotation.Log;
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.CategoryInfo; import com.ruoyi.common.core.domain.entity.CategoryInfo;
import com.ruoyi.common.core.domain.entity.MusicInfo;
import com.ruoyi.common.core.page.TableDataInfo; import com.ruoyi.common.core.page.TableDataInfo;
import com.ruoyi.common.enums.BusinessType; import com.ruoyi.common.enums.BusinessType;
import com.ruoyi.common.utils.poi.ExcelUtil; import com.ruoyi.common.utils.poi.ExcelUtil;
import com.ruoyi.system.config.AliConfig; import com.ruoyi.system.config.AliConfig;
import com.ruoyi.system.service.ICategoryInfoService; import com.ruoyi.system.service.ICategoryInfoService;
import com.ruoyi.system.service.IMusicInfoService;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
@@ -30,7 +32,8 @@ public class CategoryInfoController extends BaseController
{ {
@Autowired @Autowired
private ICategoryInfoService categoryInfoService; private ICategoryInfoService categoryInfoService;
@Autowired
private IMusicInfoService musicInfoService;
/** /**
* 查询【请填写功能名称】列表 * 查询【请填写功能名称】列表
*/ */
@@ -43,6 +46,15 @@ public class CategoryInfoController extends BaseController
return getDataTable(list); return getDataTable(list);
} }
// 根据分类获取分类音乐
@GetMapping("/cate/music/{categoryId}")
public TableDataInfo getCategoryMusic(@PathVariable String categoryId){
startPage();
List<MusicInfo> list = musicInfoService.selectMusicInfoByCid(categoryId);
return getDataTable(list);
}
/** /**
* 导出【请填写功能名称】列表 * 导出【请填写功能名称】列表
*/ */

View File

@@ -29,7 +29,7 @@ public class MusicRecommendController extends BaseController
private IMusicRecommendService musicRecommendService; private IMusicRecommendService musicRecommendService;
/** /**
* 查询【请填写功能名称】列表 * 查询【请填写功能/back/re名称】列表
*/ */
@PreAuthorize("@ss.hasPermi('system:recommend:list')") @PreAuthorize("@ss.hasPermi('system:recommend:list')")
@GetMapping("/list") @GetMapping("/list")

View File

@@ -31,7 +31,7 @@ public class RecommendInfoController extends BaseController
/** /**
* 查询推荐列表 * 查询推荐列表
*/ */
@PreAuthorize("@ss.hasPermi('system:info:list')") //@PreAuthorize("@ss.hasPermi('system:info:list')")
@GetMapping("/list") @GetMapping("/list")
public TableDataInfo list(RecommendInfo recommendInfo) public TableDataInfo list(RecommendInfo recommendInfo)
{ {

View File

@@ -0,0 +1,98 @@
package com.ruoyi.web.controller.back;
import com.ruoyi.common.annotation.Log;
import com.ruoyi.common.core.controller.BaseController;
import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.common.core.domain.entity.Tag;
import com.ruoyi.common.core.page.TableDataInfo;
import com.ruoyi.common.enums.BusinessType;
import com.ruoyi.common.utils.poi.ExcelUtil;
import com.ruoyi.system.service.ITagService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletResponse;
import java.util.List;
/**
* 【请填写功能名称】Controller
*
* @author ruoyi
* @date 2025-07-22
*/
@RestController
@RequestMapping("/back/tag")
public class TagController extends BaseController
{
@Autowired
private ITagService tagService;
/**
* 查询【请填写功能名称】列表
*/
//@PreAuthorize("@ss.hasPermi('system:tag:list')")
@GetMapping("/list")
public TableDataInfo list(Tag tag)
{
startPage();
List<Tag> list = tagService.selectTagList(tag);
return getDataTable(list);
}
/**
* 导出【请填写功能名称】列表
*/
@PreAuthorize("@ss.hasPermi('system:tag:export')")
@Log(title = "【请填写功能名称】", businessType = BusinessType.EXPORT)
@PostMapping("/export")
public void export(HttpServletResponse response, Tag tag)
{
List<Tag> list = tagService.selectTagList(tag);
ExcelUtil<Tag> util = new ExcelUtil<Tag>(Tag.class);
util.exportExcel(response, list, "【请填写功能名称】数据");
}
/**
* 获取【请填写功能名称】详细信息
*/
@PreAuthorize("@ss.hasPermi('system:tag:query')")
@GetMapping(value = "/{id}")
public AjaxResult getInfo(@PathVariable("id") String id)
{
return success(tagService.selectTagById(id));
}
/**
* 新增【请填写功能名称】
*/
@PreAuthorize("@ss.hasPermi('system:tag:add')")
@Log(title = "【请填写功能名称】", businessType = BusinessType.INSERT)
@PostMapping
public AjaxResult add(@RequestBody Tag tag)
{
return toAjax(tagService.insertTag(tag));
}
/**
* 修改【请填写功能名称】
*/
@PreAuthorize("@ss.hasPermi('system:tag:edit')")
@Log(title = "【请填写功能名称】", businessType = BusinessType.UPDATE)
@PutMapping
public AjaxResult edit(@RequestBody Tag tag)
{
return toAjax(tagService.updateTag(tag));
}
/**
* 删除【请填写功能名称】
*/
@PreAuthorize("@ss.hasPermi('system:tag:remove')")
@Log(title = "【请填写功能名称】", businessType = BusinessType.DELETE)
@DeleteMapping("/{ids}")
public AjaxResult remove(@PathVariable String[] ids)
{
return toAjax(tagService.deleteTagByIds(ids));
}
}

View File

@@ -0,0 +1,53 @@
package com.ruoyi.common.core.domain.entity;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;
/**
* 【请填写功能名称】对象 tag
*
* @author ruoyi
* @date 2025-07-22
*/
public class Tag extends BaseEntity
{
private static final long serialVersionUID = 1L;
/** id */
private String id;
/** 标签名称 */
@Excel(name = "标签名称")
private String name;
public void setId(String id)
{
this.id = id;
}
public String getId()
{
return id;
}
public void setName(String name)
{
this.name = name;
}
public String getName()
{
return name;
}
@Override
public String toString() {
return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
.append("id", getId())
.append("name", getName())
.append("createTime", getCreateTime())
.toString();
}
}

View File

@@ -1,8 +1,11 @@
package com.ruoyi.framework.config; package com.ruoyi.framework.config;
import java.util.concurrent.TimeUnit; import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import com.ruoyi.common.config.RuoYiConfig;
import com.ruoyi.common.constant.Constants;
import com.ruoyi.framework.interceptor.RepeatSubmitInterceptor;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.autoconfigure.jackson.Jackson2ObjectMapperBuilderCustomizer;
import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.Configuration;
import org.springframework.http.CacheControl; import org.springframework.http.CacheControl;
@@ -12,9 +15,8 @@ import org.springframework.web.filter.CorsFilter;
import org.springframework.web.servlet.config.annotation.InterceptorRegistry; import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry; import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer; import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
import com.ruoyi.common.config.RuoYiConfig;
import com.ruoyi.common.constant.Constants; import java.util.concurrent.TimeUnit;
import com.ruoyi.framework.interceptor.RepeatSubmitInterceptor;
/** /**
* 通用配置 * 通用配置
@@ -73,4 +75,17 @@ public class ResourcesConfig implements WebMvcConfigurer
// 返回新的CorsFilter // 返回新的CorsFilter
return new CorsFilter(source); return new CorsFilter(source);
} }
/**
* Jackson全局转化long类型为String解决jackson序列化时long类型缺失精度问题
* @return Jackson2ObjectMapperBuilderCustomizer 注入的对象
*/
@Bean
public Jackson2ObjectMapperBuilderCustomizer jackson2ObjectMapperBuilderCustomizer() {
return jacksonObjectMapperBuilder -> jacksonObjectMapperBuilder
.serializerByType(Long.class, ToStringSerializer.instance)
.serializerByType(Long.TYPE, ToStringSerializer.instance);
}
} }

View File

@@ -0,0 +1,62 @@
package com.ruoyi.system.mapper;
import com.ruoyi.common.core.domain.entity.Tag;
import java.util.List;
/**
* 【请填写功能名称】Mapper接口
*
* @author ruoyi
* @date 2025-07-22
*/
public interface TagMapper
{
/**
* 查询【请填写功能名称】
*
* @param id 【请填写功能名称】主键
* @return 【请填写功能名称】
*/
public Tag selectTagById(String id);
/**
* 查询【请填写功能名称】列表
*
* @param tag 【请填写功能名称】
* @return 【请填写功能名称】集合
*/
public List<Tag> selectTagList(Tag tag);
/**
* 新增【请填写功能名称】
*
* @param tag 【请填写功能名称】
* @return 结果
*/
public int insertTag(Tag tag);
/**
* 修改【请填写功能名称】
*
* @param tag 【请填写功能名称】
* @return 结果
*/
public int updateTag(Tag tag);
/**
* 删除【请填写功能名称】
*
* @param id 【请填写功能名称】主键
* @return 结果
*/
public int deleteTagById(String id);
/**
* 批量删除【请填写功能名称】
*
* @param ids 需要删除的数据主键集合
* @return 结果
*/
public int deleteTagByIds(String[] ids);
}

View File

@@ -0,0 +1,62 @@
package com.ruoyi.system.service;
import com.ruoyi.common.core.domain.entity.Tag;
import java.util.List;
/**
* 【请填写功能名称】Service接口
*
* @author ruoyi
* @date 2025-07-22
*/
public interface ITagService
{
/**
* 查询【请填写功能名称】
*
* @param id 【请填写功能名称】主键
* @return 【请填写功能名称】
*/
public Tag selectTagById(String id);
/**
* 查询【请填写功能名称】列表
*
* @param tag 【请填写功能名称】
* @return 【请填写功能名称】集合
*/
public List<Tag> selectTagList(Tag tag);
/**
* 新增【请填写功能名称】
*
* @param tag 【请填写功能名称】
* @return 结果
*/
public int insertTag(Tag tag);
/**
* 修改【请填写功能名称】
*
* @param tag 【请填写功能名称】
* @return 结果
*/
public int updateTag(Tag tag);
/**
* 批量删除【请填写功能名称】
*
* @param ids 需要删除的【请填写功能名称】主键集合
* @return 结果
*/
public int deleteTagByIds(String[] ids);
/**
* 删除【请填写功能名称】信息
*
* @param id 【请填写功能名称】主键
* @return 结果
*/
public int deleteTagById(String id);
}

View File

@@ -0,0 +1,96 @@
package com.ruoyi.system.service.impl;
import com.ruoyi.common.core.domain.entity.Tag;
import com.ruoyi.common.utils.DateUtils;
import com.ruoyi.system.mapper.TagMapper;
import com.ruoyi.system.service.ITagService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;
/**
* 【请填写功能名称】Service业务层处理
*
* @author ruoyi
* @date 2025-07-22
*/
@Service
public class TagServiceImpl implements ITagService
{
@Autowired
private TagMapper tagMapper;
/**
* 查询【请填写功能名称】
*
* @param id 【请填写功能名称】主键
* @return 【请填写功能名称】
*/
@Override
public Tag selectTagById(String id)
{
return tagMapper.selectTagById(id);
}
/**
* 查询【请填写功能名称】列表
*
* @param tag 【请填写功能名称】
* @return 【请填写功能名称】
*/
@Override
public List<Tag> selectTagList(Tag tag)
{
return tagMapper.selectTagList(tag);
}
/**
* 新增【请填写功能名称】
*
* @param tag 【请填写功能名称】
* @return 结果
*/
@Override
public int insertTag(Tag tag)
{
tag.setCreateTime(DateUtils.getNowDate());
return tagMapper.insertTag(tag);
}
/**
* 修改【请填写功能名称】
*
* @param tag 【请填写功能名称】
* @return 结果
*/
@Override
public int updateTag(Tag tag)
{
return tagMapper.updateTag(tag);
}
/**
* 批量删除【请填写功能名称】
*
* @param ids 需要删除的【请填写功能名称】主键
* @return 结果
*/
@Override
public int deleteTagByIds(String[] ids)
{
return tagMapper.deleteTagByIds(ids);
}
/**
* 删除【请填写功能名称】信息
*
* @param id 【请填写功能名称】主键
* @return 结果
*/
@Override
public int deleteTagById(String id)
{
return tagMapper.deleteTagById(id);
}
}

View File

@@ -0,0 +1,60 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.ruoyi.system.mapper.TagMapper">
<resultMap type="Tag" id="TagResult">
<result property="id" column="id" />
<result property="name" column="name" />
<result property="createTime" column="create_time" />
</resultMap>
<sql id="selectTagVo">
select id, name, create_time from tag
</sql>
<select id="selectTagList" parameterType="Tag" resultMap="TagResult">
<include refid="selectTagVo"/>
<where>
<if test="name != null and name != ''"> and name like concat('%', #{name}, '%')</if>
</where>
</select>
<select id="selectTagById" parameterType="String" resultMap="TagResult">
<include refid="selectTagVo"/>
where id = #{id}
</select>
<insert id="insertTag" parameterType="Tag" useGeneratedKeys="true" keyProperty="id">
insert into tag
<trim prefix="(" suffix=")" suffixOverrides=",">
<if test="name != null">name,</if>
<if test="createTime != null">create_time,</if>
</trim>
<trim prefix="values (" suffix=")" suffixOverrides=",">
<if test="name != null">#{name},</if>
<if test="createTime != null">#{createTime},</if>
</trim>
</insert>
<update id="updateTag" parameterType="Tag">
update tag
<trim prefix="SET" suffixOverrides=",">
<if test="name != null">name = #{name},</if>
<if test="createTime != null">create_time = #{createTime},</if>
</trim>
where id = #{id}
</update>
<delete id="deleteTagById" parameterType="String">
delete from tag where id = #{id}
</delete>
<delete id="deleteTagByIds" parameterType="String">
delete from tag where id in
<foreach item="id" collection="array" open="(" separator="," close=")">
#{id}
</foreach>
</delete>
</mapper>