package com.example.yin.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.example.yin.common.R;
import com.example.yin.constant.Constants;
import com.example.yin.mapper.ConsumerMapper;
import com.example.yin.model.domain.Consumer;
import com.example.yin.model.request.ConsumerRequest;
import com.example.yin.service.ConsumerService;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.dao.DuplicateKeyException;
import org.springframework.stereotype.Service;
import org.springframework.util.DigestUtils;
import org.springframework.web.multipart.MultipartFile;
import javax.servlet.http.HttpSession;
import java.io.File;
import java.io.IOException;
import java.nio.charset.StandardCharsets;
import static com.example.yin.constant.Constants.SALT;
@Service
public class ConsumerServiceImpl extends ServiceImpl<ConsumerMapper, Consumer>
implements ConsumerService {
@Autowired
private ConsumerMapper consumerMapper;
/**
* 新增用户
*/
@Override
public R addUser(ConsumerRequest registryRequest) {
if (this.existUser(registryRequest.getUsername())) {
return R.warning("用户名已注册");
}
Consumer consumer = new Consumer();
BeanUtils.copyProperties(registryRequest, consumer);
//MD5加密
String password = DigestUtils.md5DigestAsHex((SALT + registryRequest.getPassword()).getBytes(StandardCharsets.UTF_8));
consumer.setPassword(password);
//都用用
if (StringUtils.isBlank(consumer.getPhoneNum())) {
consumer.setPhoneNum(null);
}
if ("".equals(consumer.getEmail())) {
consumer.setEmail(null);
}
consumer.setAvator("img/avatorImages/user.jpg");
try {
if (consumerMapper.insert(consumer) > 0) {
return R.success("注册成功");
} else {
return R.error("注册失败");
}
} catch (DuplicateKeyException e) {
return R.fatal(e.getMessage());
}
}
@Override
public R updateUserMsg(ConsumerRequest updateRequest) {
Consumer consumer = new Consumer();
BeanUtils.copyProperties(updateRequest, consumer);
if (consumerMapper.updateById(consumer) > 0) {
return R.success("修改成功");
} else {
return R.error("修改失败");
}
}
@Override
public R updatePassword(ConsumerRequest updatePasswordRequest) {
if (!this.verityPasswd(updatePasswordRequest.getUsername(),updatePasswordRequest.getOldPassword())) {
return R.error("密码输入错误");
}
Consumer consumer = new Consumer();
consumer.setId(updatePasswordRequest.getId());
String secretPassword = DigestUtils.md5DigestAsHex((SALT + updatePasswordRequest.getPassword()).getBytes(StandardCharsets.UTF_8));
consumer.setPassword(secretPassword);
if (consumerMapper.updateById(consumer) > 0) {
return R.success("密码修改成功");
} else {
return R.error("密码修改失败");
}
}
@Override
public R updateUserAvator(MultipartFile avatorFile, int id) {
String fileName = System.currentTimeMillis() + avatorFile.getOriginalFilename();
//路径 他这个会根据你的系统获取对应的文件分隔符
String filePath = Constants.PROJECT_PATH + System.getProperty("file.separator") + "img" + System.getProperty("file.separator") + "avatorImages";
File file = new File(filePath);
if (!file.exists() && !file.mkdir()) {
return R.fatal("创建文件失败");
}
File dest = new File(filePath + System.getProperty("file.separator") + fileName);
String imgPath = "/img/avatorImages/" + fileName;
try {
avatorFile.transferTo(dest);
} catch (IOException e) {
return R.fatal("上传失败" + e.getMessage());
}
Consumer consumer = new Consumer();
consumer.setId(id);
consumer.setAvator(imgPath);
if (consumerMapper.updateById(consumer) > 0) {
return R.success("上传成功", imgPath);
} else {
return R.error("上传失败");
}
}
@Override
public boolean existUser(String username) {
QueryWrapper<Consumer> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("username",username);
return consumerMapper.selectCount(queryWrapper) > 0;
}
@Override
public boolean verityPasswd(String username, String password) {
QueryWrapper<Consumer> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("username",username);
String secretPassword = DigestUtils.md5DigestAsHex((SALT + password).getBytes(StandardCharsets.UTF_8));
queryWrapper.eq("password",secretPassword);
return consumerMapper.selectCount(queryWrapper) > 0;
}
// 删除用户
@Override
public R deleteUser(Integer id) {
if (consumerMapper.deleteById(id) > 0) {
return R.success("删除成功");
} else {
return R.error("删除失败");
}
}
@Override
public R allUser() {
return R.success(null, consumerMapper.selectList(null));
}
@Override
public R userOfId(Integer id) {
QueryWrapper<Consumer> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("id",id);
return R.success(null, consumerMapper.selectList(queryWrapper));
}
@Override
public R loginStatus(ConsumerRequest loginRequest, HttpSession session) {
String username = loginRequest.getUsername();
String password = loginRequest.getPassword();
if (this.verityPasswd(username, password)) {
session.setAttribute("username", username);
Consumer consumer = new Consumer();
consumer.setUsername(username);
return R.success("登录成功", consumerMapper.selectList(new QueryWrapper<>(consumer)));
} else {
return R.error("用户名或密码错误");
}
}
}
没有合适的资源?快使用搜索试试~ 我知道了~
基于SpringBoot + Mybatis-Plus + Redis 的音乐网站项目.zip
共322个文件
xml:118个
java:75个
vue:47个
5星 · 超过95%的资源 需积分: 1 4 下载量 199 浏览量
2022-10-18
11:34:57
上传
评论 3
收藏 1.28MB ZIP 举报
温馨提示
基于SpringBoot + Mybatis-Plus + Redis 的音乐网站项目.zip基于SpringBoot + Mybatis-Plus + Redis 的音乐网站项目.zip基于SpringBoot + Mybatis-Plus + Redis 的音乐网站项目.zip
资源推荐
资源详情
资源评论
收起资源包目录
基于SpringBoot + Mybatis-Plus + Redis 的音乐网站项目.zip (322个子文件)
.browserslistrc 40B
.browserslistrc 40B
main.css 649B
.gitignore 321B
.gitignore 238B
.gitignore 231B
.gitignore 231B
index.html 611B
index.html 611B
favicon.ico 17KB
favicon.ico 17KB
music-website-master.iml 336B
ConsumerServiceImpl.java 6KB
SongServiceImpl.java 5KB
SongListServiceImpl.java 4KB
SingerServiceImpl.java 3KB
RedisConfig.java 3KB
SongController.java 3KB
YinMusicApplicationTests.java 3KB
ConsumerController.java 2KB
UserSupportServiceImpl.java 2KB
CollectServiceImpl.java 2KB
CommentServiceImpl.java 2KB
ListSongServiceImpl.java 2KB
UserSupport.java 2KB
SongListController.java 2KB
SingerController.java 2KB
RankListServiceImpl.java 2KB
WebCharacterEncodingFilter.java 2KB
Banner.java 2KB
WebPicConfig.java 1KB
CommentController.java 1KB
CollectController.java 1KB
UserSupportController.java 1KB
ListSongController.java 1KB
AdminServiceImpl.java 1KB
RankListController.java 1KB
R.java 1KB
BannerServiceImpl.java 993B
CorsInterceptor.java 882B
ConsumerService.java 863B
Consumer.java 822B
AdminController.java 821B
Constants.java 800B
Song.java 726B
WebMvcConfig.java 717B
SongService.java 716B
Singer.java 687B
BannerController.java 681B
ConsumerRequest.java 656B
Comment.java 655B
MyMetaObjectHandler.java 653B
SongListService.java 650B
RankListMapper.java 637B
UserSupportService.java 636B
SingerService.java 628B
ListSong.java 621B
SongList.java 618B
Collect.java 602B
ListSongService.java 575B
Admin.java 553B
CommentService.java 522B
CollectService.java 491B
RankList.java 479B
RankListService.java 441B
SongRequest.java 438B
CommentRequest.java 422B
YinMusicApplication.java 412B
AdminService.java 389B
UserSupportMapper.java 378B
BannerService.java 376B
SingerRequest.java 374B
CollectRequest.java 357B
BannerMapper.java 348B
SongListRequest.java 302B
RankListRequest.java 274B
SongListMapper.java 266B
ConsumerMapper.java 264B
ListSongMapper.java 264B
CollectMapper.java 261B
CommentMapper.java 261B
SingerMapper.java 258B
AdminMapper.java 255B
SongMapper.java 252B
ListSongRequest.java 251B
AdminRequest.java 246B
UserSupportRequest.java 228B
background.jpg 274KB
tubiao.jpg 151KB
user.jpg 87KB
user.jpg 59KB
iconfont.js 16KB
iconfont3.js 5KB
iconfont4.js 5KB
iconfont2.js 4KB
iconfont1.js 3KB
iconfont.js 2KB
.eslintrc.js 547B
.eslintrc.js 547B
vue.config.js 344B
共 322 条
- 1
- 2
- 3
- 4
资源评论
- 程序员张小妍2022-10-19#完美解决问题 #运行顺畅 #内容详尽这么好的资源很难不支持一下
- 盈梓的博客2022-10-22#内容详尽和代码运行顺畅
不安分的小女孩
- 粉丝: 9144
- 资源: 1966
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- IMG_20240425_190941.jpg
- 基于stm32的pid控制算法附带串口控制台
- 实验项目一:线性表(模板 ).docx
- 基于LM317A设计交流220V输入可调5V-12V直流输出稳压电源电路multisim10仿真源文件.zip
- Screenshot_2024-04-25-17-04-18-55_2332cb9b27b851b548ba47a91682926c.jpg
- -基于AVR单片机的LNG加液机控制器设计.pdf
- ThePowerOfNow-EckhartTolle.mobi
- BLOCK_TYPE_HEARTBEAT_D70A3465D4EE4E9_046141_dump_1st.dmp
- 项目方法测试调用接口工具
- studyupdate
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功