483 字
2 分钟
用户中心项目(一些常见通用的代码)
项目
用户中心项目,记录一些以后可能会用到的新知识
Hutool工具库
<dependency>
<groupId>cn.hutool</groupId>
<artifactId>hutool-all</artifactId>
<version>5.8.16</version> <!-- 替换为最新版本 -->
</dependency>判断所有的字符串不为空
StrUtil.isAllNotEmpty(userAccount,userPassword,checkPassword)账号密码校验
//判断账户
// 4-20位字符
//允许字母、数字、下划线
//必须以字母开头
String usernameRegex = "^[a-zA-Z]\\w{3,19}$"; // 正则表达式
if(!ReUtil.isMatch(usernameRegex, userAccount)) {
return -1;
}
//校验密码
//8-16位字符
//必须包含大小写字母、数字、特殊符号(如 !@#$%^&*)
String passwordRegex = "^(?=.*[a-z])(?=.*[A-Z])(?=.*\\d)(?=.*[!@#$%^&*]).{8,16}$";
if (!ReUtil.isMatch(passwordRegex, userPassword)) {
return -1;
}密码加密,md5加密
String password = DigestUtil.md5Hex(userPassword);断言测试
import static org.junit.jupiter.api.Assertions.*;assertEquals(-1, userService.UserRegister("", "/521010Hao", "/521010Hao"));没有办法确定请求参数大小的时候尽量不要使用Get请求
逻辑删除配置
mybatis-plus:
mapper-locations: classpath:mapper/*.xml
global-config:
db-config:
update-strategy: not_null
logic-delete-field: deleted
logic-not-delete-value: 0
logic-delete-value: 1通用的ErrorCode枚举类
@Getter
public enum ErrorCode {
PARAMS_ERROR(400, "请求参数错误", ""),
PARAMS_NULL(401, "请求参数为空", ""),
NO_AUTH(402, "权限不足", ""),
NO_CURRENT_USER(403, "不存在当前用户", ""),
NO_REQUEST_OBJECT(404, "没有获取到request对象", "");
private final int code;
private final String message;
private final String description;
ErrorCode(int code, String message, String description) {
this.code = code;
this.message = message;
this.description = description;
}
}通用的ResultVo返回对象
@Data
public class ResultVo<T>{
int code;
T data;
String message;
public ResultVo(int code, T data, String message) {
this.code = code;
this.data = data;
this.message = message;
}
public static <T> ResultVo<T> success(T data) {
return new ResultVo<T>(200, data, "success");
}
public static <T> ResultVo<T> success() {
return new ResultVo<T>(200, null, "success");
}
public static <T> ResultVo<T> success(String message) {
return new ResultVo<T>(200, null, message);
}
public static <T> ResultVo<T> success(String message, T data) {
return new ResultVo<T>(200, data, message);
}
public static <T> ResultVo<T> fail(String message) {
return new ResultVo<T>(400, null, message);
}
public static <T> ResultVo<T> fail() {
return new ResultVo<T>(400, null, "fail");
}
public static <T> ResultVo<T> message(int code, String message, T data) {
return new ResultVo<T>(code, data, message);
}
public static <T> ResultVo<T> fail(int code, String message) {
return new ResultVo<T>(code, null, message);
}
public static <T> ResultVo<T> fail(ErrorCode errorCode) {
return new ResultVo<T>(errorCode.getCode(), null, errorCode.getMessage());
}
}创建登陆异常类
public class LoginException extends RuntimeException {
public LoginException(String message) {
super(message);
}
}异常全局处理
@RestControllerAdvice
public class GlobalExceptionHandler {
@ExceptionHandler(LoginException.class)
public ResultVo<?> exceptionHandler(LoginException e) {
return ResultVo.fail(ErrorCode.LOGIN_ERROR, e.getMessage());
}
} 用户中心项目(一些常见通用的代码)
https://thrinisty.github.io/Blog/posts/用户中心项目一些常见通用的代码/