package com.example.service;
import cn.hutool.core.util.ObjectUtil;
import com.example.common.Constants;
import com.example.common.enums.LevelEmun;
import com.example.common.enums.ResultCodeEnum;
import com.example.common.enums.RoleEnum;
import com.example.entity.Account;
import com.example.entity.User;
import com.example.exception.CustomException;
import com.example.mapper.UserMapper;
import com.example.utils.TokenUtils;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.util.List;
@Service
public class UserService {
@Resource
private UserMapper userMapper;
public void add(User user) {
//业务逻辑
//根据用户名查找用户
User dbUser = userMapper.selectByUsername(user.getUsername());
//如果需要添加的用户已存在,抛出用户已存在异常
if (ObjectUtil.isNotEmpty(dbUser)) {
throw new CustomException(ResultCodeEnum.USER_EXIST_ERROR);
}
//如果密码为空,指定一个默认密码为123456
if (ObjectUtil.isEmpty(user.getPassword())) {
user.setPassword(Constants.USER_DEFAULT_PASSWORD);
}
//如果用户等级为空,设置用户默认等级为“普通户”,"普通户"为枚举常量
if (ObjectUtil.isEmpty(user.getLevel())) {
user.setLevel(LevelEmun.ORDINARY.level);
}
//如果用户名为空,设置用户名默认值
if (ObjectUtil.isEmpty((user.getUsername()))) {
user.setName(user.getUsername());
}
//如果头像为空,设置默认头像
if (ObjectUtil.isEmpty((user.getAvatar()))) {
user.setName(user.getAvatar());
}
//设置用户的角色都为USER常量
user.setRole(RoleEnum.USER.name());
userMapper.insert(user);
}
/**
* 删除
*/
public void deleteById(Integer id) {
userMapper.deleteById(id);
}
/**
* 批量删除
*/
public void deleteBatch(List<Integer> ids) {
for (Integer id : ids) {
userMapper.deleteById(id);
}
}
/**
* 修改
*/
public void updateById(User user) {
userMapper.updateById(user);
}
/**
* 根据ID查询
*/
public User selectById(Integer id) {
User user = userMapper.selectById(id);
// 端更新余额接口调用了selectById,需要重新传入一个Token
// 生成token
String tokenData = user.getId() + "-" + RoleEnum.ADMIN.name();
String token = TokenUtils.createToken(tokenData, user.getPassword());
user.setToken(token);
return user;
}
/**
* 查询所有
*/
public List<User> selectAll(User user) {
return userMapper.selectAll(user);
}
/**
* 分页查询
*/
public PageInfo<User> selectPage(User user, Integer pageNum, Integer pageSize) {
PageHelper.startPage(pageNum, pageSize);
List<User> list = userMapper.selectAll(user);
return PageInfo.of(list);
}
/**
* 登录
*/
public Account login(Account account) {
Account dbUser = userMapper.selectByUsername(account.getUsername());
if (ObjectUtil.isNull(dbUser)) {
throw new CustomException(ResultCodeEnum.USER_NOT_EXIST_ERROR);
}
if (!account.getPassword().equals(dbUser.getPassword())) {
throw new CustomException(ResultCodeEnum.USER_ACCOUNT_ERROR);
}
// 生成token
String tokenData = dbUser.getId() + "-" + RoleEnum.USER.name();
String token = TokenUtils.createToken(tokenData, dbUser.getPassword());
dbUser.setToken(token);
return dbUser;
}
/**
* 注册
*/
public void register(Account account) {
User user = new User();
BeanUtils.copyProperties(account, user);
add(user);
}
/**
* 修改密码
*/
public void updatePassword(Account account) {
User dbUser = userMapper.selectByUsername(account.getUsername());
if (ObjectUtil.isNull(dbUser)) {
throw new CustomException(ResultCodeEnum.USER_NOT_EXIST_ERROR);
}
if (!account.getPassword().equals(dbUser.getPassword())) {
throw new CustomException(ResultCodeEnum.PARAM_PASSWORD_ERROR);
}
dbUser.setPassword(account.getNewPassword());
userMapper.updateById(dbUser);
}
}
没有合适的资源?快使用搜索试试~ 我知道了~
Java毕业设计 基于SpringBoot+Vue前后端分离的助农扶贫项目的设计与实现+部署文档+全部资料(优秀项目).zip
共169个文件
java:47个
jpg:30个
png:26个
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 3 浏览量
2024-04-22
15:27:56
上传
评论
收藏 25.65MB ZIP 举报
温馨提示
【资源说明】 Java毕业设计 基于SpringBoot+Vue前后端分离的助农扶贫项目的设计与实现+部署文档+全部资料(优秀项目).zipJava毕业设计 基于SpringBoot+Vue前后端分离的助农扶贫项目的设计与实现+部署文档+全部资料(优秀项目).zipJava毕业设计 基于SpringBoot+Vue前后端分离的助农扶贫项目的设计与实现+部署文档+全部资料(优秀项目).zip 【备注】 1、该项目是个人高分毕业设计项目源码,已获导师指导认可通过,答辩评审分达到95分 2、该资源内项目代码都经过mac/window10/11测试运行成功,功能ok的情况下才上传的,请放心下载使用! 3、本项目适合计算机相关专业(如软件工程、计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载使用,也可作为毕业设计、课程设计、作业、项目初期立项演示等,当然也适合小白学习进阶。 4、如果基础还行,可以在此代码基础上进行修改,以实现其他功能,也可直接用于毕设、课设、作业等。 欢迎下载,沟通交流,互相学习,共同进步!
资源推荐
资源详情
资源评论
收起资源包目录
Java毕业设计 基于SpringBoot+Vue前后端分离的助农扶贫项目的设计与实现+部署文档+全部资料(优秀项目).zip (169个子文件)
index.css 497KB
manager.css 3KB
front.css 1KB
global.css 127B
.env.development 39B
.gitignore 290B
.gitignore 182B
index.html 611B
favicon.ico 342KB
farmer-manager.iml 336B
UserService.java 5KB
FileController.java 4KB
AdminService.java 4KB
OrdersService.java 4KB
JwtInterceptor.java 3KB
TokenUtils.java 3KB
WebController.java 3KB
AgritainmentController.java 2KB
InformationController.java 2KB
PolicyController.java 2KB
User.java 2KB
OrdersController.java 2KB
NoticeController.java 2KB
GoodsController.java 2KB
AdminController.java 2KB
UserController.java 2KB
AgritainmentService.java 2KB
InformationService.java 2KB
Orders.java 2KB
Admin.java 2KB
PolicyService.java 2KB
NoticeService.java 2KB
Result.java 2KB
Account.java 2KB
GoodsService.java 1KB
Goods.java 1KB
Notice.java 1KB
GlobalExceptionHandler.java 1013B
Policy.java 998B
CorsConfig.java 980B
Agritainment.java 929B
Information.java 875B
AgritainmentMapper.java 856B
ResultCodeEnum.java 824B
WebConfig.java 824B
InformationMapper.java 795B
PolicyMapper.java 788B
CustomException.java 701B
AdminMapper.java 651B
GoodsMapper.java 580B
UserMapper.java 541B
NoticeMapper.java 507B
OrdersMapper.java 475B
SpringbootApplication.java 407B
LevelEmun.java 207B
Constants.java 136B
RoleEnum.java 98B
1710679767606-橙子.jpg 1.42MB
1710679839101-哈密瓜.jpg 1.32MB
1710679786010-火龙果.jpg 1.3MB
1710665355128-田园绿洲.jpg 1.21MB
荔枝王.jpg 1.13MB
1710678634803-荔枝王.jpg 1.13MB
1710678845511-荔枝王.jpg 1.13MB
1710679270613-荔枝王.jpg 1.13MB
1710677906861-荔枝王.jpg 1.13MB
1710678239395-荔枝王.jpg 1.13MB
1710665433716-田园居.jpg 791KB
1710679935048-芒果.jpg 683KB
1710665457632-西山人家.jpg 572KB
苹果.jpg 515KB
1710679599382-苹果.jpg 515KB
1710679820824-香梨.jpg 465KB
bg.jpg 331KB
bg1.jpg 199KB
1710665406499-山水人家.jpg 175KB
1710665380429-青城山农家乐.jpg 109KB
1710679799652-龙眼.jpg 70KB
1710342790469-美女1.jpg 22KB
1710341147347-美女1.jpg 22KB
1710486545739-美女1.jpg 22KB
1710341076815-美女1.jpg 22KB
1710341978192-美女2.jpg 14KB
1710342813882-美女2.jpg 14KB
1710486882223-美女2.jpg 14KB
1710486601883-美女2.jpg 14KB
1710487089892-美女2.jpg 14KB
index.js 5KB
request.js 1KB
main.js 494B
vue.config.js 319B
babel.config.js 73B
package-lock.json 377KB
package.json 592B
jsconfig.json 279B
1710665115298-大理云上农庄(1).png 1MB
1710665005475-大理云上农庄(1).png 1MB
lun-1.png 786KB
lun-2.png 744KB
1697438073596-avatar.png 674KB
共 169 条
- 1
- 2
资源评论
不走小道
- 粉丝: 3217
- 资源: 5113
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功