删除无用代码
This commit is contained in:
parent
d422fc3a4a
commit
15cbce2cc2
@ -68,9 +68,6 @@ public class FirePointServiceImpl implements FirePointService {
|
|||||||
@Resource
|
@Resource
|
||||||
private FireTaskDao fireTaskDao;
|
private FireTaskDao fireTaskDao;
|
||||||
|
|
||||||
@Resource
|
|
||||||
private JdbcUtils jdbcUtils;
|
|
||||||
|
|
||||||
@Resource
|
@Resource
|
||||||
private FireTaskPhotoDao fireTaskPhotoDao;
|
private FireTaskPhotoDao fireTaskPhotoDao;
|
||||||
|
|
||||||
|
@ -1,195 +0,0 @@
|
|||||||
package com.xkrs.utils;
|
|
||||||
|
|
||||||
import com.fasterxml.jackson.core.JsonProcessingException;
|
|
||||||
import com.fasterxml.jackson.databind.JsonNode;
|
|
||||||
import com.fasterxml.jackson.databind.ObjectMapper;
|
|
||||||
import org.apache.http.HttpEntity;
|
|
||||||
import org.apache.http.HttpStatus;
|
|
||||||
import org.apache.http.client.ClientProtocolException;
|
|
||||||
import org.apache.http.client.config.RequestConfig;
|
|
||||||
import org.apache.http.client.methods.CloseableHttpResponse;
|
|
||||||
import org.apache.http.client.methods.HttpGet;
|
|
||||||
import org.apache.http.client.utils.URIBuilder;
|
|
||||||
import org.apache.http.impl.client.CloseableHttpClient;
|
|
||||||
import org.apache.http.impl.client.HttpClients;
|
|
||||||
import org.slf4j.Logger;
|
|
||||||
import org.slf4j.LoggerFactory;
|
|
||||||
|
|
||||||
import java.io.BufferedReader;
|
|
||||||
import java.io.IOException;
|
|
||||||
import java.io.InputStream;
|
|
||||||
import java.io.InputStreamReader;
|
|
||||||
import java.net.MalformedURLException;
|
|
||||||
import java.net.URI;
|
|
||||||
import java.net.URISyntaxException;
|
|
||||||
import java.net.URL;
|
|
||||||
import java.nio.charset.StandardCharsets;
|
|
||||||
import java.util.HashMap;
|
|
||||||
import java.util.Map;
|
|
||||||
|
|
||||||
public class AddressUtils {
|
|
||||||
|
|
||||||
private static final Logger log = LoggerFactory.getLogger(AddressUtils.class);
|
|
||||||
private static final String USER_AGENT = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/85.0.4183.121 Safari/537.36";
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 获取指定经纬度的地理位置
|
|
||||||
*
|
|
||||||
* @param latitude 纬度
|
|
||||||
* @param longitude 经度
|
|
||||||
* @return
|
|
||||||
*/
|
|
||||||
public static String getLocal(String latitude, String longitude) {
|
|
||||||
String ok = "ok";
|
|
||||||
String msg = "msg";
|
|
||||||
String info = getAdd(latitude, longitude);
|
|
||||||
ObjectMapper mapper = new ObjectMapper();
|
|
||||||
JsonNode node = null;
|
|
||||||
try {
|
|
||||||
node = mapper.readTree(info);
|
|
||||||
} catch (JsonProcessingException e) {
|
|
||||||
e.printStackTrace();
|
|
||||||
}
|
|
||||||
assert node != null;
|
|
||||||
String province = null;
|
|
||||||
String city = null;
|
|
||||||
String county = null;
|
|
||||||
String road = null;
|
|
||||||
String address = null;
|
|
||||||
if (ok.equals(node.path(msg).asText())) {
|
|
||||||
province = node.path("result").path("addressComponent").path("province").asText();
|
|
||||||
city = node.path("result").path("addressComponent").path("city").asText();
|
|
||||||
county = node.path("result").path("addressComponent").path("county").asText();
|
|
||||||
road = node.path("result").path("addressComponent").path("road").asText();
|
|
||||||
address = node.path("result").path("addressComponent").path("address").asText();
|
|
||||||
}
|
|
||||||
String fireAddress = province + city + county + road + address;
|
|
||||||
return fireAddress;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 根据经纬度获取位置信息
|
|
||||||
*
|
|
||||||
* @param latitude 纬度
|
|
||||||
* @param longitude 经度
|
|
||||||
* @return
|
|
||||||
*/
|
|
||||||
public static String getAdd(String latitude, String longitude) {
|
|
||||||
// 读取成功标志
|
|
||||||
boolean isSuccess = false;
|
|
||||||
// 重复次数
|
|
||||||
int count = 10;
|
|
||||||
ObjectMapper mapper = new ObjectMapper();
|
|
||||||
Map<String, String> paramMap = new HashMap<>(3);
|
|
||||||
paramMap.put("lon", longitude);
|
|
||||||
paramMap.put("lat", latitude);
|
|
||||||
paramMap.put("ver", "1");
|
|
||||||
String paramStr = null;
|
|
||||||
try {
|
|
||||||
paramStr = mapper.writeValueAsString(paramMap);
|
|
||||||
} catch (JsonProcessingException e) {
|
|
||||||
log.error("转json失败,{}", (Object) e.getStackTrace());
|
|
||||||
}
|
|
||||||
String url = String.format("http://api.tianditu.gov.cn/geocoder?type=geocode&tk=5a1d34815475f88e6d8802da6be832ae&postStr=%s", paramStr);
|
|
||||||
// 创建http对象
|
|
||||||
RequestConfig defaultRequestConfig = RequestConfig.custom().setSocketTimeout(60000).setConnectTimeout(60000).setConnectionRequestTimeout(60000).build();
|
|
||||||
CloseableHttpClient client = HttpClients.custom().setDefaultRequestConfig(defaultRequestConfig).build();
|
|
||||||
|
|
||||||
// 创建并设置URI
|
|
||||||
URIBuilder uri = null;
|
|
||||||
// 创建Get请求
|
|
||||||
HttpGet get = null;
|
|
||||||
|
|
||||||
try {
|
|
||||||
URL url1 = new URL(url);
|
|
||||||
URI uri1 = new URI(url1.getProtocol(), url1.getHost(), url1.getPath(), url1.getQuery(), null);
|
|
||||||
uri = new URIBuilder(uri1);
|
|
||||||
get = new HttpGet(uri.build());
|
|
||||||
// 设置请求头
|
|
||||||
setGet(get);
|
|
||||||
} catch (URISyntaxException | MalformedURLException e) {
|
|
||||||
log.info("错误{}", (Object) e.getStackTrace());
|
|
||||||
}
|
|
||||||
//发送请求
|
|
||||||
HttpEntity entity = null;
|
|
||||||
InputStream is = null;
|
|
||||||
BufferedReader br = null;
|
|
||||||
// 创建响应对象
|
|
||||||
CloseableHttpResponse response = null;
|
|
||||||
String line;
|
|
||||||
String sLine = null;
|
|
||||||
|
|
||||||
String json = null;
|
|
||||||
while (!isSuccess && count > 0) {
|
|
||||||
try {
|
|
||||||
response = client.execute(get);
|
|
||||||
// 获取请求结果
|
|
||||||
if (response.getStatusLine().getStatusCode() != HttpStatus.SC_OK) {
|
|
||||||
log.info("实时定位数据未请求成功");
|
|
||||||
count--;
|
|
||||||
//close(is, br, response, client);
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
entity = response.getEntity();
|
|
||||||
is = entity.getContent();
|
|
||||||
br = new BufferedReader(new InputStreamReader(is, StandardCharsets.UTF_8));
|
|
||||||
StringBuilder sb = new StringBuilder();
|
|
||||||
while ((line = br.readLine()) != null) {
|
|
||||||
sb.append(line);
|
|
||||||
}
|
|
||||||
sLine = sb.toString();
|
|
||||||
sLine = sLine.substring(sLine.indexOf("{"));
|
|
||||||
//使用ObjectMapper对象对 User对象进行转换
|
|
||||||
try {
|
|
||||||
json = mapper.writeValueAsString(sLine);
|
|
||||||
} catch (JsonProcessingException e) {
|
|
||||||
log.info("json字符串转化异常{}", (Object) e.getStackTrace());
|
|
||||||
}
|
|
||||||
isSuccess = true;
|
|
||||||
|
|
||||||
} catch (ClientProtocolException e) {
|
|
||||||
log.info("请求超时等问题:{}", (Object) e.getStackTrace());
|
|
||||||
} catch (IOException e) {
|
|
||||||
log.info("I/O问题:{}", (Object) e.getStackTrace());
|
|
||||||
} finally {
|
|
||||||
close(is, br, response, client);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return sLine;
|
|
||||||
}
|
|
||||||
|
|
||||||
private static void close(InputStream is, BufferedReader br, CloseableHttpResponse response, CloseableHttpClient client) {
|
|
||||||
try {
|
|
||||||
if (null != is) {
|
|
||||||
is.close();
|
|
||||||
}
|
|
||||||
if (null != br) {
|
|
||||||
br.close();
|
|
||||||
}
|
|
||||||
if (null != response) {
|
|
||||||
response.close();
|
|
||||||
}
|
|
||||||
if (null != client) {
|
|
||||||
client.close();
|
|
||||||
}
|
|
||||||
} catch (IOException e) {
|
|
||||||
log.info("IO错误{}", (Object) e.getStackTrace());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
private static HttpGet setGet(HttpGet get) {
|
|
||||||
get.setHeader("Accept", "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8");
|
|
||||||
get.setHeader("Accept-Encoding", "gzip, deflate");
|
|
||||||
get.setHeader("Accept-Language", "zh-CN,zh;q=0.9,en-US;q=0.8,en;q=0.7,zh-TW;q=0.6");
|
|
||||||
get.setHeader("Connection", "keep-alive");
|
|
||||||
get.setHeader("Cache-Control", "no-cache");
|
|
||||||
get.setHeader("Upgrade-Insecure-Requests", "1");
|
|
||||||
get.setHeader("User-Agent", USER_AGENT);
|
|
||||||
return get;
|
|
||||||
}
|
|
||||||
|
|
||||||
public static void main(String[] args) {
|
|
||||||
String latAndLng = getLocal("36.89", "115.90");
|
|
||||||
System.out.println(latAndLng);
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,73 +0,0 @@
|
|||||||
package com.xkrs.utils;
|
|
||||||
|
|
||||||
import java.util.ArrayList;
|
|
||||||
import java.util.List;
|
|
||||||
import java.util.concurrent.ConcurrentHashMap;
|
|
||||||
import java.util.function.Supplier;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @author xkrs
|
|
||||||
*/
|
|
||||||
public class BeanUtils {
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 缓存BeanCopier 对象 提升性能
|
|
||||||
*/
|
|
||||||
private static final ConcurrentHashMap<String, org.springframework.cglib.beans.BeanCopier> BEAN_COPIER_MAP = new ConcurrentHashMap<>();
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Bean属性复制工具方法。
|
|
||||||
* @param sources 原始集合
|
|
||||||
* @param supplier: 目标类::new(eg: UserVO::new)
|
|
||||||
*/
|
|
||||||
public static <S, T> List<T> cgLibCopyList(List<S> sources, Supplier<T> supplier) {
|
|
||||||
List<T> list = new ArrayList<>(sources.size());
|
|
||||||
org.springframework.cglib.beans.BeanCopier beanCopier = null;
|
|
||||||
for (S source : sources) {
|
|
||||||
T t = supplier.get();
|
|
||||||
if (beanCopier == null) {
|
|
||||||
beanCopier = getBeanCopier(source.getClass(), t.getClass());
|
|
||||||
}
|
|
||||||
beanCopier.copy(source, t, null);
|
|
||||||
list.add(t);
|
|
||||||
}
|
|
||||||
return list;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Bean属性复制工具方法。
|
|
||||||
* @param source 目标对象
|
|
||||||
* @param supplier: 目标类::new(eg: UserVO::new)
|
|
||||||
*/
|
|
||||||
public static <T> T cgLibCopyBean(Object source, Supplier<T> supplier) {
|
|
||||||
T t = supplier.get();
|
|
||||||
getBeanCopier(source.getClass(), t.getClass()).copy(source, t, null);
|
|
||||||
return t;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 获取BeanCopier对象 如果缓存中有从缓存中获取 如果没有则新创建对象并加入缓存
|
|
||||||
* @param sourceClass
|
|
||||||
* @param targetClass
|
|
||||||
* @return
|
|
||||||
*/
|
|
||||||
private static org.springframework.cglib.beans.BeanCopier getBeanCopier(Class<?> sourceClass, Class<?> targetClass) {
|
|
||||||
String key = getKey(sourceClass.getName(), targetClass.getName());
|
|
||||||
org.springframework.cglib.beans.BeanCopier beanCopier;
|
|
||||||
beanCopier = BEAN_COPIER_MAP.get(key);
|
|
||||||
if (beanCopier == null) {
|
|
||||||
beanCopier = org.springframework.cglib.beans.BeanCopier.create(sourceClass, targetClass, false);
|
|
||||||
BEAN_COPIER_MAP.put(key, beanCopier);
|
|
||||||
}
|
|
||||||
return beanCopier;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 生成缓存key
|
|
||||||
*/
|
|
||||||
private static String getKey(String sourceClassName, String targetClassName) {
|
|
||||||
return sourceClassName + targetClassName;
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,12 +0,0 @@
|
|||||||
package com.xkrs.utils;
|
|
||||||
|
|
||||||
public class BroadcastUtils {
|
|
||||||
|
|
||||||
private BroadcastUtils() {
|
|
||||||
}
|
|
||||||
|
|
||||||
// public static void send(String firePointStreetCode, String firePointAddress) {
|
|
||||||
//
|
|
||||||
// }
|
|
||||||
|
|
||||||
}
|
|
@ -5,172 +5,6 @@ package com.xkrs.utils;
|
|||||||
*/
|
*/
|
||||||
public interface CommonConstant {
|
public interface CommonConstant {
|
||||||
|
|
||||||
/**
|
|
||||||
* 正常状态
|
|
||||||
*/
|
|
||||||
public static final String STATUS_NORMAL = "0";
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 禁用状态
|
|
||||||
*/
|
|
||||||
public static final String STATUS_DISABLE = "1";
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 删除标志
|
|
||||||
*/
|
|
||||||
public static final String DEL_FLAG_1 = "1";
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 未删除
|
|
||||||
*/
|
|
||||||
public static final String DEL_FLAG_0 = "0";
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 系统日志类型: 登录
|
|
||||||
*/
|
|
||||||
public static final int LOG_TYPE_1 = 1;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 系统日志类型: 操作
|
|
||||||
*/
|
|
||||||
public static final int LOG_TYPE_2 = 2;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 操作日志类型: 查询
|
|
||||||
*/
|
|
||||||
public static final int OPERATE_TYPE_1 = 1;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 操作日志类型: 添加
|
|
||||||
*/
|
|
||||||
public static final int OPERATE_TYPE_2 = 2;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 操作日志类型: 更新
|
|
||||||
*/
|
|
||||||
public static final int OPERATE_TYPE_3 = 3;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 操作日志类型: 删除
|
|
||||||
*/
|
|
||||||
public static final int OPERATE_TYPE_4 = 4;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 操作日志类型: 倒入
|
|
||||||
*/
|
|
||||||
public static final int OPERATE_TYPE_5 = 5;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 操作日志类型: 导出
|
|
||||||
*/
|
|
||||||
public static final int OPERATE_TYPE_6 = 6;
|
|
||||||
|
|
||||||
|
|
||||||
/** {@code 500 Server Error} (HTTP/1.0 - RFC 1945) */
|
|
||||||
public static final Integer SC_INTERNAL_SERVER_ERROR_500 = 500;
|
|
||||||
public static final Integer SC_INTERNAL_SERVER_ERROR_501 = 501;
|
|
||||||
public static final Integer SC_INTERNAL_SERVER_ERROR_502 = 502;
|
|
||||||
/** {@code 200 OK} (HTTP/1.0 - RFC 1945) */
|
|
||||||
public static final Integer SC_OK_200 = 200;
|
|
||||||
public static final Integer SC_OK_201 = 201;
|
|
||||||
public static final Integer SC_OK_202 = 202;
|
|
||||||
|
|
||||||
public static final Integer SC_OK_300 = 300;
|
|
||||||
public static final Integer SC_OK_301 = 301;
|
|
||||||
/**访问权限认证未通过 510*/
|
|
||||||
public static final Integer SC_JEECG_NO_AUTHZ=510;
|
|
||||||
|
|
||||||
/** 登录用户Shiro权限缓存KEY前缀 */
|
|
||||||
public static String PREFIX_USER_SHIRO_CACHE = "shiro:cache:org.jeecg.modules.shiro.authc.ShiroRealm.authorizationCache:";
|
|
||||||
/** 登录用户Token令牌缓存KEY前缀 */
|
|
||||||
public static final String PREFIX_USER_TOKEN = "prefix_user_token_";
|
|
||||||
/** Token缓存时间:3600秒即一小时 */
|
|
||||||
public static final int TOKEN_EXPIRE_TIME = 3600;
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 0:一级菜单
|
|
||||||
*/
|
|
||||||
public static final Integer MENU_TYPE_0 = 0;
|
|
||||||
/**
|
|
||||||
* 1:子菜单
|
|
||||||
*/
|
|
||||||
public static final Integer MENU_TYPE_1 = 1;
|
|
||||||
/**
|
|
||||||
* 2:按钮权限
|
|
||||||
*/
|
|
||||||
public static final Integer MENU_TYPE_2 = 2;
|
|
||||||
|
|
||||||
/**通告对象类型(USER:指定用户,ALL:全体用户)*/
|
|
||||||
public static final String MSG_TYPE_UESR = "USER";
|
|
||||||
public static final String MSG_TYPE_ALL = "ALL";
|
|
||||||
|
|
||||||
/**发布状态(0未发布,1已发布,2已撤销)*/
|
|
||||||
public static final String NO_SEND = "0";
|
|
||||||
public static final String HAS_SEND = "1";
|
|
||||||
public static final String HAS_CANCLE = "2";
|
|
||||||
|
|
||||||
/**阅读状态(0未读,1已读)*/
|
|
||||||
public static final String HAS_READ_FLAG = "1";
|
|
||||||
public static final String NO_READ_FLAG = "0";
|
|
||||||
|
|
||||||
/**优先级(L低,M中,H高)*/
|
|
||||||
public static final String PRIORITY_L = "L";
|
|
||||||
public static final String PRIORITY_M = "M";
|
|
||||||
public static final String PRIORITY_H = "H";
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 短信模板方式 0 .登录模板、1.注册模板、2.忘记密码模板
|
|
||||||
* 3 信息变更
|
|
||||||
*/
|
|
||||||
public static final String SMS_TPL_TYPE_0 = "0";
|
|
||||||
public static final String SMS_TPL_TYPE_1 = "1";
|
|
||||||
public static final String SMS_TPL_TYPE_2 = "2";
|
|
||||||
public static final String SMS_TPL_TYPE_3 = "3";
|
|
||||||
/**
|
|
||||||
* 状态(0无效1有效)
|
|
||||||
*/
|
|
||||||
public static final String STATUS_0 = "0";
|
|
||||||
public static final String STATUS_1 = "1";
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 同步工作流引擎1同步0不同步
|
|
||||||
*/
|
|
||||||
public static final Integer ACT_SYNC_1 = 1;
|
|
||||||
public static final Integer ACT_SYNC_0 = 0;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 消息类型1:通知公告2:系统消息
|
|
||||||
*/
|
|
||||||
public static final String MSG_CATEGORY_1 = "1";
|
|
||||||
public static final String MSG_CATEGORY_2 = "2";
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 是否配置菜单的数据权限 1是0否
|
|
||||||
*/
|
|
||||||
public static final Integer RULE_FLAG_0 = 0;
|
|
||||||
public static final Integer RULE_FLAG_1 = 1;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 是否用户已被冻结 1正常(解冻) 2冻结
|
|
||||||
*/
|
|
||||||
public static final String USER_UNFREEZE = "1";
|
|
||||||
public static final String USER_FREEZE = "2";
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 文件上传类型(本地:local,Minio:minio,阿里云:alioss)
|
|
||||||
*/
|
|
||||||
public static final String UPLOAD_TYPE_LOCAL = "local";
|
|
||||||
public static final String UPLOAD_TYPE_MINIO = "minio";
|
|
||||||
public static final String UPLOAD_TYPE_OSS = "alioss";
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 收入明细 (1:收入 2:支出)
|
|
||||||
*/
|
|
||||||
public static final Integer USER_IDENTITY_1 = 1;
|
|
||||||
public static final Integer USER_IDENTITY_2 = 2;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 高德天气URL、key
|
* 高德天气URL、key
|
||||||
*/
|
*/
|
||||||
|
@ -1,54 +0,0 @@
|
|||||||
package com.xkrs.utils;
|
|
||||||
|
|
||||||
import java.lang.reflect.Field;
|
|
||||||
import java.lang.reflect.Method;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 复制源对象的属性值
|
|
||||||
* @Author tajochen
|
|
||||||
*/
|
|
||||||
public class CopyPropertiesUtil {
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 复制源对象和目标对象的属性值
|
|
||||||
* @param source 源对象
|
|
||||||
* @param target 目标对象
|
|
||||||
* @throws SecurityException
|
|
||||||
* @throws IllegalArgumentException
|
|
||||||
*/
|
|
||||||
public static void copy(Object source, Object target) {
|
|
||||||
//得到对象的Class
|
|
||||||
Class sourceClass = source.getClass();
|
|
||||||
Class targetClass = target.getClass();
|
|
||||||
//得到Class对象的所有属性
|
|
||||||
Field[] sourceFields = sourceClass.getDeclaredFields();
|
|
||||||
Field[] targetFields = targetClass.getDeclaredFields();
|
|
||||||
|
|
||||||
for(Field sourceField : sourceFields){
|
|
||||||
//属性名
|
|
||||||
String name = sourceField.getName();
|
|
||||||
//属性类型
|
|
||||||
Class type = sourceField.getType();
|
|
||||||
String methodName = name.substring(0, 1).toUpperCase() + name.substring(1);
|
|
||||||
try{
|
|
||||||
//得到属性对应get方法
|
|
||||||
Method getMethod = sourceClass.getMethod("get" + methodName);
|
|
||||||
//执行源对象的get方法得到属性值
|
|
||||||
Object value = getMethod.invoke(source);
|
|
||||||
//目标对象的属性名
|
|
||||||
for(Field targetField : targetFields){
|
|
||||||
String targetName = targetField.getName();
|
|
||||||
if(targetName.equals(name)){
|
|
||||||
//属性对应的set方法
|
|
||||||
Method setMethod = targetClass.getMethod("set" + methodName, type);
|
|
||||||
//执行目标对象的set方法
|
|
||||||
setMethod.invoke(target, value);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
catch (Exception e){
|
|
||||||
e.printStackTrace();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
@ -9,7 +9,6 @@ public class DateTimeUtils {
|
|||||||
public final static DateTimeFormatter DATE_TIME_FORMATTER_1 = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
|
public final static DateTimeFormatter DATE_TIME_FORMATTER_1 = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
|
||||||
public final static DateTimeFormatter DATE_TIME_FORMATTER_2 = DateTimeFormatter.ofPattern("yyyy-MM-dd");
|
public final static DateTimeFormatter DATE_TIME_FORMATTER_2 = DateTimeFormatter.ofPattern("yyyy-MM-dd");
|
||||||
|
|
||||||
|
|
||||||
public static String localDateTimeToString(LocalDateTime localDateTime) {
|
public static String localDateTimeToString(LocalDateTime localDateTime) {
|
||||||
return DATE_TIME_FORMATTER_1.format(localDateTime);
|
return DATE_TIME_FORMATTER_1.format(localDateTime);
|
||||||
}
|
}
|
||||||
|
@ -1,36 +0,0 @@
|
|||||||
package com.xkrs.utils;
|
|
||||||
|
|
||||||
import java.lang.reflect.Constructor;
|
|
||||||
import java.util.ArrayList;
|
|
||||||
import java.util.List;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @author XinYi Song
|
|
||||||
*/
|
|
||||||
public class EntityManagerUtil {
|
|
||||||
/**
|
|
||||||
* 把List<Object[]>转换成List<T>
|
|
||||||
*/
|
|
||||||
public static <T> List<T> objectToBean(List<Object[]> objList, Class<T> clz) throws Exception{
|
|
||||||
if (objList==null || objList.size()==0) {
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
|
|
||||||
Class<?>[] cz = null;
|
|
||||||
Constructor<?>[] cons = clz.getConstructors();
|
|
||||||
for (Constructor<?> ct : cons) {
|
|
||||||
Class<?>[] clazz = ct.getParameterTypes();
|
|
||||||
if (objList.get(0).length == clazz.length) {
|
|
||||||
cz = clazz;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
List<T> list = new ArrayList<T>();
|
|
||||||
for (Object[] obj : objList) {
|
|
||||||
Constructor<T> cr = clz.getConstructor(cz);
|
|
||||||
list.add(cr.newInstance(obj));
|
|
||||||
}
|
|
||||||
return list;
|
|
||||||
}
|
|
||||||
}
|
|
@ -37,12 +37,6 @@ public class FileFastDfs {
|
|||||||
@Value("${dfs.port}")
|
@Value("${dfs.port}")
|
||||||
public String port;
|
public String port;
|
||||||
|
|
||||||
// @Value("${dfs.upload}")
|
|
||||||
// public String upload;
|
|
||||||
//
|
|
||||||
// @Value("${dfs.delete}")
|
|
||||||
// public String delete;
|
|
||||||
|
|
||||||
@Resource
|
@Resource
|
||||||
private KafkaTemplate<String, Object> kafkaTemplate;
|
private KafkaTemplate<String, Object> kafkaTemplate;
|
||||||
private static final Logger log = LoggerFactory.getLogger(FileFastDfs.class);
|
private static final Logger log = LoggerFactory.getLogger(FileFastDfs.class);
|
||||||
@ -52,6 +46,7 @@ public class FileFastDfs {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* 文件上传到dfs服务器
|
* 文件上传到dfs服务器
|
||||||
|
*
|
||||||
* @param file
|
* @param file
|
||||||
* @param dir
|
* @param dir
|
||||||
* @return
|
* @return
|
||||||
@ -61,8 +56,7 @@ public class FileFastDfs {
|
|||||||
InputStreamResource isr = null;
|
InputStreamResource isr = null;
|
||||||
try {
|
try {
|
||||||
file1 = multipartFileToFile(file);
|
file1 = multipartFileToFile(file);
|
||||||
isr=new InputStreamResource(file.getInputStream(),
|
isr = new InputStreamResource(file.getInputStream(), file.getOriginalFilename());
|
||||||
file.getOriginalFilename());
|
|
||||||
} catch (IOException e) {
|
} catch (IOException e) {
|
||||||
log.info("IO错误{}", (Object) e.getStackTrace());
|
log.info("IO错误{}", (Object) e.getStackTrace());
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
@ -84,9 +78,7 @@ public class FileFastDfs {
|
|||||||
String name = file1.getName();
|
String name = file1.getName();
|
||||||
System.err.println("file:" + file1.getName());
|
System.err.println("file:" + file1.getName());
|
||||||
paramMap.put("scene", name.substring(name.lastIndexOf(".") + 1));
|
paramMap.put("scene", name.substring(name.lastIndexOf(".") + 1));
|
||||||
paramMap.put("fileName", System.currentTimeMillis() + ""
|
paramMap.put("fileName", System.currentTimeMillis() + "" + Objects.requireNonNull(file.getOriginalFilename()).substring(file.getOriginalFilename().lastIndexOf(".")));
|
||||||
+ Objects.requireNonNull(file.getOriginalFilename())
|
|
||||||
.substring(file.getOriginalFilename().lastIndexOf(".")));
|
|
||||||
System.err.println(paramMap);
|
System.err.println(paramMap);
|
||||||
//
|
//
|
||||||
String result = HttpUtil.post("http://" + ip + ":" + port + "/group1/upload", paramMap);
|
String result = HttpUtil.post("http://" + ip + ":" + port + "/group1/upload", paramMap);
|
||||||
@ -111,7 +103,7 @@ public class FileFastDfs {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* @description: 文件上传到dfs服务器
|
* @description: 文件上传到dfs服务器
|
||||||
* @params [file:File 文件, dir 文件存放路径]
|
* @params [file:File 文件, dir 文件存放路径]
|
||||||
* @author: wd
|
* @author: wd
|
||||||
* @time: 2020/3/31 2020/3/31
|
* @time: 2020/3/31 2020/3/31
|
||||||
*/
|
*/
|
||||||
@ -154,7 +146,7 @@ public class FileFastDfs {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* @description: 文件上传到dfs服务器
|
* @description: 文件上传到dfs服务器
|
||||||
* @params [file:File 文件, dir 文件存放路径]
|
* @params [file:File 文件, dir 文件存放路径]
|
||||||
* @author: wd
|
* @author: wd
|
||||||
* @time: 2020/3/31 2020/3/31
|
* @time: 2020/3/31 2020/3/31
|
||||||
*/
|
*/
|
||||||
@ -251,12 +243,12 @@ public class FileFastDfs {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* @description: 文件base64流获取
|
* @description: 文件base64流获取
|
||||||
* @params [fileName : 文件路径]
|
* @params [fileName : 文件路径]
|
||||||
* @return: java.lang.String
|
* @return: java.lang.String
|
||||||
* @author: chqf
|
* @author: chqf
|
||||||
* @time: 2020/3/31 2020/3/31
|
* @time: 2020/3/31 2020/3/31
|
||||||
*/
|
*/
|
||||||
public String getBase64(String fileName) {
|
public String getBase64(String fileName) {
|
||||||
if (fileName == null || "".equals(fileName)) {
|
if (fileName == null || "".equals(fileName)) {
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
@ -284,7 +276,7 @@ public class FileFastDfs {
|
|||||||
imgStr = encoder.encodeToString(data.toByteArray());
|
imgStr = encoder.encodeToString(data.toByteArray());
|
||||||
} catch (IOException e) {
|
} catch (IOException e) {
|
||||||
log.info("IO错误{}", (Object) e.getStackTrace());
|
log.info("IO错误{}", (Object) e.getStackTrace());
|
||||||
}finally {
|
} finally {
|
||||||
try {
|
try {
|
||||||
if (null != fis) {
|
if (null != fis) {
|
||||||
fis.close();
|
fis.close();
|
||||||
@ -300,7 +292,7 @@ public class FileFastDfs {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* @description: 文件格式转换multipartFil 转为 File 格式
|
* @description: 文件格式转换multipartFil 转为 File 格式
|
||||||
* @params [file]
|
* @params [file]
|
||||||
* @return: java.io.File
|
* @return: java.io.File
|
||||||
* @author: dong
|
* @author: dong
|
||||||
* @time: 2020/3/31 2020/3/31
|
* @time: 2020/3/31 2020/3/31
|
||||||
@ -331,7 +323,7 @@ public class FileFastDfs {
|
|||||||
}
|
}
|
||||||
} catch (IOException e) {
|
} catch (IOException e) {
|
||||||
log.info("IO错误{}", (Object) e.getStackTrace());
|
log.info("IO错误{}", (Object) e.getStackTrace());
|
||||||
}finally {
|
} finally {
|
||||||
try {
|
try {
|
||||||
if (null != os) {
|
if (null != os) {
|
||||||
os.close();
|
os.close();
|
||||||
@ -347,7 +339,7 @@ public class FileFastDfs {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* @description: 文件base64流获取
|
* @description: 文件base64流获取
|
||||||
* @params [fileName : 文件路径]
|
* @params [fileName : 文件路径]
|
||||||
* @return: java.lang.String
|
* @return: java.lang.String
|
||||||
* @author: dong
|
* @author: dong
|
||||||
* @time: 2020/3/31 2020/3/31
|
* @time: 2020/3/31 2020/3/31
|
||||||
@ -373,12 +365,12 @@ public class FileFastDfs {
|
|||||||
int len;
|
int len;
|
||||||
try {
|
try {
|
||||||
assert fis != null;
|
assert fis != null;
|
||||||
while ((len = fis.read(b)) > 0){
|
while ((len = fis.read(b)) > 0) {
|
||||||
response.getOutputStream().write(b, 0, len);
|
response.getOutputStream().write(b, 0, len);
|
||||||
}
|
}
|
||||||
} catch (IOException e) {
|
} catch (IOException e) {
|
||||||
log.info("IO错误{}", (Object) e.getStackTrace());
|
log.info("IO错误{}", (Object) e.getStackTrace());
|
||||||
}finally {
|
} finally {
|
||||||
try {
|
try {
|
||||||
if (null != fis) {
|
if (null != fis) {
|
||||||
fis.close();
|
fis.close();
|
||||||
@ -392,6 +384,7 @@ public class FileFastDfs {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* 删除文件 path
|
* 删除文件 path
|
||||||
|
*
|
||||||
* @param filePath 文件路径 上传返回的path
|
* @param filePath 文件路径 上传返回的path
|
||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
@ -429,6 +422,7 @@ public class FileFastDfs {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* 删除文件 path
|
* 删除文件 path
|
||||||
|
*
|
||||||
* @param md5 上传返回的md5
|
* @param md5 上传返回的md5
|
||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
@ -465,9 +459,6 @@ public class FileFastDfs {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
public static void main(String[] args) {
|
public static void main(String[] args) {
|
||||||
File file = new File("C:\\Users\\dong\\Desktop\\遥感影像\\遥感影像\\GF1\\GF1_PMS1_E116.8_N36.6_20190528_L1A0004026837-MSS1_ORTHO_MS.tif");
|
File file = new File("C:\\Users\\dong\\Desktop\\遥感影像\\遥感影像\\GF1\\GF1_PMS1_E116.8_N36.6_20190528_L1A0004026837-MSS1_ORTHO_MS.tif");
|
||||||
FileFastDfs fileFastDfs = new FileFastDfs();
|
FileFastDfs fileFastDfs = new FileFastDfs();
|
||||||
|
@ -20,6 +20,7 @@ import static com.xkrs.utils.HttpClientUtils.sendHttpsGet;
|
|||||||
* @description
|
* @description
|
||||||
*/
|
*/
|
||||||
public class GaoDeApiUtil {
|
public class GaoDeApiUtil {
|
||||||
|
|
||||||
private static final Logger log = LoggerFactory.getLogger(GaoDeApiUtil.class);
|
private static final Logger log = LoggerFactory.getLogger(GaoDeApiUtil.class);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -1,40 +0,0 @@
|
|||||||
package com.xkrs.utils;
|
|
||||||
|
|
||||||
import java.security.MessageDigest;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* md5加密解密工具
|
|
||||||
* @author tajochen
|
|
||||||
*/
|
|
||||||
public class HashUtil {
|
|
||||||
|
|
||||||
/**
|
|
||||||
* MD5加密
|
|
||||||
*
|
|
||||||
* @param password
|
|
||||||
* @return
|
|
||||||
*/
|
|
||||||
public static String md5Encode(String password) {
|
|
||||||
MessageDigest md5 = null;
|
|
||||||
try {
|
|
||||||
md5 = MessageDigest.getInstance("MD5");
|
|
||||||
} catch (Exception e) {
|
|
||||||
throw new RuntimeException(e);
|
|
||||||
}
|
|
||||||
char[] charArray = password.toCharArray();
|
|
||||||
byte[] byteArray = new byte[charArray.length];
|
|
||||||
for (int i = 0; i < charArray.length; i++){
|
|
||||||
byteArray[i] = (byte) charArray[i];
|
|
||||||
}
|
|
||||||
byte[] md5Bytes = md5.digest(byteArray);
|
|
||||||
StringBuilder hexValue = new StringBuilder();
|
|
||||||
for (byte md5Byte : md5Bytes) {
|
|
||||||
int val = ((int) md5Byte) & 0xff;
|
|
||||||
if (val < 16) {
|
|
||||||
hexValue.append("0");
|
|
||||||
}
|
|
||||||
hexValue.append(Integer.toHexString(val));
|
|
||||||
}
|
|
||||||
return hexValue.toString();
|
|
||||||
}
|
|
||||||
}
|
|
@ -37,17 +37,19 @@ public class HttpClientUtils {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* 发送http+get请求
|
* 发送http+get请求
|
||||||
|
*
|
||||||
* @param url
|
* @param url
|
||||||
* @return 返回结果
|
* @return 返回结果
|
||||||
* @throws Exception
|
* @throws Exception
|
||||||
*/
|
*/
|
||||||
public static String sendHttpGet(String url) throws Exception {
|
public static String sendHttpGet(String url) throws Exception {
|
||||||
CloseableHttpClient httpClient = HttpClients.createDefault();
|
CloseableHttpClient httpClient = HttpClients.createDefault();
|
||||||
return doGet(url,httpClient);
|
return doGet(url, httpClient);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 发送https+get请求,绕过证书
|
* 发送https+get请求,绕过证书
|
||||||
|
*
|
||||||
* @param url 请求地址
|
* @param url 请求地址
|
||||||
* @return 返回结果
|
* @return 返回结果
|
||||||
* @throws Exception
|
* @throws Exception
|
||||||
@ -55,19 +57,15 @@ public class HttpClientUtils {
|
|||||||
public static String sendHttpsGet(String url) throws Exception {
|
public static String sendHttpsGet(String url) throws Exception {
|
||||||
// CloseableHttpClient httpClient = createIgnoreVerifyHttpClient();
|
// CloseableHttpClient httpClient = createIgnoreVerifyHttpClient();
|
||||||
//CloseableHttpClient httpClient = HttpClients.createDefault();
|
//CloseableHttpClient httpClient = HttpClients.createDefault();
|
||||||
SSLConnectionSocketFactory scsf = new SSLConnectionSocketFactory(
|
SSLConnectionSocketFactory scsf = new SSLConnectionSocketFactory(SSLContexts.custom().loadTrustMaterial(null, new TrustSelfSignedStrategy()).build(), NoopHostnameVerifier.INSTANCE);
|
||||||
SSLContexts.custom()
|
|
||||||
.loadTrustMaterial(null, new TrustSelfSignedStrategy())
|
|
||||||
.build(),
|
|
||||||
NoopHostnameVerifier.INSTANCE
|
|
||||||
);
|
|
||||||
CloseableHttpClient httpClient = HttpClients.custom().setSSLSocketFactory(scsf).build();
|
CloseableHttpClient httpClient = HttpClients.custom().setSSLSocketFactory(scsf).build();
|
||||||
return doGet(url,httpClient);
|
return doGet(url, httpClient);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 发送http+post请求
|
* 发送http+post请求
|
||||||
* @param url 请求地址
|
*
|
||||||
|
* @param url 请求地址
|
||||||
* @param params 请求参数 json字符串
|
* @param params 请求参数 json字符串
|
||||||
* @return 返回结果
|
* @return 返回结果
|
||||||
* @throws Exception
|
* @throws Exception
|
||||||
@ -79,7 +77,8 @@ public class HttpClientUtils {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* 发送https+post请求
|
* 发送https+post请求
|
||||||
* @param url 请求地址
|
*
|
||||||
|
* @param url 请求地址
|
||||||
* @param params 请求参数 json字符串
|
* @param params 请求参数 json字符串
|
||||||
* @return 返回结果
|
* @return 返回结果
|
||||||
* @throws Exception
|
* @throws Exception
|
||||||
@ -87,12 +86,7 @@ public class HttpClientUtils {
|
|||||||
public static String sendHttpsPost(String url, String params) throws Exception {
|
public static String sendHttpsPost(String url, String params) throws Exception {
|
||||||
// CloseableHttpClient httpClient = createIgnoreVerifyHttpClient();
|
// CloseableHttpClient httpClient = createIgnoreVerifyHttpClient();
|
||||||
// CloseableHttpClient httpClient = null;
|
// CloseableHttpClient httpClient = null;
|
||||||
SSLConnectionSocketFactory scsf = new SSLConnectionSocketFactory(
|
SSLConnectionSocketFactory scsf = new SSLConnectionSocketFactory(SSLContexts.custom().loadTrustMaterial(null, new TrustSelfSignedStrategy()).build(), NoopHostnameVerifier.INSTANCE);
|
||||||
SSLContexts.custom()
|
|
||||||
.loadTrustMaterial(null, new TrustSelfSignedStrategy())
|
|
||||||
.build(),
|
|
||||||
NoopHostnameVerifier.INSTANCE
|
|
||||||
);
|
|
||||||
CloseableHttpClient httpClient = HttpClients.custom().setSSLSocketFactory(scsf).build();
|
CloseableHttpClient httpClient = HttpClients.custom().setSSLSocketFactory(scsf).build();
|
||||||
// CloseableHttpClient httpClient = HttpClients.createDefault();
|
// CloseableHttpClient httpClient = HttpClients.createDefault();
|
||||||
return doPost(httpClient, url, params);
|
return doPost(httpClient, url, params);
|
||||||
@ -102,10 +96,10 @@ public class HttpClientUtils {
|
|||||||
/**
|
/**
|
||||||
* 封装get请求方式的处理
|
* 封装get请求方式的处理
|
||||||
*/
|
*/
|
||||||
private static String doGet(String url,CloseableHttpClient httpClient) throws Exception {
|
private static String doGet(String url, CloseableHttpClient httpClient) throws Exception {
|
||||||
log.info("HGet请求url={}", url);
|
log.info("HGet请求url={}", url);
|
||||||
HttpGet httpGet = new HttpGet(url);
|
HttpGet httpGet = new HttpGet(url);
|
||||||
return execute(httpClient,httpGet);
|
return execute(httpClient, httpGet);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -117,7 +111,7 @@ public class HttpClientUtils {
|
|||||||
HttpPost httpPost = new HttpPost(url);
|
HttpPost httpPost = new HttpPost(url);
|
||||||
httpPost.addHeader("Content-Type", "application/json; charset=utf-8");
|
httpPost.addHeader("Content-Type", "application/json; charset=utf-8");
|
||||||
httpPost.setEntity(new StringEntity(params));
|
httpPost.setEntity(new StringEntity(params));
|
||||||
return execute(httpClient,httpPost);
|
return execute(httpClient, httpPost);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -132,7 +126,7 @@ public class HttpClientUtils {
|
|||||||
log.info("HttpClient响应码={}", statusCode);
|
log.info("HttpClient响应码={}", statusCode);
|
||||||
final int success = 200;
|
final int success = 200;
|
||||||
if (statusCode == success) {
|
if (statusCode == success) {
|
||||||
result = EntityUtils.toString(response.getEntity(),"utf-8");
|
result = EntityUtils.toString(response.getEntity(), "utf-8");
|
||||||
} else {
|
} else {
|
||||||
log.error("HttpClient请求失败,错误码={}", statusCode);
|
log.error("HttpClient请求失败,错误码={}", statusCode);
|
||||||
}
|
}
|
||||||
@ -162,15 +156,11 @@ public class HttpClientUtils {
|
|||||||
// 实现一个X509TrustManager接口
|
// 实现一个X509TrustManager接口
|
||||||
X509TrustManager trustManager = new X509TrustManager() {
|
X509TrustManager trustManager = new X509TrustManager() {
|
||||||
@Override
|
@Override
|
||||||
public void checkClientTrusted(
|
public void checkClientTrusted(X509Certificate[] paramArrayOfX509Certificate, String paramString) throws CertificateException {
|
||||||
X509Certificate[] paramArrayOfX509Certificate,
|
|
||||||
String paramString) throws CertificateException {
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void checkServerTrusted(
|
public void checkServerTrusted(X509Certificate[] paramArrayOfX509Certificate, String paramString) throws CertificateException {
|
||||||
X509Certificate[] paramArrayOfX509Certificate,
|
|
||||||
String paramString) throws CertificateException {
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@ -179,10 +169,7 @@ public class HttpClientUtils {
|
|||||||
}
|
}
|
||||||
};
|
};
|
||||||
sslContext.init(null, new TrustManager[]{trustManager}, null);
|
sslContext.init(null, new TrustManager[]{trustManager}, null);
|
||||||
Registry<ConnectionSocketFactory> socketFactoryRegistry =
|
Registry<ConnectionSocketFactory> socketFactoryRegistry = RegistryBuilder.<ConnectionSocketFactory>create().register("http", PlainConnectionSocketFactory.INSTANCE).register("https", new SSLConnectionSocketFactory(sslContext)).build();
|
||||||
RegistryBuilder.<ConnectionSocketFactory>create()
|
|
||||||
.register("http", PlainConnectionSocketFactory.INSTANCE)
|
|
||||||
.register("https", new SSLConnectionSocketFactory(sslContext)).build();
|
|
||||||
PoolingHttpClientConnectionManager connManager = new PoolingHttpClientConnectionManager(socketFactoryRegistry);
|
PoolingHttpClientConnectionManager connManager = new PoolingHttpClientConnectionManager(socketFactoryRegistry);
|
||||||
CloseableHttpClient httpClient = HttpClients.custom().setConnectionManager(connManager).build();
|
CloseableHttpClient httpClient = HttpClients.custom().setConnectionManager(connManager).build();
|
||||||
return httpClient;
|
return httpClient;
|
||||||
|
@ -4,6 +4,7 @@ import javax.servlet.http.HttpServletRequest;
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* IP地址处理工具
|
* IP地址处理工具
|
||||||
|
*
|
||||||
* @author tajochen
|
* @author tajochen
|
||||||
*/
|
*/
|
||||||
public class IpUtil {
|
public class IpUtil {
|
||||||
@ -14,7 +15,7 @@ public class IpUtil {
|
|||||||
final char splitChar = ',';
|
final char splitChar = ',';
|
||||||
if (ip != null && ip.length() != 0 && !unkonwMsg.equalsIgnoreCase(ip)) {
|
if (ip != null && ip.length() != 0 && !unkonwMsg.equalsIgnoreCase(ip)) {
|
||||||
// 多次反向代理后会有多个ip值,第一个ip才是真实ip
|
// 多次反向代理后会有多个ip值,第一个ip才是真实ip
|
||||||
if( ip.indexOf(splitChar)!=-1 ){
|
if (ip.indexOf(splitChar) != -1) {
|
||||||
ip = ip.split(",")[0];
|
ip = ip.split(",")[0];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,40 +0,0 @@
|
|||||||
package com.xkrs.utils;
|
|
||||||
|
|
||||||
import com.xkrs.model.entity.FireTaskPhoto;
|
|
||||||
import org.springframework.jdbc.core.BatchPreparedStatementSetter;
|
|
||||||
import org.springframework.jdbc.core.JdbcTemplate;
|
|
||||||
import org.springframework.stereotype.Component;
|
|
||||||
|
|
||||||
import javax.annotation.Resource;
|
|
||||||
import java.sql.PreparedStatement;
|
|
||||||
import java.sql.SQLException;
|
|
||||||
import java.util.List;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @author XinYi Song
|
|
||||||
*/
|
|
||||||
@Component
|
|
||||||
public class JdbcUtils {
|
|
||||||
@Resource
|
|
||||||
private JdbcTemplate jdbcTemplate;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* jdbcTemplate,batchUpdate增加,需自己定义sql,需要配置
|
|
||||||
* @param list
|
|
||||||
*/
|
|
||||||
public List<FireTaskPhoto> batchWithJdbcTemplate(List<FireTaskPhoto> list){
|
|
||||||
String sql = "Insert into fire_task_photo(photo_fire_code,task_photo) values(?,?)";
|
|
||||||
jdbcTemplate.batchUpdate(sql,new BatchPreparedStatementSetter() {
|
|
||||||
@Override
|
|
||||||
public void setValues(PreparedStatement ps, int i) throws SQLException {
|
|
||||||
ps.setString(1,list.get(i).getPhotoFireCode());
|
|
||||||
ps.setString(2,list.get(i).getTaskPhoto());
|
|
||||||
}
|
|
||||||
@Override
|
|
||||||
public int getBatchSize() {
|
|
||||||
return list.size();
|
|
||||||
}
|
|
||||||
});
|
|
||||||
return list;
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,21 +0,0 @@
|
|||||||
package com.xkrs.utils;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 数字工具
|
|
||||||
* @author tajochen
|
|
||||||
*/
|
|
||||||
public class NumberUtil {
|
|
||||||
|
|
||||||
public static boolean isStrNumeric(String str) {
|
|
||||||
if(str==null||str.length()==0){
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
for (int i = 0; i < str.length(); i++) {
|
|
||||||
System.out.println(str.charAt(i));
|
|
||||||
if (!Character.isDigit(str.charAt(i))) {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
}
|
|
@ -22,8 +22,8 @@ public class ObjectToBeanUtils {
|
|||||||
/**
|
/**
|
||||||
* 把List<Object[]>转换成List<T>
|
* 把List<Object[]>转换成List<T>
|
||||||
*/
|
*/
|
||||||
public static <T> List<T> objectToBean(List<Object[]> objList, Class<T> clz) throws Exception{
|
public static <T> List<T> objectToBean(List<Object[]> objList, Class<T> clz) throws Exception {
|
||||||
if (objList==null || objList.size()==0) {
|
if (objList == null || objList.size() == 0) {
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -45,70 +45,6 @@ public class ObjectToBeanUtils {
|
|||||||
return list;
|
return list;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
public static <T> List<T> objectToBeans(List<Object[]> objList, Class<T> clz) throws Exception{
|
|
||||||
if (objList==null || objList.size()==0) {
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
|
|
||||||
int length = objList.get(0).length;
|
|
||||||
log.info("*************>"+length);
|
|
||||||
|
|
||||||
Class<?>[] cz = null;
|
|
||||||
Constructor<?>[] cons = clz.getConstructors();
|
|
||||||
for (Constructor<?> ct : cons) {
|
|
||||||
Class<?>[] clazz = ct.getParameterTypes();
|
|
||||||
if (objList.get(0).length == clazz.length) {
|
|
||||||
cz = clazz;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
List<T> list = new ArrayList<T>();
|
|
||||||
log.info("---------->"+objList.get(0));
|
|
||||||
Constructor<T> cr = clz.getConstructor(cz);
|
|
||||||
T newInstance = cr.newInstance((Object) objList.get(0));
|
|
||||||
list.add(newInstance);
|
|
||||||
return list;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
public static <T> List<T> castEntity(List<Object[]> list, Class<T> clazz, Object model) {
|
|
||||||
List<T> returnList = new ArrayList<T>();
|
|
||||||
if (list.isEmpty()) {
|
|
||||||
return returnList;
|
|
||||||
}
|
|
||||||
//获取每个数组集合的元素个数
|
|
||||||
Object[] co = list.get(0);
|
|
||||||
|
|
||||||
//获取当前实体类的属性名、属性值、属性类别
|
|
||||||
List<Map> attributeInfoList = getFiledsInfo(model);
|
|
||||||
//创建属性类别数组
|
|
||||||
Class[] c2 = new Class[attributeInfoList.size()];
|
|
||||||
//如果数组集合元素个数与实体类属性个数不一致则发生错误
|
|
||||||
if (attributeInfoList.size() != co.length) {
|
|
||||||
return returnList;
|
|
||||||
}
|
|
||||||
//确定构造方法
|
|
||||||
for (int i = 0; i < attributeInfoList.size(); i++) {
|
|
||||||
c2[i] = (Class) attributeInfoList.get(i).get("type");
|
|
||||||
}
|
|
||||||
try {
|
|
||||||
for (Object[] o : list) {
|
|
||||||
Constructor<T> constructor = clazz.getConstructor(c2);
|
|
||||||
returnList.add(constructor.newInstance(o));
|
|
||||||
}
|
|
||||||
} catch (Exception ex) {
|
|
||||||
log.info("实体数据转化为实体类发生异常:异常信息:{}", ex.getMessage());
|
|
||||||
return returnList;
|
|
||||||
}
|
|
||||||
return returnList;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 根据属性名获取属性值
|
* 根据属性名获取属性值
|
||||||
*
|
*
|
||||||
|
@ -1,37 +0,0 @@
|
|||||||
package com.xkrs.utils;
|
|
||||||
|
|
||||||
import org.geolatte.geom.Geometry;
|
|
||||||
import org.geolatte.geom.Point;
|
|
||||||
import org.geolatte.geom.codec.Wkt;
|
|
||||||
import org.slf4j.Logger;
|
|
||||||
import org.slf4j.LoggerFactory;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 开源Gis工具集
|
|
||||||
* @author tajochen
|
|
||||||
*/
|
|
||||||
public class OpenGeoUtil {
|
|
||||||
|
|
||||||
Logger logger = LoggerFactory.getLogger(OpenGeoUtil.class);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* wkt文本转为点数据
|
|
||||||
* @param wkt
|
|
||||||
* @return
|
|
||||||
*/
|
|
||||||
public static Point wktStrToPoint(String wkt) {
|
|
||||||
Point point = (Point) Wkt.fromWkt(wkt);
|
|
||||||
return point;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* wkt文本转geometry
|
|
||||||
* @param wkt
|
|
||||||
* @return
|
|
||||||
*/
|
|
||||||
public static Geometry wktStrToGeom(String wkt) {
|
|
||||||
Geometry geom = Wkt.fromWkt(wkt);
|
|
||||||
return geom;
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
@ -24,11 +24,12 @@ public class PhotoUtil {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* 上传单张图片
|
* 上传单张图片
|
||||||
|
*
|
||||||
* @param imgFile
|
* @param imgFile
|
||||||
* @return
|
* @return
|
||||||
* @throws IOException
|
* @throws IOException
|
||||||
*/
|
*/
|
||||||
public static String memoryPhoto(MultipartFile imgFile,String distributedTime,String distributedType) throws IOException {
|
public static String memoryPhoto(MultipartFile imgFile, String distributedTime, String distributedType) throws IOException {
|
||||||
//String uploadPath = "http://139.199.98.175:2088/wfTaskImage/";
|
//String uploadPath = "http://139.199.98.175:2088/wfTaskImage/";
|
||||||
String uploadPath = "http://192.168.2.172/";
|
String uploadPath = "http://192.168.2.172/";
|
||||||
//获取原始文件名
|
//获取原始文件名
|
||||||
@ -52,13 +53,14 @@ public class PhotoUtil {
|
|||||||
imgFile.transferTo(new File(path));
|
imgFile.transferTo(new File(path));
|
||||||
|
|
||||||
|
|
||||||
return "video/"+newName;
|
return "video/" + newName;
|
||||||
}
|
}
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 以文件形式,批量上传图片
|
* 以文件形式,批量上传图片
|
||||||
|
*
|
||||||
* @param files
|
* @param files
|
||||||
* @return
|
* @return
|
||||||
* @throws IOException
|
* @throws IOException
|
||||||
@ -69,7 +71,7 @@ public class PhotoUtil {
|
|||||||
String newName = "";
|
String newName = "";
|
||||||
String oldName = "";
|
String oldName = "";
|
||||||
List<FireTaskPhoto> fireTaskPhotos = new ArrayList<>();
|
List<FireTaskPhoto> fireTaskPhotos = new ArrayList<>();
|
||||||
for(MultipartFile file : files){
|
for (MultipartFile file : files) {
|
||||||
//获取file图片名称
|
//获取file图片名称
|
||||||
oldName = file.getOriginalFilename();
|
oldName = file.getOriginalFilename();
|
||||||
//找到 . 的位置
|
//找到 . 的位置
|
||||||
@ -99,27 +101,27 @@ public class PhotoUtil {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 删除本地或服务器储存的图片
|
* 删除本地或服务器储存的图片
|
||||||
|
*
|
||||||
* @param path
|
* @param path
|
||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
public static String delFile(String path){
|
public static String delFile(String path) {
|
||||||
String resultInfo = null;
|
String resultInfo = null;
|
||||||
int lastIndexOf = path.lastIndexOf("/");
|
int lastIndexOf = path.lastIndexOf("/");
|
||||||
String imgPath = path.substring(lastIndexOf + 1,path.length());
|
String imgPath = path.substring(lastIndexOf + 1, path.length());
|
||||||
System.out.println(imgPath);
|
System.out.println(imgPath);
|
||||||
imgPath = "/usr/local/etc/images/" + imgPath;
|
imgPath = "/usr/local/etc/images/" + imgPath;
|
||||||
// img_path = "/usr/etc/images/Folder/" + img_path;
|
// img_path = "/usr/etc/images/Folder/" + img_path;
|
||||||
File file = new File(imgPath);
|
File file = new File(imgPath);
|
||||||
if(file.exists()){
|
if (file.exists()) {
|
||||||
if(file.delete()){
|
if (file.delete()) {
|
||||||
resultInfo = "删除成功!";
|
resultInfo = "删除成功!";
|
||||||
}else {
|
} else {
|
||||||
resultInfo = "删除失败!";
|
resultInfo = "删除失败!";
|
||||||
}
|
}
|
||||||
}else {
|
} else {
|
||||||
resultInfo = "文件不存在";
|
resultInfo = "文件不存在";
|
||||||
}
|
}
|
||||||
return resultInfo;
|
return resultInfo;
|
||||||
@ -127,6 +129,7 @@ public class PhotoUtil {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* 通过图片路径解析 ,上传保存
|
* 通过图片路径解析 ,上传保存
|
||||||
|
*
|
||||||
* @param listImgSrc
|
* @param listImgSrc
|
||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
@ -171,17 +174,18 @@ public class PhotoUtil {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* 删除本地文件夹图片
|
* 删除本地文件夹图片
|
||||||
|
*
|
||||||
* @param url
|
* @param url
|
||||||
*/
|
*/
|
||||||
public static void deleteImage(String url){
|
public static void deleteImage(String url) {
|
||||||
File file=new File(url);
|
File file = new File(url);
|
||||||
//判断file是否是文件目录 若是返回TRUE
|
//判断file是否是文件目录 若是返回TRUE
|
||||||
if (file.isDirectory()){
|
if (file.isDirectory()) {
|
||||||
//name存储file文件夹中的文件名
|
//name存储file文件夹中的文件名
|
||||||
String[] name =file.list();
|
String[] name = file.list();
|
||||||
for (int i=0; i<name.length; i++){
|
for (int i = 0; i < name.length; i++) {
|
||||||
//此时就可得到文件夹中的文件
|
//此时就可得到文件夹中的文件
|
||||||
File f=new File(url, name[i]);
|
File f = new File(url, name[i]);
|
||||||
//删除文件
|
//删除文件
|
||||||
f.delete();
|
f.delete();
|
||||||
}
|
}
|
||||||
|
@ -1,68 +1,16 @@
|
|||||||
package com.xkrs.utils;
|
package com.xkrs.utils;
|
||||||
|
|
||||||
import java.util.Random;
|
import java.util.Random;
|
||||||
import java.util.UUID;
|
|
||||||
import java.util.regex.Matcher;
|
|
||||||
import java.util.regex.Pattern;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 随机字符串产生工具
|
* 随机字符串产生工具
|
||||||
|
*
|
||||||
* @author tajochen
|
* @author tajochen
|
||||||
*/
|
*/
|
||||||
public class RandomUtil {
|
public class RandomUtil {
|
||||||
/**
|
|
||||||
* 获取随机字母数字组合
|
|
||||||
* @param length
|
|
||||||
* 字符串长度
|
|
||||||
* @return
|
|
||||||
*/
|
|
||||||
public static String getRandomCharAndNumr(Integer length) {
|
|
||||||
String str = "";
|
|
||||||
StringBuilder strBuffer = new StringBuilder();
|
|
||||||
Random random = new Random();
|
|
||||||
for (int i = 0; i < length; i++) {
|
|
||||||
boolean b = random.nextBoolean();
|
|
||||||
// 字符串
|
|
||||||
if (b) {
|
|
||||||
//取得65大写字母还是97小写字母
|
|
||||||
int choice = random.nextBoolean() ? 65 : 97;
|
|
||||||
strBuffer.append((char) (choice + random.nextInt(26)));
|
|
||||||
} else {
|
|
||||||
// 数字
|
|
||||||
strBuffer.append(random.nextInt(10));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
str = strBuffer.toString();
|
|
||||||
return str;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 验证随机字母数字组合是否纯数字与纯字母
|
|
||||||
* @param str
|
|
||||||
* @return true 是 , false 否
|
|
||||||
*/
|
|
||||||
public static boolean isRandomUsable(String str) {
|
|
||||||
// String regExp =
|
|
||||||
// "^[A-Za-z]+(([0-9]+[A-Za-z0-9]+)|([A-Za-z0-9]+[0-9]+))|[0-9]+(([A-Za-z]+[A-Za-z0-9]+)|([A-Za-z0-9]+[A-Za-z]+))$";
|
|
||||||
String regExp = "^([0-9]+)|([A-Za-z]+)$";
|
|
||||||
Pattern pat = Pattern.compile(regExp);
|
|
||||||
Matcher mat = pat.matcher(str);
|
|
||||||
return mat.matches();
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 生成UUID
|
|
||||||
* @return
|
|
||||||
*/
|
|
||||||
public static String getUuid32(){
|
|
||||||
String uuid = UUID.randomUUID().toString().replace("-", "").toLowerCase();
|
|
||||||
return uuid;
|
|
||||||
// return UUID.randomUUID().toString().replace("-", "").toLowerCase();
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 随机生成六位数
|
* 随机生成六位数
|
||||||
* @return
|
|
||||||
*/
|
*/
|
||||||
public static int returnCode() {
|
public static int returnCode() {
|
||||||
Random rand = new Random();
|
Random rand = new Random();
|
||||||
|
@ -1,124 +0,0 @@
|
|||||||
package com.xkrs.utils;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 基于Twitter开源的分布式ID生成算法snowflake
|
|
||||||
* @author tajochen
|
|
||||||
**/
|
|
||||||
public class SnowFlakeUtil {
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 起始时间戳
|
|
||||||
* 2018-01-01 00:00:00
|
|
||||||
*/
|
|
||||||
private final static long START_STMP = 1514736000L;
|
|
||||||
/**
|
|
||||||
* 序列在id中占用的位数
|
|
||||||
*/
|
|
||||||
private final static long SEQUENCE_BIT = 12L;
|
|
||||||
/**
|
|
||||||
* 机器标识占用的位数
|
|
||||||
*/
|
|
||||||
private final static long MACHINE_BIT = 5L;
|
|
||||||
/**
|
|
||||||
* 数据中心占用的位数
|
|
||||||
*/
|
|
||||||
private final static long DATACENTER_BIT = 5L;
|
|
||||||
/**
|
|
||||||
* 每一部分的最大值
|
|
||||||
*/
|
|
||||||
private final static long MAX_DATACENTER_NUM = -1L ^ (-1L << DATACENTER_BIT);
|
|
||||||
private final static long MAX_MACHINE_NUM = -1L ^ (-1L << MACHINE_BIT);
|
|
||||||
private final static long MAX_SEQUENCE = -1L ^ (-1L << SEQUENCE_BIT);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 每一部分向左的位移
|
|
||||||
*/
|
|
||||||
private final static long MACHINE_LEFT = SEQUENCE_BIT;
|
|
||||||
private final static long DATACENTER_LEFT = SEQUENCE_BIT + MACHINE_BIT;
|
|
||||||
private final static long TIMESTMP_LEFT = DATACENTER_LEFT + DATACENTER_BIT;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 数据中心
|
|
||||||
*/
|
|
||||||
private long datacenterId;
|
|
||||||
/**
|
|
||||||
* 机器标识
|
|
||||||
*/
|
|
||||||
private long machineId;
|
|
||||||
/**
|
|
||||||
* 序列号
|
|
||||||
*/
|
|
||||||
private long sequence = 0L;
|
|
||||||
/**
|
|
||||||
* 上一次时间戳
|
|
||||||
*/
|
|
||||||
private long lastStmp = -1L;
|
|
||||||
|
|
||||||
public SnowFlakeUtil(long datacenterId, long machineId) {
|
|
||||||
if (datacenterId > MAX_DATACENTER_NUM || datacenterId < 0) {
|
|
||||||
throw new IllegalArgumentException("data center id can't be greater than MAX_DATACENTER_NUM or less than 0");
|
|
||||||
}
|
|
||||||
if (machineId > MAX_MACHINE_NUM || machineId < 0) {
|
|
||||||
throw new IllegalArgumentException("machine id can't be greater than MAX_MACHINE_NUM or less than 0");
|
|
||||||
}
|
|
||||||
this.datacenterId = datacenterId;
|
|
||||||
this.machineId = machineId;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 产生下一个ID
|
|
||||||
* @return
|
|
||||||
*/
|
|
||||||
public synchronized long nextId() {
|
|
||||||
long currStmp = getNewstmp();
|
|
||||||
if (currStmp < lastStmp) {
|
|
||||||
throw new RuntimeException("Clock moved backwards. Refusing to generate id");
|
|
||||||
}
|
|
||||||
|
|
||||||
if (currStmp == lastStmp) {
|
|
||||||
//相同毫秒内,序列号自增
|
|
||||||
sequence = (sequence + 1) & MAX_SEQUENCE;
|
|
||||||
//同一毫秒的序列数已经达到最大
|
|
||||||
if (sequence == 0L) {
|
|
||||||
currStmp = getNextMill();
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
//不同毫秒内,序列号置为0
|
|
||||||
sequence = 0L;
|
|
||||||
}
|
|
||||||
|
|
||||||
lastStmp = currStmp;
|
|
||||||
//时间戳部分
|
|
||||||
return (currStmp - START_STMP) << TIMESTMP_LEFT
|
|
||||||
//数据中心部分
|
|
||||||
| datacenterId << DATACENTER_LEFT
|
|
||||||
//机器标识部分
|
|
||||||
| machineId << MACHINE_LEFT
|
|
||||||
//序列号部分
|
|
||||||
| sequence;
|
|
||||||
}
|
|
||||||
|
|
||||||
private long getNextMill() {
|
|
||||||
long mill = getNewstmp();
|
|
||||||
while (mill <= lastStmp) {
|
|
||||||
mill = getNewstmp();
|
|
||||||
}
|
|
||||||
return mill;
|
|
||||||
}
|
|
||||||
|
|
||||||
private long getNewstmp() {
|
|
||||||
return System.currentTimeMillis();
|
|
||||||
}
|
|
||||||
|
|
||||||
public static void main(String[] args) {
|
|
||||||
SnowFlakeUtil snowFlake = new SnowFlakeUtil(5, 5);
|
|
||||||
//测试次数
|
|
||||||
int testTimes = 10000;
|
|
||||||
long start = System.currentTimeMillis();
|
|
||||||
for (int i = 0; i < testTimes; i++) {
|
|
||||||
System.out.println(snowFlake.nextId());
|
|
||||||
}
|
|
||||||
|
|
||||||
System.out.println(System.currentTimeMillis() - start);
|
|
||||||
}
|
|
||||||
}
|
|
Loading…
Reference in New Issue
Block a user