sonar代码规范问题修复;

This commit is contained in:
gaoqr
2024-09-14 10:47:03 +08:00
parent 73440a7f3a
commit 59296b19c8
30 changed files with 75 additions and 72 deletions
@@ -2,7 +2,6 @@ package com.cf.imes.framework.common.util.json;
import cn.hutool.core.text.CharSequenceUtil; import cn.hutool.core.text.CharSequenceUtil;
import cn.hutool.core.util.PrimitiveArrayUtil; import cn.hutool.core.util.PrimitiveArrayUtil;
import cn.hutool.core.util.StrUtil;
import cn.hutool.json.JSONUtil; import cn.hutool.json.JSONUtil;
import com.fasterxml.jackson.annotation.JsonInclude; import com.fasterxml.jackson.annotation.JsonInclude;
import com.fasterxml.jackson.core.type.TypeReference; import com.fasterxml.jackson.core.type.TypeReference;
@@ -144,7 +143,7 @@ public class JsonUtils {
} }
public static <T> List<T> parseArray(String text, Class<T> clazz) { public static <T> List<T> parseArray(String text, Class<T> clazz) {
if (StrUtil.isEmpty(text)) { if (CharSequenceUtil.isEmpty(text)) {
return new ArrayList<>(); return new ArrayList<>();
} }
try { try {
@@ -156,7 +155,7 @@ public class JsonUtils {
} }
public static <T> List<T> parseArray(String text, String path, Class<T> clazz) { public static <T> List<T> parseArray(String text, String path, Class<T> clazz) {
if (StrUtil.isEmpty(text)) { if (CharSequenceUtil.isEmpty(text)) {
return null; return null;
} }
try { try {
@@ -2,7 +2,7 @@ package com.cf.imes.framework.organ.core.job;
import cn.hutool.core.collection.CollUtil; import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.exceptions.ExceptionUtil; import cn.hutool.core.exceptions.ExceptionUtil;
import cn.hutool.core.util.StrUtil; import cn.hutool.core.text.CharSequenceUtil;
import com.cf.imes.framework.common.util.json.JsonUtils; import com.cf.imes.framework.common.util.json.JsonUtils;
import com.cf.imes.framework.organ.core.service.OrganFrameworkService; import com.cf.imes.framework.organ.core.service.OrganFrameworkService;
import com.cf.imes.framework.organ.core.util.OrganUtils; import com.cf.imes.framework.organ.core.util.OrganUtils;
@@ -51,7 +51,7 @@ public class OrganJobAspect {
} catch (Throwable e) { } catch (Throwable e) {
results.put(organId, ExceptionUtil.getRootCauseMessage(e)); results.put(organId, ExceptionUtil.getRootCauseMessage(e));
// 打印异常 // 打印异常
XxlJobHelper.log(StrUtil.format("[多组织({}) 执行任务({}),发生异常:{}]", XxlJobHelper.log(CharSequenceUtil.format("[多组织({}) 执行任务({}),发生异常:{}]",
organId, joinPoint.getSignature(), ExceptionUtils.getStackTrace(e))); organId, joinPoint.getSignature(), ExceptionUtils.getStackTrace(e)));
} }
}); });
@@ -1,6 +1,6 @@
package com.cf.imes.framework.organ.core.mq.kafka; package com.cf.imes.framework.organ.core.mq.kafka;
import cn.hutool.core.util.StrUtil; import cn.hutool.core.text.CharSequenceUtil;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.boot.SpringApplication; import org.springframework.boot.SpringApplication;
import org.springframework.boot.env.EnvironmentPostProcessor; import org.springframework.boot.env.EnvironmentPostProcessor;
@@ -23,7 +23,7 @@ public class OrganKafkaEnvironmentPostProcessor implements EnvironmentPostProces
// 添加 OrganKafkaProducerInterceptor 拦截器 // 添加 OrganKafkaProducerInterceptor 拦截器
try { try {
String value = environment.getProperty(PROPERTY_KEY_INTERCEPTOR_CLASSES); String value = environment.getProperty(PROPERTY_KEY_INTERCEPTOR_CLASSES);
if (StrUtil.isEmpty(value)) { if (CharSequenceUtil.isEmpty(value)) {
value = OrganKafkaProducerInterceptor.class.getName(); value = OrganKafkaProducerInterceptor.class.getName();
} else { } else {
value += "," + OrganKafkaProducerInterceptor.class.getName(); value += "," + OrganKafkaProducerInterceptor.class.getName();
@@ -1,6 +1,6 @@
package com.cf.imes.framework.organ.core.mq.redis; package com.cf.imes.framework.organ.core.mq.redis;
import cn.hutool.core.util.StrUtil; import cn.hutool.core.text.CharSequenceUtil;
import com.cf.imes.framework.mq.redis.core.interceptor.RedisMessageInterceptor; import com.cf.imes.framework.mq.redis.core.interceptor.RedisMessageInterceptor;
import com.cf.imes.framework.mq.redis.core.message.AbstractRedisMessage; import com.cf.imes.framework.mq.redis.core.message.AbstractRedisMessage;
import com.cf.imes.framework.organ.core.context.OrganContextHolder; import com.cf.imes.framework.organ.core.context.OrganContextHolder;
@@ -28,7 +28,7 @@ public class OrganRedisMessageInterceptor implements RedisMessageInterceptor {
@Override @Override
public void consumeMessageBefore(AbstractRedisMessage message) { public void consumeMessageBefore(AbstractRedisMessage message) {
String organIdStr = message.getHeader(HEADER_ORGAN_ID); String organIdStr = message.getHeader(HEADER_ORGAN_ID);
if (StrUtil.isNotEmpty(organIdStr)) { if (CharSequenceUtil.isNotEmpty(organIdStr)) {
OrganContextHolder.setOrganId(Long.valueOf(organIdStr)); OrganContextHolder.setOrganId(Long.valueOf(organIdStr));
} }
} }
@@ -1,7 +1,7 @@
package com.cf.imes.framework.organ.core.mq.rocketmq; package com.cf.imes.framework.organ.core.mq.rocketmq;
import cn.hutool.core.lang.Assert; import cn.hutool.core.lang.Assert;
import cn.hutool.core.util.StrUtil; import cn.hutool.core.text.CharSequenceUtil;
import com.cf.imes.framework.organ.core.context.OrganContextHolder; import com.cf.imes.framework.organ.core.context.OrganContextHolder;
import org.apache.rocketmq.client.hook.ConsumeMessageContext; import org.apache.rocketmq.client.hook.ConsumeMessageContext;
import org.apache.rocketmq.client.hook.ConsumeMessageHook; import org.apache.rocketmq.client.hook.ConsumeMessageHook;
@@ -33,7 +33,7 @@ public class OrganRocketMQConsumeMessageHook implements ConsumeMessageHook {
Assert.isTrue(messages.size() == 1, "消息条数({})不正确", messages.size()); Assert.isTrue(messages.size() == 1, "消息条数({})不正确", messages.size());
// 设置组织编号 // 设置组织编号
String organId = messages.get(0).getUserProperty(HEADER_ORGAN_ID); String organId = messages.get(0).getUserProperty(HEADER_ORGAN_ID);
if (StrUtil.isNotEmpty(organId)) { if (CharSequenceUtil.isNotEmpty(organId)) {
OrganContextHolder.setOrganId(Long.parseLong(organId)); OrganContextHolder.setOrganId(Long.parseLong(organId));
} }
} }
@@ -2,7 +2,7 @@ package com.cf.imes.framework.pay.core.client.impl.alipay;
import cn.hutool.core.date.LocalDateTimeUtil; import cn.hutool.core.date.LocalDateTimeUtil;
import cn.hutool.core.map.MapUtil; import cn.hutool.core.map.MapUtil;
import cn.hutool.core.util.StrUtil; import cn.hutool.core.text.CharSequenceUtil;
import com.cf.imes.framework.pay.core.client.dto.order.PayOrderRespDTO; import com.cf.imes.framework.pay.core.client.dto.order.PayOrderRespDTO;
import com.cf.imes.framework.pay.core.client.dto.order.PayOrderUnifiedReqDTO; import com.cf.imes.framework.pay.core.client.dto.order.PayOrderUnifiedReqDTO;
import com.cf.imes.framework.pay.core.enums.channel.PayChannelEnum; import com.cf.imes.framework.pay.core.enums.channel.PayChannelEnum;
@@ -37,7 +37,7 @@ public class AlipayBarPayClient extends AbstractAlipayPayClient {
@Override @Override
public PayOrderRespDTO doUnifiedOrder(PayOrderUnifiedReqDTO reqDTO) throws AlipayApiException { public PayOrderRespDTO doUnifiedOrder(PayOrderUnifiedReqDTO reqDTO) throws AlipayApiException {
String authCode = MapUtil.getStr(reqDTO.getChannelExtras(), "auth_code"); String authCode = MapUtil.getStr(reqDTO.getChannelExtras(), "auth_code");
if (StrUtil.isEmpty(authCode)) { if (CharSequenceUtil.isEmpty(authCode)) {
throw exception0(BAD_REQUEST.getCode(), "条形码不能为空"); throw exception0(BAD_REQUEST.getCode(), "条形码不能为空");
} }
@@ -30,6 +30,7 @@ public class MockPayClient extends AbstractPayClient<NonePayClientConfig> {
@Override @Override
protected void doInit() { protected void doInit() {
// nothing
} }
@Override @Override
@@ -40,6 +40,7 @@ public class DebugDingTalkSmsClient extends AbstractSmsClient {
@Override @Override
protected void doInit() { protected void doInit() {
// nothing
} }
@Override @Override
@@ -1,8 +1,8 @@
package com.cf.imes.framework.es.core.service; package com.cf.imes.framework.es.core.service;
import cn.hutool.core.lang.Snowflake; import cn.hutool.core.lang.Snowflake;
import cn.hutool.core.text.CharSequenceUtil;
import cn.hutool.core.util.IdUtil; import cn.hutool.core.util.IdUtil;
import cn.hutool.core.util.StrUtil;
import cn.hutool.json.JSONObject; import cn.hutool.json.JSONObject;
import co.elastic.clients.elasticsearch.ElasticsearchAsyncClient; import co.elastic.clients.elasticsearch.ElasticsearchAsyncClient;
import co.elastic.clients.elasticsearch.ElasticsearchClient; import co.elastic.clients.elasticsearch.ElasticsearchClient;
@@ -50,7 +50,7 @@ public class ESDocumentServiceImpl implements ESDocumentService {
document.setCreateTime(simpleDateFormat.format(date)); document.setCreateTime(simpleDateFormat.format(date));
document.setUpdateTime(simpleDateFormat.format(date)); document.setUpdateTime(simpleDateFormat.format(date));
if (StrUtil.isBlank(document.getId())) { if (CharSequenceUtil.isBlank(document.getId())) {
document.setId(snowflake.nextIdStr()); document.setId(snowflake.nextIdStr());
} }
return elasticsearchClient.index(idx -> idx return elasticsearchClient.index(idx -> idx
@@ -77,7 +77,7 @@ public class ESDocumentServiceImpl implements ESDocumentService {
document.setUpdateTime(simpleDateFormat.format(date)); document.setUpdateTime(simpleDateFormat.format(date));
IndexRequest.Builder<Object> indexReqBuilder = new IndexRequest.Builder<>(); IndexRequest.Builder<Object> indexReqBuilder = new IndexRequest.Builder<>();
indexReqBuilder.index(idxName); indexReqBuilder.index(idxName);
if (StrUtil.isBlank(idxId)) { if (CharSequenceUtil.isBlank(idxId)) {
idxId = snowflake.nextIdStr(); idxId = snowflake.nextIdStr();
} }
indexReqBuilder.id(idxId); indexReqBuilder.id(idxId);
@@ -94,7 +94,7 @@ public class ESDocumentServiceImpl implements ESDocumentService {
*/ */
@Override @Override
public IndexResponse createByJson(String idxName, String idxId, String jsonContent) throws Exception { public IndexResponse createByJson(String idxName, String idxId, String jsonContent) throws Exception {
if (StrUtil.isBlank(idxId)) { if (CharSequenceUtil.isBlank(idxId)) {
idxId = snowflake.nextIdStr(); idxId = snowflake.nextIdStr();
} }
String finalIdxId = idxId; String finalIdxId = idxId;
@@ -136,7 +136,7 @@ public class ESDocumentServiceImpl implements ESDocumentService {
Date date = new Date(); Date date = new Date();
LocalDateTime now = LocalDateTime.now(); LocalDateTime now = LocalDateTime.now();
documents.forEach(esDocument -> { documents.forEach(esDocument -> {
if (StrUtil.isBlank(esDocument.getId())) { if (CharSequenceUtil.isBlank(esDocument.getId())) {
esDocument.setId(snowflake.nextIdStr()); esDocument.setId(snowflake.nextIdStr());
} }
esDocument.setCreator(loginUser.getNickname()); esDocument.setCreator(loginUser.getNickname());
@@ -169,7 +169,7 @@ public class ESDocumentServiceImpl implements ESDocumentService {
Date date = new Date(); Date date = new Date();
documents.forEach(esDocument -> { documents.forEach(esDocument -> {
// 假设esDocument有一个ID集。如果没有,则应该抛出异常或进行相应的处理。 // 假设esDocument有一个ID集。如果没有,则应该抛出异常或进行相应的处理。
if (StrUtil.isBlank(esDocument.getId())) { if (CharSequenceUtil.isBlank(esDocument.getId())) {
throw new IllegalArgumentException("更新操作的文档ID不能为空"); throw new IllegalArgumentException("更新操作的文档ID不能为空");
} }
esDocument.setUpdater(loginUser.getNickname()); esDocument.setUpdater(loginUser.getNickname());
@@ -1,6 +1,6 @@
package com.cf.imes.framework.env.config; package com.cf.imes.framework.env.config;
import cn.hutool.core.util.StrUtil; import cn.hutool.core.text.CharSequenceUtil;
import com.cf.imes.framework.common.util.collection.SetUtils; import com.cf.imes.framework.common.util.collection.SetUtils;
import com.cf.imes.framework.env.core.util.EnvUtils; import com.cf.imes.framework.env.core.util.EnvUtils;
import org.springframework.boot.SpringApplication; import org.springframework.boot.SpringApplication;
@@ -25,20 +25,20 @@ public class EnvEnvironmentPostProcessor implements EnvironmentPostProcessor {
@Override @Override
public void postProcessEnvironment(ConfigurableEnvironment environment, SpringApplication application) { public void postProcessEnvironment(ConfigurableEnvironment environment, SpringApplication application) {
// 0. 设置 ${HOST_NAME} 兜底的环境变量 // 0. 设置 ${HOST_NAME} 兜底的环境变量
String hostNameKey = StrUtil.subBetween(EnvUtils.HOST_NAME_VALUE, "{", "}"); String hostNameKey = CharSequenceUtil.subBetween(EnvUtils.HOST_NAME_VALUE, "{", "}");
if (!environment.containsProperty(hostNameKey)) { if (!environment.containsProperty(hostNameKey)) {
environment.getSystemProperties().put(hostNameKey, EnvUtils.getHostName()); environment.getSystemProperties().put(hostNameKey, EnvUtils.getHostName());
} }
// 1.1 如果没有 chenfeng.env.tag 配置项,则不进行配置项的修改 // 1.1 如果没有 chenfeng.env.tag 配置项,则不进行配置项的修改
String tag = EnvUtils.getTag(environment); String tag = EnvUtils.getTag(environment);
if (StrUtil.isEmpty(tag)) { if (CharSequenceUtil.isEmpty(tag)) {
return; return;
} }
// 1.2 需要修改的配置项 // 1.2 需要修改的配置项
for (String targetTagKey : TARGET_TAG_KEYS) { for (String targetTagKey : TARGET_TAG_KEYS) {
String targetTagValue = environment.getProperty(targetTagKey); String targetTagValue = environment.getProperty(targetTagKey);
if (StrUtil.isNotEmpty(targetTagValue)) { if (CharSequenceUtil.isNotEmpty(targetTagValue)) {
continue; continue;
} }
environment.getSystemProperties().put(targetTagKey, tag); environment.getSystemProperties().put(targetTagKey, tag);
@@ -1,7 +1,7 @@
package com.cf.imes.framework.env.core.fegin; package com.cf.imes.framework.env.core.fegin;
import cn.hutool.core.collection.CollUtil; import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.util.StrUtil; import cn.hutool.core.text.CharSequenceUtil;
import com.cf.imes.framework.common.util.collection.CollectionUtils; import com.cf.imes.framework.common.util.collection.CollectionUtils;
import com.cf.imes.framework.env.core.context.EnvContextHolder; import com.cf.imes.framework.env.core.context.EnvContextHolder;
import com.cf.imes.framework.env.core.util.EnvUtils; import com.cf.imes.framework.env.core.util.EnvUtils;
@@ -51,7 +51,7 @@ public class EnvLoadBalancerClient implements ReactorServiceInstanceLoadBalancer
public Mono<Response<ServiceInstance>> choose(Request request) { public Mono<Response<ServiceInstance>> choose(Request request) {
// 情况一,没有 tag 时,使用默认的 reactiveLoadBalancer 实现负载均衡 // 情况一,没有 tag 时,使用默认的 reactiveLoadBalancer 实现负载均衡
String tag = EnvContextHolder.getTag(); String tag = EnvContextHolder.getTag();
if (StrUtil.isEmpty(tag)) { if (CharSequenceUtil.isEmpty(tag)) {
return Mono.from(reactiveLoadBalancer.choose(request)); return Mono.from(reactiveLoadBalancer.choose(request));
} }
@@ -1,6 +1,6 @@
package com.cf.imes.framework.env.core.fegin; package com.cf.imes.framework.env.core.fegin;
import cn.hutool.core.util.StrUtil; import cn.hutool.core.text.CharSequenceUtil;
import com.cf.imes.framework.env.core.context.EnvContextHolder; import com.cf.imes.framework.env.core.context.EnvContextHolder;
import com.cf.imes.framework.env.core.util.EnvUtils; import com.cf.imes.framework.env.core.util.EnvUtils;
import feign.RequestInterceptor; import feign.RequestInterceptor;
@@ -16,7 +16,7 @@ public class EnvRequestInterceptor implements RequestInterceptor {
@Override @Override
public void apply(RequestTemplate requestTemplate) { public void apply(RequestTemplate requestTemplate) {
String tag = EnvContextHolder.getTag(); String tag = EnvContextHolder.getTag();
if (StrUtil.isNotEmpty(tag)) { if (CharSequenceUtil.isNotEmpty(tag)) {
EnvUtils.setTag(requestTemplate, tag); EnvUtils.setTag(requestTemplate, tag);
} }
} }
@@ -1,6 +1,6 @@
package com.cf.imes.framework.env.core.web; package com.cf.imes.framework.env.core.web;
import cn.hutool.core.util.StrUtil; import cn.hutool.core.text.CharSequenceUtil;
import com.cf.imes.framework.env.core.context.EnvContextHolder; import com.cf.imes.framework.env.core.context.EnvContextHolder;
import com.cf.imes.framework.env.core.util.EnvUtils; import com.cf.imes.framework.env.core.util.EnvUtils;
import org.springframework.web.filter.OncePerRequestFilter; import org.springframework.web.filter.OncePerRequestFilter;
@@ -24,7 +24,7 @@ public class EnvWebFilter extends OncePerRequestFilter {
throws ServletException, IOException { throws ServletException, IOException {
// 如果没有 tag,则走默认的流程 // 如果没有 tag,则走默认的流程
String tag = EnvUtils.getTag(request); String tag = EnvUtils.getTag(request);
if (StrUtil.isEmpty(tag)) { if (CharSequenceUtil.isEmpty(tag)) {
chain.doFilter(request, response); chain.doFilter(request, response);
return; return;
} }
@@ -1,6 +1,6 @@
package com.cf.imes.framework.excel.core.util; package com.cf.imes.framework.excel.core.util;
import com.alibaba.excel.EasyExcel; import com.alibaba.excel.EasyExcelFactory;
import com.alibaba.excel.converters.longconverter.LongStringConverter; import com.alibaba.excel.converters.longconverter.LongStringConverter;
import com.alibaba.excel.write.style.column.LongestMatchColumnWidthStyleStrategy; import com.alibaba.excel.write.style.column.LongestMatchColumnWidthStyleStrategy;
import org.springframework.web.multipart.MultipartFile; import org.springframework.web.multipart.MultipartFile;
@@ -32,7 +32,7 @@ public class ExcelUtils {
public static <T> void write(HttpServletResponse response, String filename, String sheetName, public static <T> void write(HttpServletResponse response, String filename, String sheetName,
Class<T> head, List<T> data) throws IOException { Class<T> head, List<T> data) throws IOException {
// 输出 Excel // 输出 Excel
EasyExcel.write(response.getOutputStream(), head) EasyExcelFactory.write(response.getOutputStream(), head)
.autoCloseStream(false) // 不要自动关闭,交给 Servlet 自己处理 .autoCloseStream(false) // 不要自动关闭,交给 Servlet 自己处理
.registerWriteHandler(new LongestMatchColumnWidthStyleStrategy()) // 基于 column 长度,自动适配。最大 255 宽度 .registerWriteHandler(new LongestMatchColumnWidthStyleStrategy()) // 基于 column 长度,自动适配。最大 255 宽度
.registerConverter(new LongStringConverter()) // 避免 Long 类型丢失精度 .registerConverter(new LongStringConverter()) // 避免 Long 类型丢失精度
@@ -43,7 +43,7 @@ public class ExcelUtils {
} }
public static <T> List<T> read(MultipartFile file, Class<T> head) throws IOException { public static <T> List<T> read(MultipartFile file, Class<T> head) throws IOException {
return EasyExcel.read(file.getInputStream(), head, null) return EasyExcelFactory.read(file.getInputStream(), head, null)
.autoCloseStream(false) // 不要自动关闭,交给 Servlet 自己处理 .autoCloseStream(false) // 不要自动关闭,交给 Servlet 自己处理
.doReadAllSync(); .doReadAllSync();
} }
@@ -18,6 +18,7 @@ public class DBFileClient extends AbstractFileClient<DBFileClientConfig> {
@Override @Override
protected void doInit() { protected void doInit() {
// nothing
} }
@Override @Override
@@ -1,8 +1,9 @@
package com.cf.imes.framework.file.core.client.ftp; package com.cf.imes.framework.file.core.client.ftp;
import cn.hutool.core.io.FileUtil; import cn.hutool.core.io.FileUtil;
import cn.hutool.core.text.CharSequenceUtil;
import cn.hutool.core.text.StrPool;
import cn.hutool.core.util.CharsetUtil; import cn.hutool.core.util.CharsetUtil;
import cn.hutool.core.util.StrUtil;
import cn.hutool.extra.ftp.Ftp; import cn.hutool.extra.ftp.Ftp;
import cn.hutool.extra.ftp.FtpException; import cn.hutool.extra.ftp.FtpException;
import cn.hutool.extra.ftp.FtpMode; import cn.hutool.extra.ftp.FtpMode;
@@ -27,10 +28,10 @@ public class FtpFileClient extends AbstractFileClient<FtpFileClientConfig> {
@Override @Override
protected void doInit() { protected void doInit() {
// 把配置的 \ 替换成 /, 如果路径配置 \a\test, 替换成 /a/test, 替换方法已经处理 null 情况 // 把配置的 \ 替换成 /, 如果路径配置 \a\test, 替换成 /a/test, 替换方法已经处理 null 情况
config.setBasePath(StrUtil.replace(config.getBasePath(), StrUtil.BACKSLASH, StrUtil.SLASH)); config.setBasePath(CharSequenceUtil.replace(config.getBasePath(), StrPool.BACKSLASH, StrPool.SLASH));
// ftp的路径是 / 结尾 // ftp的路径是 / 结尾
if (!config.getBasePath().endsWith(StrUtil.SLASH)) { if (!config.getBasePath().endsWith(StrPool.SLASH)) {
config.setBasePath(config.getBasePath() + StrUtil.SLASH); config.setBasePath(config.getBasePath() + StrPool.SLASH);
} }
// 初始化 Ftp 对象 // 初始化 Ftp 对象
this.ftp = new Ftp(config.getHost(), config.getPort(), config.getUsername(), config.getPassword(), this.ftp = new Ftp(config.getHost(), config.getPort(), config.getUsername(), config.getPassword(),
@@ -42,11 +43,11 @@ public class FtpFileClient extends AbstractFileClient<FtpFileClientConfig> {
// 执行写入 // 执行写入
String filePath = getFilePath(path); String filePath = getFilePath(path);
String fileName = FileUtil.getName(filePath); String fileName = FileUtil.getName(filePath);
String dir = StrUtil.removeSuffix(filePath, fileName); String dir = CharSequenceUtil.removeSuffix(filePath, fileName);
ftp.reconnectIfTimeout(); ftp.reconnectIfTimeout();
boolean success = ftp.upload(dir, fileName, new ByteArrayInputStream(content)); boolean success = ftp.upload(dir, fileName, new ByteArrayInputStream(content));
if (!success) { if (!success) {
throw new FtpException(StrUtil.format("上传文件到目标目录 ({}) 失败", filePath)); throw new FtpException(CharSequenceUtil.format("上传文件到目标目录 ({}) 失败", filePath));
} }
// 拼接返回路径 // 拼接返回路径
return super.formatFileUrl(config.getDomain(), path); return super.formatFileUrl(config.getDomain(), path);
@@ -63,7 +64,7 @@ public class FtpFileClient extends AbstractFileClient<FtpFileClientConfig> {
public byte[] getContent(String path) { public byte[] getContent(String path) {
String filePath = getFilePath(path); String filePath = getFilePath(path);
String fileName = FileUtil.getName(filePath); String fileName = FileUtil.getName(filePath);
String dir = StrUtil.removeSuffix(filePath, fileName); String dir = CharSequenceUtil.removeSuffix(filePath, fileName);
ByteArrayOutputStream out = new ByteArrayOutputStream(); ByteArrayOutputStream out = new ByteArrayOutputStream();
ftp.reconnectIfTimeout(); ftp.reconnectIfTimeout();
ftp.download(dir, fileName, out); ftp.download(dir, fileName, out);
@@ -1,7 +1,7 @@
package com.cf.imes.framework.tracer.core.aop; package com.cf.imes.framework.tracer.core.aop;
import cn.hutool.core.map.MapUtil; import cn.hutool.core.map.MapUtil;
import cn.hutool.core.util.StrUtil; import cn.hutool.core.text.CharSequenceUtil;
import com.cf.imes.framework.tracer.core.annotation.BizTrace; import com.cf.imes.framework.tracer.core.annotation.BizTrace;
import com.cf.imes.framework.common.util.spring.SpringExpressionUtils; import com.cf.imes.framework.common.util.spring.SpringExpressionUtils;
import com.cf.imes.framework.tracer.core.util.TracerFrameworkUtils; import com.cf.imes.framework.tracer.core.util.TracerFrameworkUtils;
@@ -55,7 +55,7 @@ public class BizTraceAspect {
private String getOperationName(ProceedingJoinPoint joinPoint, BizTrace trace) { private String getOperationName(ProceedingJoinPoint joinPoint, BizTrace trace) {
// 自定义操作名 // 自定义操作名
if (StrUtil.isNotEmpty(trace.operationName())) { if (CharSequenceUtil.isNotEmpty(trace.operationName())) {
return BIZ_OPERATION_NAME_PREFIX + trace.operationName(); return BIZ_OPERATION_NAME_PREFIX + trace.operationName();
} }
// 默认操作名,使用方法名 // 默认操作名,使用方法名
@@ -1,7 +1,7 @@
package com.cf.imes.framework.mq.redis.config; package com.cf.imes.framework.mq.redis.config;
import cn.hutool.core.map.MapUtil; import cn.hutool.core.map.MapUtil;
import cn.hutool.core.util.StrUtil; import cn.hutool.core.text.CharSequenceUtil;
import cn.hutool.system.SystemUtil; import cn.hutool.system.SystemUtil;
import com.cf.imes.framework.common.enums.DocumentEnum; import com.cf.imes.framework.common.enums.DocumentEnum;
import com.cf.imes.framework.mq.redis.core.RedisMQTemplate; import com.cf.imes.framework.mq.redis.core.RedisMQTemplate;
@@ -162,9 +162,9 @@ public class ChenfengRedisMQConsumerAutoConfiguration {
Properties info = redisTemplate.execute((RedisCallback<Properties>) RedisServerCommands::info); Properties info = redisTemplate.execute((RedisCallback<Properties>) RedisServerCommands::info);
String version = MapUtil.getStr(info, "redis_version"); String version = MapUtil.getStr(info, "redis_version");
// 校验最低版本必须大于等于 5.0.0 // 校验最低版本必须大于等于 5.0.0
int majorVersion = Integer.parseInt(StrUtil.subBefore(version, '.', false)); int majorVersion = Integer.parseInt(CharSequenceUtil.subBefore(version, '.', false));
if (majorVersion < 5) { if (majorVersion < 5) {
throw new IllegalStateException(StrUtil.format("您当前的 Redis 版本为 {},小于最低要求的 5.0.0 版本!" + throw new IllegalStateException(CharSequenceUtil.format("您当前的 Redis 版本为 {},小于最低要求的 5.0.0 版本!" +
"请参考 {} 文档进行安装。", version, DocumentEnum.REDIS_INSTALL.getUrl())); "请参考 {} 文档进行安装。", version, DocumentEnum.REDIS_INSTALL.getUrl()));
} }
} }
@@ -29,7 +29,7 @@ public class ChenfengDataSourceAutoConfiguration {
DruidStatProperties.StatViewServlet config = properties.getStatViewServlet(); DruidStatProperties.StatViewServlet config = properties.getStatViewServlet();
// 提取 common.js 的配置路径 // 提取 common.js 的配置路径
String pattern = config.getUrlPattern() != null ? config.getUrlPattern() : "/druid/*"; String pattern = config.getUrlPattern() != null ? config.getUrlPattern() : "/druid/*";
String commonJsPattern = pattern.replaceAll("\\*", "js/common.js"); String commonJsPattern = pattern.replace("\\*", "js/common.js");
// 创建 DruidAdRemoveFilter Bean // 创建 DruidAdRemoveFilter Bean
FilterRegistrationBean<DruidAdRemoveFilter> registrationBean = new FilterRegistrationBean<>(); FilterRegistrationBean<DruidAdRemoveFilter> registrationBean = new FilterRegistrationBean<>();
registrationBean.setFilter(new DruidAdRemoveFilter()); registrationBean.setFilter(new DruidAdRemoveFilter());
@@ -1,6 +1,6 @@
package com.cf.imes.framework.mybatis.config; package com.cf.imes.framework.mybatis.config;
import cn.hutool.core.util.StrUtil; import cn.hutool.core.text.CharSequenceUtil;
import com.baomidou.mybatisplus.core.incrementer.IdentifierGenerator; import com.baomidou.mybatisplus.core.incrementer.IdentifierGenerator;
import com.cf.imes.framework.mybatis.core.generator.SnowFlakeGenerator; import com.cf.imes.framework.mybatis.core.generator.SnowFlakeGenerator;
import com.cf.imes.framework.mybatis.core.handler.DefaultDBFieldHandler; import com.cf.imes.framework.mybatis.core.handler.DefaultDBFieldHandler;
@@ -70,7 +70,7 @@ public class ChenfengMybatisAutoConfiguration {
} }
} }
// 找不到合适的 IKeyGenerator 实现类 // 找不到合适的 IKeyGenerator 实现类
throw new IllegalArgumentException(StrUtil.format("DbType{} 找不到合适的 IKeyGenerator 实现类", dbType)); throw new IllegalArgumentException(CharSequenceUtil.format("DbType{} 找不到合适的 IKeyGenerator 实现类", dbType));
} }
} }
@@ -1,6 +1,6 @@
package com.cf.imes.framework.mybatis.config; package com.cf.imes.framework.mybatis.config;
import cn.hutool.core.util.StrUtil; import cn.hutool.core.text.CharSequenceUtil;
import com.cf.imes.framework.common.util.collection.SetUtils; import com.cf.imes.framework.common.util.collection.SetUtils;
import com.cf.imes.framework.mybatis.core.enums.SqlConstants; import com.cf.imes.framework.mybatis.core.enums.SqlConstants;
import com.cf.imes.framework.mybatis.core.util.JdbcUtils; import com.cf.imes.framework.mybatis.core.util.JdbcUtils;
@@ -70,7 +70,7 @@ public class IdTypeEnvironmentPostProcessor implements EnvironmentPostProcessor
public void setJobStoreDriverIfPresent(ConfigurableEnvironment environment, DbType dbType) { public void setJobStoreDriverIfPresent(ConfigurableEnvironment environment, DbType dbType) {
String driverClass = environment.getProperty(QUARTZ_JOB_STORE_DRIVER_KEY); String driverClass = environment.getProperty(QUARTZ_JOB_STORE_DRIVER_KEY);
if (StrUtil.isNotEmpty(driverClass)) { if (CharSequenceUtil.isNotEmpty(driverClass)) {
return; return;
} }
// 根据 dbType 类型,获取对应的 driverClass // 根据 dbType 类型,获取对应的 driverClass
@@ -88,18 +88,18 @@ public class IdTypeEnvironmentPostProcessor implements EnvironmentPostProcessor
break; break;
} }
// 设置 driverClass 变量 // 设置 driverClass 变量
if (StrUtil.isNotEmpty(driverClass)) { if (CharSequenceUtil.isNotEmpty(driverClass)) {
environment.getSystemProperties().put(QUARTZ_JOB_STORE_DRIVER_KEY, driverClass); environment.getSystemProperties().put(QUARTZ_JOB_STORE_DRIVER_KEY, driverClass);
} }
} }
public static DbType getDbType(ConfigurableEnvironment environment) { public static DbType getDbType(ConfigurableEnvironment environment) {
String primary = environment.getProperty(DATASOURCE_DYNAMIC_KEY + "." + "primary"); String primary = environment.getProperty(DATASOURCE_DYNAMIC_KEY + "." + "primary");
if (StrUtil.isEmpty(primary)) { if (CharSequenceUtil.isEmpty(primary)) {
return null; return null;
} }
String url = environment.getProperty(DATASOURCE_DYNAMIC_KEY + ".datasource." + primary + ".url"); String url = environment.getProperty(DATASOURCE_DYNAMIC_KEY + ".datasource." + primary + ".url");
if (StrUtil.isEmpty(url)) { if (CharSequenceUtil.isEmpty(url)) {
return null; return null;
} }
return JdbcUtils.getDbType(url); return JdbcUtils.getDbType(url);
@@ -36,6 +36,6 @@ public class ChenfengDataSourceEncryptInitEvent implements DataSourceInitEvent {
*/ */
@Override @Override
public void afterCreate(DataSource dataSource) { public void afterCreate(DataSource dataSource) {
// nothing
} }
} }
@@ -1,6 +1,6 @@
package com.cf.imes.framework.mybatis.core.handler; package com.cf.imes.framework.mybatis.core.handler;
import cn.hutool.core.util.StrUtil; import cn.hutool.core.text.CharSequenceUtil;
import com.cf.imes.framework.common.util.json.JsonUtils; import com.cf.imes.framework.common.util.json.JsonUtils;
import com.cf.imes.framework.mybatis.OAuth2AccessTokenDO; import com.cf.imes.framework.mybatis.OAuth2AccessTokenDO;
import com.cf.imes.framework.mybatis.core.dataobject.BaseDO; import com.cf.imes.framework.mybatis.core.dataobject.BaseDO;
@@ -137,7 +137,7 @@ public class DefaultDBFieldHandler implements MetaObjectHandler {
HttpServletRequest request = WebFrameworkUtils.getRequest(); HttpServletRequest request = WebFrameworkUtils.getRequest();
// 1. 获得 Token。优先级:Header > Parameter // 1. 获得 Token。优先级:Header > Parameter
String token = request.getHeader(headerName); String token = request.getHeader(headerName);
if (StrUtil.isEmpty(token)) { if (CharSequenceUtil.isEmpty(token)) {
token = request.getParameter(parameterName); token = request.getParameter(parameterName);
} }
if (!StringUtils.hasText(token)) { if (!StringUtils.hasText(token)) {
@@ -1,6 +1,6 @@
package com.cf.imes.framework.mybatis.core.util; package com.cf.imes.framework.mybatis.core.util;
import cn.hutool.core.collection.CollectionUtil; import cn.hutool.core.collection.CollUtil;
import com.cf.imes.framework.common.pojo.PageParam; import com.cf.imes.framework.common.pojo.PageParam;
import com.cf.imes.framework.common.pojo.SortingField; import com.cf.imes.framework.common.pojo.SortingField;
import com.baomidou.mybatisplus.core.metadata.OrderItem; import com.baomidou.mybatisplus.core.metadata.OrderItem;
@@ -32,7 +32,7 @@ public class MyBatisUtils {
// 页码 + 数量 // 页码 + 数量
Page<T> page = new Page<>(pageParam.getPageNo(), pageParam.getPageSize()); Page<T> page = new Page<>(pageParam.getPageNo(), pageParam.getPageSize());
// 排序字段 // 排序字段
if (!CollectionUtil.isEmpty(sortingFields)) { if (!CollUtil.isEmpty(sortingFields)) {
page.addOrder(sortingFields.stream().map(sortingField -> SortingField.ORDER_ASC.equals(sortingField.getOrder()) ? page.addOrder(sortingFields.stream().map(sortingField -> SortingField.ORDER_ASC.equals(sortingField.getOrder()) ?
OrderItem.asc(sortingField.getField()) : OrderItem.desc(sortingField.getField())) OrderItem.asc(sortingField.getField()) : OrderItem.desc(sortingField.getField()))
.collect(Collectors.toList())); .collect(Collectors.toList()));
@@ -1,6 +1,6 @@
package com.cf.imes.framework.idempotent.core.keyresolver.impl; package com.cf.imes.framework.idempotent.core.keyresolver.impl;
import cn.hutool.core.util.StrUtil; import cn.hutool.core.text.CharSequenceUtil;
import cn.hutool.crypto.SecureUtil; import cn.hutool.crypto.SecureUtil;
import com.cf.imes.framework.idempotent.core.annotation.Idempotent; import com.cf.imes.framework.idempotent.core.annotation.Idempotent;
import com.cf.imes.framework.idempotent.core.keyresolver.IdempotentKeyResolver; import com.cf.imes.framework.idempotent.core.keyresolver.IdempotentKeyResolver;
@@ -18,7 +18,7 @@ public class DefaultIdempotentKeyResolver implements IdempotentKeyResolver {
@Override @Override
public String resolver(JoinPoint joinPoint, Idempotent idempotent) { public String resolver(JoinPoint joinPoint, Idempotent idempotent) {
String methodName = joinPoint.getSignature().toString(); String methodName = joinPoint.getSignature().toString();
String argsStr = StrUtil.join(",", joinPoint.getArgs()); String argsStr = CharSequenceUtil.join(",", joinPoint.getArgs());
return SecureUtil.md5(methodName + argsStr); return SecureUtil.md5(methodName + argsStr);
} }
@@ -1,6 +1,6 @@
package com.cf.imes.framework.redis.config; package com.cf.imes.framework.redis.config;
import cn.hutool.core.util.StrUtil; import cn.hutool.core.text.StrPool;
import com.cf.imes.framework.redis.core.TimeoutRedisCacheManager; import com.cf.imes.framework.redis.core.TimeoutRedisCacheManager;
import org.springframework.boot.autoconfigure.AutoConfiguration; import org.springframework.boot.autoconfigure.AutoConfiguration;
import org.springframework.boot.autoconfigure.cache.CacheProperties; import org.springframework.boot.autoconfigure.cache.CacheProperties;
@@ -44,10 +44,10 @@ public class ChenfengCacheAutoConfiguration {
config = config.computePrefixWith(cacheName -> { config = config.computePrefixWith(cacheName -> {
String keyPrefix = cacheProperties.getRedis().getKeyPrefix(); String keyPrefix = cacheProperties.getRedis().getKeyPrefix();
if (StringUtils.hasText(keyPrefix)) { if (StringUtils.hasText(keyPrefix)) {
keyPrefix = keyPrefix.lastIndexOf(StrUtil.COLON) == -1 ? keyPrefix + StrUtil.COLON : keyPrefix; keyPrefix = keyPrefix.lastIndexOf(StrPool.COLON) == -1 ? keyPrefix + StrPool.COLON : keyPrefix;
return keyPrefix + cacheName + StrUtil.COLON; return keyPrefix + cacheName + StrPool.COLON;
} }
return cacheName + StrUtil.COLON; return cacheName + StrPool.COLON;
}); });
// 设置使用 JSON 序列化方式 // 设置使用 JSON 序列化方式
config = config.serializeValuesWith( config = config.serializeValuesWith(
@@ -1,6 +1,6 @@
package com.cf.imes.framework.web.core.filter; package com.cf.imes.framework.web.core.filter;
import cn.hutool.core.util.StrUtil; import cn.hutool.core.text.CharSequenceUtil;
import com.cf.imes.framework.web.config.WebProperties; import com.cf.imes.framework.web.config.WebProperties;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import org.springframework.web.filter.OncePerRequestFilter; import org.springframework.web.filter.OncePerRequestFilter;
@@ -20,7 +20,7 @@ public abstract class ApiRequestFilter extends OncePerRequestFilter {
@Override @Override
protected boolean shouldNotFilter(HttpServletRequest request) { protected boolean shouldNotFilter(HttpServletRequest request) {
// 只过滤 API 请求的地址 // 只过滤 API 请求的地址
return !StrUtil.startWithAny(request.getRequestURI(), webProperties.getAdminApi().getPrefix(), return !CharSequenceUtil.startWithAny(request.getRequestURI(), webProperties.getAdminApi().getPrefix(),
webProperties.getAppApi().getPrefix()); webProperties.getAppApi().getPrefix());
} }
@@ -1,6 +1,6 @@
package com.cf.imes.framework.web.core.filter; package com.cf.imes.framework.web.core.filter;
import cn.hutool.core.util.StrUtil; import cn.hutool.core.text.CharSequenceUtil;
import com.baomidou.dynamic.datasource.toolkit.DynamicDataSourceContextHolder; import com.baomidou.dynamic.datasource.toolkit.DynamicDataSourceContextHolder;
import com.cf.imes.framework.common.exception.enums.GlobalErrorCodeConstants; import com.cf.imes.framework.common.exception.enums.GlobalErrorCodeConstants;
import com.cf.imes.framework.common.pojo.CommonResult; import com.cf.imes.framework.common.pojo.CommonResult;
@@ -37,14 +37,14 @@ public class DataSourceFilter extends OncePerRequestFilter {
@Override @Override
protected boolean shouldNotFilter(HttpServletRequest request) { protected boolean shouldNotFilter(HttpServletRequest request) {
// 只过滤 API 请求的地址 // 只过滤 API 请求的地址
return !StrUtil.startWithAny(request.getRequestURI(), webProperties.getAdminApi().getPrefix(), return !CharSequenceUtil.startWithAny(request.getRequestURI(), webProperties.getAdminApi().getPrefix(),
webProperties.getAppApi().getPrefix()); webProperties.getAppApi().getPrefix());
} }
@Override @Override
protected void doFilterInternal(HttpServletRequest request, HttpServletResponse response, FilterChain filterChain) throws ServletException, IOException { protected void doFilterInternal(HttpServletRequest request, HttpServletResponse response, FilterChain filterChain) throws ServletException, IOException {
String dataCode = request.getHeader(DATA_SOURCE_CODE); String dataCode = request.getHeader(DATA_SOURCE_CODE);
if(StrUtil.isEmpty(dataCode)) { if(CharSequenceUtil.isEmpty(dataCode)) {
//TODO 如果要严谨一点,应该再去校验一下token //TODO 如果要严谨一点,应该再去校验一下token
ServletUtils.writeJSON(response, CommonResult.error(GlobalErrorCodeConstants.UNAUTHORIZED.getCode(), "访问令牌已过期")); ServletUtils.writeJSON(response, CommonResult.error(GlobalErrorCodeConstants.UNAUTHORIZED.getCode(), "访问令牌已过期"));
log.info("Let the user log in because there is no data-code! requestURI==>{}", request.getRequestURI()); log.info("Let the user log in because there is no data-code! requestURI==>{}", request.getRequestURI());
@@ -1,6 +1,6 @@
package com.cf.imes.framework.web.core.filter; package com.cf.imes.framework.web.core.filter;
import cn.hutool.core.util.StrUtil; import cn.hutool.core.text.CharSequenceUtil;
import com.cf.imes.framework.common.pojo.CommonResult; import com.cf.imes.framework.common.pojo.CommonResult;
import com.cf.imes.framework.common.util.servlet.ServletUtils; import com.cf.imes.framework.common.util.servlet.ServletUtils;
import com.cf.imes.framework.web.core.util.WebFrameworkUtils; import com.cf.imes.framework.web.core.util.WebFrameworkUtils;
@@ -22,7 +22,7 @@ public class DemoFilter extends OncePerRequestFilter {
@Override @Override
protected boolean shouldNotFilter(HttpServletRequest request) { protected boolean shouldNotFilter(HttpServletRequest request) {
String method = request.getMethod(); String method = request.getMethod();
return !StrUtil.equalsAnyIgnoreCase(method, "POST", "PUT", "DELETE") // 写操作时,不进行过滤率 return !CharSequenceUtil.equalsAnyIgnoreCase(method, "POST", "PUT", "DELETE") // 写操作时,不进行过滤率
|| WebFrameworkUtils.getLoginUserId(request) == null; // 非登录用户时,不进行过滤 || WebFrameworkUtils.getLoginUserId(request) == null; // 非登录用户时,不进行过滤
} }
@@ -1,6 +1,6 @@
package com.cf.imes.framework.websocket.core.handler; package com.cf.imes.framework.websocket.core.handler;
import cn.hutool.core.util.StrUtil; import cn.hutool.core.text.CharSequenceUtil;
import cn.hutool.core.util.TypeUtil; import cn.hutool.core.util.TypeUtil;
import com.cf.imes.framework.common.util.json.JsonUtils; import com.cf.imes.framework.common.util.json.JsonUtils;
import com.cf.imes.framework.organ.core.util.OrganUtils; import com.cf.imes.framework.organ.core.util.OrganUtils;
@@ -60,7 +60,7 @@ public class JsonWebSocketMessageHandler extends TextWebSocketHandler {
log.error("[handleTextMessage][session({}) message({}) 解析为空]", session.getId(), message.getPayload()); log.error("[handleTextMessage][session({}) message({}) 解析为空]", session.getId(), message.getPayload());
return; return;
} }
if (StrUtil.isEmpty(jsonMessage.getType())) { if (CharSequenceUtil.isEmpty(jsonMessage.getType())) {
log.error("[handleTextMessage][session({}) message({}) 类型为空]", session.getId(), message.getPayload()); log.error("[handleTextMessage][session({}) message({}) 类型为空]", session.getId(), message.getPayload());
return; return;
} }