|
@ -1,218 +1,245 @@
|
|
|
package com.yihu.wlyy.util;
|
|
|
|
|
|
import java.io.ByteArrayInputStream;
|
|
|
import java.io.ByteArrayOutputStream;
|
|
|
import java.io.File;
|
|
|
import java.io.IOException;
|
|
|
import java.io.InputStream;
|
|
|
import java.io.ObjectInputStream;
|
|
|
import java.io.ObjectOutputStream;
|
|
|
import java.io.*;
|
|
|
|
|
|
import com.fasterxml.jackson.databind.node.ObjectNode;
|
|
|
import com.yihu.wlyy.config.FastDFSConfig;
|
|
|
import com.yihu.wlyy.util.fastdfs.FastDFSUtil;
|
|
|
import org.apache.commons.io.FileUtils;
|
|
|
import org.apache.commons.lang3.StringUtils;
|
|
|
|
|
|
public class CommonUtil {
|
|
|
|
|
|
/**
|
|
|
* 获取图片全路径
|
|
|
*
|
|
|
* @return
|
|
|
*/
|
|
|
public static String getPhoneUrl(String url) {
|
|
|
if (StringUtils.isEmpty(url)) {
|
|
|
return "";
|
|
|
} else {
|
|
|
if (url.indexOf("http") > -1) {
|
|
|
return url;
|
|
|
} else {
|
|
|
return SystemConf.getInstance().getServerUrl() + url;
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
|
|
|
public static String getMobileEncode(String mobile) {
|
|
|
if (StringUtils.isNotEmpty(mobile) && mobile.length() == 11) {
|
|
|
return mobile.substring(0, 4) + "****" + mobile.substring(8, 11);
|
|
|
}
|
|
|
return mobile;
|
|
|
}
|
|
|
|
|
|
public static String getIdcardEncode(String idcard) {
|
|
|
if (idcard != null) {
|
|
|
if (idcard.length() == 18) {
|
|
|
return idcard.substring(0, 9) + "*******" + idcard.substring(16, 18);
|
|
|
} else if (idcard.length() == 15) {
|
|
|
return idcard.substring(0, 8) + "***" + idcard.substring(11, 15);
|
|
|
}
|
|
|
}
|
|
|
return idcard;
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* 对象转数组
|
|
|
* @param obj
|
|
|
* @return
|
|
|
*/
|
|
|
public static byte[] toByteArray(Object obj) {
|
|
|
byte[] bytes = null;
|
|
|
ByteArrayOutputStream bos = new ByteArrayOutputStream();
|
|
|
try {
|
|
|
ObjectOutputStream oos = new ObjectOutputStream(bos);
|
|
|
oos.writeObject(obj);
|
|
|
oos.flush();
|
|
|
bytes = bos.toByteArray();
|
|
|
oos.close();
|
|
|
bos.close();
|
|
|
} catch (IOException ex) {
|
|
|
ex.printStackTrace();
|
|
|
}
|
|
|
return bytes;
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* 数组转对象
|
|
|
* @param bytes
|
|
|
* @return
|
|
|
*/
|
|
|
public static Object toObject(byte[] bytes) {
|
|
|
Object obj = null;
|
|
|
try {
|
|
|
ByteArrayInputStream bis = new ByteArrayInputStream(bytes);
|
|
|
ObjectInputStream ois = new ObjectInputStream(bis);
|
|
|
obj = ois.readObject();
|
|
|
ois.close();
|
|
|
bis.close();
|
|
|
} catch (IOException ex) {
|
|
|
ex.printStackTrace();
|
|
|
} catch (ClassNotFoundException ex) {
|
|
|
ex.printStackTrace();
|
|
|
}
|
|
|
return obj;
|
|
|
}
|
|
|
|
|
|
public static final InputStream byte2Input(byte[] buf) {
|
|
|
return new ByteArrayInputStream(buf);
|
|
|
}
|
|
|
|
|
|
public static final byte[] input2byte(InputStream inStream) throws IOException {
|
|
|
ByteArrayOutputStream swapStream = new ByteArrayOutputStream();
|
|
|
byte[] buff = new byte[100];
|
|
|
int rc = 0;
|
|
|
while ((rc = inStream.read(buff, 0, 100)) > 0) {
|
|
|
swapStream.write(buff, 0, rc);
|
|
|
}
|
|
|
byte[] in2b = swapStream.toByteArray();
|
|
|
return in2b;
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* 返回:张三为张*
|
|
|
* @param name 姓名
|
|
|
* @return
|
|
|
*/
|
|
|
public static String getEncryptName(String name) {
|
|
|
if (StringUtils.isEmpty(name)) {
|
|
|
return null;
|
|
|
}
|
|
|
if (name.length() == 1) {
|
|
|
return name;
|
|
|
}
|
|
|
// 获取姓
|
|
|
String temp = name.substring(0, 1);
|
|
|
for (int i = 1; i < name.length(); i++) {
|
|
|
temp += "*";
|
|
|
}
|
|
|
return temp;
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* 拷贝临时图片到存储目录
|
|
|
* @param images
|
|
|
* @return
|
|
|
* @throws IOException
|
|
|
*/
|
|
|
public static String copyTempImage(String images) throws IOException {
|
|
|
// 文件保存的临时路径
|
|
|
String tempPath = SystemConf.getInstance().getTempPath() + File.separator;
|
|
|
// 图片保存路径
|
|
|
String imagePath = SystemConf.getInstance().getImagePath() + File.separator;
|
|
|
String[] tempImages = images.split(",");
|
|
|
String temp = "";
|
|
|
for (String image : tempImages) {
|
|
|
File file = new File(tempPath + image);
|
|
|
File smallFile = new File(tempPath + image + "_small");
|
|
|
if (file.exists() && smallFile.exists()) {
|
|
|
// 原图拷贝路径
|
|
|
File targetFile = new File(imagePath + image);
|
|
|
// 缩略图拷贝路径
|
|
|
File targetSmallFile = new File(imagePath + image + "_small");
|
|
|
// 拷贝原图
|
|
|
FileUtils.copyFile(file, targetFile);
|
|
|
// 拷贝缩略图
|
|
|
FileUtils.copyFile(smallFile, targetSmallFile);
|
|
|
// 删除临时文件
|
|
|
FileUtils.forceDelete(file);
|
|
|
FileUtils.forceDelete(smallFile);
|
|
|
if (temp.length() == 0) {
|
|
|
temp = SystemConf.getInstance().getImageServer() + image;
|
|
|
} else {
|
|
|
temp += "," + SystemConf.getInstance().getImageServer() + image;
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
return temp;
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* 拷贝临时语音文件到存储目录
|
|
|
* @param images
|
|
|
* @return
|
|
|
* @throws IOException
|
|
|
*/
|
|
|
public static String copyTempVoice(String voices) throws IOException {
|
|
|
// 文件保存的临时路径
|
|
|
String tempPath = SystemConf.getInstance().getTempPath() + File.separator;
|
|
|
// 语音保存路径
|
|
|
String voicePath = SystemConf.getInstance().getVoicePath() + File.separator;
|
|
|
String[] tempVoices = voices.split(",");
|
|
|
String temp = "";
|
|
|
for (String voice : tempVoices) {
|
|
|
File file = new File(tempPath + voice);
|
|
|
if (file.exists()) {
|
|
|
// 目标文件
|
|
|
File targetFile = new File(voicePath + voice);
|
|
|
// 拷贝到指定路径
|
|
|
FileUtils.copyFile(file, targetFile);
|
|
|
// 删除临时文件
|
|
|
FileUtils.forceDelete(file);
|
|
|
if (temp.length() == 0) {
|
|
|
temp = SystemConf.getInstance().getVoiceServer() + voice;
|
|
|
} else {
|
|
|
temp += "," + SystemConf.getInstance().getVoiceServer() + voice;
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
return temp;
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* 校验健康指标是否正常
|
|
|
* @param curValue 当前值
|
|
|
* @param standardMax 最大标准值
|
|
|
* @param standardMin 最小标准值
|
|
|
* @return 0正常,1高,-1低
|
|
|
*/
|
|
|
public static double checkHealthIndex(double curValue, double standardMax, double standardMin) {
|
|
|
if (curValue <= 0) {
|
|
|
return 0;
|
|
|
}
|
|
|
if (standardMax > 0 && curValue > standardMax) {
|
|
|
return curValue;
|
|
|
}
|
|
|
// 低于标准值,暂不推
|
|
|
// if (standardMin > 0 && curValue < standardMin) {
|
|
|
// return -curValue;
|
|
|
// }
|
|
|
return 0;
|
|
|
}
|
|
|
/**
|
|
|
* 获取图片全路径
|
|
|
*
|
|
|
* @return
|
|
|
*/
|
|
|
public static String getPhoneUrl(String url) {
|
|
|
if (StringUtils.isEmpty(url)) {
|
|
|
return "";
|
|
|
} else {
|
|
|
if (url.indexOf("http") > -1) {
|
|
|
return url;
|
|
|
} else {
|
|
|
return SystemConf.getInstance().getServerUrl() + url;
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
|
|
|
public static String getMobileEncode(String mobile) {
|
|
|
if (StringUtils.isNotEmpty(mobile) && mobile.length() == 11) {
|
|
|
return mobile.substring(0, 4) + "****" + mobile.substring(8, 11);
|
|
|
}
|
|
|
return mobile;
|
|
|
}
|
|
|
|
|
|
public static String getIdcardEncode(String idcard) {
|
|
|
if (idcard != null) {
|
|
|
if (idcard.length() == 18) {
|
|
|
return idcard.substring(0, 9) + "*******" + idcard.substring(16, 18);
|
|
|
} else if (idcard.length() == 15) {
|
|
|
return idcard.substring(0, 8) + "***" + idcard.substring(11, 15);
|
|
|
}
|
|
|
}
|
|
|
return idcard;
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* 对象转数组
|
|
|
*
|
|
|
* @param obj
|
|
|
* @return
|
|
|
*/
|
|
|
public static byte[] toByteArray(Object obj) {
|
|
|
byte[] bytes = null;
|
|
|
ByteArrayOutputStream bos = new ByteArrayOutputStream();
|
|
|
try {
|
|
|
ObjectOutputStream oos = new ObjectOutputStream(bos);
|
|
|
oos.writeObject(obj);
|
|
|
oos.flush();
|
|
|
bytes = bos.toByteArray();
|
|
|
oos.close();
|
|
|
bos.close();
|
|
|
} catch (IOException ex) {
|
|
|
ex.printStackTrace();
|
|
|
}
|
|
|
return bytes;
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* 数组转对象
|
|
|
*
|
|
|
* @param bytes
|
|
|
* @return
|
|
|
*/
|
|
|
public static Object toObject(byte[] bytes) {
|
|
|
Object obj = null;
|
|
|
try {
|
|
|
ByteArrayInputStream bis = new ByteArrayInputStream(bytes);
|
|
|
ObjectInputStream ois = new ObjectInputStream(bis);
|
|
|
obj = ois.readObject();
|
|
|
ois.close();
|
|
|
bis.close();
|
|
|
} catch (IOException ex) {
|
|
|
ex.printStackTrace();
|
|
|
} catch (ClassNotFoundException ex) {
|
|
|
ex.printStackTrace();
|
|
|
}
|
|
|
return obj;
|
|
|
}
|
|
|
|
|
|
public static final InputStream byte2Input(byte[] buf) {
|
|
|
return new ByteArrayInputStream(buf);
|
|
|
}
|
|
|
|
|
|
public static final byte[] input2byte(InputStream inStream) throws IOException {
|
|
|
ByteArrayOutputStream swapStream = new ByteArrayOutputStream();
|
|
|
byte[] buff = new byte[100];
|
|
|
int rc = 0;
|
|
|
while ((rc = inStream.read(buff, 0, 100)) > 0) {
|
|
|
swapStream.write(buff, 0, rc);
|
|
|
}
|
|
|
byte[] in2b = swapStream.toByteArray();
|
|
|
return in2b;
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* 返回:张三为张*
|
|
|
*
|
|
|
* @param name 姓名
|
|
|
* @return
|
|
|
*/
|
|
|
public static String getEncryptName(String name) {
|
|
|
if (StringUtils.isEmpty(name)) {
|
|
|
return null;
|
|
|
}
|
|
|
if (name.length() == 1) {
|
|
|
return name;
|
|
|
}
|
|
|
// 获取姓
|
|
|
String temp = name.substring(0, 1);
|
|
|
for (int i = 1; i < name.length(); i++) {
|
|
|
temp += "*";
|
|
|
}
|
|
|
return temp;
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* 拷贝临时图片到存储目录
|
|
|
*
|
|
|
* @param images
|
|
|
* @return
|
|
|
* @throws IOException
|
|
|
*/
|
|
|
public static String copyTempImage(String images) throws IOException {
|
|
|
// 文件保存的临时路径
|
|
|
String tempPath = SystemConf.getInstance().getTempPath() + File.separator;
|
|
|
// 图片保存路径
|
|
|
String imagePath = SystemConf.getInstance().getImagePath() + File.separator;
|
|
|
String[] tempImages = images.split(",");
|
|
|
String temp = "";
|
|
|
for (String image : tempImages) {
|
|
|
File file = new File(tempPath + image);
|
|
|
File smallFile = new File(tempPath + image + "_small");
|
|
|
if (file.exists() && smallFile.exists()) {
|
|
|
// 原图拷贝路径
|
|
|
File targetFile = new File(imagePath + image);
|
|
|
// 缩略图拷贝路径
|
|
|
File targetSmallFile = new File(imagePath + image + "_small");
|
|
|
// 拷贝原图
|
|
|
FileUtils.copyFile(file, targetFile);
|
|
|
// 拷贝缩略图
|
|
|
FileUtils.copyFile(smallFile, targetSmallFile);
|
|
|
// 删除临时文件
|
|
|
FileUtils.forceDelete(file);
|
|
|
FileUtils.forceDelete(smallFile);
|
|
|
if (temp.length() == 0) {
|
|
|
temp = SystemConf.getInstance().getImageServer() + image;
|
|
|
} else {
|
|
|
temp += "," + SystemConf.getInstance().getImageServer() + image;
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
return temp;
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* 拷贝临时语音文件到存储目录
|
|
|
*
|
|
|
* @param voices
|
|
|
* @return
|
|
|
* @throws IOException
|
|
|
*/
|
|
|
public static String copyTempVoice(String voices) throws IOException {
|
|
|
// 文件保存的临时路径
|
|
|
String tempPath = SystemConf.getInstance().getTempPath() + File.separator;
|
|
|
// 语音保存路径
|
|
|
String voicePath = SystemConf.getInstance().getVoicePath() + File.separator;
|
|
|
String[] tempVoices = voices.split(",");
|
|
|
String temp = "";
|
|
|
for (String voice : tempVoices) {
|
|
|
File file = new File(tempPath + voice);
|
|
|
if (file.exists()) {
|
|
|
// 目标文件
|
|
|
File targetFile = new File(voicePath + voice);
|
|
|
// 拷贝到指定路径
|
|
|
FileUtils.copyFile(file, targetFile);
|
|
|
// 删除临时文件
|
|
|
FileUtils.forceDelete(file);
|
|
|
if (temp.length() == 0) {
|
|
|
temp = SystemConf.getInstance().getVoiceServer() + voice;
|
|
|
} else {
|
|
|
temp += "," + SystemConf.getInstance().getVoiceServer() + voice;
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
return temp;
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* 校验健康指标是否正常
|
|
|
*
|
|
|
* @param curValue 当前值
|
|
|
* @param standardMax 最大标准值
|
|
|
* @param standardMin 最小标准值
|
|
|
* @return 0正常,1高,-1低
|
|
|
*/
|
|
|
public static double checkHealthIndex(double curValue, double standardMax, double standardMin) {
|
|
|
if (curValue <= 0) {
|
|
|
return 0;
|
|
|
}
|
|
|
if (standardMax > 0 && curValue > standardMax) {
|
|
|
return curValue;
|
|
|
}
|
|
|
// 低于标准值,暂不推
|
|
|
// if (standardMin > 0 && curValue < standardMin) {
|
|
|
// return -curValue;
|
|
|
// }
|
|
|
return 0;
|
|
|
}
|
|
|
|
|
|
|
|
|
public static String copyTempFilesToFastDFS(String files) throws Exception {
|
|
|
// 文件保存的临时路径
|
|
|
String tempPath = SystemConf.getInstance().getTempPath() + File.separator;
|
|
|
String[] fileArray = files.split(",");
|
|
|
FastDFSUtil fastDFSUtil = new FastDFSConfig().fastDFSUtil();
|
|
|
String fileUrls = "";
|
|
|
|
|
|
for (String file : fileArray) {
|
|
|
File f = new File(tempPath + file);
|
|
|
if (f.exists()) {
|
|
|
String fileName = f.getName();
|
|
|
InputStream in = new FileInputStream(f);
|
|
|
ObjectNode result = fastDFSUtil.upload(in, fileName.substring(fileName.lastIndexOf(".") + 1), "");
|
|
|
in.close();
|
|
|
if (result != null) {
|
|
|
fileUrls += (StringUtils.isEmpty(fileUrls) ? "" : ",") + result.get("fileUrl").toString().replaceAll("\"","");
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
|
|
|
return fileUrls;
|
|
|
}
|
|
|
}
|