重写用户快速登录逻辑

This commit is contained in:
YunaiV
2020-07-03 19:12:56 +08:00
parent ee7cf3e871
commit 3d6bd5e4ee
57 changed files with 1107 additions and 228 deletions

View File

@@ -0,0 +1,14 @@
package cn.iocoder.common.framework.util;
import cn.hutool.crypto.digest.BCrypt;
/**
* 加解密工具类
*/
public class DigestUtils {
public static String bcrypt(String key, String salt) {
return BCrypt.hashpw(key, salt);
}
}

View File

@@ -7,7 +7,7 @@ import org.apache.skywalking.apm.toolkit.trace.TraceContext;
import javax.servlet.ServletRequest;
import java.util.UUID;
public class MallUtil {
public class MallUtils {
public static Integer getUserId(ServletRequest request) {
return (Integer) request.getAttribute(MallConstants.REQUEST_ATTR_USER_ID_KEY);
@@ -46,7 +46,7 @@ public class MallUtil {
*/
public static String getTraceId() {
String traceId = TraceContext.traceId();
if (StringUtil.hasText(traceId)) {
if (StringUtils.hasText(traceId)) {
return traceId;
}
// TODO 芋艿 多次调用会问题

View File

@@ -85,7 +85,7 @@ public class ServiceExceptionUtil {
* @return 异常
*/
public static ServiceException exception(Integer code) {
return new ServiceException(code, messages.get(code));
return exception(code, messages.get(code));
}
/**
@@ -96,11 +96,10 @@ public class ServiceExceptionUtil {
* @return 异常
*/
public static ServiceException exception(Integer code, Object... params) {
String message = doFormat(code, messages.get(code), params);
return new ServiceException(code, message);
return exception0(code, messages.get(code), params);
}
public static ServiceException exception(Integer code, String messagePattern, Object... params) {
public static ServiceException exception0(Integer code, String messagePattern, Object... params) {
String message = doFormat(code, messagePattern, params);
return new ServiceException(code, message);
}

View File

@@ -1,29 +1,26 @@
package cn.iocoder.common.framework.util;
import org.springframework.util.StringUtils;
import cn.hutool.core.lang.UUID;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collection;
import java.util.List;
import java.util.*;
public class StringUtil {
public class StringUtils {
public static boolean hasText(String str) {
return StringUtils.hasText(str);
return org.springframework.util.StringUtils.hasText(str);
}
public static String join(Collection<?> coll, String delim) {
return StringUtils.collectionToDelimitedString(coll, delim);
return org.springframework.util.StringUtils.collectionToDelimitedString(coll, delim);
}
public static List<String> split(String toSplit, String delim) {
String[] stringArray = StringUtils.tokenizeToStringArray(toSplit, delim);
String[] stringArray = org.springframework.util.StringUtils.tokenizeToStringArray(toSplit, delim);
return Arrays.asList(stringArray);
}
public static List<Integer> splitToInt(String toSplit, String delim) {
String[] stringArray = StringUtils.tokenizeToStringArray(toSplit, delim);
String[] stringArray = org.springframework.util.StringUtils.tokenizeToStringArray(toSplit, delim);
List<Integer> array = new ArrayList<>(stringArray.length);
for (String string : stringArray) {
array.add(Integer.valueOf(string));
@@ -34,4 +31,9 @@ public class StringUtil {
public static String substring(String str, int start) {
return org.apache.commons.lang3.StringUtils.substring(str, start);
}
public static String uuid(boolean isSimple) {
return UUID.fastUUID().toString(isSimple);
}
}

View File

@@ -0,0 +1,28 @@
package cn.iocoder.common.framework.validator;
import javax.validation.Constraint;
import javax.validation.Payload;
import java.lang.annotation.*;
@Target({
ElementType.METHOD,
ElementType.FIELD,
ElementType.ANNOTATION_TYPE,
ElementType.CONSTRUCTOR,
ElementType.PARAMETER,
ElementType.TYPE_USE
})
@Retention(RetentionPolicy.RUNTIME)
@Documented
@Constraint(
validatedBy = InEnumValidator.class
)
public @interface Mobile {
String message() default "手机号格式不正确";
Class<?>[] groups() default {};
Class<? extends Payload>[] payload() default {};
}

View File

@@ -0,0 +1,19 @@
package cn.iocoder.common.framework.validator;
import cn.iocoder.common.framework.util.ValidationUtil;
import javax.validation.ConstraintValidator;
import javax.validation.ConstraintValidatorContext;
public class MobileValidator implements ConstraintValidator<Mobile, String> {
@Override
public void initialize(Mobile annotation) {
}
@Override
public boolean isValid(String value, ConstraintValidatorContext context) {
return ValidationUtil.isMobile(value);
}
}

View File

@@ -1,26 +1,36 @@
package cn.iocoder.common.framework.vo;
import cn.iocoder.common.framework.util.ServiceExceptionUtil;
import com.fasterxml.jackson.annotation.JsonIgnore;
import org.springframework.util.Assert;
import java.io.Serializable;
/**
* 通用返回
*
* @param <T> 数据泛型
*/
public final class CommonResult<T> implements Serializable {
private static Integer CODE_SUCCESS = 0;
private static final Integer CODE_SUCCESS = 0;
/**
* 错误码
*/
private Integer code;
/**
* 错误提示
*/
private String message;
/**
* 返回数据
*/
private T data;
/**
* 错误提示,用户可阅读
*/
private String message;
/**
* 错误明细,内部调试错误
*/
private String detailMessage;
/**
* 将传入的 result 对象,转换成另外一个泛型结果的对象
@@ -75,6 +85,15 @@ public final class CommonResult<T> implements Serializable {
this.data = data;
}
public String getDetailMessage() {
return detailMessage;
}
public CommonResult<T> setDetailMessage(String detailMessage) {
this.detailMessage = detailMessage;
return this;
}
@JsonIgnore
public boolean isSuccess() {
return CODE_SUCCESS.equals(code);
@@ -85,6 +104,16 @@ public final class CommonResult<T> implements Serializable {
return !isSuccess();
}
/**
* 判断是否有异常。如果有,则抛出 {@link cn.iocoder.common.framework.exception.ServiceException} 异常
*/
public void checkError() {
if (isSuccess()) {
return;
}
throw ServiceExceptionUtil.exception0(code, message);
}
@Override
public String toString() {
return "CommonResult{" +