完善c端接口

This commit is contained in:
menxipeng
2025-07-20 22:05:32 +08:00
parent 028ccf4408
commit 658a1f0e1b
40 changed files with 889 additions and 259 deletions

View File

@@ -0,0 +1,116 @@
package com.ruoyi.web.controller.back;
import cn.hutool.core.date.DateUtil;
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.ActivityInfo;
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.IActivityInfoService;
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.io.IOException;
import java.util.List;
import java.util.Objects;
/**
* 【请填写功能名称】Controller
*
* @author ruoyi
* @date 2025-07-20
*/
@RestController
@RequestMapping("/back/activity")
public class ActivityInfoController extends BaseController
{
@Autowired
private IActivityInfoService activityInfoService;
/**
* 查询【请填写功能名称】列表
*/
@PreAuthorize("@ss.hasPermi('system:info:list')")
@GetMapping("/list")
public TableDataInfo list(ActivityInfo activityInfo)
{
startPage();
List<ActivityInfo> list = activityInfoService.selectActivityInfoList(activityInfo);
return getDataTable(list);
}
/**
* 导出【请填写功能名称】列表
*/
@PreAuthorize("@ss.hasPermi('system:info:export')")
@Log(title = "【请填写功能名称】", businessType = BusinessType.EXPORT)
@PostMapping("/export")
public void export(HttpServletResponse response, ActivityInfo activityInfo)
{
List<ActivityInfo> list = activityInfoService.selectActivityInfoList(activityInfo);
ExcelUtil<ActivityInfo> util = new ExcelUtil<ActivityInfo>(ActivityInfo.class);
util.exportExcel(response, list, "【请填写功能名称】数据");
}
/**
* 获取【请填写功能名称】详细信息
*/
@PreAuthorize("@ss.hasPermi('system:info:query')")
@GetMapping(value = "/{id}")
public AjaxResult getInfo(@PathVariable("id") String id)
{
return success(activityInfoService.selectActivityInfoById(id));
}
/**
* 新增【请填写功能名称】
*/
// @PreAuthorize("@ss.hasPermi('system:info:add')")
// @Log(title = "【请填写功能名称】", businessType = BusinessType.INSERT)
@PostMapping("/addActivity")
public AjaxResult add(
@RequestParam("name") String name,
@RequestParam("content") String content,
@RequestParam("startTime") String startTime,
@RequestParam("endTime") String endTime,
@RequestParam("file") MultipartFile file
) throws IOException {
ActivityInfo activityInfo = new ActivityInfo();
String imgAddr = AliConfig.ossUp("config/" , Objects.requireNonNull(file.getOriginalFilename()), file.getInputStream());
activityInfo.setImg("");
activityInfo.setName(name);
activityInfo.setContent(content);
activityInfo.setStartTime(DateUtil.parseDateTime(startTime));
activityInfo.setEndTime(DateUtil.parseDateTime(endTime));
return toAjax(activityInfoService.insertActivityInfo(activityInfo));
}
/**
* 修改【请填写功能名称】
*/
@PreAuthorize("@ss.hasPermi('system:info:edit')")
@Log(title = "【请填写功能名称】", businessType = BusinessType.UPDATE)
@PutMapping
public AjaxResult edit(@RequestBody ActivityInfo activityInfo)
{
return toAjax(activityInfoService.updateActivityInfo(activityInfo));
}
/**
* 删除【请填写功能名称】
*/
@PreAuthorize("@ss.hasPermi('system:info:remove')")
@Log(title = "【请填写功能名称】", businessType = BusinessType.DELETE)
@DeleteMapping("/{ids}")
public AjaxResult remove(@PathVariable String[] ids)
{
return toAjax(activityInfoService.deleteActivityInfoByIds(ids));
}
}

View File

@@ -7,12 +7,15 @@ import com.ruoyi.common.core.domain.entity.CategoryInfo;
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.service.ICategoryInfoService; import com.ruoyi.system.service.ICategoryInfoService;
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.*;
import org.springframework.web.multipart.MultipartFile;
import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.util.List; import java.util.List;
/** /**
@@ -69,8 +72,12 @@ public class CategoryInfoController extends BaseController
// @PreAuthorize("@ss.hasPermi('system:info:add')") // @PreAuthorize("@ss.hasPermi('system:info:add')")
// @Log(title = "【请填写功能名称】", businessType = BusinessType.INSERT) // @Log(title = "【请填写功能名称】", businessType = BusinessType.INSERT)
@PostMapping @PostMapping
public AjaxResult add(@RequestBody CategoryInfo categoryInfo) 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);
return toAjax(categoryInfoService.insertCategoryInfo(categoryInfo)); return toAjax(categoryInfoService.insertCategoryInfo(categoryInfo));
} }

View File

@@ -20,6 +20,11 @@ public class FileController {
try { try {
String[] file = objectName.split("file/download"); String[] file = objectName.split("file/download");
// 获取文件字节 // 获取文件字节
if (objectName.equals("musicFile")){
//TODO:// 获取是否是vip 音乐,检查用户登录状态
}
byte[] data = AliConfig.ossDown(objectName+"/"+fileName); byte[] data = AliConfig.ossDown(objectName+"/"+fileName);
// 设置响应头,支持中文文件名 // 设置响应头,支持中文文件名
response.setContentType("application/octet-stream"); response.setContentType("application/octet-stream");

View File

@@ -37,7 +37,6 @@ public class ClientShopUserController {
return AjaxResult.error("发送验证码失败"); return AjaxResult.error("发送验证码失败");
} }
/** /**
* 登录方法 * 登录方法
* *
@@ -59,6 +58,16 @@ public class ClientShopUserController {
} }
} }
/**
* 修改个人信息
* @param shopUser 个人信息
* @return 成功
*/
@PostMapping("/updateUser")
public AjaxResult modifyUserInfo(@RequestBody ShopUser shopUser){
return AjaxResult.success(shopUserService.modifyUser(shopUser));
}

View File

@@ -50,7 +50,7 @@ public class IndexController extends BaseController {
public TableDataInfo getCategoryMusic(@PathVariable String categoryId){ public TableDataInfo getCategoryMusic(@PathVariable String categoryId){
startPage(); startPage();
List<MusicInfo> list = musicInfoService.selectMusicInfoByCid(categoryId); List<MusicInfo> list = musicInfoService.selectMusicInfoByCid(categoryId);
return getDataTable(list); return getDataTableData(list);
} }
@GetMapping("/re/music") @GetMapping("/re/music")
@@ -58,7 +58,7 @@ public class IndexController extends BaseController {
public TableDataInfo getRecommendMusic(){ public TableDataInfo getRecommendMusic(){
startPage(); startPage();
List<MusicInfo> list = recommendInfoService.findRecommendMusic(); List<MusicInfo> list = recommendInfoService.findRecommendMusic();
return getDataTable(list); return getDataTableData(list);
} }
@GetMapping("/re/bind/music") @GetMapping("/re/bind/music")

View File

@@ -37,7 +37,7 @@ public class MusicCollectController extends BaseController
{ {
startPage(); startPage();
List<MusicCollect> list = musicCollectService.selectMusicCollectList(musicCollect); List<MusicCollect> list = musicCollectService.selectMusicCollectList(musicCollect);
return getDataTable(list); return getDataTableData(list);
} }
/** /**

View File

@@ -36,7 +36,7 @@ public class MusicController extends BaseController {
startPage(); startPage();
List<MusicInfo> list = musicService.findMusicByCollectId(collectId); List<MusicInfo> list = musicService.findMusicByCollectId(collectId);
//musicService.createPlaylist(); //musicService.createPlaylist();
return getDataTable(list); return getDataTableData(list);
} }
@@ -54,7 +54,7 @@ public class MusicController extends BaseController {
Long userId = SecurityUtils.getUserId(); Long userId = SecurityUtils.getUserId();
List<MusicInfo> list = musicService.findLikeMusicByUser(userId); List<MusicInfo> list = musicService.findLikeMusicByUser(userId);
//musicService.createPlaylist(); //musicService.createPlaylist();
return getDataTable(list); return getDataTableData(list);
} }
// 删除我喜欢的音乐 cancel/like // 删除我喜欢的音乐 cancel/like
@RequestMapping("/cancel/like/{musicId}") @RequestMapping("/cancel/like/{musicId}")
@@ -77,7 +77,14 @@ public class MusicController extends BaseController {
Long userId = SecurityUtils.getUserId(); Long userId = SecurityUtils.getUserId();
List<MusicInfo> list = musicService.findHistoryMusicByUser(userId); List<MusicInfo> list = musicService.findHistoryMusicByUser(userId);
//musicService.createPlaylist(); //musicService.createPlaylist();
return getDataTable(list); return getDataTableData(list);
}
// 获取音乐基本信息
@RequestMapping("/getMusicInfo/{musicId}")
public AjaxResult getMusicInfo(@PathVariable String musicId){
Long userId = SecurityUtils.getUserId();
return AjaxResult.success(musicService.getMusicInfo(userId,musicId));
} }

View File

@@ -37,7 +37,7 @@ public class ShareInfoController extends BaseController
{ {
startPage(); startPage();
List<ShareInfo> list = shareInfoService.findShareInfoListPage(shareInfo); List<ShareInfo> list = shareInfoService.findShareInfoListPage(shareInfo);
return getDataTable(list); return getDataTableData(list);
} }
/** /**

View File

@@ -44,7 +44,7 @@ public class UserCollectController extends BaseController
Long userId = SecurityUtils.getUserId(); Long userId = SecurityUtils.getUserId();
userCollect.setUserId(userId); userCollect.setUserId(userId);
List<UserCollect> list = userCollectService.selectUserCollectList(userCollect); List<UserCollect> list = userCollectService.selectUserCollectList(userCollect);
return getDataTable(list); return getDataTableData(list);
} }
/** /**

View File

@@ -37,7 +37,7 @@ public class UserHistoryController extends BaseController
{ {
startPage(); startPage();
List<UserHistory> list = userHistoryService.selectUserHistoryList(userHistory); List<UserHistory> list = userHistoryService.selectUserHistoryList(userHistory);
return getDataTable(list); return getDataTableData(list);
} }
/** /**

View File

@@ -68,7 +68,7 @@ spring:
# redis 配置 # redis 配置
redis: redis:
# 地址 # 地址
host: 60.205.107.210 host: 192.168.31.55
# 端口默认为6379 # 端口默认为6379
port: 6379 port: 6379
# 数据库索引 # 数据库索引

View File

@@ -90,6 +90,17 @@ public class BaseController
return rspData; return rspData;
} }
protected TableDataInfo getDataTableData(List<?> list)
{
TableDataInfo rspData = new TableDataInfo();
rspData.setCode(HttpStatus.SUCCESS);
rspData.setMsg("查询成功");
rspData.setData(list);
rspData.setTotal(new PageInfo(list).getTotal());
return rspData;
}
/** /**
* 返回成功 * 返回成功
*/ */

View File

@@ -0,0 +1,176 @@
package com.ruoyi.common.core.domain.entity;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
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;
/**
* 【请填写功能名称】对象 activity_info
*
* @author ruoyi
* @date 2025-07-20
*/
public class ActivityInfo extends BaseEntity
{
private static final long serialVersionUID = 1L;
/** id */
private String id;
/** 活动名称 */
@Excel(name = "活动名称")
private String name;
/** 活动内容目前只写数字几天vip */
@Excel(name = "活动内容目前只写数字几天vip")
private String content;
/** 活动开始时间 */
@JsonFormat(pattern = "yyyy-MM-dd")
@Excel(name = "活动开始时间", width = 30, dateFormat = "yyyy-MM-dd")
private Date startTime;
/** 活动结束时间 */
@JsonFormat(pattern = "yyyy-MM-dd")
@Excel(name = "活动结束时间", width = 30, dateFormat = "yyyy-MM-dd")
private Date endTime;
/** 创建人 */
@Excel(name = "创建人")
private String creator;
/** 修改人 */
@Excel(name = "修改人")
private String modify;
/** 1 上架 2 下架 */
@Excel(name = "1 上架 2 下架")
private Long shelf;
/** 1 删除 */
@Excel(name = "1 删除")
private Long isDel;
/** 活动图片 */
@Excel(name = "活动图片")
private String img;
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;
}
public void setContent(String content)
{
this.content = content;
}
public String getContent()
{
return content;
}
public void setStartTime(Date startTime)
{
this.startTime = startTime;
}
public Date getStartTime()
{
return startTime;
}
public void setEndTime(Date endTime)
{
this.endTime = endTime;
}
public Date getEndTime()
{
return endTime;
}
public void setCreator(String creator)
{
this.creator = creator;
}
public String getCreator()
{
return creator;
}
public void setModify(String modify)
{
this.modify = modify;
}
public String getModify()
{
return modify;
}
public void setShelf(Long shelf)
{
this.shelf = shelf;
}
public Long getShelf()
{
return shelf;
}
public void setIsDel(Long isDel)
{
this.isDel = isDel;
}
public Long getIsDel()
{
return isDel;
}
public void setImg(String img)
{
this.img = img;
}
public String getImg()
{
return img;
}
@Override
public String toString() {
return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
.append("id", getId())
.append("name", getName())
.append("content", getContent())
.append("startTime", getStartTime())
.append("endTime", getEndTime())
.append("creator", getCreator())
.append("modify", getModify())
.append("shelf", getShelf())
.append("isDel", getIsDel())
.append("img", getImg())
.toString();
}
}

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;
@@ -8,9 +9,9 @@ import com.ruoyi.common.core.domain.BaseEntity;
/** /**
* 【请填写功能名称】对象 category_info * 【请填写功能名称】对象 category_info
* *
* @author ruoyi
* @date 2025-07-15 * @date 2025-07-15
*/ */
@Data
public class CategoryInfo extends BaseEntity public class CategoryInfo extends BaseEntity
{ {
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;
@@ -38,77 +39,5 @@ public class CategoryInfo extends BaseEntity
@Excel(name = "修改人") @Excel(name = "修改人")
private String modify; private String modify;
public void setId(String id) private String backImg;
{
this.id = id;
}
public String getId()
{
return id;
}
public void setCategoryId(Long categoryId)
{
this.categoryId = categoryId;
}
public Long getCategoryId()
{
return categoryId;
}
public void setName(String name)
{
this.name = name;
}
public String getName()
{
return name;
}
public void setIsDel(Long isDel)
{
this.isDel = isDel;
}
public Long getIsDel()
{
return isDel;
}
public void setCreator(String creator)
{
this.creator = creator;
}
public String getCreator()
{
return creator;
}
public void setModify(String modify)
{
this.modify = modify;
}
public String getModify()
{
return modify;
}
@Override
public String toString() {
return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
.append("id", getId())
.append("categoryId", getCategoryId())
.append("name", getName())
.append("isDel", getIsDel())
.append("createTime", getCreateTime())
.append("updateTime", getUpdateTime())
.append("creator", getCreator())
.append("modify", getModify())
.toString();
}
} }

View File

@@ -1,9 +1,8 @@
package com.ruoyi.common.core.domain.entity; 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.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity; import com.ruoyi.common.core.domain.BaseEntity;
import lombok.Data;
/** /**
* 音乐信息对象 music_info * 音乐信息对象 music_info
@@ -11,6 +10,7 @@ import com.ruoyi.common.core.domain.BaseEntity;
* @author ruoyi * @author ruoyi
* @date 2025-07-15 * @date 2025-07-15
*/ */
@Data
public class MusicInfo extends BaseEntity public class MusicInfo extends BaseEntity
{ {
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;
@@ -66,154 +66,10 @@ public class MusicInfo extends BaseEntity
@Excel(name = "标签") @Excel(name = "标签")
private String label; private String label;
public void setId(String id) private boolean like;
{
this.id = id;
}
public String getId() private boolean collect;
{
return id;
}
public void setMusicId(Long musicId) private UserCollect userCollect;
{
this.musicId = musicId;
}
public Long getMusicId()
{
return musicId;
}
public void setName(String name)
{
this.name = name;
}
public String getName()
{
return name;
}
public void setAuthor(String author)
{
this.author = author;
}
public String getAuthor()
{
return author;
}
public void setVip(Long vip)
{
this.vip = vip;
}
public Long getVip()
{
return vip;
}
public void setShelf(Long shelf)
{
this.shelf = shelf;
}
public Long getShelf()
{
return shelf;
}
public void setImgAddr(String imgAddr)
{
this.imgAddr = imgAddr;
}
public String getImgAddr()
{
return imgAddr;
}
public void setMusicAddr(String musicAddr)
{
this.musicAddr = musicAddr;
}
public String getMusicAddr()
{
return musicAddr;
}
public void setMusicType(String musicType)
{
this.musicType = musicType;
}
public String getMusicType()
{
return musicType;
}
public void setCreator(String creator)
{
this.creator = creator;
}
public String getCreator()
{
return creator;
}
public void setModify(String modify)
{
this.modify = modify;
}
public String getModify()
{
return modify;
}
public void setIsDel(Long isDel)
{
this.isDel = isDel;
}
public Long getIsDel()
{
return isDel;
}
public void setLabel(String label)
{
this.label = label;
}
public String getLabel()
{
return label;
}
@Override
public String toString() {
return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
.append("id", getId())
.append("musicId", getMusicId())
.append("name", getName())
.append("author", getAuthor())
.append("vip", getVip())
.append("shelf", getShelf())
.append("imgAddr", getImgAddr())
.append("musicAddr", getMusicAddr())
.append("musicType", getMusicType())
.append("creator", getCreator())
.append("modify", getModify())
.append("createTime", getCreateTime())
.append("updateTime", getUpdateTime())
.append("isDel", getIsDel())
.append("label", getLabel())
.toString();
}
} }

View File

@@ -51,7 +51,7 @@ public class ShopUser {
private Long sex; private Long sex;
/** 生日 */ /** 生日 */
@JsonFormat(pattern = "yyyy-MM-dd") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@Excel(name = "生日", width = 30, dateFormat = "yyyy-MM-dd") @Excel(name = "生日", width = 30, dateFormat = "yyyy-MM-dd")
private Date birthday; private Date birthday;
@@ -60,7 +60,7 @@ public class ShopUser {
private String addr; private String addr;
/** 注册时间 */ /** 注册时间 */
@JsonFormat(pattern = "yyyy-MM-dd") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@Excel(name = "注册时间", width = 30, dateFormat = "yyyy-MM-dd") @Excel(name = "注册时间", width = 30, dateFormat = "yyyy-MM-dd")
private Date registerTime; private Date registerTime;
@@ -85,4 +85,10 @@ public class ShopUser {
private String deviceId; private String deviceId;
private String headImg; private String headImg;
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date vipStartTime;
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date vipEndTime;
} }

View File

@@ -25,7 +25,7 @@ public class UserCollect extends BaseEntity
private Long userId; private Long userId;
/** 音乐id */ /** 音乐id */
@Excel(name = "音乐id") @Excel(name = "收藏")
private Long collectId; private Long collectId;
/** 收藏名称 */ /** 收藏名称 */

View File

@@ -18,6 +18,8 @@ public class TableDataInfo implements Serializable
/** 列表数据 */ /** 列表数据 */
private List<?> rows; private List<?> rows;
private List<?> data;
/** 消息状态码 */ /** 消息状态码 */
private int code; private int code;
@@ -63,6 +65,18 @@ public class TableDataInfo implements Serializable
this.rows = rows; this.rows = rows;
} }
public List<?> getData()
{
return data;
}
public void setData(List<?> rows)
{
this.data = rows;
}
public int getCode() public int getCode()
{ {
return code; return code;

View File

@@ -0,0 +1,26 @@
package com.ruoyi.common.utils;
import java.util.Calendar;
import java.util.Date;
public class MusicUtil {
/**
* 获取当前时间 n 天后的日期
* @param n 天数(正数表示未来,负数表示过去)
* @return n 天后的 Date 对象
*/
public static Date getDateAfterNDays(int n) {
Calendar calendar = Calendar.getInstance(); // 获取当前时间
calendar.add(Calendar.DAY_OF_YEAR, n); // 增加或减少天数
return calendar.getTime(); // 返回计算后的 Date
}
public static void main(String[] args) {
System.out.println(getDateAfterNDays(1));;
}
}

View File

@@ -1,5 +1,6 @@
package com.ruoyi.system.config; package com.ruoyi.system.config;
import cn.hutool.core.util.IdUtil;
import com.aliyun.dysmsapi20170525.Client; import com.aliyun.dysmsapi20170525.Client;
import com.aliyun.dysmsapi20170525.models.SendSmsRequest; import com.aliyun.dysmsapi20170525.models.SendSmsRequest;
import com.aliyun.dysmsapi20170525.models.SendSmsResponse; import com.aliyun.dysmsapi20170525.models.SendSmsResponse;
@@ -89,7 +90,7 @@ public class AliConfig {
} }
public static String ossUp(String objectName, InputStream inputStream){ public static String ossUp(String objectName,String fileName, InputStream inputStream){
// 配置参数 // 配置参数
String endpoint = "https://oss-cn-beijing.aliyuncs.com"; String endpoint = "https://oss-cn-beijing.aliyuncs.com";
String accessKeyId = AliKeyConfig.ACCESS_KEY_ID; String accessKeyId = AliKeyConfig.ACCESS_KEY_ID;
@@ -98,12 +99,13 @@ public class AliConfig {
// 创建OSSClient实例 // 创建OSSClient实例
OSS ossClient = new OSSClientBuilder().build(endpoint, accessKeyId, accessKeySecret); OSS ossClient = new OSSClientBuilder().build(endpoint, accessKeyId, accessKeySecret);
String suffix = fileName.substring(fileName.lastIndexOf("."));
String path = objectName + IdUtil.fastUUID() + suffix;
try { try {
// 上传字符串内容作为文件 // 上传字符串内容作为文件
ossClient.putObject(bucketName, objectName, inputStream); ossClient.putObject(bucketName, path, inputStream);
System.out.println("文件上传成功:" + objectName); System.out.println("文件上传成功:" + objectName);
return "/file/download/"+objectName; return "/file/download/"+path;
} catch (Exception e) { } catch (Exception e) {
e.printStackTrace(); e.printStackTrace();
} finally { } finally {

View File

@@ -25,10 +25,18 @@ import java.util.Map;
@Component @Component
public class UmengConfig { public class UmengConfig {
/**
*
*
* @param token
* @return
*/
public static CloseableHttpResponse send(String token){ public static CloseableHttpResponse send(String token){
String umAppkey = "5df88f83570df3b8d40012337"; //687b2df479267e0210b79b6f
String appKey = "LTAI5tDWWzwqxumUXTFnkQFd"; String umAppkey = "687b2e1679267e0210b79b70";
String appSecret = "KOD3y6OxbHJ23wxAf68NFpUQXCQEPX"; String appKey = "204918113";
String appSecret = "v4UrIhhLZlo0adpmevyCfvThGFbrRer0";
// 下面的url要和阿里云云市场购买的商品对应 // 下面的url要和阿里云云市场购买的商品对应
String url = "https://verify5.market.alicloudapi.com/api/v1/mobile/info?appkey=" + umAppkey; String url = "https://verify5.market.alicloudapi.com/api/v1/mobile/info?appkey=" + umAppkey;
HttpPost httpPost = new HttpPost(url); HttpPost httpPost = new HttpPost(url);

View File

@@ -0,0 +1,69 @@
package com.ruoyi.system.mapper;
import com.ruoyi.common.core.domain.entity.ActivityInfo;
import org.apache.ibatis.annotations.Param;
import java.util.List;
/**
* 【请填写功能名称】Mapper接口
*
* @author ruoyi
* @date 2025-07-20
*/
public interface ActivityInfoMapper
{
/**
* 查询【请填写功能名称】
*
* @param id 【请填写功能名称】主键
* @return 【请填写功能名称】
*/
public ActivityInfo selectActivityInfoById(String id);
/**
* 查询【请填写功能名称】列表
*
* @param activityInfo 【请填写功能名称】
* @return 【请填写功能名称】集合
*/
public List<ActivityInfo> selectActivityInfoList(ActivityInfo activityInfo);
/**
* 新增【请填写功能名称】
*
* @param activityInfo 【请填写功能名称】
* @return 结果
*/
public int insertActivityInfo(ActivityInfo activityInfo);
/**
* 修改【请填写功能名称】
*
* @param activityInfo 【请填写功能名称】
* @return 结果
*/
public int updateActivityInfo(ActivityInfo activityInfo);
/**
* 删除【请填写功能名称】
*
* @param id 【请填写功能名称】主键
* @return 结果
*/
public int deleteActivityInfoById(String id);
/**
* 批量删除【请填写功能名称】
*
* @param ids 需要删除的数据主键集合
* @return 结果
*/
public int deleteActivityInfoByIds(String[] ids);
ActivityInfo selectActivityShelfInfo();
ActivityInfo selectActivityInfoByUserId(Long userId);
int insertActivityUser(@Param("userId") Long userId,@Param("activityId") String activityId);
}

View File

@@ -81,4 +81,6 @@ public interface MusicInfoMapper
int insertHistory(@Param("userId") Long userId,@Param("musicId") String musicId); int insertHistory(@Param("userId") Long userId,@Param("musicId") String musicId);
List<MusicInfo> selectHistoryMusicByUser(Long userId); List<MusicInfo> selectHistoryMusicByUser(Long userId);
MusicInfo selectByMusicId(String musicId);
} }

View File

@@ -28,6 +28,8 @@ public interface ShopUserMapper {
*/ */
public ShopUser selectShopUserById(String id); public ShopUser selectShopUserById(String id);
public ShopUser selectShopUserByUserId(Long userId);
/** /**
* 查询用户管理列表 * 查询用户管理列表
* *

View File

@@ -1,6 +1,7 @@
package com.ruoyi.system.mapper; package com.ruoyi.system.mapper;
import com.ruoyi.common.core.domain.entity.UserCollect; import com.ruoyi.common.core.domain.entity.UserCollect;
import org.apache.ibatis.annotations.Param;
import java.util.List; import java.util.List;
@@ -59,4 +60,6 @@ public interface UserCollectMapper
* @return 结果 * @return 结果
*/ */
public int deleteUserCollectByIds(Long[] ids); public int deleteUserCollectByIds(Long[] ids);
UserCollect selectUserCollectAndUserId(@Param("userId") Long userId,@Param("musicId") String musicId);
} }

View File

@@ -1,6 +1,7 @@
package com.ruoyi.system.mapper; package com.ruoyi.system.mapper;
import com.ruoyi.common.core.domain.entity.UserLikeMusic; import com.ruoyi.common.core.domain.entity.UserLikeMusic;
import org.apache.ibatis.annotations.Param;
import java.util.List; import java.util.List;
@@ -59,4 +60,6 @@ public interface UserLikeMusicMapper
* @return 结果 * @return 结果
*/ */
public int deleteUserLikeMusicByIds(String[] ids); public int deleteUserLikeMusicByIds(String[] ids);
UserLikeMusic selectUserLikeMusicAndUserId(@Param("userId") Long userId,@Param("musicId") String musicId);
} }

View File

@@ -0,0 +1,62 @@
package com.ruoyi.system.service;
import com.ruoyi.common.core.domain.entity.ActivityInfo;
import java.util.List;
/**
* 【请填写功能名称】Service接口
*
* @author ruoyi
* @date 2025-07-20
*/
public interface IActivityInfoService
{
/**
* 查询【请填写功能名称】
*
* @param id 【请填写功能名称】主键
* @return 【请填写功能名称】
*/
public ActivityInfo selectActivityInfoById(String id);
/**
* 查询【请填写功能名称】列表
*
* @param activityInfo 【请填写功能名称】
* @return 【请填写功能名称】集合
*/
public List<ActivityInfo> selectActivityInfoList(ActivityInfo activityInfo);
/**
* 新增【请填写功能名称】
*
* @param activityInfo 【请填写功能名称】
* @return 结果
*/
public int insertActivityInfo(ActivityInfo activityInfo);
/**
* 修改【请填写功能名称】
*
* @param activityInfo 【请填写功能名称】
* @return 结果
*/
public int updateActivityInfo(ActivityInfo activityInfo);
/**
* 批量删除【请填写功能名称】
*
* @param ids 需要删除的【请填写功能名称】主键集合
* @return 结果
*/
public int deleteActivityInfoByIds(String[] ids);
/**
* 删除【请填写功能名称】信息
*
* @param id 【请填写功能名称】主键
* @return 结果
*/
public int deleteActivityInfoById(String id);
}

View File

@@ -5,6 +5,7 @@ import com.ruoyi.common.core.domain.entity.MusicInfo;
import org.springframework.web.multipart.MultipartFile; import org.springframework.web.multipart.MultipartFile;
import java.util.List; import java.util.List;
import java.util.Map;
/** /**
* 音乐信息Service接口 * 音乐信息Service接口
@@ -77,4 +78,6 @@ public interface IMusicInfoService
int addHistoryMusic(String musicId); int addHistoryMusic(String musicId);
List<MusicInfo> findHistoryMusicByUser(Long userId); List<MusicInfo> findHistoryMusicByUser(Long userId);
MusicInfo getMusicInfo(Long userId, String musicId);
} }

View File

@@ -7,4 +7,5 @@ public interface ShopUserService {
ShopUser login(ShopUserResq shopUser); ShopUser login(ShopUserResq shopUser);
ShopUser modifyUser(ShopUser shopUser);
} }

View File

@@ -0,0 +1,94 @@
package com.ruoyi.system.service.impl;
import com.ruoyi.common.core.domain.entity.ActivityInfo;
import com.ruoyi.system.mapper.ActivityInfoMapper;
import com.ruoyi.system.service.IActivityInfoService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;
/**
* 【请填写功能名称】Service业务层处理
*
* @author ruoyi
* @date 2025-07-20
*/
@Service
public class ActivityInfoServiceImpl implements IActivityInfoService
{
@Autowired
private ActivityInfoMapper activityInfoMapper;
/**
* 查询【请填写功能名称】
*
* @param id 【请填写功能名称】主键
* @return 【请填写功能名称】
*/
@Override
public ActivityInfo selectActivityInfoById(String id)
{
return activityInfoMapper.selectActivityInfoById(id);
}
/**
* 查询【请填写功能名称】列表
*
* @param activityInfo 【请填写功能名称】
* @return 【请填写功能名称】
*/
@Override
public List<ActivityInfo> selectActivityInfoList(ActivityInfo activityInfo)
{
return activityInfoMapper.selectActivityInfoList(activityInfo);
}
/**
* 新增【请填写功能名称】
*
* @param activityInfo 【请填写功能名称】
* @return 结果
*/
@Override
public int insertActivityInfo(ActivityInfo activityInfo)
{
return activityInfoMapper.insertActivityInfo(activityInfo);
}
/**
* 修改【请填写功能名称】
*
* @param activityInfo 【请填写功能名称】
* @return 结果
*/
@Override
public int updateActivityInfo(ActivityInfo activityInfo)
{
return activityInfoMapper.updateActivityInfo(activityInfo);
}
/**
* 批量删除【请填写功能名称】
*
* @param ids 需要删除的【请填写功能名称】主键
* @return 结果
*/
@Override
public int deleteActivityInfoByIds(String[] ids)
{
return activityInfoMapper.deleteActivityInfoByIds(ids);
}
/**
* 删除【请填写功能名称】信息
*
* @param id 【请填写功能名称】主键
* @return 结果
*/
@Override
public int deleteActivityInfoById(String id)
{
return activityInfoMapper.deleteActivityInfoById(id);
}
}

View File

@@ -58,7 +58,7 @@ public class BannerInfoServiceImpl implements IBannerInfoService
public int insertBannerInfo(BannerInfo bannerInfo, MultipartFile file){ public int insertBannerInfo(BannerInfo bannerInfo, MultipartFile file){
bannerInfo.setCreateTime(DateUtils.getNowDate()); bannerInfo.setCreateTime(DateUtils.getNowDate());
try { try {
String addr = AliConfig.ossUp("config/" + file.getOriginalFilename(), file.getInputStream()); String addr = AliConfig.ossUp("config/" , file.getOriginalFilename(), file.getInputStream());
bannerInfo.setBannerAddr(addr); bannerInfo.setBannerAddr(addr);
} catch (IOException e) { } catch (IOException e) {
throw new RuntimeException(e); throw new RuntimeException(e);

View File

@@ -1,17 +1,22 @@
package com.ruoyi.system.service.impl; package com.ruoyi.system.service.impl;
import cn.hutool.core.util.IdUtil; import cn.hutool.core.util.IdUtil;
import com.ruoyi.common.core.domain.entity.ActivityInfo;
import com.ruoyi.common.core.domain.entity.ShopUser; import com.ruoyi.common.core.domain.entity.ShopUser;
import com.ruoyi.common.core.domain.entity.ShopUserResq; import com.ruoyi.common.core.domain.entity.ShopUserResq;
import com.ruoyi.common.core.redis.RedisCache; import com.ruoyi.common.core.redis.RedisCache;
import com.ruoyi.common.utils.MusicUtil;
import com.ruoyi.common.utils.StringUtils; import com.ruoyi.common.utils.StringUtils;
import com.ruoyi.system.config.UmengConfig; import com.ruoyi.system.config.UmengConfig;
import com.ruoyi.system.mapper.ActivityInfoMapper;
import com.ruoyi.system.mapper.ShopUserMapper; import com.ruoyi.system.mapper.ShopUserMapper;
import com.ruoyi.system.service.ShopUserService; import com.ruoyi.system.service.ShopUserService;
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 org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
import java.util.Date;
@Transactional @Transactional
@Service @Service
public class CShopUserServiceImpl implements ShopUserService { public class CShopUserServiceImpl implements ShopUserService {
@@ -22,6 +27,8 @@ public class CShopUserServiceImpl implements ShopUserService {
private UmengConfig umengConfig; private UmengConfig umengConfig;
@Autowired @Autowired
private ShopUserMapper shopUserMapper; private ShopUserMapper shopUserMapper;
@Autowired
private ActivityInfoMapper activityInfoMapper;
@Override @Override
public ShopUser login(ShopUserResq shopUser) { public ShopUser login(ShopUserResq shopUser) {
@@ -40,8 +47,10 @@ public class CShopUserServiceImpl implements ShopUserService {
case "2": case "2":
// 验证码 // 验证码
String code = redisCache.getCacheObject("sms_code:"+shopUser.getPhone()); String code = redisCache.getCacheObject("sms_code:"+shopUser.getPhone());
// TODO:写死
code="9527";
String reqCode = shopUser.getCode(); String reqCode = shopUser.getCode();
if (code.equals(reqCode)){ if (code != null && code.equals(reqCode)){
// 登录 // 登录
return loginAndRegis(shopUser); return loginAndRegis(shopUser);
}else { }else {
@@ -58,8 +67,50 @@ public class CShopUserServiceImpl implements ShopUserService {
return null; return null;
} }
@Override
public ShopUser modifyUser(ShopUser shopUser) {
// 先修改 在查询活动 在校验字段
shopUserMapper.updateShopUser(shopUser);
ActivityInfo activityInfo = activityInfoMapper.selectActivityShelfInfo();
if (activityInfo != null) {
// 获取当前时间
Date date = new Date();
Date start = activityInfo.getStartTime();
Date end = activityInfo.getEndTime();
// 判断 date 是否在 start 和 end 之间(包含边界)
boolean isBetween = !date.before(start) && !date.after(end);
// 或者如果你不想包含边界(即严格在 start 和 end 之间)
// boolean isBetween = date.after(start) && date.before(end);
if (isBetween) {
// 查询用户是否已经参与过活动
ActivityInfo activity = activityInfoMapper.selectActivityInfoByUserId(shopUser.getUserId());
if (activity != null) {
return shopUser;
}
// 查询用户信息
ShopUser selectShopUser = shopUserMapper.selectShopUserByUserId(shopUser.getUserId());
if (selectShopUser.getNickname() != null &&
selectShopUser.getSex() != null &&
selectShopUser.getBirthday() != null &&
selectShopUser.getAddr() != null) {
String content = activityInfo.getContent();
// 查询用户是否是vip 非vip 才送
if (selectShopUser.getVip() == 2) {
selectShopUser.setVip(1L);
selectShopUser.setVipStartTime(new Date());
Date endDate = MusicUtil.getDateAfterNDays(Integer.parseInt(content));
selectShopUser.setVipEndTime(endDate);
activityInfoMapper.insertActivityUser(shopUser.getUserId(),activityInfo.getId());
shopUserMapper.updateShopUser(selectShopUser);
}
}
}
}
return shopUser;
}
public ShopUser loginAndRegis(ShopUserResq shopUser) { public ShopUser loginAndRegis(ShopUserResq shopUser) {
ShopUser member = shopUserMapper.selectShopUserByPhone(shopUser.getUsername()); ShopUser member = shopUserMapper.selectShopUserByPhone(shopUser.getPhone());
if (StringUtils.isNull(member)) { if (StringUtils.isNull(member)) {
// 走注册在登录 // 走注册在登录
member = new ShopUser(); member = new ShopUser();
@@ -81,4 +132,6 @@ public class CShopUserServiceImpl implements ShopUserService {
return member; return member;
} }
} }

View File

@@ -3,12 +3,16 @@ package com.ruoyi.system.service.impl;
import cn.hutool.core.util.IdUtil; import cn.hutool.core.util.IdUtil;
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.domain.entity.MusicInfo;
import com.ruoyi.common.core.domain.entity.UserCollect;
import com.ruoyi.common.core.domain.entity.UserLikeMusic;
import com.ruoyi.common.enums.Audio; import com.ruoyi.common.enums.Audio;
import com.ruoyi.common.enums.MusicType; import com.ruoyi.common.enums.MusicType;
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.config.AliConfig; import com.ruoyi.system.config.AliConfig;
import com.ruoyi.system.mapper.MusicInfoMapper; import com.ruoyi.system.mapper.MusicInfoMapper;
import com.ruoyi.system.mapper.UserCollectMapper;
import com.ruoyi.system.mapper.UserLikeMusicMapper;
import com.ruoyi.system.service.IMusicInfoService; import com.ruoyi.system.service.IMusicInfoService;
import com.ruoyi.system.service.IUserHistoryService; import com.ruoyi.system.service.IUserHistoryService;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
@@ -17,6 +21,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;
/** /**
* 音乐信息Service业务层处理 * 音乐信息Service业务层处理
@@ -29,6 +34,10 @@ public class MusicInfoServiceImpl implements IMusicInfoService
{ {
@Autowired @Autowired
private MusicInfoMapper musicInfoMapper; private MusicInfoMapper musicInfoMapper;
@Autowired
private UserLikeMusicMapper userLikeMusicMapper;
@Autowired
private UserCollectMapper userCollectMapper;
/** /**
@@ -67,8 +76,8 @@ public class MusicInfoServiceImpl implements IMusicInfoService
musicInfo.setCreateTime(DateUtils.getNowDate()); musicInfo.setCreateTime(DateUtils.getNowDate());
musicInfo.setMusicId(IdUtil.getSnowflakeNextId()); musicInfo.setMusicId(IdUtil.getSnowflakeNextId());
try { try {
String imgAddr = AliConfig.ossUp("musicImg/" + img.getOriginalFilename(), img.getInputStream()); String imgAddr = AliConfig.ossUp("musicImg/" , img.getOriginalFilename(), img.getInputStream());
String musicAddr = AliConfig.ossUp("musicFile/" + music.getOriginalFilename(), music.getInputStream()); String musicAddr = AliConfig.ossUp("musicFile/" , music.getOriginalFilename(), music.getInputStream());
musicInfo.setMusicAddr(musicAddr); musicInfo.setMusicAddr(musicAddr);
musicInfo.setImgAddr(imgAddr); musicInfo.setImgAddr(imgAddr);
musicInfo.setMusicType(MusicType.ORDINARY.getMusicType()); musicInfo.setMusicType(MusicType.ORDINARY.getMusicType());
@@ -160,4 +169,22 @@ public class MusicInfoServiceImpl implements IMusicInfoService
public List<MusicInfo> findHistoryMusicByUser(Long userId) { public List<MusicInfo> findHistoryMusicByUser(Long userId) {
return musicInfoMapper.selectHistoryMusicByUser(userId); return musicInfoMapper.selectHistoryMusicByUser(userId);
} }
@Override
public MusicInfo getMusicInfo(Long userId, String musicId) {
MusicInfo musicInfo = musicInfoMapper.selectByMusicId(musicId);
// 查询是否是用户喜欢
UserLikeMusic userLikeMusic = userLikeMusicMapper.selectUserLikeMusicAndUserId(userId, musicId);
if (userLikeMusic != null){
musicInfo.setLike(true);
}
// 查询是否是用户分类
UserCollect userCollect = userCollectMapper.selectUserCollectAndUserId(userId, musicId);
if (userCollect != null){
musicInfo.setCollect(true);
musicInfo.setUserCollect(userCollect);
}
return musicInfo;
}
} }

View File

@@ -0,0 +1,108 @@
<?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.ActivityInfoMapper">
<resultMap type="ActivityInfo" id="ActivityInfoResult">
<result property="id" column="id" />
<result property="name" column="name" />
<result property="content" column="content" />
<result property="startTime" column="start_time" />
<result property="endTime" column="end_time" />
<result property="creator" column="creator" />
<result property="modify" column="modify" />
<result property="shelf" column="shelf" />
<result property="isDel" column="is_del" />
<result property="img" column="img" />
</resultMap>
<sql id="selectActivityInfoVo">
select id, name, content, start_time, end_time, creator, modify, shelf, is_del, img from activity_info
</sql>
<select id="selectActivityInfoList" parameterType="ActivityInfo" resultMap="ActivityInfoResult">
<include refid="selectActivityInfoVo"/>
<where>
<if test="name != null and name != ''"> and name like concat('%', #{name}, '%')</if>
<if test="content != null and content != ''"> and content = #{content}</if>
<if test="startTime != null "> and start_time = #{startTime}</if>
<if test="endTime != null "> and end_time = #{endTime}</if>
<if test="creator != null and creator != ''"> and creator = #{creator}</if>
<if test="modify != null and modify != ''"> and modify = #{modify}</if>
<if test="shelf != null "> and shelf = #{shelf}</if>
<if test="isDel != null "> and is_del = #{isDel}</if>
<if test="img != null and img != ''"> and img = #{img}</if>
</where>
</select>
<select id="selectActivityInfoById" parameterType="String" resultMap="ActivityInfoResult">
<include refid="selectActivityInfoVo"/>
where id = #{id}
</select>
<insert id="insertActivityInfo" parameterType="ActivityInfo" useGeneratedKeys="true" keyProperty="id">
insert into activity_info
<trim prefix="(" suffix=")" suffixOverrides=",">
<if test="name != null">name,</if>
<if test="content != null">content,</if>
<if test="startTime != null">start_time,</if>
<if test="endTime != null">end_time,</if>
<if test="creator != null">creator,</if>
<if test="modify != null">modify,</if>
<if test="shelf != null">shelf,</if>
<if test="isDel != null">is_del,</if>
<if test="img != null">img,</if>
</trim>
<trim prefix="values (" suffix=")" suffixOverrides=",">
<if test="name != null">#{name},</if>
<if test="content != null">#{content},</if>
<if test="startTime != null">#{startTime},</if>
<if test="endTime != null">#{endTime},</if>
<if test="creator != null">#{creator},</if>
<if test="modify != null">#{modify},</if>
<if test="shelf != null">#{shelf},</if>
<if test="isDel != null">#{isDel},</if>
<if test="img != null">#{img},</if>
</trim>
</insert>
<update id="updateActivityInfo" parameterType="ActivityInfo">
update activity_info
<trim prefix="SET" suffixOverrides=",">
<if test="name != null">name = #{name},</if>
<if test="content != null">content = #{content},</if>
<if test="startTime != null">start_time = #{startTime},</if>
<if test="endTime != null">end_time = #{endTime},</if>
<if test="creator != null">creator = #{creator},</if>
<if test="modify != null">modify = #{modify},</if>
<if test="shelf != null">shelf = #{shelf},</if>
<if test="isDel != null">is_del = #{isDel},</if>
<if test="img != null">img = #{img},</if>
</trim>
where id = #{id}
</update>
<delete id="deleteActivityInfoById" parameterType="String">
delete from activity_info where id = #{id}
</delete>
<delete id="deleteActivityInfoByIds" parameterType="String">
delete from activity_info where id in
<foreach item="id" collection="array" open="(" separator="," close=")">
#{id}
</foreach>
</delete>
<select id="selectActivityShelfInfo" resultMap="ActivityInfoResult">
SELECT * FROM activity_info where shelf=1 order by end_time desc limit 1;
</select>
<select id="selectActivityInfoByUserId" resultType="com.ruoyi.common.core.domain.entity.ActivityInfo">
SELECT activity_id as activityId FROM user_activity where user_id=#{userId}
</select>
<insert id="insertActivityUser">
insert into user_activity(user_id, activity_id) value (#{userId},#{activityId})
</insert>
</mapper>

View File

@@ -8,6 +8,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<result property="id" column="id" /> <result property="id" column="id" />
<result property="categoryId" column="category_id" /> <result property="categoryId" column="category_id" />
<result property="name" column="name" /> <result property="name" column="name" />
<result property="backImg" column="back_img" />
<result property="isDel" column="is_del" /> <result property="isDel" column="is_del" />
<result property="createTime" column="create_time" /> <result property="createTime" column="create_time" />
<result property="updateTime" column="update_time" /> <result property="updateTime" column="update_time" />
@@ -16,7 +17,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
</resultMap> </resultMap>
<sql id="selectCategoryInfoVo"> <sql id="selectCategoryInfoVo">
select id, category_id, name, is_del, create_time, update_time, creator, modify from category_info select id, category_id, name, back_img,is_del, create_time, update_time, creator, modify from category_info
</sql> </sql>
<select id="selectCategoryInfoList" parameterType="CategoryInfo" resultMap="CategoryInfoResult"> <select id="selectCategoryInfoList" parameterType="CategoryInfo" resultMap="CategoryInfoResult">
@@ -40,6 +41,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<trim prefix="(" suffix=")" suffixOverrides=","> <trim prefix="(" suffix=")" suffixOverrides=",">
<if test="categoryId != null">category_id,</if> <if test="categoryId != null">category_id,</if>
<if test="name != null">name,</if> <if test="name != null">name,</if>
<if test="backImg != null">back_img,</if>
<if test="isDel != null">is_del,</if> <if test="isDel != null">is_del,</if>
<if test="createTime != null">create_time,</if> <if test="createTime != null">create_time,</if>
<if test="updateTime != null">update_time,</if> <if test="updateTime != null">update_time,</if>
@@ -49,6 +51,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<trim prefix="values (" suffix=")" suffixOverrides=","> <trim prefix="values (" suffix=")" suffixOverrides=",">
<if test="categoryId != null">#{categoryId},</if> <if test="categoryId != null">#{categoryId},</if>
<if test="name != null">#{name},</if> <if test="name != null">#{name},</if>
<if test="backImg != null">#{backImg},</if>
<if test="isDel != null">#{isDel},</if> <if test="isDel != null">#{isDel},</if>
<if test="createTime != null">#{createTime},</if> <if test="createTime != null">#{createTime},</if>
<if test="updateTime != null">#{updateTime},</if> <if test="updateTime != null">#{updateTime},</if>

View File

@@ -159,4 +159,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<select id="selectHistoryMusicByUser" resultMap="MusicInfoResult"> <select id="selectHistoryMusicByUser" resultMap="MusicInfoResult">
SELECT * FROM user_history ulm LEFT JOIN music_info mi on ulm.music_id=mi.music_id WHERE ulm.user_id=#{userId} and mi.is_del=0 SELECT * FROM user_history ulm LEFT JOIN music_info mi on ulm.music_id=mi.music_id WHERE ulm.user_id=#{userId} and mi.is_del=0
</select> </select>
<select id="selectByMusicId" resultMap="MusicInfoResult">
SELECT * FROM music_info where music_id=#{musicId}
</select>
</mapper> </mapper>

View File

@@ -22,6 +22,8 @@
<if test="deviceId != null">device_id,</if> <if test="deviceId != null">device_id,</if>
<if test="deviceType != null">device_type,</if> <if test="deviceType != null">device_type,</if>
<if test="headImg != null">head_img,</if> <if test="headImg != null">head_img,</if>
<if test="vipStartTime != null">vip_start_time,</if>
<if test="vipEndTime != null">vip_end_time,</if>
</trim> </trim>
<trim prefix="values (" suffix=")" suffixOverrides=","> <trim prefix="values (" suffix=")" suffixOverrides=",">
<if test="userId != null">#{userId},</if> <if test="userId != null">#{userId},</if>
@@ -39,6 +41,8 @@
<if test="deviceId != null">#{deviceId},</if> <if test="deviceId != null">#{deviceId},</if>
<if test="deviceType != null">#{deviceType},</if> <if test="deviceType != null">#{deviceType},</if>
<if test="headImg != null">#{headImg},</if> <if test="headImg != null">#{headImg},</if>
<if test="vipStartTime != null">#{vipStartTime},</if>
<if test="vipEndTime != null">#{vipEndTime},</if>
</trim> </trim>
</insert> </insert>
@@ -65,7 +69,7 @@
</resultMap> </resultMap>
<sql id="selectShopUserVo"> <sql id="selectShopUserVo">
select id, user_id, username, password,device_type,device_id, phone, nickname, sex, birthday, addr, register_time, status, vip, online, create_time, update_time, is_del,head_img from shop_user select id, user_id, username, password,device_type,device_id, phone, nickname, sex, birthday, addr, register_time, status, vip, online, create_time, update_time, is_del,head_img,vip_end_time,vip_start_time from shop_user
</sql> </sql>
<select id="selectShopUserList" parameterType="ShopUser" resultMap="ShopUserResult"> <select id="selectShopUserList" parameterType="ShopUser" resultMap="ShopUserResult">
@@ -84,6 +88,8 @@
<if test="vip != null "> and vip = #{vip}</if> <if test="vip != null "> and vip = #{vip}</if>
<if test="online != null and online != ''"> and online = #{online}</if> <if test="online != null and online != ''"> and online = #{online}</if>
<if test="isDel != null "> and is_del = #{isDel}</if> <if test="isDel != null "> and is_del = #{isDel}</if>
<if test="vipStartTime != null"> and #{vipStartTime},</if>
<if test="vipEndTime != null"> and #{vipEndTime},</if>
</where> </where>
</select> </select>
@@ -103,7 +109,7 @@
<select id="selectShopUserById" parameterType="String" resultMap="ShopUserResult"> <select id="selectShopUserById" parameterType="String" resultMap="ShopUserResult">
<include refid="selectShopUserVo"/> <include refid="selectShopUserVo"/>
where id = #{id} where shop_user.id = #{id}
</select> </select>
<insert id="insertShopUser" parameterType="ShopUser" useGeneratedKeys="true" keyProperty="id"> <insert id="insertShopUser" parameterType="ShopUser" useGeneratedKeys="true" keyProperty="id">
@@ -162,8 +168,10 @@
<if test="createTime != null">create_time = #{createTime},</if> <if test="createTime != null">create_time = #{createTime},</if>
<if test="updateTime != null">update_time = #{updateTime},</if> <if test="updateTime != null">update_time = #{updateTime},</if>
<if test="isDel != null">is_del = #{isDel},</if> <if test="isDel != null">is_del = #{isDel},</if>
<if test="vipStartTime != null"> vip_start_time = #{vipStartTime},</if>
<if test="vipEndTime != null"> vip_end_time = #{vipEndTime},</if>
</trim> </trim>
where id = #{id} where shop_user.user_id = #{userId}
</update> </update>
<delete id="deleteShopUserById" parameterType="String"> <delete id="deleteShopUserById" parameterType="String">
@@ -177,4 +185,9 @@
#{id} #{id}
</foreach> </foreach>
</delete> </delete>
<select id="selectShopUserByUserId" resultMap="ShopUserResult">
<include refid="selectShopUserVo"/>
where shop_user.user_id = #{userId}
</select>
</mapper> </mapper>

View File

@@ -78,4 +78,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
#{id} #{id}
</foreach> </foreach>
</delete> </delete>
<select id="selectUserCollectAndUserId" resultMap="UserCollectResult">
SELECT uc.* FROM music_collect mc LEFT JOIN user_collect uc on uc.collect_id=mc.collect_id WHERE mc.music_id=#{musicId} and uc.user_id=#{userId}
</select>
</mapper> </mapper>

View File

@@ -58,4 +58,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
#{id} #{id}
</foreach> </foreach>
</delete> </delete>
<select id="selectUserLikeMusicAndUserId" resultType="com.ruoyi.common.core.domain.entity.UserLikeMusic">
SELECT user_id as userId,music_id as musicId FROM user_like_music where user_id=#{userId} and music_id=#{musicId}
</select>
</mapper> </mapper>

View File

@@ -1,8 +1,11 @@
# 页面标题 # 页面标题
VUE_APP_TITLE = 若依管理系统 VUE_APP_TITLE = 若依管理系统
# 生产环境配置 # 开发环境配置
ENV = 'production' ENV = 'development'
# 若依管理系统/生产环境 # 若依管理系统/开发环境
VUE_APP_BASE_API = '/prod-api' VUE_APP_BASE_API = '/dev-api'
# 路由懒加载
VUE_CLI_BABEL_TRANSPILE_MODULES = true