refactor: 重构util目录

This commit is contained in:
bunny 2025-03-25 21:32:31 +08:00
parent f299cb811b
commit b80208446e
25 changed files with 85 additions and 105 deletions

View File

@ -4,7 +4,6 @@ import com.fasterxml.jackson.annotation.JsonAutoDetect;
import com.fasterxml.jackson.annotation.PropertyAccessor; import com.fasterxml.jackson.annotation.PropertyAccessor;
import com.fasterxml.jackson.databind.ObjectMapper; import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.SerializationFeature; import com.fasterxml.jackson.databind.SerializationFeature;
import com.fasterxml.jackson.databind.jsontype.impl.LaissezFaireSubTypeValidator;
import com.fasterxml.jackson.datatype.jsr310.JavaTimeModule; import com.fasterxml.jackson.datatype.jsr310.JavaTimeModule;
import com.fasterxml.jackson.datatype.jsr310.deser.LocalDateDeserializer; import com.fasterxml.jackson.datatype.jsr310.deser.LocalDateDeserializer;
import com.fasterxml.jackson.datatype.jsr310.deser.LocalDateTimeDeserializer; import com.fasterxml.jackson.datatype.jsr310.deser.LocalDateTimeDeserializer;
@ -128,10 +127,6 @@ public class RedisConfiguration {
// 设置ObjectMapper访问权限 // 设置ObjectMapper访问权限
mapper.setVisibility(PropertyAccessor.ALL, JsonAutoDetect.Visibility.ANY); mapper.setVisibility(PropertyAccessor.ALL, JsonAutoDetect.Visibility.ANY);
// 记录序列化之后的数据类型方便反序列化
mapper.activateDefaultTyping(LaissezFaireSubTypeValidator.instance, ObjectMapper.DefaultTyping.NON_FINAL);
// mapper.activateDefaultTyping(LaissezFaireSubTypeValidator.instance, ObjectMapper.DefaultTyping.EVERYTHING);
// 关闭默认的日期格式化方式默认UTC日期格式 yyyy-MM-ddTHH:mm:ss.SSS // 关闭默认的日期格式化方式默认UTC日期格式 yyyy-MM-ddTHH:mm:ss.SSS
mapper.disable(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS); mapper.disable(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS);
mapper.registerModule(timeModule); mapper.registerModule(timeModule);

View File

@ -9,7 +9,7 @@ import cn.bunny.services.context.BaseContext;
import cn.bunny.services.mapper.system.PowerMapper; import cn.bunny.services.mapper.system.PowerMapper;
import cn.bunny.services.mapper.system.RoleMapper; import cn.bunny.services.mapper.system.RoleMapper;
import cn.bunny.services.utils.JwtHelper; import cn.bunny.services.utils.JwtHelper;
import cn.bunny.services.utils.RoleUtil; import cn.bunny.services.utils.system.RoleUtil;
import com.alibaba.fastjson2.JSON; import com.alibaba.fastjson2.JSON;
import jakarta.servlet.http.HttpServletRequest; import jakarta.servlet.http.HttpServletRequest;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;

View File

@ -13,7 +13,7 @@ import cn.bunny.services.context.BaseContext;
import cn.bunny.services.exception.AuthCustomerException; import cn.bunny.services.exception.AuthCustomerException;
import cn.bunny.services.mapper.message.MessageReceivedMapper; import cn.bunny.services.mapper.message.MessageReceivedMapper;
import cn.bunny.services.service.message.MessageReceivedService; import cn.bunny.services.service.message.MessageReceivedService;
import cn.bunny.services.utils.UserUtil; import cn.bunny.services.utils.system.UserUtil;
import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;

View File

@ -19,7 +19,7 @@ import cn.bunny.services.mapper.message.MessageReceivedMapper;
import cn.bunny.services.mapper.system.UserMapper; import cn.bunny.services.mapper.system.UserMapper;
import cn.bunny.services.service.message.MessageReceivedService; import cn.bunny.services.service.message.MessageReceivedService;
import cn.bunny.services.service.message.MessageService; import cn.bunny.services.service.message.MessageService;
import cn.bunny.services.utils.UserUtil; import cn.bunny.services.utils.system.UserUtil;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.core.toolkit.Wrappers;

View File

@ -14,9 +14,9 @@ import cn.bunny.services.context.BaseContext;
import cn.bunny.services.exception.AuthCustomerException; import cn.bunny.services.exception.AuthCustomerException;
import cn.bunny.services.mapper.system.FilesMapper; import cn.bunny.services.mapper.system.FilesMapper;
import cn.bunny.services.service.system.FilesService; import cn.bunny.services.service.system.FilesService;
import cn.bunny.services.utils.FileUtil;
import cn.bunny.services.utils.minio.MinioProperties; import cn.bunny.services.utils.minio.MinioProperties;
import cn.bunny.services.utils.minio.MinioUtil; import cn.bunny.services.utils.minio.MinioUtil;
import cn.bunny.services.utils.system.FileUtil;
import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;

View File

@ -8,7 +8,7 @@ import cn.bunny.services.mapper.system.RolePowerMapper;
import cn.bunny.services.mapper.system.UserMapper; import cn.bunny.services.mapper.system.UserMapper;
import cn.bunny.services.mapper.system.UserRoleMapper; import cn.bunny.services.mapper.system.UserRoleMapper;
import cn.bunny.services.service.system.RolePowerService; import cn.bunny.services.service.system.RolePowerService;
import cn.bunny.services.utils.RoleUtil; import cn.bunny.services.utils.system.RoleUtil;
import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;

View File

@ -14,7 +14,7 @@ import cn.bunny.services.mapper.system.RolePowerMapper;
import cn.bunny.services.mapper.system.RouterRoleMapper; import cn.bunny.services.mapper.system.RouterRoleMapper;
import cn.bunny.services.mapper.system.UserRoleMapper; import cn.bunny.services.mapper.system.UserRoleMapper;
import cn.bunny.services.service.system.RoleService; import cn.bunny.services.service.system.RoleService;
import cn.bunny.services.utils.RoleUtil; import cn.bunny.services.utils.system.RoleUtil;
import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;

View File

@ -20,8 +20,8 @@ import cn.bunny.services.mapper.system.RolePowerMapper;
import cn.bunny.services.mapper.system.RouterMapper; import cn.bunny.services.mapper.system.RouterMapper;
import cn.bunny.services.mapper.system.RouterRoleMapper; import cn.bunny.services.mapper.system.RouterRoleMapper;
import cn.bunny.services.service.system.RouterService; import cn.bunny.services.service.system.RouterService;
import cn.bunny.services.utils.RoleUtil; import cn.bunny.services.utils.system.RoleUtil;
import cn.bunny.services.utils.RouterServiceUtil; import cn.bunny.services.utils.system.RouterServiceUtil;
import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;

View File

@ -11,7 +11,7 @@ import cn.bunny.services.exception.AuthCustomerException;
import cn.bunny.services.mapper.system.UserMapper; import cn.bunny.services.mapper.system.UserMapper;
import cn.bunny.services.mapper.system.UserRoleMapper; import cn.bunny.services.mapper.system.UserRoleMapper;
import cn.bunny.services.service.system.UserRoleService; import cn.bunny.services.service.system.UserRoleService;
import cn.bunny.services.utils.UserUtil; import cn.bunny.services.utils.system.UserUtil;
import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;

View File

@ -26,13 +26,13 @@ import cn.bunny.services.mapper.system.UserRoleMapper;
import cn.bunny.services.service.system.FilesService; import cn.bunny.services.service.system.FilesService;
import cn.bunny.services.service.system.UserService; import cn.bunny.services.service.system.UserService;
import cn.bunny.services.utils.JwtHelper; import cn.bunny.services.utils.JwtHelper;
import cn.bunny.services.utils.UserUtil;
import cn.bunny.services.utils.email.ConcreteSenderEmailTemplate; import cn.bunny.services.utils.email.ConcreteSenderEmailTemplate;
import cn.bunny.services.utils.ip.IpUtil; import cn.bunny.services.utils.ip.IpUtil;
import cn.bunny.services.utils.login.DefaultLoginStrategy; import cn.bunny.services.utils.login.DefaultLoginStrategy;
import cn.bunny.services.utils.login.EmailLoginStrategy; import cn.bunny.services.utils.login.EmailLoginStrategy;
import cn.bunny.services.utils.login.LoginContext; import cn.bunny.services.utils.login.LoginContext;
import cn.bunny.services.utils.login.LoginStrategy; import cn.bunny.services.utils.login.LoginStrategy;
import cn.bunny.services.utils.system.UserUtil;
import cn.hutool.captcha.CaptchaUtil; import cn.hutool.captcha.CaptchaUtil;
import cn.hutool.captcha.CircleCaptcha; import cn.hutool.captcha.CircleCaptcha;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;

View File

@ -83,6 +83,7 @@ public class JwtHelper {
* @return token * @return token
*/ */
public static String createTokenWithMap(Map<String, Object> map, String tokenSignKey) { public static String createTokenWithMap(Map<String, Object> map, String tokenSignKey) {
return Jwts.builder() return Jwts.builder()
.subject(subject) .subject(subject)
.expiration(time) .expiration(time)
@ -239,18 +240,8 @@ public class JwtHelper {
} }
} }
/**
* 根据token获取主题
*
* @param token token
* @return 主题
*/
public static String getSubjectByToken(String token) {
return getSubjectByTokenHandler(token, tokenSignKey);
}
@Nullable @Nullable
private static String getSubjectByTokenHandler(String token, String tokenSignKey) { private static String getSubjectByTokenHandler(String token) {
try { try {
if (!StringUtils.hasText(token)) throw new AuthCustomerException(ResultCodeEnum.TOKEN_PARSING_FAILED); if (!StringUtils.hasText(token)) throw new AuthCustomerException(ResultCodeEnum.TOKEN_PARSING_FAILED);
Jws<Claims> claimsJws = Jwts.parser().verifyWith(key).build().parseSignedClaims(token); Jws<Claims> claimsJws = Jwts.parser().verifyWith(key).build().parseSignedClaims(token);
@ -269,8 +260,8 @@ public class JwtHelper {
* @param token token * @param token token
* @return 主题 * @return 主题
*/ */
public static String getSubjectByToken(String token, String tokenSignKey) { public static String getSubjectByToken(String token) {
return getSubjectByTokenHandler(token, tokenSignKey); return getSubjectByTokenHandler(token);
} }
/** /**
@ -317,27 +308,16 @@ public class JwtHelper {
* @return 是否过期 * @return 是否过期
*/ */
public static boolean isExpired(String token) { public static boolean isExpired(String token) {
return isExpiredUtil(token, tokenSignKey); return isExpiredUtil(token);
}
/**
* 判断token是否过期
*
* @param token token
* @return 是否过期
*/
public static boolean isExpired(String token, String tokenSignKey) {
return isExpiredUtil(token, tokenSignKey);
} }
/** /**
* 判断是否过期 * 判断是否过期
* *
* @param token token * @param token token
* @param tokenSignKey key值
* @return 是否过期 * @return 是否过期
*/ */
private static boolean isExpiredUtil(String token, String tokenSignKey) { private static boolean isExpiredUtil(String token) {
try { try {
Jws<Claims> claimsJws = Jwts.parser().verifyWith(key).build().parseSignedClaims(token); Jws<Claims> claimsJws = Jwts.parser().verifyWith(key).build().parseSignedClaims(token);
Date expiration = claimsJws.getPayload().getExpiration(); Date expiration = claimsJws.getPayload().getExpiration();

View File

@ -12,14 +12,11 @@ import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import jakarta.mail.MessagingException; import jakarta.mail.MessagingException;
import org.springframework.beans.BeanUtils; import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import java.util.HashMap; import java.util.HashMap;
import java.util.List; import java.util.List;
@Component
public abstract class AbstractSenderEmailTemplate { public abstract class AbstractSenderEmailTemplate {
@Autowired @Autowired
private EmailUsersMapper emailUsersMapper; private EmailUsersMapper emailUsersMapper;
@ -38,7 +35,10 @@ public abstract class AbstractSenderEmailTemplate {
Long emailUser = emailTemplate.getEmailUser(); Long emailUser = emailTemplate.getEmailUser();
EmailUsers emailUsers; EmailUsers emailUsers;
if (emailUser == null) { if (emailUser == null) {
// 如果用户不存在就是用默认用户进行邮件发送
emailUsers = emailUsersMapper.selectOne(Wrappers.<EmailUsers>lambdaQuery().eq(EmailUsers::getIsDefault, true)); emailUsers = emailUsersMapper.selectOne(Wrappers.<EmailUsers>lambdaQuery().eq(EmailUsers::getIsDefault, true));
// 默认发送用户也不存在
if (emailUsers == null) throw new AuthCustomerException(ResultCodeEnum.EMAIL_USER_IS_EMPTY); if (emailUsers == null) throw new AuthCustomerException(ResultCodeEnum.EMAIL_USER_IS_EMPTY);
} else { } else {
emailUsers = emailUsersMapper.selectOne(Wrappers.<EmailUsers>lambdaQuery().eq(EmailUsers::getId, emailUser)); emailUsers = emailUsersMapper.selectOne(Wrappers.<EmailUsers>lambdaQuery().eq(EmailUsers::getId, emailUser));

View File

@ -3,15 +3,17 @@ package cn.bunny.services.utils.email;
import cn.bunny.dao.entity.system.EmailTemplate; import cn.bunny.dao.entity.system.EmailTemplate;
import cn.bunny.services.mapper.configuration.EmailTemplateMapper; import cn.bunny.services.mapper.configuration.EmailTemplateMapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
import java.util.HashMap; import java.util.HashMap;
@Component @Component
public class ConcreteSenderEmailTemplate extends AbstractSenderEmailTemplate { public class ConcreteSenderEmailTemplate extends AbstractSenderEmailTemplate {
@Autowired private final EmailTemplateMapper emailTemplateMapper;
private EmailTemplateMapper emailTemplateMapper;
public ConcreteSenderEmailTemplate(EmailTemplateMapper emailTemplateMapper) {
this.emailTemplateMapper = emailTemplateMapper;
}
/** /**
* 发送邮件模板 * 发送邮件模板

View File

@ -14,6 +14,9 @@ import java.net.InetAddress;
import java.util.regex.Matcher; import java.util.regex.Matcher;
import java.util.regex.Pattern; import java.util.regex.Pattern;
/**
* 用户请求的IP地址转成归属地
*/
@Slf4j @Slf4j
public class IpUtil { public class IpUtil {

View File

@ -12,6 +12,9 @@ import org.springframework.web.multipart.MultipartFile;
import java.util.Objects; import java.util.Objects;
import java.util.Properties; import java.util.Properties;
/**
* 邮件发送工具
*/
public class MailSenderUtil { public class MailSenderUtil {
private MailSenderUtil() { private MailSenderUtil() {
// 私有化构造器 // 私有化构造器

View File

@ -1,5 +1,6 @@
Configuration example Configuration example
# 在配置文件中的参考
mail: mail:
host: smtp.qq.com # 邮箱地址 host: smtp.qq.com # 邮箱地址
port: 465 # 邮箱端口号 port: 465 # 邮箱端口号

View File

@ -2,7 +2,6 @@ package cn.bunny.services.utils.minio;
import io.minio.MinioClient; import io.minio.MinioClient;
import lombok.Data; import lombok.Data;
import lombok.extern.slf4j.Slf4j;
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
import org.springframework.boot.context.properties.ConfigurationProperties; import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Bean;
@ -12,16 +11,15 @@ import org.springframework.context.annotation.Configuration;
@ConfigurationProperties(prefix = "bunny.minio") @ConfigurationProperties(prefix = "bunny.minio")
@ConditionalOnProperty(name = "bunny.minio.bucket-name")// 当属性有值时这个配置才生效 @ConditionalOnProperty(name = "bunny.minio.bucket-name")// 当属性有值时这个配置才生效
@Data @Data
@Slf4j
public class MinioProperties { public class MinioProperties {
// 地址 /* 地址 */
private String endpointUrl; private String endpointUrl;
// 访问秘钥 /* 访问秘钥 */
private String accessKey; private String accessKey;
// 私有秘钥 /* 私有秘钥 */
private String secretKey; private String secretKey;
// 桶名称 /* 桶名称 */
private String bucketName; private String bucketName;
@Bean @Bean

View File

@ -8,7 +8,6 @@ import io.minio.*;
import io.minio.messages.DeleteError; import io.minio.messages.DeleteError;
import io.minio.messages.DeleteObject; import io.minio.messages.DeleteObject;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
import org.springframework.util.StringUtils; import org.springframework.util.StringUtils;
import org.springframework.web.multipart.MultipartFile; import org.springframework.web.multipart.MultipartFile;
@ -22,16 +21,19 @@ import java.util.UUID;
/** /**
* Minio操作工具类 简化操作步骤 * Minio操作工具类 简化操作步骤
* ByBunny0212 * 自定义封装
*/ */
@Component @Component
@Slf4j @Slf4j
public class MinioUtil { public class MinioUtil {
@Autowired private final MinioProperties properties;
private MinioProperties properties;
@Autowired private final MinioClient minioClient;
private MinioClient minioClient;
public MinioUtil(MinioProperties properties, MinioClient minioClient) {
this.properties = properties;
this.minioClient = minioClient;
}
/** /**
* 获取Minio文件路径 * 获取Minio文件路径

View File

@ -1,11 +1,16 @@
package cn.bunny.services.utils; package cn.bunny.services.utils.system;
import org.springframework.stereotype.Component;
@Component /*
* 文件工具类
* 格式化字节大小
*/
public class FileUtil { public class FileUtil {
/** /**
* * 获取文件大小字符串 * 获取文件大小字符串
*
* @param fileSize 文件大小
* @return 格式化后文件大小
*/ */
public static String getSize(Long fileSize) { public static String getSize(Long fileSize) {
double fileSizeInKB = fileSize / 1024.00; double fileSizeInKB = fileSize / 1024.00;

View File

@ -1,4 +1,4 @@
package cn.bunny.services.utils; package cn.bunny.services.utils.system;
import cn.bunny.dao.constant.RedisUserConstant; import cn.bunny.dao.constant.RedisUserConstant;
import cn.bunny.dao.entity.system.AdminUser; import cn.bunny.dao.entity.system.AdminUser;

View File

@ -1,4 +1,4 @@
package cn.bunny.services.utils; package cn.bunny.services.utils.system;
import cn.bunny.dao.vo.system.router.UserRouterVo; import cn.bunny.dao.vo.system.router.UserRouterVo;
import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.NotNull;

View File

@ -1,4 +1,4 @@
package cn.bunny.services.utils; package cn.bunny.services.utils.system;
import cn.bunny.dao.constant.LocalDateTimeConstant; import cn.bunny.dao.constant.LocalDateTimeConstant;
import cn.bunny.dao.constant.RedisUserConstant; import cn.bunny.dao.constant.RedisUserConstant;
@ -13,11 +13,12 @@ import cn.bunny.services.mapper.log.UserLoginLogMapper;
import cn.bunny.services.mapper.system.PowerMapper; import cn.bunny.services.mapper.system.PowerMapper;
import cn.bunny.services.mapper.system.RoleMapper; import cn.bunny.services.mapper.system.RoleMapper;
import cn.bunny.services.mapper.system.UserMapper; import cn.bunny.services.mapper.system.UserMapper;
import cn.bunny.services.utils.JwtHelper;
import cn.bunny.services.utils.ip.IpUtil; import cn.bunny.services.utils.ip.IpUtil;
import cn.bunny.services.utils.minio.MinioUtil; import cn.bunny.services.utils.minio.MinioUtil;
import jakarta.servlet.http.HttpServletRequest; import jakarta.servlet.http.HttpServletRequest;
import lombok.RequiredArgsConstructor;
import org.springframework.beans.BeanUtils; import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.redis.core.RedisTemplate; import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
@ -33,25 +34,24 @@ import java.util.concurrent.TimeUnit;
import java.util.regex.Matcher; import java.util.regex.Matcher;
import java.util.regex.Pattern; import java.util.regex.Pattern;
@RequiredArgsConstructor
@Component @Component
public class UserUtil { public class UserUtil {
@Autowired private final MinioUtil minioUtil;
private PowerMapper powerMapper; private final PowerMapper powerMapper;
private final RoleMapper roleMapper;
private final UserMapper userMapper;
private final UserLoginLogMapper userLoginLogMapper;
private final RedisTemplate<String, Object> redisTemplate;
@Autowired // public UserUtil(MinioUtil minioUtil, PowerMapper powerMapper, RoleMapper roleMapper, UserMapper userMapper, UserLoginLogMapper userLoginLogMapper, RedisTemplate<String, Object> redisTemplate) {
private RoleMapper roleMapper; // this.minioUtil = minioUtil;
// this.powerMapper = powerMapper;
@Autowired // this.roleMapper = roleMapper;
private UserMapper userMapper; // this.userMapper = userMapper;
// this.userLoginLogMapper = userLoginLogMapper;
@Autowired // this.redisTemplate = redisTemplate;
private UserLoginLogMapper userLoginLogMapper; // }
@Autowired
private RedisTemplate<String, Object> redisTemplate;
@Autowired
private MinioUtil minioUtil;
/** /**
* 构建登录用户返回对象 * 构建登录用户返回对象

View File

@ -6,7 +6,7 @@ import cn.bunny.dao.entity.system.AdminUser;
import cn.bunny.dao.vo.result.Result; import cn.bunny.dao.vo.result.Result;
import cn.bunny.dao.vo.system.user.LoginVo; import cn.bunny.dao.vo.system.user.LoginVo;
import cn.bunny.services.mapper.system.UserMapper; import cn.bunny.services.mapper.system.UserMapper;
import cn.bunny.services.utils.UserUtil; import cn.bunny.services.utils.system.UserUtil;
import com.alibaba.fastjson2.JSON; import com.alibaba.fastjson2.JSON;
import com.alibaba.fastjson2.TypeReference; import com.alibaba.fastjson2.TypeReference;
import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.core.toolkit.Wrappers;

View File

@ -1,19 +0,0 @@
package cn.bunny.services.service.impl;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.security.crypto.password.PasswordEncoder;
@SpringBootTest
class UserServiceImplTest {
@Autowired
private PasswordEncoder passwordEncoder;
@Test
void updateUserPasswordByAdmin() {
String encode = passwordEncoder.encode("123456");
System.out.println(encode);
}
}

View File

@ -6,6 +6,7 @@ import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import org.junit.jupiter.api.Test; import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest; import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.security.crypto.password.PasswordEncoder;
import java.util.HashMap; import java.util.HashMap;
@ -14,9 +15,18 @@ class ConcreteSenderEmailTemplateTest extends AbstractSenderEmailTemplate {
@Autowired @Autowired
private EmailTemplateMapper emailTemplateMapper; private EmailTemplateMapper emailTemplateMapper;
@Autowired
private PasswordEncoder passwordEncoder;
@Test @Test
void sendEmailTemplate() { void sendEmailTemplate() {
EmailTemplate emailTemplate = emailTemplateMapper.selectOne(Wrappers.<EmailTemplate>lambdaQuery().eq(EmailTemplate::getId, 1791870020197625858L)); EmailTemplate emailTemplate = emailTemplateMapper.selectOne(Wrappers.<EmailTemplate>lambdaQuery().eq(EmailTemplate::getId, 1791870020197625858L));
sendEmail("1319900154@qq.com", emailTemplate, new HashMap<>()); sendEmail("xaher94124@birige.com", emailTemplate, new HashMap<>());
}
@Test
void updateUserPasswordByAdmin() {
String encode = passwordEncoder.encode("123456");
System.out.println(encode);
} }
} }