提交 aec00d9b 编写于 作者: JEECG低代码平台's avatar JEECG低代码平台

上传中文文件名转为拼音、Long类型精度丢失问题 issues/I24KXI、达梦数据库兼容修改

上级 341830c5
...@@ -76,6 +76,12 @@ ...@@ -76,6 +76,12 @@
<version>${commons.version}</version> <version>${commons.version}</version>
</dependency> </dependency>
<!-- 拼音库 -->
<dependency>
<groupId>com.belerweb</groupId>
<artifactId>pinyin4j</artifactId>
<version>${pinyin4j.version}</version>
</dependency>
<!-- freemarker --> <!-- freemarker -->
<dependency> <dependency>
<groupId>org.springframework.boot</groupId> <groupId>org.springframework.boot</groupId>
......
package org.jeecg.common.util; package org.jeecg.common.util;
import cn.hutool.core.util.StrUtil;
import cn.hutool.extra.pinyin.PinyinUtil;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.jeecg.common.constant.CommonConstant; import org.jeecg.common.constant.CommonConstant;
import org.jeecg.common.constant.DataBaseConstant; import org.jeecg.common.constant.DataBaseConstant;
...@@ -16,10 +18,15 @@ import java.io.InputStream; ...@@ -16,10 +18,15 @@ import java.io.InputStream;
import java.sql.Connection; import java.sql.Connection;
import java.sql.DatabaseMetaData; import java.sql.DatabaseMetaData;
import java.sql.SQLException; import java.sql.SQLException;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
@Slf4j @Slf4j
public class CommonUtils { public class CommonUtils {
//中文正则
private static Pattern ZHONGWEN_PATTERN = Pattern.compile("[\u4e00-\u9fa5]");
public static String uploadOnlineImage(byte[] data,String basePath,String bizPath,String uploadType){ public static String uploadOnlineImage(byte[] data,String basePath,String bizPath,String uploadType){
String dbPath = null; String dbPath = null;
String fileName = "image" + Math.round(Math.random() * 100000000000L); String fileName = "image" + Math.round(Math.random() * 100000000000L);
...@@ -68,9 +75,28 @@ public class CommonUtils { ...@@ -68,9 +75,28 @@ public class CommonUtils {
} }
//替换上传文件名字的特殊字符 //替换上传文件名字的特殊字符
fileName = fileName.replace("=","").replace(",","").replace("&","").replace("#", ""); fileName = fileName.replace("=","").replace(",","").replace("&","").replace("#", "");
//替换上传文件名字中的中文
if(ifContainChinese(fileName)){
fileName= PinyinUtil.getPinyin(fileName, StrUtil.EMPTY);
}
//替换上传文件名字中的空格
fileName=fileName.replaceAll("\\s","");
return fileName; return fileName;
} }
// java 判断字符串里是否包含中文字符
public static boolean ifContainChinese(String str) {
if(str.getBytes().length == str.length()){
return false;
}else{
Matcher m = ZHONGWEN_PATTERN.matcher(str);
if (m.find()) {
return true;
}
return false;
}
}
/** /**
* 统一全局上传 * 统一全局上传
* @Return: java.lang.String * @Return: java.lang.String
...@@ -129,7 +155,7 @@ public class CommonUtils { ...@@ -129,7 +155,7 @@ public class CommonUtils {
String dbType = md.getDatabaseProductName().toLowerCase(); String dbType = md.getDatabaseProductName().toLowerCase();
if(dbType.indexOf("mysql")>=0) { if(dbType.indexOf("mysql")>=0) {
DB_TYPE = DataBaseConstant.DB_TYPE_MYSQL; DB_TYPE = DataBaseConstant.DB_TYPE_MYSQL;
}else if(dbType.indexOf("oracle")>=0) { }else if(dbType.indexOf("oracle")>=0 ||dbType.indexOf("dm")>=0) {
DB_TYPE = DataBaseConstant.DB_TYPE_ORACLE; DB_TYPE = DataBaseConstant.DB_TYPE_ORACLE;
}else if(dbType.indexOf("sqlserver")>=0||dbType.indexOf("sql server")>=0) { }else if(dbType.indexOf("sqlserver")>=0||dbType.indexOf("sql server")>=0) {
DB_TYPE = DataBaseConstant.DB_TYPE_SQLSERVER; DB_TYPE = DataBaseConstant.DB_TYPE_SQLSERVER;
......
package org.jeecg.config; package org.jeecg.config;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.module.SimpleModule;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import org.springframework.beans.factory.annotation.Value; import org.springframework.beans.factory.annotation.Value;
import org.springframework.boot.actuate.trace.http.InMemoryHttpTraceRepository; import org.springframework.boot.actuate.trace.http.InMemoryHttpTraceRepository;
import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Conditional; import org.springframework.context.annotation.Conditional;
import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.Configuration;
import org.springframework.http.converter.HttpMessageConverter;
import org.springframework.http.converter.json.MappingJackson2HttpMessageConverter;
import org.springframework.web.cors.CorsConfiguration; import org.springframework.web.cors.CorsConfiguration;
import org.springframework.web.cors.UrlBasedCorsConfigurationSource; import org.springframework.web.cors.UrlBasedCorsConfigurationSource;
import org.springframework.web.filter.CorsFilter; import org.springframework.web.filter.CorsFilter;
...@@ -12,6 +17,8 @@ import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry ...@@ -12,6 +17,8 @@ import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry
import org.springframework.web.servlet.config.annotation.ViewControllerRegistry; import org.springframework.web.servlet.config.annotation.ViewControllerRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer; import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
import java.util.List;
/** /**
* Spring Boot 2.0 解决跨域问题 * Spring Boot 2.0 解决跨域问题
* *
...@@ -64,6 +71,22 @@ public class WebMvcConfiguration implements WebMvcConfigurer { ...@@ -64,6 +71,22 @@ public class WebMvcConfiguration implements WebMvcConfigurer {
return new CorsFilter(urlBasedCorsConfigurationSource); return new CorsFilter(urlBasedCorsConfigurationSource);
} }
/**
* 添加Long转json精度丢失是配置
* @Return: void
*/
@Override
public void configureMessageConverters(List<HttpMessageConverter<?>> converters) {
MappingJackson2HttpMessageConverter jackson2HttpMessageConverter = new MappingJackson2HttpMessageConverter();
ObjectMapper objectMapper = new ObjectMapper();
SimpleModule simpleModule = new SimpleModule();
simpleModule.addSerializer(Long.class, ToStringSerializer.instance);
simpleModule.addSerializer(Long.TYPE, ToStringSerializer.instance);
objectMapper.registerModule(simpleModule);
jackson2HttpMessageConverter.setObjectMapper(objectMapper);
converters.add(jackson2HttpMessageConverter);
}
/** /**
* SpringBootAdmin的Httptrace不见了 * SpringBootAdmin的Httptrace不见了
* https://blog.csdn.net/u013810234/article/details/110097201 * https://blog.csdn.net/u013810234/article/details/110097201
...@@ -72,4 +95,5 @@ public class WebMvcConfiguration implements WebMvcConfigurer { ...@@ -72,4 +95,5 @@ public class WebMvcConfiguration implements WebMvcConfigurer {
public InMemoryHttpTraceRepository getInMemoryHttpTrace(){ public InMemoryHttpTraceRepository getInMemoryHttpTrace(){
return new InMemoryHttpTraceRepository(); return new InMemoryHttpTraceRepository();
} }
} }
...@@ -45,6 +45,7 @@ ...@@ -45,6 +45,7 @@
<justauth-spring-boot-starter.version>1.3.2</justauth-spring-boot-starter.version> <justauth-spring-boot-starter.version>1.3.2</justauth-spring-boot-starter.version>
<dom4j.version>1.6.1</dom4j.version> <dom4j.version>1.6.1</dom4j.version>
<qiniu-java-sdk.version>7.2.23</qiniu-java-sdk.version> <qiniu-java-sdk.version>7.2.23</qiniu-java-sdk.version>
<pinyin4j.version>2.5.1</pinyin4j.version>
</properties> </properties>
<modules> <modules>
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册