Merge remote-tracking branch 'origin/2.0.x' into dev

# Conflicts:
#	README.md
#	continew-admin-common/src/main/java/top/charles7c/cnadmin/common/base/BaseReq.java
#	continew-admin-common/src/main/java/top/charles7c/cnadmin/common/base/BaseServiceImpl.java
#	continew-admin-common/src/main/java/top/charles7c/cnadmin/common/handler/GlobalExceptionHandler.java
#	continew-admin-common/src/main/java/top/charles7c/cnadmin/common/util/ExceptionUtils.java
#	continew-admin-common/src/main/java/top/charles7c/cnadmin/common/util/helper/QueryHelper.java
#	continew-admin-monitor/src/main/java/top/charles7c/cnadmin/monitor/interceptor/LogInterceptor.java
#	continew-admin-system/src/main/java/top/charles7c/cnadmin/system/model/req/DeptReq.java
#	continew-admin-system/src/main/java/top/charles7c/cnadmin/system/model/req/MenuReq.java
#	continew-admin-system/src/main/java/top/charles7c/cnadmin/system/model/req/RoleReq.java
#	continew-admin-system/src/main/java/top/charles7c/cnadmin/system/service/impl/DeptServiceImpl.java
#	continew-admin-system/src/main/java/top/charles7c/cnadmin/system/service/impl/RoleServiceImpl.java
#	continew-admin-system/src/main/java/top/charles7c/cnadmin/system/service/impl/UserServiceImpl.java
#	continew-admin-ui/src/components/footer/index.vue
#	continew-admin-webapi/src/main/java/top/charles7c/cnadmin/webapi/controller/common/CommonController.java
#	continew-admin-webapi/src/main/java/top/charles7c/cnadmin/webapi/controller/system/UserCenterController.java
#	continew-admin-webapi/src/main/resources/config/application-dev.yml
#	continew-admin-webapi/src/main/resources/config/application-prod.yml
#	pom.xml
This commit is contained in:
2023-11-04 23:57:06 +08:00
79 changed files with 256 additions and 177 deletions

View File

@@ -19,7 +19,7 @@ package top.charles7c.cnadmin.common.util;
import java.util.Date;
import java.util.List;
import javax.servlet.http.HttpServletResponse;
import jakarta.servlet.http.HttpServletResponse;
import lombok.AccessLevel;
import lombok.NoArgsConstructor;

View File

@@ -46,9 +46,8 @@ public class ExceptionUtils {
* 异常
*/
public static void printException(Runnable runnable, Throwable throwable) {
if (null == throwable && runnable instanceof Future<?>) {
if (null == throwable && runnable instanceof Future<?> future) {
try {
Future<?> future = (Future<?>)runnable;
if (future.isDone()) {
future.get();
}

View File

@@ -22,8 +22,8 @@ import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
import javax.mail.MessagingException;
import javax.mail.internet.MimeMessage;
import jakarta.mail.MessagingException;
import jakarta.mail.internet.MimeMessage;
import lombok.AccessLevel;
import lombok.Data;
@@ -200,14 +200,14 @@ public class MailUtils {
// 设置收信人
// 抄送人
if (CollUtil.isNotEmpty(ccs)) {
messageHelper.setCc(ccs.toArray(new String[0]));
messageHelper.setCc(ccs.toArray(String[]::new));
}
// 密送人
if (CollUtil.isNotEmpty(bccs)) {
messageHelper.setBcc(bccs.toArray(new String[0]));
messageHelper.setBcc(bccs.toArray(String[]::new));
}
// 收件人
messageHelper.setTo(tos.toArray(new String[0]));
messageHelper.setTo(tos.toArray(String[]::new));
// 设置附件
if (ArrayUtil.isNotEmpty(files)) {

View File

@@ -18,8 +18,8 @@ package top.charles7c.cnadmin.common.util;
import java.util.*;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;
import lombok.AccessLevel;
import lombok.NoArgsConstructor;

View File

@@ -18,7 +18,7 @@ package top.charles7c.cnadmin.common.util.helper;
import java.time.LocalDateTime;
import javax.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletRequest;
import lombok.AccessLevel;
import lombok.NoArgsConstructor;
@@ -26,7 +26,7 @@ import lombok.NoArgsConstructor;
import cn.dev33.satoken.context.SaHolder;
import cn.dev33.satoken.session.SaSession;
import cn.dev33.satoken.stp.StpUtil;
import cn.hutool.extra.servlet.ServletUtil;
import cn.hutool.extra.servlet.JakartaServletUtil;
import cn.hutool.extra.spring.SpringUtil;
import top.charles7c.cnadmin.common.constant.CacheConsts;
@@ -58,7 +58,7 @@ public class LoginHelper {
public static String login(LoginUser loginUser) {
// 记录登录信息
HttpServletRequest request = ServletUtils.getRequest();
loginUser.setClientIp(ServletUtil.getClientIP(request));
loginUser.setClientIp(JakartaServletUtil.getClientIP(request));
loginUser.setLocation(IpUtils.getCityInfo(loginUser.getClientIp()));
loginUser.setBrowser(ServletUtils.getBrowser(request));
LogContext logContext = LogContextHolder.get();

View File

@@ -20,6 +20,7 @@ import java.lang.reflect.Field;
import java.util.ArrayList;
import java.util.List;
import cn.hutool.core.collection.CollUtil;
import lombok.AccessLevel;
import lombok.NoArgsConstructor;
import lombok.extern.slf4j.Slf4j;
@@ -86,7 +87,7 @@ public class QueryHelper {
* 查询数据类型
*/
private static <Q, R> void buildQuery(Q query, Field field, QueryWrapper<R> queryWrapper) {
boolean accessible = field.isAccessible();
boolean accessible = field.canAccess(null);
try {
field.setAccessible(true);
// 没有 @Query直接返回
@@ -149,54 +150,31 @@ public class QueryHelper {
String columnName = StrUtil.toUnderlineCase(StrUtil.blankToDefault(property, fieldName));
QueryTypeEnum queryType = queryAnnotation.type();
switch (queryType) {
case EQUAL:
queryWrapper.eq(columnName, fieldValue);
break;
case NOT_EQUAL:
queryWrapper.ne(columnName, fieldValue);
break;
case GREATER_THAN:
queryWrapper.gt(columnName, fieldValue);
break;
case LESS_THAN:
queryWrapper.lt(columnName, fieldValue);
break;
case GREATER_THAN_OR_EQUAL:
queryWrapper.ge(columnName, fieldValue);
break;
case LESS_THAN_OR_EQUAL:
queryWrapper.le(columnName, fieldValue);
break;
case BETWEEN:
case EQUAL -> queryWrapper.eq(columnName, fieldValue);
case NOT_EQUAL -> queryWrapper.ne(columnName, fieldValue);
case GREATER_THAN -> queryWrapper.gt(columnName, fieldValue);
case LESS_THAN -> queryWrapper.lt(columnName, fieldValue);
case GREATER_THAN_OR_EQUAL -> queryWrapper.ge(columnName, fieldValue);
case LESS_THAN_OR_EQUAL -> queryWrapper.le(columnName, fieldValue);
case BETWEEN -> {
List<Object> between = new ArrayList<>((List<Object>)fieldValue);
ValidationUtils.throwIf(between.size() != 2, "[{}] 必须是一个范围", fieldName);
queryWrapper.between(columnName, between.get(0), between.get(1));
break;
case LEFT_LIKE:
queryWrapper.likeLeft(columnName, fieldValue);
break;
case INNER_LIKE:
queryWrapper.like(columnName, fieldValue);
break;
case RIGHT_LIKE:
queryWrapper.likeRight(columnName, fieldValue);
break;
case IN:
}
case LEFT_LIKE -> queryWrapper.likeLeft(columnName, fieldValue);
case INNER_LIKE -> queryWrapper.like(columnName, fieldValue);
case RIGHT_LIKE -> queryWrapper.likeRight(columnName, fieldValue);
case IN -> {
ValidationUtils.throwIfEmpty(fieldValue, "[{}] 不能为空", fieldName);
queryWrapper.in(columnName, (List<Object>)fieldValue);
break;
case NOT_IN:
}
case NOT_IN -> {
ValidationUtils.throwIfEmpty(fieldValue, "[{}] 不能为空", fieldName);
queryWrapper.notIn(columnName, (List<Object>)fieldValue);
break;
case IS_NULL:
queryWrapper.isNull(columnName);
break;
case IS_NOT_NULL:
queryWrapper.isNotNull(columnName);
break;
default:
throw new IllegalArgumentException(String.format("暂不支持 [%s] 查询类型", queryType));
}
case IS_NULL -> queryWrapper.isNull(columnName);
case IS_NOT_NULL -> queryWrapper.isNotNull(columnName);
default -> throw new IllegalArgumentException(String.format("暂不支持 [%s] 查询类型", queryType));
}
}
}