完善功能
This commit is contained in:
@@ -8,12 +8,10 @@ import com.ruoyi.common.core.domain.entity.BannerInfo;
|
||||
import com.ruoyi.common.core.page.TableDataInfo;
|
||||
import com.ruoyi.common.enums.BusinessType;
|
||||
import com.ruoyi.common.utils.poi.ExcelUtil;
|
||||
import com.ruoyi.system.config.AliConfig;
|
||||
import com.ruoyi.system.service.IBannerInfoService;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.security.access.prepost.PreAuthorize;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
import org.springframework.web.multipart.MultipartFile;
|
||||
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
import java.util.List;
|
||||
@@ -66,24 +64,9 @@ public class BackIndexController extends BaseController {
|
||||
//@PreAuthorize("@ss.hasPermi('system:info:add')")
|
||||
//@Log(title = "【请填写功能名称】", businessType = BusinessType.INSERT)
|
||||
@PostMapping("/add")
|
||||
public AjaxResult add(
|
||||
@RequestParam("name") String name,
|
||||
@RequestParam("sort") int sort,
|
||||
@RequestParam("jumpUrl") String jumpUrl,
|
||||
@RequestParam("file") MultipartFile file
|
||||
) {
|
||||
public AjaxResult add(@RequestBody BannerInfo bannerInfo) {
|
||||
// 1. 处理文件上传
|
||||
if (file != null && !file.isEmpty()) {
|
||||
// 保存文件逻辑
|
||||
// String url = fileService.save(file);
|
||||
// bannerInfo.setImageUrl(url);
|
||||
}
|
||||
// 2. 保存bannerInfo
|
||||
BannerInfo bannerInfo = new BannerInfo();
|
||||
bannerInfo.setSort(sort);
|
||||
bannerInfo.setJumpUrl(jumpUrl);
|
||||
bannerInfo.setName(name);
|
||||
return toAjax(bannerInfoService.insertBannerInfo(bannerInfo,file));
|
||||
return toAjax(bannerInfoService.insertBannerInfo(bannerInfo));
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -84,12 +84,11 @@ public class CategoryInfoController extends BaseController
|
||||
// @PreAuthorize("@ss.hasPermi('system:info:add')")
|
||||
// @Log(title = "【请填写功能名称】", businessType = BusinessType.INSERT)
|
||||
@PostMapping
|
||||
public AjaxResult add(@RequestParam("file") MultipartFile file,
|
||||
@RequestParam("name") String name) throws IOException {
|
||||
String imgAddr = AliConfig.ossUp("config/", file.getOriginalFilename(), file.getInputStream());
|
||||
CategoryInfo categoryInfo = new CategoryInfo();
|
||||
categoryInfo.setBackImg(imgAddr);
|
||||
categoryInfo.setName(name);
|
||||
public AjaxResult add(@RequestBody CategoryInfo categoryInfo) throws IOException {
|
||||
// String imgAddr = AliConfig.ossUp("config/", file.getOriginalFilename(), file.getInputStream());
|
||||
// CategoryInfo categoryInfo = new CategoryInfo();
|
||||
// categoryInfo.setBackImg(imgAddr);
|
||||
// categoryInfo.setName(name);
|
||||
return toAjax(categoryInfoService.insertCategoryInfo(categoryInfo));
|
||||
}
|
||||
|
||||
|
||||
@@ -1,62 +1,103 @@
|
||||
package com.ruoyi.web.controller.back;
|
||||
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
import com.ruoyi.common.core.controller.BaseController;
|
||||
import com.ruoyi.common.core.domain.AjaxResult;
|
||||
import com.ruoyi.common.core.domain.entity.MusicInfo;
|
||||
import com.ruoyi.common.core.domain.entity.ShopUser;
|
||||
import com.ruoyi.common.core.domain.entity.SysUser;
|
||||
import com.ruoyi.common.core.domain.model.LoginUser;
|
||||
import com.ruoyi.common.utils.MusicUtil;
|
||||
import com.ruoyi.common.utils.SecurityUtils;
|
||||
import com.ruoyi.system.config.AliConfig;
|
||||
import com.ruoyi.system.mapper.MusicInfoMapper;
|
||||
import com.ruoyi.system.mapper.ShopUserMapper;
|
||||
import com.ruoyi.system.service.ShopUserService;
|
||||
import com.ruoyi.system.mapper.SysUserPostMapper;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.web.bind.annotation.GetMapping;
|
||||
import org.springframework.web.bind.annotation.PathVariable;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
|
||||
@RequestMapping("/file")
|
||||
@RestController
|
||||
public class FileController {
|
||||
public class FileController extends BaseController {
|
||||
|
||||
@Autowired
|
||||
private ShopUserMapper shopUserMapper;
|
||||
@Autowired
|
||||
private SysUserPostMapper sysUserPostMapper;
|
||||
@Autowired
|
||||
private MusicInfoMapper musicInfoMapper;
|
||||
|
||||
/**
|
||||
* 下载OSS文件
|
||||
*/
|
||||
@GetMapping("/download/{objectName}")
|
||||
public void downloadOssFile(@PathVariable String objectName, HttpServletResponse response) {
|
||||
@GetMapping("/download/{objectName}/{fileName}")
|
||||
public void downloadOssFile(@RequestParam(value = "musicId",required = false) String musicId, @PathVariable("objectName") String objectName, @PathVariable("fileName") String fileName, HttpServletResponse response) {
|
||||
try {
|
||||
String ossPath = objectName.split("file/download")[1];
|
||||
String ossPath = objectName + "/" + fileName;
|
||||
// 检查用户登录状态
|
||||
|
||||
// 获取文件字节
|
||||
if (objectName.equals("musicFile")) {
|
||||
//TODO:// 获取是否是vip 音乐,检查用户登录状态
|
||||
Long userId = SecurityUtils.getUserId();
|
||||
ShopUser shopUser = shopUserMapper.selectShopUserByUserId(userId);
|
||||
MusicInfo musicInfo = musicInfoMapper.selectByPath(objectName);
|
||||
if (musicInfo.getVip() != null && musicInfo.getVip() == 1) {
|
||||
// 判断用户vip
|
||||
if (!MusicUtil.getShopIsVip(shopUser)) {
|
||||
return;
|
||||
}
|
||||
}
|
||||
LoginUser userInfo = SecurityUtils.getLoginUser();
|
||||
SysUser sysUser = userInfo.getUser();
|
||||
if (sysUser == null) {
|
||||
if (StrUtil.isBlank(musicId)) {
|
||||
response.setStatus(HttpServletResponse.SC_BAD_REQUEST);
|
||||
response.setContentType("application/json;charset=UTF-8");
|
||||
response.getWriter().write("{\"code\":400,\"msg\":\"音乐ID不能为空\"}");
|
||||
return;
|
||||
}
|
||||
ShopUser shopUser = userInfo.getShopUser();
|
||||
if (shopUser == null) {
|
||||
response.setStatus(HttpServletResponse.SC_UNAUTHORIZED);
|
||||
response.setContentType("application/json;charset=UTF-8");
|
||||
response.getWriter().write("{\"code\":401,\"msg\":\"用户未登录\"}");
|
||||
return;
|
||||
}
|
||||
//shopUser = shopUserMapper.selectShopUserByUserId(userId);
|
||||
MusicInfo musicInfo = musicInfoMapper.selectByMusicId(musicId);
|
||||
|
||||
if (musicInfo == null) {
|
||||
response.setStatus(HttpServletResponse.SC_NOT_FOUND);
|
||||
response.setContentType("application/json;charset=UTF-8");
|
||||
response.getWriter().write("{\"code\":404,\"msg\":\"音乐信息不存在\"}");
|
||||
return;
|
||||
}
|
||||
|
||||
if (musicInfo.getVip() != null && musicInfo.getVip() == 1) {
|
||||
// 判断用户vip
|
||||
if (!MusicUtil.getShopIsVip(shopUser)) {
|
||||
response.setStatus(HttpServletResponse.SC_FORBIDDEN);
|
||||
response.setContentType("application/json;charset=UTF-8");
|
||||
response.getWriter().write("{\"code\":403,\"msg\":\"该音乐为VIP专享,请升级VIP后下载\"}");
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
String fileName = ossPath.substring(objectName.lastIndexOf("/") + 1);
|
||||
|
||||
byte[] data = AliConfig.ossDown(ossPath);
|
||||
if (data == null || data.length == 0) {
|
||||
response.setStatus(HttpServletResponse.SC_NOT_FOUND);
|
||||
response.setContentType("application/json;charset=UTF-8");
|
||||
response.getWriter().write("{\"code\":404,\"msg\":\"文件不存在或下载失败\"}");
|
||||
return;
|
||||
}
|
||||
|
||||
// 设置响应头,支持中文文件名
|
||||
response.setContentType("application/octet-stream");
|
||||
response.setHeader("Content-Disposition", "attachment; filename=" + java.net.URLEncoder.encode(fileName, "UTF-8"));
|
||||
assert data != null;
|
||||
response.getOutputStream().write(data);
|
||||
response.getOutputStream().flush();
|
||||
|
||||
} catch (Exception e) {
|
||||
try {
|
||||
e.printStackTrace();
|
||||
response.setStatus(HttpServletResponse.SC_INTERNAL_SERVER_ERROR);
|
||||
response.setContentType("application/json;charset=UTF-8");
|
||||
response.getWriter().write("{\"msg\":\"下载失败: " + e.getMessage() + "\"}");
|
||||
response.getWriter().write("{\"code\":500,\"msg\":\"下载失败: " + e.getMessage() + "\"}");
|
||||
} catch (Exception ignored) {
|
||||
}
|
||||
}
|
||||
|
||||
@@ -4,6 +4,7 @@ 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.MusicInfo;
|
||||
import com.ruoyi.common.core.domain.entity.MusicMaxReq;
|
||||
import com.ruoyi.common.core.domain.entity.MusicScene;
|
||||
import com.ruoyi.common.core.domain.entity.MusicSceneRelate;
|
||||
import com.ruoyi.common.core.page.TableDataInfo;
|
||||
@@ -151,11 +152,21 @@ public class MusicInfoController extends BaseController
|
||||
}
|
||||
|
||||
@RequestMapping("/add/mixMusic")
|
||||
public AjaxResult addMixMusicInfo(@RequestBody Map<String,String> param){
|
||||
public AjaxResult addMixMusicInfo(@RequestBody MusicMaxReq param){
|
||||
MusicInfo newMusic = musicInfoService.addMixMusicInfo(param);
|
||||
if (newMusic != null){
|
||||
return AjaxResult.success(newMusic);
|
||||
}
|
||||
return AjaxResult.error("混音错误");
|
||||
}
|
||||
|
||||
// 编辑混音歌曲
|
||||
@RequestMapping("/edit/mixMusic")
|
||||
public AjaxResult editMixMusicInfo(@RequestBody MusicMaxReq param){
|
||||
MusicInfo newMusic = musicInfoService.editMixMusicInfo(param);
|
||||
if (newMusic != null){
|
||||
return AjaxResult.success(newMusic);
|
||||
}
|
||||
return AjaxResult.error("混音错误");
|
||||
}
|
||||
}
|
||||
|
||||
@@ -3,10 +3,12 @@ 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.MusicInfo;
|
||||
import com.ruoyi.common.core.domain.entity.RecommendInfo;
|
||||
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.IMusicInfoService;
|
||||
import com.ruoyi.system.service.IRecommendInfoService;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.security.access.prepost.PreAuthorize;
|
||||
@@ -27,6 +29,8 @@ public class RecommendInfoController extends BaseController
|
||||
{
|
||||
@Autowired
|
||||
private IRecommendInfoService recommendInfoService;
|
||||
@Autowired
|
||||
private IMusicInfoService musicInfoService;
|
||||
|
||||
/**
|
||||
* 查询推荐列表
|
||||
@@ -105,4 +109,13 @@ public class RecommendInfoController extends BaseController
|
||||
}
|
||||
return AjaxResult.error();
|
||||
}
|
||||
|
||||
// 根据推荐获取分类音乐
|
||||
@GetMapping("/music/{reId}")
|
||||
public TableDataInfo geReIdMusic(@PathVariable String reId){
|
||||
startPage();
|
||||
List<MusicInfo> list = musicInfoService.selectMusicInfoByReId(reId);
|
||||
return getDataTable(list);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -15,7 +15,7 @@ import java.io.IOException;
|
||||
|
||||
@RestController
|
||||
@RequestMapping("/back/upload")
|
||||
public class UploadOSSController extends BaseController {
|
||||
public class UploadOSSController extends BaseController {
|
||||
|
||||
|
||||
@PostMapping("/music/file")
|
||||
@@ -25,10 +25,10 @@ public class UploadOSSController extends BaseController {
|
||||
// 1. 处理文件上传
|
||||
if (file != null && !file.isEmpty()) {
|
||||
// 保存文件逻辑
|
||||
return AjaxResult.error("文件不能为空");
|
||||
return AjaxResult.success("请求成功",AliConfig.ossUp("musicFile/", file.getOriginalFilename(), file.getInputStream()));
|
||||
}
|
||||
|
||||
return AjaxResult.success(AliConfig.ossUp("musicFile/" , file.getOriginalFilename(), file.getInputStream()));
|
||||
return AjaxResult.error("文件不能为空");
|
||||
}
|
||||
|
||||
|
||||
@@ -38,10 +38,10 @@ public class UploadOSSController extends BaseController {
|
||||
) throws IOException {
|
||||
// 1. 处理文件上传
|
||||
if (file != null && !file.isEmpty()) {
|
||||
// 保存文件逻辑
|
||||
return AjaxResult.error("文件不能为空");
|
||||
return AjaxResult.success("请求成功",AliConfig.ossUp("musicImg/", file.getOriginalFilename(), file.getInputStream()));
|
||||
}
|
||||
return AjaxResult.success(AliConfig.ossUp("musicImg/" , file.getOriginalFilename(), file.getInputStream()));
|
||||
// 保存文件逻辑
|
||||
return AjaxResult.error("文件不能为空");
|
||||
}
|
||||
|
||||
@PostMapping("/config/file")
|
||||
@@ -51,9 +51,9 @@ public class UploadOSSController extends BaseController {
|
||||
// 1. 处理文件上传
|
||||
if (file != null && !file.isEmpty()) {
|
||||
// 保存文件逻辑
|
||||
return AjaxResult.error("文件不能为空");
|
||||
return AjaxResult.success("请求成功",AliConfig.ossUp("config/", file.getOriginalFilename(), file.getInputStream()));
|
||||
}
|
||||
return AjaxResult.success(AliConfig.ossUp("config/" , file.getOriginalFilename(), file.getInputStream()));
|
||||
return AjaxResult.error("文件不能为空");
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -6,6 +6,7 @@ import com.ruoyi.common.core.controller.BaseController;
|
||||
import com.ruoyi.common.core.domain.AjaxResult;
|
||||
import com.ruoyi.common.core.domain.entity.CategoryInfo;
|
||||
import com.ruoyi.common.core.domain.entity.MusicInfo;
|
||||
import com.ruoyi.common.core.domain.entity.MusicMaxReq;
|
||||
import com.ruoyi.common.core.domain.entity.MusicScene;
|
||||
import com.ruoyi.common.core.page.TableDataInfo;
|
||||
import com.ruoyi.common.utils.SecurityUtils;
|
||||
@@ -97,7 +98,7 @@ public class MusicController extends BaseController {
|
||||
|
||||
// 新增用户混音
|
||||
@RequestMapping("/add/mixMusic")
|
||||
public AjaxResult addMixMusicInfo(@RequestBody Map<String,String> param){
|
||||
public AjaxResult addMixMusicInfo(@RequestBody MusicMaxReq param){
|
||||
MusicInfo newMusic = musicService.addMixMusicInfo(param);
|
||||
if (newMusic != null){
|
||||
return AjaxResult.success(newMusic);
|
||||
|
||||
Reference in New Issue
Block a user