refactor: 重构util目录
This commit is contained in:
parent
f299cb811b
commit
b80208446e
|
@ -4,7 +4,6 @@ import com.fasterxml.jackson.annotation.JsonAutoDetect;
|
|||
import com.fasterxml.jackson.annotation.PropertyAccessor;
|
||||
import com.fasterxml.jackson.databind.ObjectMapper;
|
||||
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.deser.LocalDateDeserializer;
|
||||
import com.fasterxml.jackson.datatype.jsr310.deser.LocalDateTimeDeserializer;
|
||||
|
@ -128,10 +127,6 @@ public class RedisConfiguration {
|
|||
// 设置ObjectMapper访问权限
|
||||
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-dd’T’HH:mm:ss.SSS
|
||||
mapper.disable(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS);
|
||||
mapper.registerModule(timeModule);
|
||||
|
|
|
@ -9,7 +9,7 @@ import cn.bunny.services.context.BaseContext;
|
|||
import cn.bunny.services.mapper.system.PowerMapper;
|
||||
import cn.bunny.services.mapper.system.RoleMapper;
|
||||
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 jakarta.servlet.http.HttpServletRequest;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
|
|
|
@ -13,7 +13,7 @@ import cn.bunny.services.context.BaseContext;
|
|||
import cn.bunny.services.exception.AuthCustomerException;
|
||||
import cn.bunny.services.mapper.message.MessageReceivedMapper;
|
||||
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.toolkit.Wrappers;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
|
|
|
@ -19,7 +19,7 @@ import cn.bunny.services.mapper.message.MessageReceivedMapper;
|
|||
import cn.bunny.services.mapper.system.UserMapper;
|
||||
import cn.bunny.services.service.message.MessageReceivedService;
|
||||
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.metadata.IPage;
|
||||
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
||||
|
|
|
@ -14,9 +14,9 @@ import cn.bunny.services.context.BaseContext;
|
|||
import cn.bunny.services.exception.AuthCustomerException;
|
||||
import cn.bunny.services.mapper.system.FilesMapper;
|
||||
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.MinioUtil;
|
||||
import cn.bunny.services.utils.system.FileUtil;
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
|
|
|
@ -8,7 +8,7 @@ import cn.bunny.services.mapper.system.RolePowerMapper;
|
|||
import cn.bunny.services.mapper.system.UserMapper;
|
||||
import cn.bunny.services.mapper.system.UserRoleMapper;
|
||||
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.extension.service.impl.ServiceImpl;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
|
|
|
@ -14,7 +14,7 @@ import cn.bunny.services.mapper.system.RolePowerMapper;
|
|||
import cn.bunny.services.mapper.system.RouterRoleMapper;
|
||||
import cn.bunny.services.mapper.system.UserRoleMapper;
|
||||
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.toolkit.Wrappers;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
|
|
|
@ -20,8 +20,8 @@ import cn.bunny.services.mapper.system.RolePowerMapper;
|
|||
import cn.bunny.services.mapper.system.RouterMapper;
|
||||
import cn.bunny.services.mapper.system.RouterRoleMapper;
|
||||
import cn.bunny.services.service.system.RouterService;
|
||||
import cn.bunny.services.utils.RoleUtil;
|
||||
import cn.bunny.services.utils.RouterServiceUtil;
|
||||
import cn.bunny.services.utils.system.RoleUtil;
|
||||
import cn.bunny.services.utils.system.RouterServiceUtil;
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
|
|
|
@ -11,7 +11,7 @@ import cn.bunny.services.exception.AuthCustomerException;
|
|||
import cn.bunny.services.mapper.system.UserMapper;
|
||||
import cn.bunny.services.mapper.system.UserRoleMapper;
|
||||
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.extension.service.impl.ServiceImpl;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
|
|
|
@ -26,13 +26,13 @@ import cn.bunny.services.mapper.system.UserRoleMapper;
|
|||
import cn.bunny.services.service.system.FilesService;
|
||||
import cn.bunny.services.service.system.UserService;
|
||||
import cn.bunny.services.utils.JwtHelper;
|
||||
import cn.bunny.services.utils.UserUtil;
|
||||
import cn.bunny.services.utils.email.ConcreteSenderEmailTemplate;
|
||||
import cn.bunny.services.utils.ip.IpUtil;
|
||||
import cn.bunny.services.utils.login.DefaultLoginStrategy;
|
||||
import cn.bunny.services.utils.login.EmailLoginStrategy;
|
||||
import cn.bunny.services.utils.login.LoginContext;
|
||||
import cn.bunny.services.utils.login.LoginStrategy;
|
||||
import cn.bunny.services.utils.system.UserUtil;
|
||||
import cn.hutool.captcha.CaptchaUtil;
|
||||
import cn.hutool.captcha.CircleCaptcha;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
|
|
|
@ -83,6 +83,7 @@ public class JwtHelper {
|
|||
* @return token
|
||||
*/
|
||||
public static String createTokenWithMap(Map<String, Object> map, String tokenSignKey) {
|
||||
|
||||
return Jwts.builder()
|
||||
.subject(subject)
|
||||
.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
|
||||
private static String getSubjectByTokenHandler(String token, String tokenSignKey) {
|
||||
private static String getSubjectByTokenHandler(String token) {
|
||||
try {
|
||||
if (!StringUtils.hasText(token)) throw new AuthCustomerException(ResultCodeEnum.TOKEN_PARSING_FAILED);
|
||||
Jws<Claims> claimsJws = Jwts.parser().verifyWith(key).build().parseSignedClaims(token);
|
||||
|
@ -269,8 +260,8 @@ public class JwtHelper {
|
|||
* @param token token
|
||||
* @return 主题
|
||||
*/
|
||||
public static String getSubjectByToken(String token, String tokenSignKey) {
|
||||
return getSubjectByTokenHandler(token, tokenSignKey);
|
||||
public static String getSubjectByToken(String token) {
|
||||
return getSubjectByTokenHandler(token);
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -317,27 +308,16 @@ public class JwtHelper {
|
|||
* @return 是否过期
|
||||
*/
|
||||
public static boolean isExpired(String token) {
|
||||
return isExpiredUtil(token, tokenSignKey);
|
||||
}
|
||||
|
||||
/**
|
||||
* 判断token是否过期
|
||||
*
|
||||
* @param token token
|
||||
* @return 是否过期
|
||||
*/
|
||||
public static boolean isExpired(String token, String tokenSignKey) {
|
||||
return isExpiredUtil(token, tokenSignKey);
|
||||
return isExpiredUtil(token);
|
||||
}
|
||||
|
||||
/**
|
||||
* 判断是否过期
|
||||
*
|
||||
* @param token token
|
||||
* @param tokenSignKey key值
|
||||
* @param token token
|
||||
* @return 是否过期
|
||||
*/
|
||||
private static boolean isExpiredUtil(String token, String tokenSignKey) {
|
||||
private static boolean isExpiredUtil(String token) {
|
||||
try {
|
||||
Jws<Claims> claimsJws = Jwts.parser().verifyWith(key).build().parseSignedClaims(token);
|
||||
Date expiration = claimsJws.getPayload().getExpiration();
|
||||
|
|
|
@ -12,14 +12,11 @@ import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
|||
import jakarta.mail.MessagingException;
|
||||
import org.springframework.beans.BeanUtils;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
|
||||
@Component
|
||||
public abstract class AbstractSenderEmailTemplate {
|
||||
|
||||
@Autowired
|
||||
private EmailUsersMapper emailUsersMapper;
|
||||
|
||||
|
@ -38,7 +35,10 @@ public abstract class AbstractSenderEmailTemplate {
|
|||
Long emailUser = emailTemplate.getEmailUser();
|
||||
EmailUsers emailUsers;
|
||||
if (emailUser == null) {
|
||||
// 如果用户不存在就是用默认用户进行邮件发送
|
||||
emailUsers = emailUsersMapper.selectOne(Wrappers.<EmailUsers>lambdaQuery().eq(EmailUsers::getIsDefault, true));
|
||||
|
||||
// 默认发送用户也不存在
|
||||
if (emailUsers == null) throw new AuthCustomerException(ResultCodeEnum.EMAIL_USER_IS_EMPTY);
|
||||
} else {
|
||||
emailUsers = emailUsersMapper.selectOne(Wrappers.<EmailUsers>lambdaQuery().eq(EmailUsers::getId, emailUser));
|
||||
|
|
|
@ -3,15 +3,17 @@ package cn.bunny.services.utils.email;
|
|||
import cn.bunny.dao.entity.system.EmailTemplate;
|
||||
import cn.bunny.services.mapper.configuration.EmailTemplateMapper;
|
||||
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
import java.util.HashMap;
|
||||
|
||||
@Component
|
||||
public class ConcreteSenderEmailTemplate extends AbstractSenderEmailTemplate {
|
||||
@Autowired
|
||||
private EmailTemplateMapper emailTemplateMapper;
|
||||
private final EmailTemplateMapper emailTemplateMapper;
|
||||
|
||||
public ConcreteSenderEmailTemplate(EmailTemplateMapper emailTemplateMapper) {
|
||||
this.emailTemplateMapper = emailTemplateMapper;
|
||||
}
|
||||
|
||||
/**
|
||||
* 发送邮件模板
|
||||
|
|
|
@ -14,6 +14,9 @@ import java.net.InetAddress;
|
|||
import java.util.regex.Matcher;
|
||||
import java.util.regex.Pattern;
|
||||
|
||||
/**
|
||||
* 用户请求的IP地址转成归属地
|
||||
*/
|
||||
@Slf4j
|
||||
public class IpUtil {
|
||||
|
||||
|
|
|
@ -12,6 +12,9 @@ import org.springframework.web.multipart.MultipartFile;
|
|||
import java.util.Objects;
|
||||
import java.util.Properties;
|
||||
|
||||
/**
|
||||
* 邮件发送工具
|
||||
*/
|
||||
public class MailSenderUtil {
|
||||
private MailSenderUtil() {
|
||||
// 私有化构造器
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
Configuration example
|
||||
|
||||
# 在配置文件中的参考
|
||||
mail:
|
||||
host: smtp.qq.com # 邮箱地址
|
||||
port: 465 # 邮箱端口号
|
||||
|
|
|
@ -2,7 +2,6 @@ package cn.bunny.services.utils.minio;
|
|||
|
||||
import io.minio.MinioClient;
|
||||
import lombok.Data;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
|
||||
import org.springframework.boot.context.properties.ConfigurationProperties;
|
||||
import org.springframework.context.annotation.Bean;
|
||||
|
@ -12,16 +11,15 @@ import org.springframework.context.annotation.Configuration;
|
|||
@ConfigurationProperties(prefix = "bunny.minio")
|
||||
@ConditionalOnProperty(name = "bunny.minio.bucket-name")// 当属性有值时这个配置才生效
|
||||
@Data
|
||||
@Slf4j
|
||||
public class MinioProperties {
|
||||
|
||||
// 地址
|
||||
/* 地址 */
|
||||
private String endpointUrl;
|
||||
// 访问秘钥
|
||||
/* 访问秘钥 */
|
||||
private String accessKey;
|
||||
// 私有秘钥
|
||||
/* 私有秘钥 */
|
||||
private String secretKey;
|
||||
// 桶名称
|
||||
/* 桶名称 */
|
||||
private String bucketName;
|
||||
|
||||
@Bean
|
||||
|
|
|
@ -8,7 +8,6 @@ import io.minio.*;
|
|||
import io.minio.messages.DeleteError;
|
||||
import io.minio.messages.DeleteObject;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Component;
|
||||
import org.springframework.util.StringUtils;
|
||||
import org.springframework.web.multipart.MultipartFile;
|
||||
|
@ -22,16 +21,19 @@ import java.util.UUID;
|
|||
|
||||
/**
|
||||
* Minio操作工具类 简化操作步骤
|
||||
* By:Bunny0212
|
||||
* 自定义封装
|
||||
*/
|
||||
@Component
|
||||
@Slf4j
|
||||
public class MinioUtil {
|
||||
@Autowired
|
||||
private MinioProperties properties;
|
||||
private final MinioProperties properties;
|
||||
|
||||
@Autowired
|
||||
private MinioClient minioClient;
|
||||
private final MinioClient minioClient;
|
||||
|
||||
public MinioUtil(MinioProperties properties, MinioClient minioClient) {
|
||||
this.properties = properties;
|
||||
this.minioClient = minioClient;
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取Minio文件路径
|
||||
|
|
|
@ -1,11 +1,16 @@
|
|||
package cn.bunny.services.utils;
|
||||
package cn.bunny.services.utils.system;
|
||||
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
@Component
|
||||
/*
|
||||
* 文件工具类
|
||||
* 格式化字节大小
|
||||
*/
|
||||
public class FileUtil {
|
||||
/**
|
||||
* * 获取文件大小字符串
|
||||
* 获取文件大小字符串
|
||||
*
|
||||
* @param fileSize 文件大小
|
||||
* @return 格式化后文件大小
|
||||
*/
|
||||
public static String getSize(Long fileSize) {
|
||||
double fileSizeInKB = fileSize / 1024.00;
|
|
@ -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.entity.system.AdminUser;
|
|
@ -1,4 +1,4 @@
|
|||
package cn.bunny.services.utils;
|
||||
package cn.bunny.services.utils.system;
|
||||
|
||||
import cn.bunny.dao.vo.system.router.UserRouterVo;
|
||||
import org.jetbrains.annotations.NotNull;
|
|
@ -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.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.RoleMapper;
|
||||
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.minio.MinioUtil;
|
||||
import jakarta.servlet.http.HttpServletRequest;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.springframework.beans.BeanUtils;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.data.redis.core.RedisTemplate;
|
||||
import org.springframework.stereotype.Component;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
@ -33,25 +34,24 @@ import java.util.concurrent.TimeUnit;
|
|||
import java.util.regex.Matcher;
|
||||
import java.util.regex.Pattern;
|
||||
|
||||
@RequiredArgsConstructor
|
||||
@Component
|
||||
public class UserUtil {
|
||||
@Autowired
|
||||
private PowerMapper powerMapper;
|
||||
private final MinioUtil minioUtil;
|
||||
private final PowerMapper powerMapper;
|
||||
private final RoleMapper roleMapper;
|
||||
private final UserMapper userMapper;
|
||||
private final UserLoginLogMapper userLoginLogMapper;
|
||||
private final RedisTemplate<String, Object> redisTemplate;
|
||||
|
||||
@Autowired
|
||||
private RoleMapper roleMapper;
|
||||
|
||||
@Autowired
|
||||
private UserMapper userMapper;
|
||||
|
||||
@Autowired
|
||||
private UserLoginLogMapper userLoginLogMapper;
|
||||
|
||||
@Autowired
|
||||
private RedisTemplate<String, Object> redisTemplate;
|
||||
|
||||
@Autowired
|
||||
private MinioUtil minioUtil;
|
||||
// public UserUtil(MinioUtil minioUtil, PowerMapper powerMapper, RoleMapper roleMapper, UserMapper userMapper, UserLoginLogMapper userLoginLogMapper, RedisTemplate<String, Object> redisTemplate) {
|
||||
// this.minioUtil = minioUtil;
|
||||
// this.powerMapper = powerMapper;
|
||||
// this.roleMapper = roleMapper;
|
||||
// this.userMapper = userMapper;
|
||||
// this.userLoginLogMapper = userLoginLogMapper;
|
||||
// this.redisTemplate = redisTemplate;
|
||||
// }
|
||||
|
||||
/**
|
||||
* 构建登录用户返回对象
|
|
@ -6,7 +6,7 @@ import cn.bunny.dao.entity.system.AdminUser;
|
|||
import cn.bunny.dao.vo.result.Result;
|
||||
import cn.bunny.dao.vo.system.user.LoginVo;
|
||||
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.TypeReference;
|
||||
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
}
|
|
@ -6,6 +6,7 @@ import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
|||
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;
|
||||
|
||||
import java.util.HashMap;
|
||||
|
||||
|
@ -14,9 +15,18 @@ class ConcreteSenderEmailTemplateTest extends AbstractSenderEmailTemplate {
|
|||
@Autowired
|
||||
private EmailTemplateMapper emailTemplateMapper;
|
||||
|
||||
@Autowired
|
||||
private PasswordEncoder passwordEncoder;
|
||||
|
||||
@Test
|
||||
void sendEmailTemplate() {
|
||||
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);
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue