diff --git a/src/main/java/io/github/talelin/latticy/LatticyApplication.java b/src/main/java/io/github/talelin/latticy/LatticyApplication.java index 4667027b..05f91192 100644 --- a/src/main/java/io/github/talelin/latticy/LatticyApplication.java +++ b/src/main/java/io/github/talelin/latticy/LatticyApplication.java @@ -8,6 +8,7 @@ /** * @author pedro@TaleLin + * 启动入口类 */ @RestController @MapperScan(basePackages = {"io.github.talelin.latticy.mapper"}) diff --git a/src/main/java/io/github/talelin/latticy/bo/GroupPermissionBO.java b/src/main/java/io/github/talelin/latticy/bo/GroupPermissionBO.java index 99254100..fbf49225 100644 --- a/src/main/java/io/github/talelin/latticy/bo/GroupPermissionBO.java +++ b/src/main/java/io/github/talelin/latticy/bo/GroupPermissionBO.java @@ -13,6 +13,7 @@ * @author pedro@TaleLin * @author Juzi@TaleLin * @author colorful@TaleLin + * 分组权限业务对象 */ @Data @NoArgsConstructor diff --git a/src/main/java/io/github/talelin/latticy/bo/LoginCaptchaBO.java b/src/main/java/io/github/talelin/latticy/bo/LoginCaptchaBO.java index f74b33a8..d8ec918e 100644 --- a/src/main/java/io/github/talelin/latticy/bo/LoginCaptchaBO.java +++ b/src/main/java/io/github/talelin/latticy/bo/LoginCaptchaBO.java @@ -7,6 +7,7 @@ /** * @author Gadfly * @since 2021-11-19 15:20 + * 登录验证码业务对象 */ @Data @NoArgsConstructor diff --git a/src/main/java/io/github/talelin/latticy/common/LocalUser.java b/src/main/java/io/github/talelin/latticy/common/LocalUser.java index eaebb1dd..5a1da2f9 100644 --- a/src/main/java/io/github/talelin/latticy/common/LocalUser.java +++ b/src/main/java/io/github/talelin/latticy/common/LocalUser.java @@ -3,13 +3,17 @@ import io.github.talelin.latticy.model.UserDO; /** - * 线程安全的当前登录用户,如果用户为登录,则得到 null + * 线程安全的当前登录用户,如果用户未登录,则得到 null * * @author pedro@TaleLin */ public class LocalUser { - private static ThreadLocal local = new ThreadLocal<>(); + private LocalUser() { + throw new IllegalStateException("Utility class"); + } + + private static final ThreadLocal LOCAL = new ThreadLocal<>(); /** * 得到当前登录用户 @@ -17,7 +21,7 @@ public class LocalUser { * @return user | null */ public static UserDO getLocalUser() { - return LocalUser.local.get(); + return LocalUser.LOCAL.get(); } /** @@ -26,17 +30,17 @@ public static UserDO getLocalUser() { * @param user user */ public static void setLocalUser(UserDO user) { - LocalUser.local.set(user); + LocalUser.LOCAL.set(user); } public static T getLocalUser(Class clazz) { - return (T) local.get(); + return (T) LOCAL.get(); } /** * 清理当前用户 */ public static void clearLocalUser() { - LocalUser.local.remove(); + LOCAL.remove(); } } diff --git a/src/main/java/io/github/talelin/latticy/common/aop/ResultAspect.java b/src/main/java/io/github/talelin/latticy/common/aop/ResultAspect.java index 7407117a..635326d5 100644 --- a/src/main/java/io/github/talelin/latticy/common/aop/ResultAspect.java +++ b/src/main/java/io/github/talelin/latticy/common/aop/ResultAspect.java @@ -8,7 +8,7 @@ import org.springframework.util.StringUtils; /** - * 处理返回结果为 UnifyResponseVO 的 Controller + * 处理返回结果为 UnifyResponseVO 的控制器层方法 * message 默认为 null,在此处通过 code 设置为对应消息 * * @author pedro@TaleLin diff --git a/src/main/java/io/github/talelin/latticy/common/configuration/CodeMessageConfiguration.java b/src/main/java/io/github/talelin/latticy/common/configuration/CodeMessageConfiguration.java index 27696f9e..ac893d21 100644 --- a/src/main/java/io/github/talelin/latticy/common/configuration/CodeMessageConfiguration.java +++ b/src/main/java/io/github/talelin/latticy/common/configuration/CodeMessageConfiguration.java @@ -9,6 +9,8 @@ /** * @author pedro@TaleLin + * + * 消息码配置类 */ @SuppressWarnings("ConfigurationProperties") @Component diff --git a/src/main/java/io/github/talelin/latticy/common/configuration/CommonConfiguration.java b/src/main/java/io/github/talelin/latticy/common/configuration/CommonConfiguration.java index a821d908..1546e074 100644 --- a/src/main/java/io/github/talelin/latticy/common/configuration/CommonConfiguration.java +++ b/src/main/java/io/github/talelin/latticy/common/configuration/CommonConfiguration.java @@ -18,6 +18,8 @@ /** * @author pedro@TaleLin * @author colorful@TaleLin + * + * 公共配置 */ @Configuration(proxyBeanMethods = false) public class CommonConfiguration { @@ -29,8 +31,6 @@ public RequestLogInterceptor requestLogInterceptor() { /** * 新的分页插件,一缓和二缓遵循mybatis的规则 - * 需要设置 MybatisConfiguration#useDeprecatedExecutor = false 避免缓存出现问题(该属性会在旧插件移除后一同移除) - * 参考链接:https://mp.baomidou.com/guide/interceptor.html */ @Bean public MybatisPlusInterceptor mybatisPlusInterceptor() { @@ -39,9 +39,6 @@ public MybatisPlusInterceptor mybatisPlusInterceptor() { return interceptor; } - /** - * 参考链接:https://mp.baomidou.com/guide/interceptor.html - */ @Bean @SuppressWarnings("deprecation") public ConfigurationCustomizer configurationCustomizer() { @@ -70,7 +67,6 @@ public PermissionMetaCollector postProcessBeans() { @Bean public Jackson2ObjectMapperBuilderCustomizer customJackson() { return jacksonObjectMapperBuilder -> { - // jacksonObjectMapperBuilder.serializationInclusion(JsonInclude.Include.NON_NULL); jacksonObjectMapperBuilder.failOnUnknownProperties(false); jacksonObjectMapperBuilder.propertyNamingStrategy(PropertyNamingStrategies.SNAKE_CASE); }; diff --git a/src/main/java/io/github/talelin/latticy/common/configuration/CustomServletModelAttributeMethodProcessor.java b/src/main/java/io/github/talelin/latticy/common/configuration/CustomServletModelAttributeMethodProcessor.java index 934bc33d..f7a9b5c8 100644 --- a/src/main/java/io/github/talelin/latticy/common/configuration/CustomServletModelAttributeMethodProcessor.java +++ b/src/main/java/io/github/talelin/latticy/common/configuration/CustomServletModelAttributeMethodProcessor.java @@ -10,8 +10,10 @@ /** * @author Gadfly + * + * A customizing Servlet-specific ModelAttributeMethodProcessor that applies data binding through + * a WebDataBinder of type CustomServletModelAttributeMethodProcessor. */ - public class CustomServletModelAttributeMethodProcessor extends ServletModelAttributeMethodProcessor { public CustomServletModelAttributeMethodProcessor(final boolean annotationNotRequired) { diff --git a/src/main/java/io/github/talelin/latticy/common/configuration/CustomServletRequestDataBinder.java b/src/main/java/io/github/talelin/latticy/common/configuration/CustomServletRequestDataBinder.java index 79029f71..8ebca2de 100644 --- a/src/main/java/io/github/talelin/latticy/common/configuration/CustomServletRequestDataBinder.java +++ b/src/main/java/io/github/talelin/latticy/common/configuration/CustomServletRequestDataBinder.java @@ -11,6 +11,8 @@ /** * @author Gadfly + * + * 自定义servlet请求参数绑定类 */ public class CustomServletRequestDataBinder extends ServletRequestDataBinder { diff --git a/src/main/java/io/github/talelin/latticy/common/configuration/LoginCaptchaProperties.java b/src/main/java/io/github/talelin/latticy/common/configuration/LoginCaptchaProperties.java index fb7c9a13..6ea2d86b 100644 --- a/src/main/java/io/github/talelin/latticy/common/configuration/LoginCaptchaProperties.java +++ b/src/main/java/io/github/talelin/latticy/common/configuration/LoginCaptchaProperties.java @@ -10,6 +10,9 @@ /** * @author Gadfly + * + * 登录图形验证码配置类 + * */ @Slf4j @Getter @@ -31,9 +34,12 @@ public class LoginCaptchaProperties { private Boolean enabled = Boolean.FALSE; public void setSecret(String secret) { + final long ivLen1 = 16; + final long ivLen2 = 24; + final long ivLen3 = 32; if (StringUtils.hasText(secret)) { byte[] bytes = secret.getBytes(); - if (bytes.length == 16 || bytes.length == 24 || bytes.length == 32) { + if (bytes.length == ivLen1 || bytes.length == ivLen2 || bytes.length == ivLen3) { this.secret = secret; } else { log.warn("AES密钥必须为128/192/256bit,输入的密钥为{}bit,已启用随机密钥{}", bytes.length * 8, this.secret); @@ -42,9 +48,10 @@ public void setSecret(String secret) { } public void setIv(String iv) { + final long ivLen = 16; if (StringUtils.hasText(iv)) { byte[] bytes = iv.getBytes(); - if (bytes.length == 16) { + if (bytes.length == ivLen) { this.iv = iv; } else { log.warn("AES初始向量必须为128bit,输入的密钥为{}bit,已启用随机向量{}", bytes.length * 8, this.iv); diff --git a/src/main/java/io/github/talelin/latticy/common/constant/IdentityConstant.java b/src/main/java/io/github/talelin/latticy/common/constant/IdentityConstant.java index 83308f43..59728f9c 100644 --- a/src/main/java/io/github/talelin/latticy/common/constant/IdentityConstant.java +++ b/src/main/java/io/github/talelin/latticy/common/constant/IdentityConstant.java @@ -12,4 +12,8 @@ public class IdentityConstant { */ public static final String USERNAME_PASSWORD_IDENTITY = "USERNAME_PASSWORD"; + private IdentityConstant() { + throw new IllegalStateException("Utility class"); + } + } diff --git a/src/main/java/io/github/talelin/latticy/common/enumeration/GroupLevelEnum.java b/src/main/java/io/github/talelin/latticy/common/enumeration/GroupLevelEnum.java index 421b206f..76592243 100644 --- a/src/main/java/io/github/talelin/latticy/common/enumeration/GroupLevelEnum.java +++ b/src/main/java/io/github/talelin/latticy/common/enumeration/GroupLevelEnum.java @@ -6,6 +6,8 @@ /** * @author colorful@TaleLin * @author Juzi@TaleLin + * + * 分组级别枚举类 */ public enum GroupLevelEnum implements IEnum { /** diff --git a/src/main/java/io/github/talelin/latticy/common/exception/RestExceptionHandler.java b/src/main/java/io/github/talelin/latticy/common/exception/RestExceptionHandler.java index 518e26d1..66be8b25 100644 --- a/src/main/java/io/github/talelin/latticy/common/exception/RestExceptionHandler.java +++ b/src/main/java/io/github/talelin/latticy/common/exception/RestExceptionHandler.java @@ -36,6 +36,8 @@ * @author pedro@TaleLin * @author colorful@TaleLin * @author Juzi@TaleLin + * + * Restful 接口异常配置类 */ @Order @RestControllerAdvice @@ -76,7 +78,7 @@ public UnifyResponseVO> processException(BindException excep HttpServletRequest request, HttpServletResponse response) { log.error(exception.toString()); - Map msg = new HashMap<>(); + Map msg = new HashMap<>(3); exception.getAllErrors().forEach(error -> { if (error instanceof FieldError) { FieldError fieldError = (FieldError) error; @@ -98,7 +100,7 @@ public UnifyResponseVO> processException(ConstraintViolation HttpServletRequest request, HttpServletResponse response) { log.error("", exception); - Map msg = new HashMap<>(); + Map msg = new HashMap<>(3); exception.getConstraintViolations().forEach(constraintViolation -> { String template = constraintViolation.getMessage(); String path = constraintViolation.getPropertyPath().toString(); diff --git a/src/main/java/io/github/talelin/latticy/common/factory/YamlPropertySourceFactory.java b/src/main/java/io/github/talelin/latticy/common/factory/YamlPropertySourceFactory.java index 650c0c3c..456acbbd 100644 --- a/src/main/java/io/github/talelin/latticy/common/factory/YamlPropertySourceFactory.java +++ b/src/main/java/io/github/talelin/latticy/common/factory/YamlPropertySourceFactory.java @@ -10,6 +10,7 @@ /** * @author Juzi@TaleLin + * YAML配置预加载 */ public class YamlPropertySourceFactory implements PropertySourceFactory { @Override diff --git a/src/main/java/io/github/talelin/latticy/common/interceptor/AuthorizeVerifyResolverImpl.java b/src/main/java/io/github/talelin/latticy/common/interceptor/AuthorizeVerifyResolverImpl.java index cbc5f7d3..eed25081 100644 --- a/src/main/java/io/github/talelin/latticy/common/interceptor/AuthorizeVerifyResolverImpl.java +++ b/src/main/java/io/github/talelin/latticy/common/interceptor/AuthorizeVerifyResolverImpl.java @@ -32,13 +32,14 @@ /** * @author pedro@TaleLin * @author Juzi@TaleLin + * 鉴权实现类 */ @Component public class AuthorizeVerifyResolverImpl implements AuthorizeVerifyResolver { - public final static String AUTHORIZATION_HEADER = "Authorization"; + public static final String AUTHORIZATION_HEADER = "Authorization"; - public final static String BEARER_PATTERN = "^Bearer$"; + public static final String BEARER_PATTERN = "^Bearer$"; @Autowired private DoubleJWT jwt; @@ -58,7 +59,7 @@ public class AuthorizeVerifyResolverImpl implements AuthorizeVerifyResolver { @Override public boolean handleLogin(HttpServletRequest request, HttpServletResponse response, MetaInfo meta) { - String tokenStr = verifyHeader(request, response); + String tokenStr = verifyHeader(request); Map claims; try { claims = jwt.decodeAccessToken(tokenStr); @@ -101,7 +102,7 @@ public boolean handleAdmin(HttpServletRequest request, HttpServletResponse respo @Override public boolean handleRefresh(HttpServletRequest request, HttpServletResponse response, MetaInfo meta) { - String tokenStr = verifyHeader(request, response); + String tokenStr = verifyHeader(request); Map claims; try { claims = jwt.decodeRefreshToken(tokenStr); @@ -134,9 +135,10 @@ private boolean getClaim(Map claims) { throw new NotFoundException(10021); } String avatarUrl; + final String protocolPrefix = "http"; if (user.getAvatar() == null) { avatarUrl = null; - } else if (user.getAvatar().startsWith("http")) { + } else if (user.getAvatar().startsWith(protocolPrefix)) { avatarUrl = user.getAvatar(); } else { avatarUrl = domain + servePath.split("/")[0] + "/" + user.getAvatar(); @@ -155,14 +157,15 @@ private boolean verifyAdmin(UserDO user) { return groupService.checkIsRootByUserId(user.getId()); } - private String verifyHeader(HttpServletRequest request, HttpServletResponse response) { + private String verifyHeader(HttpServletRequest request) { // 处理头部header,带有access_token的可以访问 String authorization = request.getHeader(AUTHORIZATION_HEADER); if (authorization == null || Strings.isBlank(authorization)) { throw new AuthorizationException(10012); } String[] splits = authorization.split(" "); - if (splits.length != 2) { + final int tokenSplitLen = 2; + if (splits.length != tokenSplitLen) { throw new AuthorizationException(10013); } // Bearer 字段 diff --git a/src/main/java/io/github/talelin/latticy/common/interceptor/LoggerImpl.java b/src/main/java/io/github/talelin/latticy/common/interceptor/LoggerImpl.java index a720d976..272df000 100644 --- a/src/main/java/io/github/talelin/latticy/common/interceptor/LoggerImpl.java +++ b/src/main/java/io/github/talelin/latticy/common/interceptor/LoggerImpl.java @@ -10,7 +10,6 @@ import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; -import org.springframework.util.StringUtils; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; @@ -21,6 +20,7 @@ * @author pedro@TaleLin * @author Juzi@TaleLin * @author colorful@TaleLin + * 行为日志实现类 */ @Slf4j @Component @@ -41,7 +41,7 @@ public void handle(PermissionMeta meta, Logger logger, HttpServletRequest reques template = this.parseTemplate(template, user, request, response); String permission = ""; if (meta != null) { - permission = !StringUtils.hasLength(meta.value()) ? meta.value() : meta.value(); + permission = meta.value(); } Integer userId = user.getId(); String username = user.getUsername(); diff --git a/src/main/java/io/github/talelin/latticy/common/interceptor/RequestLogInterceptor.java b/src/main/java/io/github/talelin/latticy/common/interceptor/RequestLogInterceptor.java index 7c85d1bf..20a4116f 100644 --- a/src/main/java/io/github/talelin/latticy/common/interceptor/RequestLogInterceptor.java +++ b/src/main/java/io/github/talelin/latticy/common/interceptor/RequestLogInterceptor.java @@ -10,26 +10,28 @@ /** * @author pedro@TaleLin * @author colorful@TaleLin + * 请求日志拦截器 */ @Slf4j public class RequestLogInterceptor implements AsyncHandlerInterceptor { - private ThreadLocal startTime = new ThreadLocal<>(); + private final ThreadLocal startTime = new ThreadLocal<>(); @Override - public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception { + public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) { startTime.set(System.currentTimeMillis()); return true; } @Override - public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception { + public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) { log.info("[{}] -> [{}] from: {} costs: {}ms", request.getMethod(), request.getServletPath(), IPUtil.getIPFromRequest(request), System.currentTimeMillis() - startTime.get() ); + startTime.remove(); } } diff --git a/src/main/java/io/github/talelin/latticy/common/listener/PermissionHandleListener.java b/src/main/java/io/github/talelin/latticy/common/listener/PermissionHandleListener.java index cdd47729..b02c4abe 100644 --- a/src/main/java/io/github/talelin/latticy/common/listener/PermissionHandleListener.java +++ b/src/main/java/io/github/talelin/latticy/common/listener/PermissionHandleListener.java @@ -16,6 +16,7 @@ /** * @author pedro@TaleLin * @author colorful@TaleLin + * 权限监听器 */ @Component public class PermissionHandleListener implements ApplicationListener { diff --git a/src/main/java/io/github/talelin/latticy/common/mybatis/Page.java b/src/main/java/io/github/talelin/latticy/common/mybatis/LinPage.java similarity index 77% rename from src/main/java/io/github/talelin/latticy/common/mybatis/Page.java rename to src/main/java/io/github/talelin/latticy/common/mybatis/LinPage.java index f65e1bfc..04dd6367 100644 --- a/src/main/java/io/github/talelin/latticy/common/mybatis/Page.java +++ b/src/main/java/io/github/talelin/latticy/common/mybatis/LinPage.java @@ -1,31 +1,34 @@ package io.github.talelin.latticy.common.mybatis; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; + /** + * 分页对象 * 为和其他端保持一致 * 重写 MyBatis-Plus 分页对象,将起始页从 1 改为 0 * * @author Juzi@TaleLin */ -public class Page extends com.baomidou.mybatisplus.extension.plugins.pagination.Page { +public class LinPage extends Page { private static final long serialVersionUID = -2183463672525305273L; /** * 该构造方法使得 current 总为 0 */ - public Page() { + public LinPage() { super.setCurrent(0); } - public Page(int current, int size) { + public LinPage(int current, int size) { this(current, size, 0); } - public Page(int current, int size, int total) { + public LinPage(int current, int size, int total) { this(current, size, total, true); } - public Page(int current, int size, boolean isSearchCount) { + public LinPage(int current, int size, boolean isSearchCount) { this(current, size, 0, isSearchCount); } @@ -37,7 +40,7 @@ public Page(int current, int size, boolean isSearchCount) { * @param total 总数 * @param isSearchCount 是否进行 count 查询 */ - public Page(int current, int size, int total, boolean isSearchCount) { + public LinPage(int current, int size, int total, boolean isSearchCount) { super(current, size, total, isSearchCount); if (current < 0) { diff --git a/src/main/java/io/github/talelin/latticy/common/util/BeanCopyUtil.java b/src/main/java/io/github/talelin/latticy/common/util/BeanCopyUtil.java new file mode 100644 index 00000000..92607f9e --- /dev/null +++ b/src/main/java/io/github/talelin/latticy/common/util/BeanCopyUtil.java @@ -0,0 +1,138 @@ +package io.github.talelin.latticy.common.util; + +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.BeanUtils; +import org.springframework.util.CollectionUtils; +import org.springframework.util.ReflectionUtils; + +import java.util.*; +import java.util.function.Supplier; +import java.util.stream.Collectors; + +/** + * @author Gadfly + */ +@Slf4j +public class BeanCopyUtil extends BeanUtils { + public static void copyNonNullProperties(Object source, Object target) { + String[] properties = Arrays.stream(ReflectionUtils.getDeclaredMethods(source.getClass())) + .map(method -> { + if (method.getName().startsWith("get")) { + Object fieldValue = null; + try { + fieldValue = method.invoke(source); + } catch (Exception e) { + log.error(e.getMessage(), e); + } + if (fieldValue == null) { + String fieldName = method.getName().substring(3); + return com.baomidou.mybatisplus.core.toolkit.StringUtils.firstToLowerCase(fieldName); + } + } + return null; + }) + .filter(Objects::nonNull) + .toArray(String[]::new); + copyProperties(source, target, properties); + } + + /** + * 集合数据的拷贝 + * + * @param source: 数据源类 + * @param target: 目标类::new(eg: UserVO::new) + * @return 拷贝后的集合 + */ + public static T copyProperties(S source, Supplier target) { + T t = target.get(); + copyProperties(source, t); + return t; + } + + /** + * 集合数据的拷贝 + * + * @param sources: 数据源类 + * @param target: 目标类::new(eg: UserVO::new) + * @return 拷贝后的集合 + */ + public static List copyListProperties(List sources, Supplier target) { + return copyListProperties(sources, target, null); + } + + /** + * 带回调函数的集合数据的拷贝(可自定义字段拷贝规则) + * + * @param sources: 数据源类 + * @param target: 目标类::new(eg: UserVO::new) + * @param callBack: 回调函数 + * @return 拷贝后的集合 + */ + public static List copyListProperties(List sources, Supplier target, + BeanCopyUtilCallBack callBack) { + if (CollectionUtils.isEmpty(sources)) { + return new ArrayList<>(); + } + List list = new ArrayList<>(sources.size()); + for (S source : sources) { + T t = target.get(); + copyProperties(source, t); + list.add(t); + if (null != callBack) { + // 回调 + callBack.callBack(source, t); + } + } + return list; + } + + public static T copySingleProperties(S source, Supplier target, BeanCopyUtilCallBack callBack) { + T t = target.get(); + copyProperties(source, t); + if (null != callBack) { + // 回调 + callBack.callBack(source, t); + } + return t; + } + + /** + * 将集合对象中的类型转换成另一种类型 + * + * @param collection 集合 + * @param clazz 目标对象 + * @return 转换后的集合 + */ + public static Collection covertObject(Collection collection, Class clazz, + BeanCopyUtilCallBack callBack) { + if (CollectionUtils.isEmpty(collection)) { + return new ArrayList<>(); + } + return collection.stream().map(oldObject -> { + T instance = null; + try { + instance = clazz.getDeclaredConstructor().newInstance(); + copyProperties(oldObject, instance); + if (null != callBack) { + // 回调 + callBack.callBack(oldObject, instance); + } + } catch (Exception e) { + log.error(e.getMessage(), e); + } + return instance; + }).collect(Collectors.toList()); + } + + @FunctionalInterface + public interface BeanCopyUtilCallBack { + + /** + * 定义默认回调方法 + * + * @param t target + * @param s source + */ + void callBack(S s, T t); + } +} diff --git a/src/main/java/io/github/talelin/latticy/common/util/CaptchaUtil.java b/src/main/java/io/github/talelin/latticy/common/util/CaptchaUtil.java index 57d47fb3..4566cb46 100644 --- a/src/main/java/io/github/talelin/latticy/common/util/CaptchaUtil.java +++ b/src/main/java/io/github/talelin/latticy/common/util/CaptchaUtil.java @@ -23,10 +23,15 @@ /** * @author Gadfly + * 验证码工具类 */ @SuppressWarnings("SpellCheckingInspection") public class CaptchaUtil { + private CaptchaUtil () { + throw new IllegalStateException("Utility class"); + } + /** * 验证码字符个数 */ @@ -106,11 +111,11 @@ private static void drawString(Graphics2D g, String randomStr, int i) throws IOE g.setColor(getRandomColor(28, 130)); // 设置每个字符的随机旋转 double radianPercent = (RANDOM.nextBoolean() ? -1 : 1) * Math.PI * (RANDOM.nextInt(60) / 320D); - g.rotate(radianPercent, WIDTH * 0.8 / RANDOM_STR_NUM * i, HEIGHT / 2); + g.rotate(radianPercent, WIDTH * 0.8 / RANDOM_STR_NUM * i, HEIGHT / 2.0); int y = (RANDOM.nextBoolean() ? -1 : 1) * RANDOM.nextInt(4) + 4; g.translate(RANDOM.nextInt(3), y); g.drawString(randomStr, WIDTH / RANDOM_STR_NUM * i, HEIGHT / 2); - g.rotate(-radianPercent, WIDTH * 0.8 / RANDOM_STR_NUM * i, HEIGHT / 2); + g.rotate(-radianPercent, WIDTH * 0.8 / RANDOM_STR_NUM * i, HEIGHT / 2.0); g.translate(0, -y); } diff --git a/src/main/java/io/github/talelin/latticy/common/util/IPUtil.java b/src/main/java/io/github/talelin/latticy/common/util/IPUtil.java index 70c5633d..c403c242 100644 --- a/src/main/java/io/github/talelin/latticy/common/util/IPUtil.java +++ b/src/main/java/io/github/talelin/latticy/common/util/IPUtil.java @@ -7,11 +7,16 @@ import javax.servlet.http.HttpServletRequest; /** + * @author Gadfy * IP工具类 */ @Slf4j public class IPUtil { + private IPUtil() { + throw new IllegalStateException("Utility class"); + } + private static final String[] IP_HEADER_CANDIDATES = { "X-Forwarded-For", "Proxy-Client-IP", diff --git a/src/main/java/io/github/talelin/latticy/common/util/PageUtil.java b/src/main/java/io/github/talelin/latticy/common/util/PageUtil.java index 96c44e9e..214afc20 100644 --- a/src/main/java/io/github/talelin/latticy/common/util/PageUtil.java +++ b/src/main/java/io/github/talelin/latticy/common/util/PageUtil.java @@ -7,16 +7,21 @@ /** * @author colorful@TaleLin + * 分页工具类 */ public class PageUtil { + private PageUtil() { + throw new IllegalStateException("Utility class"); + } + public static PageResponseVO build(IPage iPage) { - return new PageResponseVO(Math.toIntExact(iPage.getTotal()), iPage.getRecords(), + return new PageResponseVO<>(Math.toIntExact(iPage.getTotal()), iPage.getRecords(), Math.toIntExact(iPage.getCurrent()), Math.toIntExact(iPage.getSize())); } public static PageResponseVO build(IPage iPage, List records) { - return new PageResponseVO(Math.toIntExact(iPage.getTotal()), records, + return new PageResponseVO<>(Math.toIntExact(iPage.getTotal()), records, Math.toIntExact(iPage.getCurrent()), Math.toIntExact(iPage.getSize())); } diff --git a/src/main/java/io/github/talelin/latticy/common/util/ResponseUtil.java b/src/main/java/io/github/talelin/latticy/common/util/ResponseUtil.java index caf81ff9..51ee649d 100644 --- a/src/main/java/io/github/talelin/latticy/common/util/ResponseUtil.java +++ b/src/main/java/io/github/talelin/latticy/common/util/ResponseUtil.java @@ -2,24 +2,26 @@ import io.github.talelin.autoconfigure.bean.Code; import io.github.talelin.autoconfigure.util.RequestUtil; -import io.github.talelin.latticy.vo.PageResponseVO; import io.github.talelin.latticy.vo.UnifyResponseVO; import lombok.extern.slf4j.Slf4j; import org.springframework.web.context.request.RequestContextHolder; import org.springframework.web.context.request.ServletRequestAttributes; import javax.servlet.http.HttpServletResponse; -import java.util.List; /** - * 响应结果生成工具 + * 响应结果生成工具类 * @author pedro@TaleLin */ @SuppressWarnings("unchecked") @Slf4j public class ResponseUtil { + private ResponseUtil() { + throw new IllegalStateException("Utility class"); + } + /** * 获得当前响应 * @@ -88,7 +90,4 @@ public static UnifyResponseVO generateUnifyResponse(int code) { .build(); } - public static PageResponseVO generatePageResult(int total, List items, int page, int count) { - return new PageResponseVO(total, items, page, count); - } } diff --git a/src/main/java/io/github/talelin/latticy/controller/cms/AdminController.java b/src/main/java/io/github/talelin/latticy/controller/cms/AdminController.java index 6f5adaa4..4c894696 100644 --- a/src/main/java/io/github/talelin/latticy/controller/cms/AdminController.java +++ b/src/main/java/io/github/talelin/latticy/controller/cms/AdminController.java @@ -24,6 +24,7 @@ import java.util.stream.Collectors; /** + * 管理员控制器 * @author pedro@TaleLin * @author Juzi@TaleLin */ diff --git a/src/main/java/io/github/talelin/latticy/controller/cms/FileController.java b/src/main/java/io/github/talelin/latticy/controller/cms/FileController.java index 3e763a00..bb41ef9e 100644 --- a/src/main/java/io/github/talelin/latticy/controller/cms/FileController.java +++ b/src/main/java/io/github/talelin/latticy/controller/cms/FileController.java @@ -14,6 +14,7 @@ import java.util.List; /** + * 文件控制器 * @author pedro@TaleLin * @author Juzi@TaleLin */ diff --git a/src/main/java/io/github/talelin/latticy/controller/cms/LogController.java b/src/main/java/io/github/talelin/latticy/controller/cms/LogController.java index 9897e9af..7f8185d5 100644 --- a/src/main/java/io/github/talelin/latticy/controller/cms/LogController.java +++ b/src/main/java/io/github/talelin/latticy/controller/cms/LogController.java @@ -17,6 +17,7 @@ import org.springframework.web.bind.annotation.RestController; /** + * 日志控制器 * @author pedro@TaleLin * @author Juzi@TaleLin */ diff --git a/src/main/java/io/github/talelin/latticy/controller/cms/UserController.java b/src/main/java/io/github/talelin/latticy/controller/cms/UserController.java index 06198c16..36eac5bd 100644 --- a/src/main/java/io/github/talelin/latticy/controller/cms/UserController.java +++ b/src/main/java/io/github/talelin/latticy/controller/cms/UserController.java @@ -39,6 +39,7 @@ import java.util.Map; /** + * 用户控制器 * @author pedro@TaleLin * @author Juzi@TaleLin */ @@ -77,11 +78,10 @@ public CreatedVO register(@RequestBody @Validated RegisterDTO validator) { * 用户登陆 */ @PostMapping("/login") - public Tokens login(@RequestBody @Validated LoginDTO validator, @RequestHeader(value = "Tag", required = false) String tag) { - if (captchaConfig.getEnabled()) { - // TODO: 使用spring validation验证。暂时还没想到怎么根据配置文件分组 + public Tokens login(@RequestBody @Validated LoginDTO validator, @RequestHeader(required = false) String tag) { + if (Boolean.TRUE.equals(captchaConfig.getEnabled())) { if (!StringUtils.hasText(validator.getCaptcha()) || !StringUtils.hasText(tag)) { - throw new ParameterException("验证码不可为空"); + throw new ParameterException(10260); } if (!userService.verifyCaptcha(validator.getCaptcha(), tag)) { throw new ParameterException(10260); @@ -103,7 +103,7 @@ public Tokens login(@RequestBody @Validated LoginDTO validator, @RequestHeader(v @PostMapping("/captcha") public LoginCaptchaVO userCaptcha() throws Exception { - if (captchaConfig.getEnabled()) { + if (Boolean.TRUE.equals(captchaConfig.getEnabled())) { return userService.generateCaptcha(); } return new LoginCaptchaVO(); diff --git a/src/main/java/io/github/talelin/latticy/controller/v1/BookController.java b/src/main/java/io/github/talelin/latticy/controller/v1/BookController.java index 7298ede9..222a91bf 100644 --- a/src/main/java/io/github/talelin/latticy/controller/v1/BookController.java +++ b/src/main/java/io/github/talelin/latticy/controller/v1/BookController.java @@ -11,20 +11,13 @@ import io.github.talelin.latticy.vo.UpdatedVO; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.validation.annotation.Validated; -import org.springframework.web.bind.annotation.DeleteMapping; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.PathVariable; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.PutMapping; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RequestParam; -import org.springframework.web.bind.annotation.RestController; +import org.springframework.web.bind.annotation.*; import javax.validation.constraints.Positive; import java.util.List; /** + * 图书控制器 * @author pedro@TaleLin * @author Juzi@TaleLin */ @@ -47,15 +40,13 @@ public BookDO getBook(@PathVariable(value = "id") @Positive(message = "{id.posit @GetMapping("") public List getBooks() { - List books = bookService.findAll(); - return books; + return bookService.findAll(); } @GetMapping("/search") public List searchBook(@RequestParam(value = "q", required = false, defaultValue = "") String q) { - List books = bookService.getBookByKeyword("%" + q + "%"); - return books; + return bookService.getBookByKeyword("%" + q + "%"); } diff --git a/src/main/java/io/github/talelin/latticy/dto/admin/DispatchPermissionDTO.java b/src/main/java/io/github/talelin/latticy/dto/admin/DispatchPermissionDTO.java index 67dafd9f..ac2bd4c5 100644 --- a/src/main/java/io/github/talelin/latticy/dto/admin/DispatchPermissionDTO.java +++ b/src/main/java/io/github/talelin/latticy/dto/admin/DispatchPermissionDTO.java @@ -8,6 +8,7 @@ /** * @author pedro@TaleLin * @author Juzi@TaleLin + * 分配权限(单个)数据传输对象 */ @Data public class DispatchPermissionDTO { diff --git a/src/main/java/io/github/talelin/latticy/dto/admin/DispatchPermissionsDTO.java b/src/main/java/io/github/talelin/latticy/dto/admin/DispatchPermissionsDTO.java index 7fce2396..b5701bd3 100644 --- a/src/main/java/io/github/talelin/latticy/dto/admin/DispatchPermissionsDTO.java +++ b/src/main/java/io/github/talelin/latticy/dto/admin/DispatchPermissionsDTO.java @@ -9,6 +9,7 @@ /** * @author pedro@TaleLin * @author Juzi@TaleLin + * 分配权限(多个)数据传输对象 */ @Data public class DispatchPermissionsDTO { diff --git a/src/main/java/io/github/talelin/latticy/dto/admin/NewGroupDTO.java b/src/main/java/io/github/talelin/latticy/dto/admin/NewGroupDTO.java index 2e8159d3..7ef070d9 100644 --- a/src/main/java/io/github/talelin/latticy/dto/admin/NewGroupDTO.java +++ b/src/main/java/io/github/talelin/latticy/dto/admin/NewGroupDTO.java @@ -9,6 +9,7 @@ /** * @author pedro@TaleLin * @author Juzi@TaleLin + * 分组新增数据传输对象 */ @Data public class NewGroupDTO { diff --git a/src/main/java/io/github/talelin/latticy/dto/admin/QueryUsersDTO.java b/src/main/java/io/github/talelin/latticy/dto/admin/QueryUsersDTO.java index eed6fc49..a38f932c 100644 --- a/src/main/java/io/github/talelin/latticy/dto/admin/QueryUsersDTO.java +++ b/src/main/java/io/github/talelin/latticy/dto/admin/QueryUsersDTO.java @@ -9,6 +9,7 @@ /** * @author Gadfly * @since 2021-06-28 18:48 + * 用户查询数据传输对象 */ @Data @EqualsAndHashCode(callSuper = true) diff --git a/src/main/java/io/github/talelin/latticy/dto/admin/RemovePermissionsDTO.java b/src/main/java/io/github/talelin/latticy/dto/admin/RemovePermissionsDTO.java index 4cfdbcb1..df34c973 100644 --- a/src/main/java/io/github/talelin/latticy/dto/admin/RemovePermissionsDTO.java +++ b/src/main/java/io/github/talelin/latticy/dto/admin/RemovePermissionsDTO.java @@ -9,6 +9,7 @@ /** * @author pedro@TaleLin * @author Juzi@TaleLin + * 删除权限数据传输对象 */ @Data public class RemovePermissionsDTO { diff --git a/src/main/java/io/github/talelin/latticy/dto/admin/ResetPasswordDTO.java b/src/main/java/io/github/talelin/latticy/dto/admin/ResetPasswordDTO.java index b87c635f..b987001c 100644 --- a/src/main/java/io/github/talelin/latticy/dto/admin/ResetPasswordDTO.java +++ b/src/main/java/io/github/talelin/latticy/dto/admin/ResetPasswordDTO.java @@ -8,6 +8,7 @@ /** * @author pedro@TaleLin + * 重置密码数据传输对象 */ @EqualField(srcField = "newPassword", dstField = "confirmPassword", message = "{password.equal-field}") @Data diff --git a/src/main/java/io/github/talelin/latticy/dto/admin/UpdateGroupDTO.java b/src/main/java/io/github/talelin/latticy/dto/admin/UpdateGroupDTO.java index facf4204..c0a78efe 100644 --- a/src/main/java/io/github/talelin/latticy/dto/admin/UpdateGroupDTO.java +++ b/src/main/java/io/github/talelin/latticy/dto/admin/UpdateGroupDTO.java @@ -7,6 +7,7 @@ /** * @author pedro@TaleLin + * 分组更新数据传输对象 */ @Data public class UpdateGroupDTO { diff --git a/src/main/java/io/github/talelin/latticy/dto/admin/UpdateUserInfoDTO.java b/src/main/java/io/github/talelin/latticy/dto/admin/UpdateUserInfoDTO.java index 722f404b..49c8c4f6 100644 --- a/src/main/java/io/github/talelin/latticy/dto/admin/UpdateUserInfoDTO.java +++ b/src/main/java/io/github/talelin/latticy/dto/admin/UpdateUserInfoDTO.java @@ -9,6 +9,7 @@ /** * @author pedro@TaleLin * @author Juzi@TaleLin + * 用户信息更新数据传输对象 */ @Data public class UpdateUserInfoDTO { diff --git a/src/main/java/io/github/talelin/latticy/dto/book/CreateOrUpdateBookDTO.java b/src/main/java/io/github/talelin/latticy/dto/book/CreateOrUpdateBookDTO.java index b034660f..bba1c825 100644 --- a/src/main/java/io/github/talelin/latticy/dto/book/CreateOrUpdateBookDTO.java +++ b/src/main/java/io/github/talelin/latticy/dto/book/CreateOrUpdateBookDTO.java @@ -9,6 +9,7 @@ /** * @author pedro@TaleLin * @author Juzi@TaleLin + * 图书创建/更新数据传输对象 */ @Data @NoArgsConstructor diff --git a/src/main/java/io/github/talelin/latticy/dto/log/QueryLogDTO.java b/src/main/java/io/github/talelin/latticy/dto/log/QueryLogDTO.java index 123790e9..686aab2d 100644 --- a/src/main/java/io/github/talelin/latticy/dto/log/QueryLogDTO.java +++ b/src/main/java/io/github/talelin/latticy/dto/log/QueryLogDTO.java @@ -9,6 +9,7 @@ /** * @author colorful@TaleLin + * 日志查询数据传输对象 */ @Data @EqualsAndHashCode(callSuper = true) diff --git a/src/main/java/io/github/talelin/latticy/dto/query/BasePageDTO.java b/src/main/java/io/github/talelin/latticy/dto/query/BasePageDTO.java index d8b0cc8f..496ddbe1 100644 --- a/src/main/java/io/github/talelin/latticy/dto/query/BasePageDTO.java +++ b/src/main/java/io/github/talelin/latticy/dto/query/BasePageDTO.java @@ -7,8 +7,8 @@ /** * @author Gadfly + * 基础分页数据传输对象 */ - @Data public class BasePageDTO { diff --git a/src/main/java/io/github/talelin/latticy/dto/user/ChangePasswordDTO.java b/src/main/java/io/github/talelin/latticy/dto/user/ChangePasswordDTO.java index e71f3dc4..de958d4c 100644 --- a/src/main/java/io/github/talelin/latticy/dto/user/ChangePasswordDTO.java +++ b/src/main/java/io/github/talelin/latticy/dto/user/ChangePasswordDTO.java @@ -10,6 +10,7 @@ /** * @author pedro@TaleLin * @author Juzi@TaleLin + * 密码修改数据传输对象 */ @Data @NoArgsConstructor diff --git a/src/main/java/io/github/talelin/latticy/dto/user/LoginDTO.java b/src/main/java/io/github/talelin/latticy/dto/user/LoginDTO.java index 3239f974..eda96440 100644 --- a/src/main/java/io/github/talelin/latticy/dto/user/LoginDTO.java +++ b/src/main/java/io/github/talelin/latticy/dto/user/LoginDTO.java @@ -8,6 +8,7 @@ /** * @author pedro@TaleLin * @author Juzi@TaleLin + * 登录数据传输对象 */ @Data @NoArgsConstructor diff --git a/src/main/java/io/github/talelin/latticy/dto/user/RegisterDTO.java b/src/main/java/io/github/talelin/latticy/dto/user/RegisterDTO.java index e6f70339..d7e836f6 100644 --- a/src/main/java/io/github/talelin/latticy/dto/user/RegisterDTO.java +++ b/src/main/java/io/github/talelin/latticy/dto/user/RegisterDTO.java @@ -13,6 +13,7 @@ /** * @author pedro@TaleLin * @author Juzi@TaleLin + * 注册数据传输对象 */ @Data @NoArgsConstructor diff --git a/src/main/java/io/github/talelin/latticy/dto/user/UpdateInfoDTO.java b/src/main/java/io/github/talelin/latticy/dto/user/UpdateInfoDTO.java index 6d71a446..1ffa27c7 100644 --- a/src/main/java/io/github/talelin/latticy/dto/user/UpdateInfoDTO.java +++ b/src/main/java/io/github/talelin/latticy/dto/user/UpdateInfoDTO.java @@ -7,6 +7,7 @@ /** * @author pedro@TaleLin + * 更新用户信息数据传输对象 */ @NoArgsConstructor @Data diff --git a/src/main/java/io/github/talelin/latticy/extension/file/LocalUploader.java b/src/main/java/io/github/talelin/latticy/extension/file/LocalUploader.java index 3d8d53a2..8972c2b5 100644 --- a/src/main/java/io/github/talelin/latticy/extension/file/LocalUploader.java +++ b/src/main/java/io/github/talelin/latticy/extension/file/LocalUploader.java @@ -1,8 +1,8 @@ package io.github.talelin.latticy.extension.file; import io.github.talelin.latticy.module.file.AbstractUploader; -import io.github.talelin.latticy.module.file.FileConstant; import io.github.talelin.latticy.module.file.FileProperties; +import io.github.talelin.latticy.module.file.FileTypeEnum; import io.github.talelin.latticy.module.file.FileUtil; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; @@ -10,7 +10,7 @@ import javax.annotation.PostConstruct; import java.io.BufferedOutputStream; import java.io.File; -import java.io.FileOutputStream; +import java.nio.file.Files; import java.nio.file.Path; import java.nio.file.Paths; import java.text.SimpleDateFormat; @@ -38,14 +38,11 @@ public void initStoreDir() { protected boolean handleOneFile(byte[] bytes, String newFilename) { String absolutePath = FileUtil.getFileAbsolutePath(fileProperties.getStoreDir(), getStorePath(newFilename)); - try { - BufferedOutputStream stream = - new BufferedOutputStream(new FileOutputStream(new java.io.File(absolutePath))); + try (BufferedOutputStream stream = + new BufferedOutputStream(Files.newOutputStream(new File(absolutePath).toPath()))) { stream.write(bytes); - stream.close(); } catch (Exception e) { log.error("write file to local err:", e); - // throw new FailedException(10190); return false; } return true; @@ -71,6 +68,6 @@ protected String getStorePath(String newFilename) { @Override protected String getFileType() { - return FileConstant.LOCAL; + return FileTypeEnum.LOCAL.getValue(); } } diff --git a/src/main/java/io/github/talelin/latticy/extension/file/QiniuUploader.java b/src/main/java/io/github/talelin/latticy/extension/file/QiniuUploader.java index 7a8ad736..bee47262 100644 --- a/src/main/java/io/github/talelin/latticy/extension/file/QiniuUploader.java +++ b/src/main/java/io/github/talelin/latticy/extension/file/QiniuUploader.java @@ -7,8 +7,8 @@ import com.qiniu.storage.UploadManager; import com.qiniu.util.Auth; import io.github.talelin.latticy.module.file.AbstractUploader; -import io.github.talelin.latticy.module.file.FileConstant; import io.github.talelin.latticy.module.file.FileProperties; +import io.github.talelin.latticy.module.file.FileTypeEnum; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; @@ -16,7 +16,7 @@ import java.io.ByteArrayInputStream; /** - * 文件上传服务实现,上传到七牛 + * 文件上传服务实现,上传到七牛云 * * @author pedro@TaleLin * @author colorful@TaleLin @@ -59,7 +59,7 @@ protected String getStorePath(String newFilename) { @Override protected String getFileType() { - return FileConstant.REMOTE; + return FileTypeEnum.REMOTE.getValue(); } /** diff --git a/src/main/java/io/github/talelin/latticy/mapper/BookMapper.java b/src/main/java/io/github/talelin/latticy/mapper/BookMapper.java index b6422be4..ce4b906e 100644 --- a/src/main/java/io/github/talelin/latticy/mapper/BookMapper.java +++ b/src/main/java/io/github/talelin/latticy/mapper/BookMapper.java @@ -9,11 +9,22 @@ /** * @author pedro@TaleLin + * 图书mapper接口 */ @Repository public interface BookMapper extends BaseMapper { + /** + * 根据标题模糊查询图书列表 + * @param q 查询关键字 + * @return 图书数据对象列表 + */ List selectByTitleLikeKeyword(@Param("q") String q); + /** + * 根据标题查询图书列表 + * @param title 图书标题 + * @return 图书数据对象列表 + */ List selectByTitle(@Param("title") String title); } diff --git a/src/main/java/io/github/talelin/latticy/mapper/FileMapper.java b/src/main/java/io/github/talelin/latticy/mapper/FileMapper.java index 609620d4..7ae7d54f 100644 --- a/src/main/java/io/github/talelin/latticy/mapper/FileMapper.java +++ b/src/main/java/io/github/talelin/latticy/mapper/FileMapper.java @@ -7,11 +7,22 @@ /** * @author pedro@TaleLin + * 文件mapper接口 */ @Repository public interface FileMapper extends BaseMapper { + /** + * 根据文件md5查询文件对象 + * @param md5 文件md5 + * @return 文件数据对象 + */ FileDO selectByMd5(@Param("md5") String md5); + /** + * 根据文件md5查询文件数量 + * @param md5 文件md5 + * @return 文件数据传输对象 + */ int selectCountByMd5(@Param("md5") String md5); } diff --git a/src/main/java/io/github/talelin/latticy/mapper/GroupMapper.java b/src/main/java/io/github/talelin/latticy/mapper/GroupMapper.java index 7bfe04cd..f87ed83f 100644 --- a/src/main/java/io/github/talelin/latticy/mapper/GroupMapper.java +++ b/src/main/java/io/github/talelin/latticy/mapper/GroupMapper.java @@ -10,6 +10,7 @@ /** * @author pedro@TaleLin * @author Juzi@TaleLin + * 分组mapper接口 */ @Repository public interface GroupMapper extends BaseMapper { @@ -43,6 +44,7 @@ public interface GroupMapper extends BaseMapper { * * @param userId 用户id * @param groupName 分组名 + * @return 数量 */ int selectCountUserByUserIdAndGroupName(@Param("userId") Integer userId, @Param("groupName") String groupName); } diff --git a/src/main/java/io/github/talelin/latticy/mapper/GroupPermissionMapper.java b/src/main/java/io/github/talelin/latticy/mapper/GroupPermissionMapper.java index 3c0e5179..090a5ae9 100644 --- a/src/main/java/io/github/talelin/latticy/mapper/GroupPermissionMapper.java +++ b/src/main/java/io/github/talelin/latticy/mapper/GroupPermissionMapper.java @@ -10,11 +10,23 @@ /** * @author pedro@TaleLin * @author Juzi@TaleLin + * 分组权限mapper接口 */ @Repository public interface GroupPermissionMapper extends BaseMapper { + /** + * 批量新增 + * @param relations 分组权限关系集合 + * @return last insert id + */ int insertBatch(@Param("relations") List relations); + /** + * 根据分组id和权限id集合批量删除分组权限关系 + * @param groupId 分组id + * @param permissionIds 权限id集合 + * @return 受影响行数 + */ int deleteBatchByGroupIdAndPermissionId(@Param("groupId") Integer groupId, @Param("permissionIds") List permissionIds); } diff --git a/src/main/java/io/github/talelin/latticy/mapper/LogMapper.java b/src/main/java/io/github/talelin/latticy/mapper/LogMapper.java index 70e34652..d4e7e2f4 100644 --- a/src/main/java/io/github/talelin/latticy/mapper/LogMapper.java +++ b/src/main/java/io/github/talelin/latticy/mapper/LogMapper.java @@ -1,22 +1,49 @@ package io.github.talelin.latticy.mapper; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.core.metadata.IPage; -import io.github.talelin.latticy.common.mybatis.Page; +import io.github.talelin.latticy.common.mybatis.LinPage; import io.github.talelin.latticy.model.LogDO; -import com.baomidou.mybatisplus.core.mapper.BaseMapper; import org.springframework.stereotype.Repository; import java.util.Date; /** * @author pedro@TaleLin + * 日志mapper接口 */ @Repository public interface LogMapper extends BaseMapper { - IPage findLogsByUsernameAndRange(Page pager, String name, Date start, Date end); + /** + * 查询日志 + * + * @param pager 分页对象 + * @param name 用户名 + * @param start 开始日期 + * @param end 结束日期 + * @return 日志分页对象 + */ + IPage findLogsByUsernameAndRange(LinPage pager, String name, Date start, Date end); + + /** + * 查询日志 + * + * @param pager 分页对象 + * @param name 用户名 + * @param keyword 查询关键字 + * @param start 开始日期 + * @param end 结束日期 + * @return 日志分页对象 + */ + IPage searchLogsByUsernameAndKeywordAndRange(LinPage pager, String name, String keyword, Date start, Date end); - IPage searchLogsByUsernameAndKeywordAndRange(Page pager, String name, String keyword, Date start, Date end); + /** + * 查询用户名分页列表 + * + * @param pager Page + * @return 用户名分页对象 + */ + IPage getUserNames(LinPage pager); - IPage getUserNames(Page pager); } diff --git a/src/main/java/io/github/talelin/latticy/mapper/PermissionMapper.java b/src/main/java/io/github/talelin/latticy/mapper/PermissionMapper.java index 0c37c4a4..084da597 100644 --- a/src/main/java/io/github/talelin/latticy/mapper/PermissionMapper.java +++ b/src/main/java/io/github/talelin/latticy/mapper/PermissionMapper.java @@ -10,6 +10,7 @@ /** * @author pedro@TaleLin * @author Juzi@TaleLin + * 权限mapper接口 */ @Repository public interface PermissionMapper extends BaseMapper { diff --git a/src/main/java/io/github/talelin/latticy/mapper/UserGroupMapper.java b/src/main/java/io/github/talelin/latticy/mapper/UserGroupMapper.java index 39e3e14e..d7b26598 100644 --- a/src/main/java/io/github/talelin/latticy/mapper/UserGroupMapper.java +++ b/src/main/java/io/github/talelin/latticy/mapper/UserGroupMapper.java @@ -9,11 +9,22 @@ /** * @author pedro@TaleLin + * 用户分组mapper */ @Repository public interface UserGroupMapper extends BaseMapper { + /** + * 批量新增 + * @param relations 用户分组数据对象集合 + * @return last insert id + */ int insertBatch(@Param("relations") List relations); + /** + * 根据用户id删除 + * @param userId 用户id + * @return 受影响行数 + */ int deleteByUserId(@Param("user_id") Integer userId); } diff --git a/src/main/java/io/github/talelin/latticy/mapper/UserIdentityMapper.java b/src/main/java/io/github/talelin/latticy/mapper/UserIdentityMapper.java index efad881d..2beba56d 100644 --- a/src/main/java/io/github/talelin/latticy/mapper/UserIdentityMapper.java +++ b/src/main/java/io/github/talelin/latticy/mapper/UserIdentityMapper.java @@ -6,6 +6,7 @@ /** * @author pedro@TaleLin + * 用户身份标识mapper接口 */ @Repository public interface UserIdentityMapper extends BaseMapper { diff --git a/src/main/java/io/github/talelin/latticy/mapper/UserMapper.java b/src/main/java/io/github/talelin/latticy/mapper/UserMapper.java index 0455ecdc..29887a76 100644 --- a/src/main/java/io/github/talelin/latticy/mapper/UserMapper.java +++ b/src/main/java/io/github/talelin/latticy/mapper/UserMapper.java @@ -2,7 +2,7 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.core.metadata.IPage; -import io.github.talelin.latticy.common.mybatis.Page; +import io.github.talelin.latticy.common.mybatis.LinPage; import io.github.talelin.latticy.model.UserDO; import org.springframework.stereotype.Repository; @@ -11,6 +11,7 @@ * @author pedro@TaleLin * @author colorful@TaleLin * @author Juzi@TaleLin + * 用户mapper接口 */ @Repository public interface UserMapper extends BaseMapper { @@ -39,5 +40,5 @@ public interface UserMapper extends BaseMapper { * @param rootGroupId 超级用户组id(不返回超级用户组的用户) * @return 分页数据 */ - IPage selectPageByGroupId(Page pager, Integer groupId, Integer rootGroupId); + IPage selectPageByGroupId(LinPage pager, Integer groupId, Integer rootGroupId); } diff --git a/src/main/java/io/github/talelin/latticy/model/BaseModel.java b/src/main/java/io/github/talelin/latticy/model/BaseModel.java index d92e147f..e2d45dc5 100644 --- a/src/main/java/io/github/talelin/latticy/model/BaseModel.java +++ b/src/main/java/io/github/talelin/latticy/model/BaseModel.java @@ -10,6 +10,7 @@ /** * @author Juzi@TaleLin + * 基础数据模型类 */ @Data public class BaseModel { diff --git a/src/main/java/io/github/talelin/latticy/model/BookDO.java b/src/main/java/io/github/talelin/latticy/model/BookDO.java index e2023d1a..1a4ab3d8 100644 --- a/src/main/java/io/github/talelin/latticy/model/BookDO.java +++ b/src/main/java/io/github/talelin/latticy/model/BookDO.java @@ -9,6 +9,7 @@ /** * @author pedro@TaleLin * @author Juzi@TaleLin + * 图书数据对象 */ @Data @TableName("book") diff --git a/src/main/java/io/github/talelin/latticy/model/FileDO.java b/src/main/java/io/github/talelin/latticy/model/FileDO.java index b93795c7..5bf6508f 100644 --- a/src/main/java/io/github/talelin/latticy/model/FileDO.java +++ b/src/main/java/io/github/talelin/latticy/model/FileDO.java @@ -9,6 +9,7 @@ /** * @author pedro@TaleLin * @author Juzi@TaleLin + * 文件数据对象 */ @Data @TableName("lin_file") diff --git a/src/main/java/io/github/talelin/latticy/model/GroupDO.java b/src/main/java/io/github/talelin/latticy/model/GroupDO.java index db6820c9..071b1aa4 100644 --- a/src/main/java/io/github/talelin/latticy/model/GroupDO.java +++ b/src/main/java/io/github/talelin/latticy/model/GroupDO.java @@ -11,6 +11,7 @@ * @author pedro@TaleLin * @author Juzi@TaleLin * @author Jokky@TaleLin + * 分组数据对象 */ @Data @Builder diff --git a/src/main/java/io/github/talelin/latticy/model/GroupPermissionDO.java b/src/main/java/io/github/talelin/latticy/model/GroupPermissionDO.java index 448446a6..b2f26c84 100644 --- a/src/main/java/io/github/talelin/latticy/model/GroupPermissionDO.java +++ b/src/main/java/io/github/talelin/latticy/model/GroupPermissionDO.java @@ -10,6 +10,7 @@ /** * @author pedro@TaleLin * @author Juzi@TaleLin + * 分组权限数据对象 */ @Data @TableName("lin_group_permission") diff --git a/src/main/java/io/github/talelin/latticy/model/LogDO.java b/src/main/java/io/github/talelin/latticy/model/LogDO.java index b2224b09..a8a1f89c 100644 --- a/src/main/java/io/github/talelin/latticy/model/LogDO.java +++ b/src/main/java/io/github/talelin/latticy/model/LogDO.java @@ -12,6 +12,7 @@ /** * @author pedro@TaleLin * @author Juzi@TaleLin + * 日志数据对象 */ @Data @Builder diff --git a/src/main/java/io/github/talelin/latticy/model/PermissionDO.java b/src/main/java/io/github/talelin/latticy/model/PermissionDO.java index 21646165..2580e8c0 100644 --- a/src/main/java/io/github/talelin/latticy/model/PermissionDO.java +++ b/src/main/java/io/github/talelin/latticy/model/PermissionDO.java @@ -8,6 +8,7 @@ /** * @author pedro@TaleLin * @author Juzi@TaleLin + * 权限数据对象 */ @Data @Builder diff --git a/src/main/java/io/github/talelin/latticy/model/UserDO.java b/src/main/java/io/github/talelin/latticy/model/UserDO.java index 1d7c0f1e..e9d03620 100644 --- a/src/main/java/io/github/talelin/latticy/model/UserDO.java +++ b/src/main/java/io/github/talelin/latticy/model/UserDO.java @@ -12,6 +12,7 @@ /** * @author pedro@TaleLin * @author Juzi@TaleLin + * 用户数据对象 */ @Data @Builder diff --git a/src/main/java/io/github/talelin/latticy/model/UserGroupDO.java b/src/main/java/io/github/talelin/latticy/model/UserGroupDO.java index efad1320..fd9d20a8 100644 --- a/src/main/java/io/github/talelin/latticy/model/UserGroupDO.java +++ b/src/main/java/io/github/talelin/latticy/model/UserGroupDO.java @@ -10,6 +10,7 @@ /** * @author pedro@TaleLin * @author Juzi@TaleLin + * 用户分组数据对象 */ @Data @TableName("lin_user_group") diff --git a/src/main/java/io/github/talelin/latticy/model/UserIdentityDO.java b/src/main/java/io/github/talelin/latticy/model/UserIdentityDO.java index 7199dd27..aeb52681 100644 --- a/src/main/java/io/github/talelin/latticy/model/UserIdentityDO.java +++ b/src/main/java/io/github/talelin/latticy/model/UserIdentityDO.java @@ -1,22 +1,16 @@ package io.github.talelin.latticy.model; import com.baomidou.mybatisplus.annotation.TableName; -import lombok.AllArgsConstructor; -import lombok.Builder; -import lombok.Getter; -import lombok.NoArgsConstructor; -import lombok.Setter; -import lombok.ToString; +import lombok.*; import java.io.Serializable; /** * @author pedro@TaleLin * @author Juzi@TaleLin + * 用户鉴权标识数据对象 */ -@Setter -@Getter -@ToString +@Data @Builder @NoArgsConstructor @AllArgsConstructor diff --git a/src/main/java/io/github/talelin/latticy/module/file/File.java b/src/main/java/io/github/talelin/latticy/module/file/File.java index 999e681f..eb299918 100644 --- a/src/main/java/io/github/talelin/latticy/module/file/File.java +++ b/src/main/java/io/github/talelin/latticy/module/file/File.java @@ -4,6 +4,7 @@ /** * @author pedro@TaleLin + * 文件对象 */ @Setter @Getter diff --git a/src/main/java/io/github/talelin/latticy/module/file/FileConstant.java b/src/main/java/io/github/talelin/latticy/module/file/FileConstant.java deleted file mode 100644 index 5eaf13ad..00000000 --- a/src/main/java/io/github/talelin/latticy/module/file/FileConstant.java +++ /dev/null @@ -1,19 +0,0 @@ -package io.github.talelin.latticy.module.file; - -/** - * 文件相关常量值 - * - * @author pedro@TaleLin - */ -public class FileConstant { - - /** - * 本地文件 - */ - public static final String LOCAL = "LOCAL"; - - /** - * 远程文件,例如OSS - */ - public static final String REMOTE = "REMOTE"; -} diff --git a/src/main/java/io/github/talelin/latticy/module/file/FileProperties.java b/src/main/java/io/github/talelin/latticy/module/file/FileProperties.java index 98b02ccc..2e62398d 100644 --- a/src/main/java/io/github/talelin/latticy/module/file/FileProperties.java +++ b/src/main/java/io/github/talelin/latticy/module/file/FileProperties.java @@ -7,6 +7,7 @@ /** * @author pedro@TaleLin + * 文件配置类 */ @Component @ConfigurationProperties("lin.file") diff --git a/src/main/java/io/github/talelin/latticy/module/file/FileTypeEnum.java b/src/main/java/io/github/talelin/latticy/module/file/FileTypeEnum.java new file mode 100644 index 00000000..fb53f6d9 --- /dev/null +++ b/src/main/java/io/github/talelin/latticy/module/file/FileTypeEnum.java @@ -0,0 +1,32 @@ +package io.github.talelin.latticy.module.file; + +import com.baomidou.mybatisplus.annotation.IEnum; + +/** + * @author colorful + * 文件类型枚举 + */ +public enum FileTypeEnum implements IEnum { + + /** + * 本地文件 + */ + LOCAL("LOCAL"), + + /** + * 远程文件,例如OSS + */ + REMOTE("REMOTE") + ; + + final String value; + + FileTypeEnum(String value) { + this.value = value; + } + + @Override + public String getValue() { + return value; + } +} diff --git a/src/main/java/io/github/talelin/latticy/module/file/FileUtil.java b/src/main/java/io/github/talelin/latticy/module/file/FileUtil.java index be14b144..37bdea87 100644 --- a/src/main/java/io/github/talelin/latticy/module/file/FileUtil.java +++ b/src/main/java/io/github/talelin/latticy/module/file/FileUtil.java @@ -11,9 +11,12 @@ /** * @author pedro@TaleLin * @author colorful@TaleLin + * 文件工具类 */ public class FileUtil { + private FileUtil() {} + public static FileSystem getDefaultFileSystem() { return FileSystems.getDefault(); } diff --git a/src/main/java/io/github/talelin/latticy/module/file/UploadHandler.java b/src/main/java/io/github/talelin/latticy/module/file/UploadHandler.java index e5886a67..e4879626 100644 --- a/src/main/java/io/github/talelin/latticy/module/file/UploadHandler.java +++ b/src/main/java/io/github/talelin/latticy/module/file/UploadHandler.java @@ -1,7 +1,7 @@ package io.github.talelin.latticy.module.file; /** - * 文件前预处理器 + * 上传预处理器 * * @author pedro@TaleLin */ @@ -10,12 +10,15 @@ public interface UploadHandler { /** * 在文件写入本地或者上传到云之前调用此方法 * + * @param file 文件对象 * @return 是否上传,若返回false,则不上传 */ boolean preHandle(File file); /** * 在文件写入本地或者上传到云之后调用此方法 + * + * @param file 文件对象 */ void afterHandle(File file); } diff --git a/src/main/java/io/github/talelin/latticy/module/log/MDCAccessConstant.java b/src/main/java/io/github/talelin/latticy/module/log/MDCAccessConstant.java index e897fdc7..e5d77eb9 100644 --- a/src/main/java/io/github/talelin/latticy/module/log/MDCAccessConstant.java +++ b/src/main/java/io/github/talelin/latticy/module/log/MDCAccessConstant.java @@ -1,10 +1,14 @@ package io.github.talelin.latticy.module.log; /** + * 日志常量类 * @author Juzi@TaleLin * @date 2020/6/20 10:22 */ public class MDCAccessConstant { + + private MDCAccessConstant() {} + public static final String REQUEST_METHOD_MDC_KEY = "req.method"; public static final String RESPONSE_STATUS_MDC_KEY = "res.status"; public static final String REQUEST_REFERER_MDC_KEY = "req.referer"; diff --git a/src/main/java/io/github/talelin/latticy/module/message/MessageConstant.java b/src/main/java/io/github/talelin/latticy/module/message/MessageConstant.java index a0264d9d..54805e9b 100644 --- a/src/main/java/io/github/talelin/latticy/module/message/MessageConstant.java +++ b/src/main/java/io/github/talelin/latticy/module/message/MessageConstant.java @@ -6,5 +6,8 @@ * @author pedro@TaleLin */ public class MessageConstant { + + private MessageConstant() {} + public static final String USER_KEY = "user"; } diff --git a/src/main/java/io/github/talelin/latticy/module/message/MessageWebSocketHandler.java b/src/main/java/io/github/talelin/latticy/module/message/MessageWebSocketHandler.java index e3b91715..5e89318e 100644 --- a/src/main/java/io/github/talelin/latticy/module/message/MessageWebSocketHandler.java +++ b/src/main/java/io/github/talelin/latticy/module/message/MessageWebSocketHandler.java @@ -5,6 +5,7 @@ /** * @author pedro@TaleLin + * websocket 消息实现类 */ public class MessageWebSocketHandler implements WebSocketHandler { diff --git a/src/main/java/io/github/talelin/latticy/module/message/WebSocketInterceptor.java b/src/main/java/io/github/talelin/latticy/module/message/WebSocketInterceptor.java index b106e23e..7c3e66ba 100644 --- a/src/main/java/io/github/talelin/latticy/module/message/WebSocketInterceptor.java +++ b/src/main/java/io/github/talelin/latticy/module/message/WebSocketInterceptor.java @@ -27,6 +27,7 @@ /** * @author pedro@TaleLin * @author Juzi@TaleLin + * websocket 拦截器,主要是jwt鉴权 */ public class WebSocketInterceptor implements HandshakeInterceptor { @Autowired @@ -75,7 +76,7 @@ public boolean beforeHandshake(ServerHttpRequest request, ServerHttpResponse res @Override public void afterHandshake(ServerHttpRequest serverHttpRequest, ServerHttpResponse serverHttpResponse, WebSocketHandler webSocketHandler, Exception e) { - + // default implementation ignored } private boolean verifyAdmin(UserDO user) { diff --git a/src/main/java/io/github/talelin/latticy/module/message/WebsocketConfiguration.java b/src/main/java/io/github/talelin/latticy/module/message/WebsocketConfiguration.java index 0965ba4c..d4ce12e6 100644 --- a/src/main/java/io/github/talelin/latticy/module/message/WebsocketConfiguration.java +++ b/src/main/java/io/github/talelin/latticy/module/message/WebsocketConfiguration.java @@ -10,6 +10,7 @@ /** * @author pedro@TaleLin + * websocket 配置类 */ @Configuration @ConditionalOnProperty(prefix = "lin.cms.websocket", value = "enable", havingValue = "true") diff --git a/src/main/java/io/github/talelin/latticy/module/message/WsHandler.java b/src/main/java/io/github/talelin/latticy/module/message/WsHandler.java index 24f2c0aa..c81636dc 100644 --- a/src/main/java/io/github/talelin/latticy/module/message/WsHandler.java +++ b/src/main/java/io/github/talelin/latticy/module/message/WsHandler.java @@ -9,6 +9,7 @@ /** * @author pedro@TaleLin * @author Juzi@TaleLin + * websocket 接口 */ public interface WsHandler { diff --git a/src/main/java/io/github/talelin/latticy/module/message/WsHandlerImpl.java b/src/main/java/io/github/talelin/latticy/module/message/WsHandlerImpl.java index 55cdfab6..686eff66 100644 --- a/src/main/java/io/github/talelin/latticy/module/message/WsHandlerImpl.java +++ b/src/main/java/io/github/talelin/latticy/module/message/WsHandlerImpl.java @@ -17,6 +17,7 @@ /** * @author pedro@TaleLin * @author Juzi@TaleLin + * websocket实现类 */ @Slf4j public class WsHandlerImpl implements WsHandler { diff --git a/src/main/java/io/github/talelin/latticy/service/AdminService.java b/src/main/java/io/github/talelin/latticy/service/AdminService.java index 7f725d91..f1aeede8 100644 --- a/src/main/java/io/github/talelin/latticy/service/AdminService.java +++ b/src/main/java/io/github/talelin/latticy/service/AdminService.java @@ -19,6 +19,7 @@ /** * @author pedro@TaleLin * @author Juzi@TaleLin + * 管理员服务接口 */ public interface AdminService { diff --git a/src/main/java/io/github/talelin/latticy/service/BookService.java b/src/main/java/io/github/talelin/latticy/service/BookService.java index 89f45302..d9d5e3a2 100644 --- a/src/main/java/io/github/talelin/latticy/service/BookService.java +++ b/src/main/java/io/github/talelin/latticy/service/BookService.java @@ -8,18 +8,49 @@ /** * @author pedro@TaleLin * @author Juzi@TaleLin + * 图书服务接口 */ public interface BookService { + /** + * 新增图书 + * @param validator 数据传输对象 + * @return 是否成功 + */ boolean createBook(CreateOrUpdateBookDTO validator); + /** + * 根据关键字获取图书集合 + * @param q 查询关键字 + * @return BookDO List + */ List getBookByKeyword(String q); + /** + * 更新图书 + * @param book 图书对象 + * @param validator 数据传输对象 + * @return 是否更新成功 + */ boolean updateBook(BookDO book, CreateOrUpdateBookDTO validator); + /** + * 获取图书 + * @param id 主键id + * @return 图书数据对象 + */ BookDO getById(Integer id); + /** + * 查询所有图书 + * @return 图书数据对象集合 + */ List findAll(); + /** + * 删除图书 + * @param id 主键id + * @return 是否删除成功 + */ boolean deleteById(Integer id); } diff --git a/src/main/java/io/github/talelin/latticy/service/FileService.java b/src/main/java/io/github/talelin/latticy/service/FileService.java index 37a36d54..18fb75b8 100644 --- a/src/main/java/io/github/talelin/latticy/service/FileService.java +++ b/src/main/java/io/github/talelin/latticy/service/FileService.java @@ -10,6 +10,7 @@ /** * @author pedro@TaleLin + * 文件服务接口 */ public interface FileService extends IService { diff --git a/src/main/java/io/github/talelin/latticy/service/GroupService.java b/src/main/java/io/github/talelin/latticy/service/GroupService.java index 2b68d1f6..58c2f3a9 100644 --- a/src/main/java/io/github/talelin/latticy/service/GroupService.java +++ b/src/main/java/io/github/talelin/latticy/service/GroupService.java @@ -11,6 +11,7 @@ /** * @author pedro@TaleLin * @author Juzi@TaleLin + * 分组服务接口 */ public interface GroupService extends IService { @@ -110,4 +111,5 @@ public interface GroupService extends IService { * @return 用户组id */ Integer getParticularGroupIdByLevel(GroupLevelEnum level); + } diff --git a/src/main/java/io/github/talelin/latticy/service/LogService.java b/src/main/java/io/github/talelin/latticy/service/LogService.java index 83c12a18..977025ed 100644 --- a/src/main/java/io/github/talelin/latticy/service/LogService.java +++ b/src/main/java/io/github/talelin/latticy/service/LogService.java @@ -9,6 +9,7 @@ /** * @author pedro@TaleLin * @author Juzi@TaleLin + * 日志服务接口 */ public interface LogService extends IService { diff --git a/src/main/java/io/github/talelin/latticy/service/PermissionService.java b/src/main/java/io/github/talelin/latticy/service/PermissionService.java index cb9b2cc1..2a03a96b 100644 --- a/src/main/java/io/github/talelin/latticy/service/PermissionService.java +++ b/src/main/java/io/github/talelin/latticy/service/PermissionService.java @@ -9,6 +9,7 @@ /** * @author pedro@TaleLin * @author Juzi@TaleLin + * 权限服务接口 */ public interface PermissionService extends IService { diff --git a/src/main/java/io/github/talelin/latticy/service/UserIdentityService.java b/src/main/java/io/github/talelin/latticy/service/UserIdentityService.java index 7f149438..75a50809 100644 --- a/src/main/java/io/github/talelin/latticy/service/UserIdentityService.java +++ b/src/main/java/io/github/talelin/latticy/service/UserIdentityService.java @@ -6,6 +6,7 @@ /** * @author pedro@TaleLin * @author Juzi@TaleLin + * 用户身份标识服务接口 */ public interface UserIdentityService extends IService { diff --git a/src/main/java/io/github/talelin/latticy/service/UserService.java b/src/main/java/io/github/talelin/latticy/service/UserService.java index 8b28e589..33c0af79 100644 --- a/src/main/java/io/github/talelin/latticy/service/UserService.java +++ b/src/main/java/io/github/talelin/latticy/service/UserService.java @@ -2,7 +2,7 @@ import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.service.IService; -import io.github.talelin.latticy.common.mybatis.Page; +import io.github.talelin.latticy.common.mybatis.LinPage; import io.github.talelin.latticy.dto.user.ChangePasswordDTO; import io.github.talelin.latticy.dto.user.RegisterDTO; import io.github.talelin.latticy.dto.user.UpdateInfoDTO; @@ -11,11 +11,14 @@ import io.github.talelin.latticy.model.UserDO; import io.github.talelin.latticy.vo.LoginCaptchaVO; +import java.awt.*; +import java.io.IOException; +import java.security.GeneralSecurityException; import java.util.List; import java.util.Map; /** - * 用户业务 + * 用户服务实现类 * * @author pedro@TaleLin * @author Juzi@TaleLin @@ -121,7 +124,7 @@ public interface UserService extends IService { * @param groupId 分组id * @return 数据页 */ - IPage getUserPageByGroupId(Page pager, Integer groupId); + IPage getUserPageByGroupId(LinPage pager, Integer groupId); /** @@ -134,9 +137,12 @@ public interface UserService extends IService { /** * 生成无状态的登录验证码 * - * @return 验证码 + * @return LoginCaptchaVO 验证码视图对象 + * @throws IOException + * @throws FontFormatException + * @throws GeneralSecurityException */ - LoginCaptchaVO generateCaptcha() throws Exception; + LoginCaptchaVO generateCaptcha() throws IOException, FontFormatException, GeneralSecurityException; /** * 校验登录验证码 diff --git a/src/main/java/io/github/talelin/latticy/service/impl/AdminServiceImpl.java b/src/main/java/io/github/talelin/latticy/service/impl/AdminServiceImpl.java index 54ed2f37..963b15a7 100644 --- a/src/main/java/io/github/talelin/latticy/service/impl/AdminServiceImpl.java +++ b/src/main/java/io/github/talelin/latticy/service/impl/AdminServiceImpl.java @@ -6,22 +6,12 @@ import io.github.talelin.autoconfigure.exception.NotFoundException; import io.github.talelin.latticy.bo.GroupPermissionBO; import io.github.talelin.latticy.common.enumeration.GroupLevelEnum; -import io.github.talelin.latticy.common.mybatis.Page; -import io.github.talelin.latticy.dto.admin.DispatchPermissionDTO; -import io.github.talelin.latticy.dto.admin.DispatchPermissionsDTO; -import io.github.talelin.latticy.dto.admin.NewGroupDTO; -import io.github.talelin.latticy.dto.admin.RemovePermissionsDTO; -import io.github.talelin.latticy.dto.admin.ResetPasswordDTO; -import io.github.talelin.latticy.dto.admin.UpdateGroupDTO; -import io.github.talelin.latticy.dto.admin.UpdateUserInfoDTO; +import io.github.talelin.latticy.common.mybatis.LinPage; +import io.github.talelin.latticy.dto.admin.*; import io.github.talelin.latticy.mapper.GroupPermissionMapper; import io.github.talelin.latticy.mapper.UserGroupMapper; import io.github.talelin.latticy.model.*; -import io.github.talelin.latticy.service.AdminService; -import io.github.talelin.latticy.service.GroupService; -import io.github.talelin.latticy.service.PermissionService; -import io.github.talelin.latticy.service.UserIdentityService; -import io.github.talelin.latticy.service.UserService; +import io.github.talelin.latticy.service.*; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -36,6 +26,7 @@ * @author pedro@TaleLin * @author colorful@TaleLin * @author Juzi@TaleLin + * 管理员服务实现类 */ @Service public class AdminServiceImpl implements AdminService { @@ -60,7 +51,7 @@ public class AdminServiceImpl implements AdminService { @Override public IPage getUserPageByGroupId(Integer groupId, Integer count, Integer page) { - Page pager = new Page<>(page, count); + LinPage pager = new LinPage<>(page, count); IPage iPage; // 如果group_id为空,则以分页的形式返回所有用户 if (groupId == null) { @@ -80,7 +71,7 @@ public boolean changeUserPassword(Integer id, ResetPasswordDTO dto) { return userIdentityService.changePassword(id, dto.getNewPassword()); } - @Transactional + @Transactional(rollbackFor = Exception.class) @Override public boolean deleteUser(Integer id) { throwUserNotExistById(id); @@ -113,8 +104,7 @@ public boolean updateUserInfo(Integer id, UpdateUserInfoDTO validator) { @Override public IPage getGroupPage(Integer page, Integer count) { - IPage iPage = groupService.getGroupPage(page, count); - return iPage; + return groupService.getGroupPage(page, count); } @Override @@ -123,7 +113,7 @@ public GroupPermissionBO getGroup(Integer id) { return groupService.getGroupAndPermissions(id); } - @Transactional + @Transactional(rollbackFor = Exception.class) @Override public boolean createGroup(NewGroupDTO dto) { throwGroupNameExist(dto.getName()); @@ -165,7 +155,7 @@ public boolean deleteGroup(Integer id) { } throwGroupNotExistById(id); List groupUserIds = groupService.getGroupUserIds(id); - if(groupUserIds.size() > 0) { + if(!groupUserIds.isEmpty()) { throw new ForbiddenException(10027); } return groupService.removeById(id); @@ -195,8 +185,7 @@ public List getAllGroups() { QueryWrapper wrapper = new QueryWrapper<>(); Integer rootGroupId = groupService.getParticularGroupIdByLevel(GroupLevelEnum.ROOT); wrapper.lambda().ne(GroupDO::getId, rootGroupId); - List groups = groupService.list(wrapper); - return groups; + return groupService.list(wrapper); } @Override diff --git a/src/main/java/io/github/talelin/latticy/service/impl/BookServiceImpl.java b/src/main/java/io/github/talelin/latticy/service/impl/BookServiceImpl.java index e89c276c..c09b4dc8 100644 --- a/src/main/java/io/github/talelin/latticy/service/impl/BookServiceImpl.java +++ b/src/main/java/io/github/talelin/latticy/service/impl/BookServiceImpl.java @@ -12,6 +12,7 @@ /** * @author pedro@TaleLin * @author Juzi@TaleLin + * 图书服务实现类 */ @Service public class BookServiceImpl implements BookService { @@ -31,8 +32,7 @@ public boolean createBook(CreateOrUpdateBookDTO validator) { @Override public List getBookByKeyword(String q) { - List books = bookMapper.selectByTitleLikeKeyword(q); - return books; + return bookMapper.selectByTitleLikeKeyword(q); } @Override @@ -46,14 +46,12 @@ public boolean updateBook(BookDO book, CreateOrUpdateBookDTO validator) { @Override public BookDO getById(Integer id) { - BookDO book = bookMapper.selectById(id); - return book; + return bookMapper.selectById(id); } @Override public List findAll() { - List books = bookMapper.selectList(null); - return books; + return bookMapper.selectList(null); } @Override diff --git a/src/main/java/io/github/talelin/latticy/service/impl/FileServiceImpl.java b/src/main/java/io/github/talelin/latticy/service/impl/FileServiceImpl.java index 121c89f8..ac219a67 100644 --- a/src/main/java/io/github/talelin/latticy/service/impl/FileServiceImpl.java +++ b/src/main/java/io/github/talelin/latticy/service/impl/FileServiceImpl.java @@ -19,6 +19,7 @@ * @author pedro@TaleLin * @author Juzi@TaleLin * @author colorful@TaleLin + * 文件服务接口实现类 */ @Service public class FileServiceImpl extends ServiceImpl implements FileService { @@ -46,8 +47,7 @@ public List upload(MultiValueMap fileMap) { @Override public boolean preHandle(File file) { FileDO found = baseMapper.selectByMd5(file.getMd5()); - // 数据库中不存在,存储操作放在上传到本地或云上之后, - // 修复issue131:https://github.com/TaleLin/lin-cms-spring-boot/issues/131 + // 数据库中不存在,存储操作放在上传到本地或云上之后 if (found == null) { return true; } @@ -58,7 +58,7 @@ public boolean preHandle(File file) { @Override public void afterHandle(File file) { - // 保存到数据库, 修复issue131:https://github.com/TaleLin/lin-cms-spring-boot/issues/131 + // 保存到数据库 FileDO fileDO = new FileDO(); BeanUtils.copyProperties(file, fileDO); getBaseMapper().insert(fileDO); @@ -76,13 +76,13 @@ public boolean checkFileExistByMd5(String md5) { private FileBO transformDoToBo(FileDO file, String key) { FileBO bo = new FileBO(); BeanUtils.copyProperties(file, bo); - if (file.getType().equals(FileConstant.LOCAL)) { + if (file.getType().equals(FileTypeEnum.LOCAL.getValue())) { String s = fileProperties.getServePath().split("/")[0]; // replaceAll 是将 windows 平台下的 \ 替换为 / if(System.getProperties().getProperty("os.name").toUpperCase().contains("WINDOWS")){ bo.setUrl(fileProperties.getDomain() + s + "/" + file.getPath().replaceAll("\\\\","/")); - }else { + } else { bo.setUrl(fileProperties.getDomain() + s + "/" + file.getPath()); } } else { diff --git a/src/main/java/io/github/talelin/latticy/service/impl/GroupServiceImpl.java b/src/main/java/io/github/talelin/latticy/service/impl/GroupServiceImpl.java index 1b5c7070..405fabc2 100644 --- a/src/main/java/io/github/talelin/latticy/service/impl/GroupServiceImpl.java +++ b/src/main/java/io/github/talelin/latticy/service/impl/GroupServiceImpl.java @@ -6,7 +6,7 @@ import io.github.talelin.autoconfigure.exception.ForbiddenException; import io.github.talelin.latticy.bo.GroupPermissionBO; import io.github.talelin.latticy.common.enumeration.GroupLevelEnum; -import io.github.talelin.latticy.common.mybatis.Page; +import io.github.talelin.latticy.common.mybatis.LinPage; import io.github.talelin.latticy.mapper.GroupMapper; import io.github.talelin.latticy.mapper.UserGroupMapper; import io.github.talelin.latticy.model.GroupDO; @@ -24,6 +24,7 @@ * @author pedro@TaleLin * @author colorful@TaleLin * @author Juzi@TaleLin + * 分组服务实现类 */ @Service public class GroupServiceImpl extends ServiceImpl implements GroupService { @@ -46,7 +47,7 @@ public List getUserGroupIdsByUserId(Integer userId) { @Override public IPage getGroupPage(int page, int count) { - Page pager = new Page<>(page, count); + LinPage pager = new LinPage<>(page, count); return this.baseMapper.selectPage(pager, null); } @@ -122,8 +123,7 @@ public GroupDO getParticularGroupByLevel(GroupLevelEnum level) { } else { QueryWrapper wrapper = new QueryWrapper<>(); wrapper.lambda().eq(GroupDO::getLevel, level.getValue()); - GroupDO groupDO = this.baseMapper.selectOne(wrapper); - return groupDO; + return this.baseMapper.selectOne(wrapper); } } diff --git a/src/main/java/io/github/talelin/latticy/service/impl/LogServiceImpl.java b/src/main/java/io/github/talelin/latticy/service/impl/LogServiceImpl.java index a3f893f5..970edfb6 100644 --- a/src/main/java/io/github/talelin/latticy/service/impl/LogServiceImpl.java +++ b/src/main/java/io/github/talelin/latticy/service/impl/LogServiceImpl.java @@ -2,7 +2,7 @@ import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; -import io.github.talelin.latticy.common.mybatis.Page; +import io.github.talelin.latticy.common.mybatis.LinPage; import io.github.talelin.latticy.mapper.LogMapper; import io.github.talelin.latticy.model.LogDO; import io.github.talelin.latticy.service.LogService; @@ -13,34 +13,32 @@ /** * @author pedro@TaleLin * @author Juzi@TaleLin + * 日志服务实现类 */ @Service public class LogServiceImpl extends ServiceImpl implements LogService { @Override public IPage getLogPage(Integer page, Integer count, String name, Date start, Date end) { - Page pager = new Page<>(page, count); - IPage iPage = this.baseMapper.findLogsByUsernameAndRange(pager, name, start, end); - return iPage; + LinPage pager = new LinPage<>(page, count); + return this.baseMapper.findLogsByUsernameAndRange(pager, name, start, end); } @Override public IPage searchLogPage(Integer page, Integer count, String name, String keyword, Date start, Date end) { - Page pager = new Page<>(page, count); - IPage iPage = this.baseMapper.searchLogsByUsernameAndKeywordAndRange(pager, name, "%" + keyword + "%", start, end); - return iPage; + LinPage pager = new LinPage<>(page, count); + return this.baseMapper.searchLogsByUsernameAndKeywordAndRange(pager, name, "%" + keyword + "%", start, end); } @Override public IPage getUserNamePage(Integer page, Integer count) { - Page pager = new Page<>(page, count); - IPage iPage = this.baseMapper.getUserNames(pager); - return iPage; + LinPage pager = new LinPage<>(page, count); + return this.baseMapper.getUserNames(pager); } @Override public boolean createLog(String message, String permission, Integer userId, String username, String method, String path, Integer status) { - LogDO record = LogDO.builder() + LogDO log = LogDO.builder() .message(message) .userId(userId) .username(username) @@ -49,8 +47,8 @@ public boolean createLog(String message, String permission, Integer userId, Stri .path(path) .build(); if (permission != null) { - record.setPermission(permission); + log.setPermission(permission); } - return this.baseMapper.insert(record) > 0; + return this.baseMapper.insert(log) > 0; } } diff --git a/src/main/java/io/github/talelin/latticy/service/impl/PermissionServiceImpl.java b/src/main/java/io/github/talelin/latticy/service/impl/PermissionServiceImpl.java index cdb7cc12..0655aa62 100644 --- a/src/main/java/io/github/talelin/latticy/service/impl/PermissionServiceImpl.java +++ b/src/main/java/io/github/talelin/latticy/service/impl/PermissionServiceImpl.java @@ -14,6 +14,7 @@ /** * @author pedro@TaleLin * @author Juzi@TaleLin + * 权限服务实现类 */ @Service public class PermissionServiceImpl extends ServiceImpl implements PermissionService { @@ -48,7 +49,7 @@ public Map> getPermissionMapByGroupIds(List gr @Override public List>>> structuringPermissions(List permissions) { - Map>> tmp = new HashMap(); + Map>> tmp = new HashMap(50); permissions.forEach(permission -> { if (!tmp.containsKey(permission.getModule())) { Map tiny = new HashMap(); diff --git a/src/main/java/io/github/talelin/latticy/service/impl/UserIdentityServiceImpl.java b/src/main/java/io/github/talelin/latticy/service/impl/UserIdentityServiceImpl.java index 52642df6..08d3ecce 100644 --- a/src/main/java/io/github/talelin/latticy/service/impl/UserIdentityServiceImpl.java +++ b/src/main/java/io/github/talelin/latticy/service/impl/UserIdentityServiceImpl.java @@ -12,6 +12,7 @@ /** * @author pedro@TaleLin * @author Juzi@TaleLin + * 用户身份标识服务实现类 */ @Service public class UserIdentityServiceImpl extends ServiceImpl implements UserIdentityService { diff --git a/src/main/java/io/github/talelin/latticy/service/impl/UserServiceImpl.java b/src/main/java/io/github/talelin/latticy/service/impl/UserServiceImpl.java index 5dde38bd..299fbe62 100644 --- a/src/main/java/io/github/talelin/latticy/service/impl/UserServiceImpl.java +++ b/src/main/java/io/github/talelin/latticy/service/impl/UserServiceImpl.java @@ -11,7 +11,8 @@ import io.github.talelin.latticy.common.LocalUser; import io.github.talelin.latticy.common.configuration.LoginCaptchaProperties; import io.github.talelin.latticy.common.enumeration.GroupLevelEnum; -import io.github.talelin.latticy.common.mybatis.Page; +import io.github.talelin.latticy.common.mybatis.LinPage; +import io.github.talelin.latticy.common.util.BeanCopyUtil; import io.github.talelin.latticy.common.util.CaptchaUtil; import io.github.talelin.latticy.dto.user.ChangePasswordDTO; import io.github.talelin.latticy.dto.user.RegisterDTO; @@ -33,6 +34,9 @@ import org.springframework.transaction.annotation.Transactional; import org.springframework.util.StringUtils; +import java.awt.*; +import java.io.IOException; +import java.security.GeneralSecurityException; import java.util.ArrayList; import java.util.List; import java.util.Map; @@ -42,6 +46,7 @@ * @author pedro@TaleLin * @author colorful@TaleLin * @author Juzi@TaleLin + * 用户服务实现类 */ @Service public class UserServiceImpl extends ServiceImpl implements UserService { @@ -114,20 +119,7 @@ public UserDO updateUserInfo(UpdateInfoDTO dto) { user.setUsername(dto.getUsername()); } } - - // todo 增加工具类实现忽略 null 的 BeanCopy,简化这段代码 - if (dto.getUsername() != null) { - user.setUsername(dto.getUsername()); - } - if (dto.getAvatar() != null) { - user.setAvatar(dto.getAvatar()); - } - if (dto.getEmail() != null) { - user.setEmail(dto.getEmail()); - } - if (dto.getNickname() != null) { - user.setNickname(dto.getNickname()); - } + BeanCopyUtil.copyNonNullProperties(dto, user); this.baseMapper.updateById(user); return user; @@ -162,7 +154,7 @@ public List>>> getStructuralUserPermissions public List getUserPermissions(Integer userId) { // 查找用户搜索分组,查找分组下的所有权限 List groupIds = groupService.getUserGroupIdsByUserId(userId); - if (groupIds == null || groupIds.size() == 0) { + if (groupIds == null || groupIds.isEmpty()) { return new ArrayList<>(); } return permissionService.getPermissionByGroupIds(groupIds); @@ -171,7 +163,7 @@ public List getUserPermissions(Integer userId) { @Override public List getUserPermissionsByModule(Integer userId, String module) { List groupIds = groupService.getUserGroupIdsByUserId(userId); - if (groupIds == null || groupIds.size() == 0) { + if (groupIds == null || groupIds.isEmpty()) { return new ArrayList<>(); } return permissionService.getPermissionByGroupIdsAndModule(groupIds, module); @@ -205,7 +197,7 @@ public boolean checkUserExistById(Integer id) { } @Override - public IPage getUserPageByGroupId(Page pager, Integer groupId) { + public IPage getUserPageByGroupId(LinPage pager, Integer groupId) { Integer rootGroupId = groupService.getParticularGroupIdByLevel(GroupLevelEnum.ROOT); return this.baseMapper.selectPageByGroupId(pager, groupId, rootGroupId); } @@ -223,7 +215,7 @@ public Integer getRootUserId() { } @Override - public LoginCaptchaVO generateCaptcha() throws Exception { + public LoginCaptchaVO generateCaptcha() throws IOException, FontFormatException, GeneralSecurityException { String code = CaptchaUtil.getRandomString(CaptchaUtil.RANDOM_STR_NUM); String base64String = CaptchaUtil.getRandomCodeBase64(code); String tag = CaptchaUtil.getTag(code, captchaConfig.getSecret(), captchaConfig.getIv()); diff --git a/src/main/java/io/github/talelin/latticy/vo/CreatedVO.java b/src/main/java/io/github/talelin/latticy/vo/CreatedVO.java index e28fe9a3..ba969cce 100644 --- a/src/main/java/io/github/talelin/latticy/vo/CreatedVO.java +++ b/src/main/java/io/github/talelin/latticy/vo/CreatedVO.java @@ -6,6 +6,7 @@ /** * @author colorful@TaleLin + * 创建成功视图对象 */ public class CreatedVO extends UnifyResponseVO { diff --git a/src/main/java/io/github/talelin/latticy/vo/DeletedVO.java b/src/main/java/io/github/talelin/latticy/vo/DeletedVO.java index 67e3a492..3a6a46fb 100644 --- a/src/main/java/io/github/talelin/latticy/vo/DeletedVO.java +++ b/src/main/java/io/github/talelin/latticy/vo/DeletedVO.java @@ -6,6 +6,7 @@ /** * @author colorful@TaleLin + * 删除成功视图对象 */ public class DeletedVO extends UnifyResponseVO { diff --git a/src/main/java/io/github/talelin/latticy/vo/LoginCaptchaVO.java b/src/main/java/io/github/talelin/latticy/vo/LoginCaptchaVO.java index 165ed2c5..9700d657 100644 --- a/src/main/java/io/github/talelin/latticy/vo/LoginCaptchaVO.java +++ b/src/main/java/io/github/talelin/latticy/vo/LoginCaptchaVO.java @@ -6,6 +6,7 @@ /** * @author Gadfly + * 登录验证码视图对象 */ @Data @NoArgsConstructor diff --git a/src/main/java/io/github/talelin/latticy/vo/PageResponseVO.java b/src/main/java/io/github/talelin/latticy/vo/PageResponseVO.java index 0796390b..09c586f8 100644 --- a/src/main/java/io/github/talelin/latticy/vo/PageResponseVO.java +++ b/src/main/java/io/github/talelin/latticy/vo/PageResponseVO.java @@ -8,7 +8,7 @@ import java.util.List; /** - * 分页数据统一 view object + * 分页数据统一视图对象 * * @author pedro@TaleLin */ diff --git a/src/main/java/io/github/talelin/latticy/vo/UnifyResponseVO.java b/src/main/java/io/github/talelin/latticy/vo/UnifyResponseVO.java index 3ca5f973..eaf5320c 100644 --- a/src/main/java/io/github/talelin/latticy/vo/UnifyResponseVO.java +++ b/src/main/java/io/github/talelin/latticy/vo/UnifyResponseVO.java @@ -10,7 +10,7 @@ /** - * 统一API响应结果封装 + * 统一API响应结果封装视图对象 * * @author pedro@TaleLin * @author colorful@TaleLin diff --git a/src/main/java/io/github/talelin/latticy/vo/UpdatedVO.java b/src/main/java/io/github/talelin/latticy/vo/UpdatedVO.java index 26aed191..633a31b6 100644 --- a/src/main/java/io/github/talelin/latticy/vo/UpdatedVO.java +++ b/src/main/java/io/github/talelin/latticy/vo/UpdatedVO.java @@ -6,6 +6,7 @@ /** * @author pedro@TaleLin + * 更新成功视图对象 */ public class UpdatedVO extends UnifyResponseVO { diff --git a/src/test/java/io/github/talelin/latticy/mapper/LogMapperTest.java b/src/test/java/io/github/talelin/latticy/mapper/LogMapperTest.java index a51d222b..407593b0 100644 --- a/src/test/java/io/github/talelin/latticy/mapper/LogMapperTest.java +++ b/src/test/java/io/github/talelin/latticy/mapper/LogMapperTest.java @@ -1,7 +1,7 @@ package io.github.talelin.latticy.mapper; import com.baomidou.mybatisplus.core.metadata.IPage; -import io.github.talelin.latticy.common.mybatis.Page; +import io.github.talelin.latticy.common.mybatis.LinPage; import io.github.talelin.latticy.model.LogDO; import org.junit.jupiter.api.BeforeAll; import org.junit.jupiter.api.Test; @@ -24,7 +24,7 @@ @Rollback @ActiveProfiles("test") @TestInstance(TestInstance.Lifecycle.PER_CLASS) -public class LogMapperTest { +class LogMapperTest { @Autowired private LogMapper logMapper; @@ -56,20 +56,20 @@ public void setUp() throws Exception { } @Test - public void testFindLogsByUsernameAndRange() { + void testFindLogsByUsernameAndRange() { Date now = new Date(); - Page page = new Page<>(0, 10); + LinPage page = new LinPage<>(0, 10); IPage iPage = logMapper.findLogsByUsernameAndRange(page, username, start, now); List logs = iPage.getRecords(); assertTrue(logs.size() > 0); } @Test - public void testFindLogsByUsernameAndRange1() { + void testFindLogsByUsernameAndRange1() { long changed = start.getTime(); Date ch = new Date(changed - 1000); Date ch1 = new Date(changed - 2000); - Page page = new Page<>(1, 10); + LinPage page = new LinPage<>(1, 10); IPage iPage = logMapper.findLogsByUsernameAndRange(page, username, ch1, ch); List logs = iPage.getRecords(); assertEquals(0, logs.size()); diff --git a/src/test/java/io/github/talelin/latticy/mapper/UserMapperTest.java b/src/test/java/io/github/talelin/latticy/mapper/UserMapperTest.java index 2c0cafbc..f1dcd4ed 100644 --- a/src/test/java/io/github/talelin/latticy/mapper/UserMapperTest.java +++ b/src/test/java/io/github/talelin/latticy/mapper/UserMapperTest.java @@ -1,7 +1,7 @@ package io.github.talelin.latticy.mapper; import com.baomidou.mybatisplus.core.metadata.IPage; -import io.github.talelin.latticy.common.mybatis.Page; +import io.github.talelin.latticy.common.mybatis.LinPage; import io.github.talelin.latticy.model.GroupDO; import io.github.talelin.latticy.model.UserDO; import io.github.talelin.latticy.model.UserGroupDO; @@ -19,7 +19,7 @@ @Transactional @Rollback @ActiveProfiles("test") -public class UserMapperTest { +class UserMapperTest { @Autowired private UserMapper userMapper; @@ -32,7 +32,7 @@ public class UserMapperTest { @Test - public void selectCountByUsername() { + void selectCountByUsername() { String email = "13129982604@qq.com"; String username = "pedro-test"; UserDO userDO = new UserDO(); @@ -44,7 +44,7 @@ public void selectCountByUsername() { } @Test - public void selectCountById() { + void selectCountById() { String email = "13129982604@qq.com"; String username = "pedro-test"; UserDO userDO = new UserDO(); @@ -56,7 +56,7 @@ public void selectCountById() { } @Test - public void selectPageByGroupId() { + void selectPageByGroupId() { String email = "13129982604@qq.com"; String username = "pedro-test"; UserDO userDO = new UserDO(); @@ -69,7 +69,7 @@ public void selectPageByGroupId() { userGroupMapper.insert(new UserGroupDO(userDO.getId(), group.getId())); - Page page = new Page(0, 10); + LinPage page = new LinPage(0, 10); IPage iPage = userMapper.selectPageByGroupId(page, group.getId(), 99999); assertTrue(iPage.getTotal() > 0); boolean anyMatch = iPage.getRecords().stream().anyMatch(it -> it.getUsername().equals(username)); diff --git a/src/test/resources/mpg/templates/premium/controller.java.ftl b/src/test/resources/mpg/templates/premium/controller.java.ftl index 0e55d15c..1f7d93cd 100644 --- a/src/test/resources/mpg/templates/premium/controller.java.ftl +++ b/src/test/resources/mpg/templates/premium/controller.java.ftl @@ -5,7 +5,7 @@ import io.github.talelin.autoconfigure.exception.NotFoundException; <#if package.Controller?split(".")?last == "cms"> import io.github.talelin.core.annotation.LoginRequired; -import io.github.talelin.latticy.common.mybatis.Page; +import io.github.talelin.latticy.common.mybatis.LinPage; import io.github.talelin.latticy.common.util.PageUtil; import io.github.talelin.latticy.dto.query.BasePageDTO; import ${package.Service}.${table.serviceName};