278 lines
8.8 KiB
Java
278 lines
8.8 KiB
Java
package com.ag.util;
|
||
|
||
import com.alibaba.fastjson.JSON;
|
||
import com.alibaba.fastjson.JSONArray;
|
||
import com.alibaba.fastjson.serializer.SerializerFeature;
|
||
import org.json.JSONObject;
|
||
|
||
import java.io.BufferedReader;
|
||
import java.io.IOException;
|
||
import java.io.InputStreamReader;
|
||
import java.net.URL;
|
||
import java.net.URLConnection;
|
||
import java.text.DateFormat;
|
||
import java.text.ParseException;
|
||
import java.text.SimpleDateFormat;
|
||
import java.util.*;
|
||
|
||
/**
|
||
* Created by shaoqiang on 8/28/16.
|
||
*/
|
||
public class CommonUtil {
|
||
/**
|
||
* 返回表格的beanlist
|
||
* @param object
|
||
* @param controlName
|
||
* @param cudType
|
||
* @param objeclass
|
||
* @return
|
||
*/
|
||
public static List getBeanlist(JSONObject object, String controlName, String cudType, Class objeclass){
|
||
if (StrUtil.isEmpty(controlName)){
|
||
controlName = "datatable";
|
||
}
|
||
String datarec1=((com.alibaba.fastjson.JSONObject) JSON.parseArray(object.getString(controlName)).get(0)).get(cudType).toString();
|
||
return JSON.parseArray(datarec1, objeclass);
|
||
}
|
||
|
||
/**
|
||
* 获取grid中需强制更新的列名
|
||
* @param controlName
|
||
* @return
|
||
*/
|
||
public static String[] getNeedColsByJson(JSONObject object, String controlName){
|
||
if (StrUtil.isEmpty(controlName)){
|
||
controlName = "datatable";
|
||
}
|
||
String[] keys = null;
|
||
JSONArray jsonArray = JSON.parseArray(object.getString(controlName)).getJSONObject(0).getJSONArray("update");
|
||
if (!jsonArray.isEmpty()){
|
||
com.alibaba.fastjson.JSONObject jsonObject = jsonArray.getJSONObject(0);
|
||
Set<String> keySet = jsonObject.keySet();
|
||
keySet.removeIf(key -> key.contains("#"));
|
||
keys = new String[keySet.size()];
|
||
keySet.toArray(keys);
|
||
}
|
||
return keys;
|
||
}
|
||
|
||
public static String[] getNeedColsByJsonStr(String jsonStr){
|
||
com.alibaba.fastjson.JSONObject jsonObject = JSON.parseObject(jsonStr);
|
||
Set<String> keySet = jsonObject.keySet();
|
||
keySet.removeIf(key -> key.contains("#"));
|
||
String[] keys = new String[keySet.size()];
|
||
keySet.toArray(keys);
|
||
return keys;
|
||
}
|
||
/**
|
||
* 返回编辑表格的json数据
|
||
* @param object
|
||
* @param dataparam 获取数据参数
|
||
* @param type 参数类型 包括create ,destory,update
|
||
* @return
|
||
*/
|
||
public static String parseJson(JSONObject object,String dataparam,String type){
|
||
|
||
return ((com.alibaba.fastjson.JSONObject) JSON.parseArray(object.getString(dataparam)).get(0)).get(type).toString();
|
||
}
|
||
public static String SendGET(String url,String param){
|
||
String result="";//访问返回结果
|
||
BufferedReader read=null;//读取访问结果
|
||
|
||
try {
|
||
//创建url
|
||
URL realurl=new URL(url+"?"+param);
|
||
//打开连接
|
||
URLConnection connection=realurl.openConnection();
|
||
// 设置通用的请求属性
|
||
connection.setRequestProperty("accept", "*/*");
|
||
connection.setRequestProperty("connection", "Keep-Alive");
|
||
connection.setRequestProperty("user-agent",
|
||
"Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1;SV1)");
|
||
//建立连接
|
||
connection.connect();
|
||
// 获取所有响应头字段
|
||
Map<String, List<String>> map = connection.getHeaderFields();
|
||
// 遍历所有的响应头字段,获取到cookies等
|
||
for (String key : map.keySet()) {
|
||
System.out.println(key + "--->" + map.get(key));
|
||
}
|
||
// 定义 BufferedReader输入流来读取URL的响应
|
||
read = new BufferedReader(new InputStreamReader(
|
||
connection.getInputStream(),"UTF-8"));
|
||
String line;//循环读取
|
||
while ((line = read.readLine()) != null) {
|
||
result += line;
|
||
}
|
||
} catch (IOException e) {
|
||
e.printStackTrace();
|
||
}finally{
|
||
if(read!=null){//关闭流
|
||
try {
|
||
read.close();
|
||
} catch (IOException e) {
|
||
e.printStackTrace();
|
||
}
|
||
}
|
||
}
|
||
|
||
return result;
|
||
}
|
||
public static String time()
|
||
{
|
||
Date date=new Date();
|
||
DateFormat format=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
|
||
String time=format.format(date);
|
||
|
||
return time;
|
||
}
|
||
|
||
/**
|
||
* 字符串转化为日期格式
|
||
* @param date
|
||
* @param format
|
||
* @return
|
||
*/
|
||
public static Date getDate(String date,String format){
|
||
DateFormat ds=new SimpleDateFormat(format);
|
||
Date date1=new Date();
|
||
try {
|
||
date1= ds.parse(date);
|
||
} catch (ParseException e) {
|
||
e.printStackTrace();
|
||
}
|
||
return date1;
|
||
}
|
||
|
||
/**
|
||
* 获取时间函数
|
||
* @return
|
||
*/
|
||
public static Date getNowDate(){
|
||
Date nowDate=new Date();
|
||
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
|
||
try {
|
||
nowDate=sdf.parse(sdf.format(new Date()));
|
||
} catch (ParseException e) {
|
||
e.printStackTrace();
|
||
}
|
||
return nowDate;
|
||
};
|
||
|
||
/**
|
||
* 驼峰写法转表字段
|
||
* @param JsonString
|
||
* @return
|
||
*/
|
||
public static String upJson(String JsonString) {
|
||
if (JsonString == null) {
|
||
return "";
|
||
}
|
||
JSONArray jsonArray = JSONArray.parseArray(JsonString);
|
||
List jsonList = new ArrayList();
|
||
for (int i = 0; jsonArray != null && i < jsonArray.size(); i++) {
|
||
Map jsonMap = new HashMap();
|
||
com.alibaba.fastjson.JSONObject jsonObject = jsonArray.getJSONObject(i);
|
||
if (jsonObject != null) {
|
||
Set<String> set = jsonObject.keySet();
|
||
for (String key : set) {
|
||
jsonMap.put(underscoreName(key), jsonObject.get(key));
|
||
}
|
||
jsonList.add(jsonMap);
|
||
}
|
||
}
|
||
//关闭引用检测后,重复引用对象时就不会被$ref代替,但是在循环引用时也会导致StackOverflowError异常。
|
||
return JSON.toJSONString(jsonList, SerializerFeature.DisableCircularReferenceDetect);
|
||
}
|
||
|
||
/**
|
||
* 处理字符
|
||
* @param name
|
||
* @return
|
||
*/
|
||
public static String underscoreName(String name) {
|
||
StringBuilder result = new StringBuilder();
|
||
if (name != null && name.length() > 0) {
|
||
// 将第一个字符处理成大写
|
||
result.append(name.substring(0, 1).toUpperCase());
|
||
// 循环处理其余字符
|
||
for (int i = 1; i < name.length(); i++) {
|
||
String s = name.substring(i, i + 1);
|
||
// 在大写字母前添加下划线
|
||
if (s.equals(s.toUpperCase())
|
||
&& !Character.isDigit(s.charAt(0))) {
|
||
result.append("_");
|
||
}
|
||
// 其他字符直接转成大写
|
||
result.append(s.toUpperCase());
|
||
}
|
||
}
|
||
return result.toString();
|
||
}
|
||
|
||
|
||
public static boolean existsField(Class clz,String fieldName){
|
||
try{
|
||
return clz.getDeclaredField(fieldName)!=null;
|
||
}
|
||
catch(Exception e){
|
||
//throw new RuntimeException(e.getCause());
|
||
}
|
||
if(clz!=Object.class){
|
||
return existsField(clz.getSuperclass(),fieldName);
|
||
}
|
||
return false;
|
||
}
|
||
|
||
|
||
/**
|
||
* 不够位数的在前面补0,保留code的长度位数字
|
||
* @param code
|
||
* @return
|
||
*/
|
||
public static String autoGenericCode(String code) {
|
||
String result = "";
|
||
// 保留code的位数
|
||
result = String.format("%0" + code.length() + "d", Integer.parseInt(code));
|
||
return result;
|
||
}
|
||
/**
|
||
* 不够位数的在前面补0,保留num的长度位数字
|
||
* @param code
|
||
* @return
|
||
*/
|
||
public static String autoGenericCode(String code, int num) {
|
||
String result = "";
|
||
// 保留num的位数
|
||
// 0 代表前面补充0
|
||
// num 代表长度为4
|
||
// d 代表参数为正数型
|
||
result = String.format("%0" + num + "d", Integer.parseInt(code));
|
||
return result;
|
||
}
|
||
|
||
/**
|
||
* 获取文件路径
|
||
* @return
|
||
*/
|
||
public static String getPath() {
|
||
String str = CommonUtil.class.getResource("/").getPath();
|
||
String basicPath = str.substring(0, str.indexOf("target"));
|
||
String path = basicPath + "target/QhdImtos/wb/document/";
|
||
return path;
|
||
}
|
||
|
||
public static void main(String args[]){
|
||
/* String port="9090";
|
||
String ports[]=port.split(",");
|
||
System.out.println(ports[0]);*/
|
||
int a=2;
|
||
int b=4;
|
||
a=a^b^a;
|
||
b=b^a^b;
|
||
System.out.println(a+"==="+b);
|
||
|
||
}
|
||
|
||
}
|