|
@@ -1,16 +1,15 @@
|
|
package com.example.service;
|
|
package com.example.service;
|
|
|
|
|
|
|
|
+import cn.hutool.crypto.digest.MD5;
|
|
import cn.hutool.core.util.ObjectUtil;
|
|
import cn.hutool.core.util.ObjectUtil;
|
|
import com.example.common.Constants;
|
|
import com.example.common.Constants;
|
|
import com.example.common.enums.RecordsTypeEnum;
|
|
import com.example.common.enums.RecordsTypeEnum;
|
|
import com.example.common.enums.ResultCodeEnum;
|
|
import com.example.common.enums.ResultCodeEnum;
|
|
import com.example.common.enums.RoleEnum;
|
|
import com.example.common.enums.RoleEnum;
|
|
import com.example.entity.Account;
|
|
import com.example.entity.Account;
|
|
-import com.example.entity.Admin;
|
|
|
|
import com.example.entity.Certification;
|
|
import com.example.entity.Certification;
|
|
import com.example.entity.User;
|
|
import com.example.entity.User;
|
|
import com.example.exception.CustomException;
|
|
import com.example.exception.CustomException;
|
|
-import com.example.mapper.AdminMapper;
|
|
|
|
import com.example.mapper.UserMapper;
|
|
import com.example.mapper.UserMapper;
|
|
import com.example.utils.TokenUtils;
|
|
import com.example.utils.TokenUtils;
|
|
import com.github.pagehelper.PageHelper;
|
|
import com.github.pagehelper.PageHelper;
|
|
@@ -34,9 +33,33 @@ public class UserService {
|
|
@Resource
|
|
@Resource
|
|
private CertificationService certificationService;
|
|
private CertificationService certificationService;
|
|
|
|
|
|
|
|
+ /**
|
|
|
|
+ * 注册用户
|
|
|
|
+ * 在注册时加密密码
|
|
|
|
+ */
|
|
|
|
+ public void register(Account account) {
|
|
|
|
+ User user = new User();
|
|
|
|
+ BeanUtils.copyProperties(account, user);
|
|
|
|
+
|
|
|
|
+ // 在这里进行密码加密
|
|
|
|
+ if (ObjectUtil.isNotEmpty(user.getPassword())) {
|
|
|
|
+ String encryptedPassword = MD5.create().digestHex(user.getPassword()); // 使用MD5加密密码
|
|
|
|
+ user.setPassword(encryptedPassword); // 将加密后的密码设置回User对象
|
|
|
|
+ } else {
|
|
|
|
+ // 如果密码为空,则使用默认密码,并进行加密
|
|
|
|
+ user.setPassword(MD5.create().digestHex(Constants.USER_DEFAULT_PASSWORD));
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ this.add(user);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ /**
|
|
|
|
+ * 添加用户
|
|
|
|
+ * 在这里保存加密后的密码
|
|
|
|
+ */
|
|
public void add(User user) {
|
|
public void add(User user) {
|
|
User dbUser = this.selectByUsername(user.getUsername());
|
|
User dbUser = this.selectByUsername(user.getUsername());
|
|
- if (ObjectUtil.isNotNull(dbUser)) { //用户名重复
|
|
|
|
|
|
+ if (ObjectUtil.isNotNull(dbUser)) { // 用户名重复
|
|
throw new CustomException(ResultCodeEnum.USER_EXIST_ERROR);
|
|
throw new CustomException(ResultCodeEnum.USER_EXIST_ERROR);
|
|
}
|
|
}
|
|
if (ObjectUtil.isEmpty(user.getPassword())) {
|
|
if (ObjectUtil.isEmpty(user.getPassword())) {
|
|
@@ -49,6 +72,9 @@ public class UserService {
|
|
userMapper.insert(user);
|
|
userMapper.insert(user);
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+ /**
|
|
|
|
+ * 根据用户名查询用户
|
|
|
|
+ */
|
|
public User selectByUsername(String username) {
|
|
public User selectByUsername(String username) {
|
|
User params = new User();
|
|
User params = new User();
|
|
params.setUsername(username);
|
|
params.setUsername(username);
|
|
@@ -56,63 +82,84 @@ public class UserService {
|
|
return userList.size() == 0 ? null : userList.get(0);
|
|
return userList.size() == 0 ? null : userList.get(0);
|
|
}
|
|
}
|
|
|
|
|
|
-
|
|
|
|
|
|
+ /**
|
|
|
|
+ * 删除用户
|
|
|
|
+ */
|
|
public void deleteById(Integer id) {
|
|
public void deleteById(Integer id) {
|
|
userMapper.deleteById(id);
|
|
userMapper.deleteById(id);
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+ /**
|
|
|
|
+ * 批量删除用户
|
|
|
|
+ */
|
|
public void deleteBatch(List<Integer> ids) {
|
|
public void deleteBatch(List<Integer> ids) {
|
|
for (Integer id : ids) {
|
|
for (Integer id : ids) {
|
|
this.deleteById(id);
|
|
this.deleteById(id);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+ /**
|
|
|
|
+ * 更新用户信息
|
|
|
|
+ */
|
|
public void updateById(User user) {
|
|
public void updateById(User user) {
|
|
userMapper.updateById(user);
|
|
userMapper.updateById(user);
|
|
-
|
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+ /**
|
|
|
|
+ * 根据用户ID查询用户
|
|
|
|
+ */
|
|
public User selectById(Integer id) {
|
|
public User selectById(Integer id) {
|
|
return userMapper.selectById(id);
|
|
return userMapper.selectById(id);
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+ /**
|
|
|
|
+ * 查询所有用户
|
|
|
|
+ */
|
|
public List<User> selectAll(User user) {
|
|
public List<User> selectAll(User user) {
|
|
return userMapper.selectAll(user);
|
|
return userMapper.selectAll(user);
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+ /**
|
|
|
|
+ * 分页查询用户
|
|
|
|
+ */
|
|
public PageInfo<User> selectPage(User user, Integer pageNum, Integer pageSize) {
|
|
public PageInfo<User> selectPage(User user, Integer pageNum, Integer pageSize) {
|
|
PageHelper.startPage(pageNum, pageSize);
|
|
PageHelper.startPage(pageNum, pageSize);
|
|
List<User> userList = userMapper.selectAll(user);
|
|
List<User> userList = userMapper.selectAll(user);
|
|
return PageInfo.of(userList);
|
|
return PageInfo.of(userList);
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+ /**
|
|
|
|
+ * 用户登录
|
|
|
|
+ * 登录时对密码进行加密验证
|
|
|
|
+ */
|
|
public Account login(Account account) {
|
|
public Account login(Account account) {
|
|
Account dbUser = userMapper.selectByUsername(account.getUsername());
|
|
Account dbUser = userMapper.selectByUsername(account.getUsername());
|
|
if (ObjectUtil.isNull(dbUser)) {
|
|
if (ObjectUtil.isNull(dbUser)) {
|
|
throw new CustomException(ResultCodeEnum.USER_NOT_EXIST_ERROR);
|
|
throw new CustomException(ResultCodeEnum.USER_NOT_EXIST_ERROR);
|
|
}
|
|
}
|
|
- if (!account.getPassword().equals(dbUser.getPassword())) {
|
|
|
|
|
|
+
|
|
|
|
+ // 使用加密密码验证用户
|
|
|
|
+ String encryptedPassword = MD5.create().digestHex(account.getPassword()); // 对输入的密码进行加密
|
|
|
|
+ if (!encryptedPassword.equals(dbUser.getPassword())) {
|
|
throw new CustomException(ResultCodeEnum.USER_ACCOUNT_ERROR);
|
|
throw new CustomException(ResultCodeEnum.USER_ACCOUNT_ERROR);
|
|
}
|
|
}
|
|
|
|
+
|
|
// 生成token
|
|
// 生成token
|
|
String tokenData = dbUser.getId() + "-" + RoleEnum.USER.name();
|
|
String tokenData = dbUser.getId() + "-" + RoleEnum.USER.name();
|
|
String token = TokenUtils.createToken(tokenData, dbUser.getPassword());
|
|
String token = TokenUtils.createToken(tokenData, dbUser.getPassword());
|
|
dbUser.setToken(token);
|
|
dbUser.setToken(token);
|
|
|
|
|
|
- Certification certification = certificationService.selectByUserId(dbUser.getId()); // 查询当前登录用户的骑手认证信息
|
|
|
|
|
|
+ // 查询当前登录用户的骑手认证信息
|
|
|
|
+ Certification certification = certificationService.selectByUserId(dbUser.getId());
|
|
dbUser.setIsRider(ObjectUtil.isNotNull(certification) && "通过".equals(certification.getStatus()));
|
|
dbUser.setIsRider(ObjectUtil.isNotNull(certification) && "通过".equals(certification.getStatus()));
|
|
|
|
+
|
|
return dbUser;
|
|
return dbUser;
|
|
}
|
|
}
|
|
|
|
|
|
/**
|
|
/**
|
|
- * 注册
|
|
|
|
|
|
+ * 用户充值
|
|
|
|
+ * 充值时更新账户余额并记录收支明细
|
|
*/
|
|
*/
|
|
- public void register(Account account) {
|
|
|
|
- User user = new User();
|
|
|
|
- BeanUtils.copyProperties(account, user);
|
|
|
|
- this.add(user);
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
public void charge(Double money) {
|
|
public void charge(Double money) {
|
|
Account currentUser = TokenUtils.getCurrentUser();
|
|
Account currentUser = TokenUtils.getCurrentUser();
|
|
currentUser.setAccount(currentUser.getAccount().add(BigDecimal.valueOf(money)));
|
|
currentUser.setAccount(currentUser.getAccount().add(BigDecimal.valueOf(money)));
|
|
@@ -121,4 +168,4 @@ public class UserService {
|
|
// 记录收支明细
|
|
// 记录收支明细
|
|
RecordsService.addRecord("充值", BigDecimal.valueOf(money), RecordsTypeEnum.CHARGE.getValue());
|
|
RecordsService.addRecord("充值", BigDecimal.valueOf(money), RecordsTypeEnum.CHARGE.getValue());
|
|
}
|
|
}
|
|
-}
|
|
|
|
|
|
+}
|