From 0417d31de9980cbc1735daffffb308d050ce35b4 Mon Sep 17 00:00:00 2001
From: wfy <260536420@qq.com>
Date: 星期六, 18 九月 2021 16:47:52 +0800
Subject: [PATCH] Merge branch 'master' into wangfy-dev
---
service-job/src/main/java/com/java110/job/adapt/hcToTianchuang/PersonToTianchuangAdapt.java | 331 +++++++++++++++++++++++++++++++++++++++++++++++-------
1 files changed, 285 insertions(+), 46 deletions(-)
diff --git a/service-job/src/main/java/com/java110/job/adapt/hcToTianchuang/PersonToTianchuangAdapt.java b/service-job/src/main/java/com/java110/job/adapt/hcToTianchuang/PersonToTianchuangAdapt.java
index 4b7b805..a4f82b6 100644
--- a/service-job/src/main/java/com/java110/job/adapt/hcToTianchuang/PersonToTianchuangAdapt.java
+++ b/service-job/src/main/java/com/java110/job/adapt/hcToTianchuang/PersonToTianchuangAdapt.java
@@ -18,7 +18,6 @@
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.java110.core.client.RestTemplate;
-import com.java110.core.factory.AuthenticationFactory;
import com.java110.core.factory.GenerateCodeFactory;
import com.java110.dto.RoomAttrDto;
import com.java110.dto.RoomDto;
@@ -49,14 +48,28 @@
import com.java110.po.owner.OwnerAttrPo;
import com.java110.utils.cache.MappingCache;
import com.java110.utils.util.*;
+import org.apache.http.HttpEntity;
+import org.apache.http.HttpResponse;
+import org.apache.http.client.HttpClient;
+import org.apache.http.client.methods.HttpPost;
+import org.apache.http.entity.StringEntity;
+import org.apache.http.impl.client.DefaultHttpClient;
+import org.apache.http.util.EntityUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.http.HttpEntity;
-import org.springframework.http.HttpMethod;
-import org.springframework.http.ResponseEntity;
import org.springframework.stereotype.Component;
+import javax.crypto.Cipher;
+import javax.crypto.KeyGenerator;
+import javax.crypto.SecretKey;
+import javax.crypto.spec.SecretKeySpec;
+import java.net.URLDecoder;
+import java.security.GeneralSecurityException;
+import java.security.MessageDigest;
+import java.security.SecureRandom;
+import java.text.SimpleDateFormat;
+import java.util.Date;
import java.util.List;
/**
@@ -69,7 +82,7 @@
*/
@Component(value = "personToTianchuangAdapt")
public class PersonToTianchuangAdapt extends DatabusAdaptImpl {
-
+ protected static MessageDigest messageDigest = null;
private static Logger logger = LoggerFactory.getLogger(PersonToTianchuangAdapt.class);
@Autowired
private ICommunityInnerServiceSMO communityInnerServiceSMOImpl;
@@ -156,14 +169,15 @@
}
//鍒ゆ柇浣忔埛鏄惁浼犲ぉ鍒�
- String idCard = machineRecordPo.getIdCard();
+ String name = machineRecordPo.getName();
//韬唤璇佷负绌烘椂 锛岄棬绂佽褰曟病娉曚紶 鎵�浠ュ氨涓嶄紶浜�
- if (StringUtil.isEmpty(idCard)) {
+ if (StringUtil.isEmpty(name)) {
return;
}
OwnerDto ownerDto = new OwnerDto();
- ownerDto.setIdCard(idCard);
+ ownerDto.setName(machineRecordPo.getName());
+ ownerDto.setCommunityId(machineRecordPo.getCommunityId());
List<OwnerDto> ownerDtos = ownerInnerServiceSMOImpl.queryOwnerMembers(ownerDto);
if (ownerDtos == null || ownerDtos.size() < 1) {
@@ -227,15 +241,11 @@
pages.add(page);
data.put("pages", pages);
+ String json = encryptStr(data.toJSONString(), TianChuangConstant.getAppSecret());
+ String result = httpPOST2(json, TianChuangConstant.SERVICE_ID_PERSON_INOUT);
+ JSONObject paramOut = JSONObject.parseObject(result);
- String dataStr = AuthenticationFactory.AesDecrypt(data.toJSONString(), TianChuangConstant.getAppSecret());
-
- HttpEntity httpEntity = new HttpEntity(dataStr, GetTianChuangToken.getHeaders(TianChuangConstant.SERVICE_ID_PERSON_INOUT, dataStr));
- ResponseEntity<String> responseEntity = outRestTemplate.exchange(TianChuangConstant.getUrl(), HttpMethod.POST, httpEntity, String.class);
- logger.debug("璋冪敤HC IOT淇℃伅锛�" + responseEntity);
- JSONObject paramOut = JSONObject.parseObject(AuthenticationFactory.AesEncrypt(responseEntity.getBody(), TianChuangConstant.getAppSecret()));
-
- String code = paramOut.getJSONObject("sta").getString("cod");
+ String code = paramOut.getJSONObject("sta").getString("code");
if (!"0000".equals(code)) {
throw new IllegalArgumentException("鍚屾灏忓尯澶辫触锛�" + paramOut.toJSONString());
}
@@ -270,7 +280,7 @@
dataObj.put("lvgmsfhm", ownerDto.getIdCard());
dataObj.put("lvxm", ownerDto.getName());
dataObj.put("lvlxdh", ownerDto.getLink());
- dataObj.put("lvdjsj", ownerDto.getCreateTime());
+ dataObj.put("lvdjsj", DateUtil.getFormatTimeString(ownerDto.getCreateTime(),"yyyyMMdd HH:mm:ss"));
dataObj.put("lvrybm", ownerDto.getMemberId());
String qrCodeAddress = "";
for (RoomAttrDto roomAttrDto : roomDtos.get(0).getRoomAttrDto()) {
@@ -296,19 +306,16 @@
pages.add(page);
data.put("pages", pages);
+ logger.debug("鍙戦�佷綇鎴朵俊鎭姞瀵嗗墠锛寋}", data.toJSONString());
+ String json = encryptStr(data.toJSONString(), TianChuangConstant.getAppSecret());
+ String result = httpPOST2(json, TianChuangConstant.SERVICE_ID_OWNER);
+ JSONObject paramOut = JSONObject.parseObject(result);
- String dataStr = AuthenticationFactory.AesDecrypt(data.toJSONString(), TianChuangConstant.getAppSecret());
-
- HttpEntity httpEntity = new HttpEntity(dataStr, GetTianChuangToken.getHeaders(TianChuangConstant.SERVICE_ID_OWNER, dataStr));
- ResponseEntity<String> responseEntity = outRestTemplate.exchange(TianChuangConstant.getUrl(), HttpMethod.POST, httpEntity, String.class);
- logger.debug("璋冪敤HC IOT淇℃伅锛�" + responseEntity);
- JSONObject paramOut = JSONObject.parseObject(AuthenticationFactory.AesEncrypt(responseEntity.getBody(), TianChuangConstant.getAppSecret()));
-
- String code = paramOut.getJSONObject("sta").getString("cod");
+ String code = paramOut.getJSONObject("sta").getString("code");
if (!"0000".equals(code)) {
throw new IllegalArgumentException("鍚屾灏忓尯澶辫触锛�" + paramOut.toJSONString());
}
- String extTcOwnerId = paramOut.getJSONArray("data").getJSONObject(0).getString("result");
+ String extTcOwnerId = paramOut.getJSONArray("datas").getJSONObject(0).getString("Result");
OwnerAttrPo ownerAttrPo = new OwnerAttrPo();
ownerAttrPo.setAttrId(GenerateCodeFactory.getGeneratorId(GenerateCodeFactory.CODE_PREFIX_attrId));
ownerAttrPo.setCommunityId(ownerDto.getCommunityId());
@@ -358,19 +365,15 @@
pages.add(page);
data.put("pages", pages);
+ String json = encryptStr(data.toJSONString(), TianChuangConstant.getAppSecret());
+ String result = httpPOST2(json, TianChuangConstant.SERVICE_ID_MACHINE);
+ JSONObject paramOut = JSONObject.parseObject(result);
- String dataStr = AuthenticationFactory.AesDecrypt(data.toJSONString(), TianChuangConstant.getAppSecret());
-
- HttpEntity httpEntity = new HttpEntity(dataStr, GetTianChuangToken.getHeaders(TianChuangConstant.SERVICE_ID_MACHINE, dataStr));
- ResponseEntity<String> responseEntity = outRestTemplate.exchange(TianChuangConstant.getUrl(), HttpMethod.POST, httpEntity, String.class);
- logger.debug("璋冪敤HC IOT淇℃伅锛�" + responseEntity);
- JSONObject paramOut = JSONObject.parseObject(AuthenticationFactory.AesEncrypt(responseEntity.getBody(), TianChuangConstant.getAppSecret()));
-
- String code = paramOut.getJSONObject("sta").getString("cod");
+ String code = paramOut.getJSONObject("sta").getString("code");
if (!"0000".equals(code)) {
throw new IllegalArgumentException("鍚屾灏忓尯澶辫触锛�" + paramOut.toJSONString());
}
- String extTcMachineId = paramOut.getJSONArray("data").getJSONObject(0).getString("result");
+ String extTcMachineId = paramOut.getJSONArray("datas").getJSONObject(0).getString("Result");
MachineAttrPo machineAttrPo = new MachineAttrPo();
machineAttrPo.setAttrId(GenerateCodeFactory.getGeneratorId(GenerateCodeFactory.CODE_PREFIX_attrId));
machineAttrPo.setCommunityId(communityDto.getCommunityId());
@@ -418,19 +421,15 @@
pages.add(page);
data.put("pages", pages);
-
- String dataStr = AuthenticationFactory.AesDecrypt(data.toJSONString(), TianChuangConstant.getAppSecret());
-
- HttpEntity httpEntity = new HttpEntity(dataStr, GetTianChuangToken.getHeaders(TianChuangConstant.SERVICE_ID_COMMUNITY, dataStr));
- ResponseEntity<String> responseEntity = outRestTemplate.exchange(TianChuangConstant.getUrl(), HttpMethod.POST, httpEntity, String.class);
- logger.debug("璋冪敤HC IOT淇℃伅锛�" + responseEntity);
- JSONObject paramOut = JSONObject.parseObject(AuthenticationFactory.AesEncrypt(responseEntity.getBody(), TianChuangConstant.getAppSecret()));
-
- String code = paramOut.getJSONObject("sta").getString("cod");
+ logger.debug("鍙戦�佸皬鍖哄姞瀵嗗墠锛寋}", data.toJSONString());
+ String json = encryptStr(data.toJSONString(), TianChuangConstant.getAppSecret());
+ String result = httpPOST2(json, TianChuangConstant.SERVICE_ID_COMMUNITY);
+ JSONObject paramOut = JSONObject.parseObject(result);
+ String code = paramOut.getJSONObject("sta").getString("code");
if (!"0000".equals(code)) {
- throw new IllegalArgumentException("鍚屾灏忓尯澶辫触锛�" + paramOut.toJSONString());
+ throw new IllegalArgumentException("鍚屾灏忓尯澶辫触锛�" + paramOut.getJSONObject("sta").getString("des"));
}
- String extTcCommunityId = paramOut.getJSONArray("data").getJSONObject(0).getString("result");
+ String extTcCommunityId = paramOut.getJSONArray("datas").getJSONObject(0).getString("Result");
CommunityAttrPo communityAttrPo = new CommunityAttrPo();
communityAttrPo.setAttrId(GenerateCodeFactory.getGeneratorId(GenerateCodeFactory.CODE_PREFIX_attrId));
communityAttrPo.setCommunityId(communityDto.getCommunityId());
@@ -441,4 +440,244 @@
return extTcCommunityId;
}
+
+ /**
+ * 瀛楃涓插姞瀵�
+ *
+ * @param srcStr 鍔犲瘑瀛楃涓�
+ * @param password 鍔犲瘑瀵嗛挜
+ */
+ public static String encryptStr(String srcStr, String password) {
+ byte[] encryptResult = encryptData_AES(srcStr, password);
+ String encryptResultStr = parseByte2HexStr(encryptResult);
+ return encryptResultStr;
+ }
+
+ /**
+ * 鍔犲瘑
+ *
+ * @param content 闇�瑕佸姞瀵嗙殑鍐呭
+ * @param password 鍔犲瘑瀵嗙爜
+ * @return
+ */
+ private static byte[] encryptData_AES(String content, String password) {
+ try {
+ //SecretKey secretKey = getKey(password);
+ //byte[] enCodeFormat = secretKey.getEncoded();
+ byte[] enCodeFormat = parseHexStr2Byte(password);
+ SecretKeySpec key = new SecretKeySpec(enCodeFormat, "AES");
+ Cipher cipher = Cipher.getInstance("AES");// 鍒涘缓瀵嗙爜鍣�
+ byte[] byteContent = content.getBytes("utf-8");
+ cipher.init(Cipher.ENCRYPT_MODE, key);// 鍒濆鍖�
+ byte[] result = cipher.doFinal(byteContent);
+ return result; // 鍔犲瘑
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ return null;
+ }
+
+ /**
+ * 灏嗕簩杩涘埗杞崲鎴�16杩涘埗
+ *
+ * @param buf
+ * @return
+ */
+ private static String parseByte2HexStr(byte buf[]) {
+ StringBuffer sb = new StringBuffer();
+ for (int i = 0; i < buf.length; i++) {
+ String hex = Integer.toHexString(buf[i] & 0xFF);
+ if (hex.length() == 1) {
+ hex = '0' + hex;
+ }
+ sb.append(hex.toUpperCase());
+ }
+ return sb.toString();
+ }
+
+ /**
+ * 瀛楃涓茶В瀵�
+ *
+ * @param srcStr 瑙e瘑瀛楃涓�
+ * @param password 鍔犲瘑瀵嗛挜
+ */
+ public static String decryptStr(String srcStr, String password) {
+ String returnValue = "";
+ try {
+ byte[] decryptFrom = parseHexStr2Byte(srcStr);
+ byte[] decryptResult = decryptData_AES(decryptFrom, password);
+ returnValue = new String(decryptResult, "utf-8");
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ return returnValue;
+ }
+
+
+ /**
+ * 灏�16杩涘埗杞崲涓轰簩杩涘埗
+ *
+ * @param hexStr
+ * @return
+ */
+ private static byte[] parseHexStr2Byte(String hexStr) {
+ if (hexStr.length() < 1)
+ return null;
+ byte[] result = new byte[hexStr.length() / 2];
+ for (int i = 0; i < hexStr.length() / 2; i++) {
+ int high = Integer.parseInt(hexStr.substring(i * 2, i * 2 + 1), 16);
+ int low = Integer.parseInt(hexStr.substring(i * 2 + 1, i * 2 + 2),
+ 16);
+ result[i] = (byte) (high * 16 + low);
+ }
+ return result;
+ }
+
+ /**
+ * 鐢熸垚鎸囧畾瀛楃涓茬殑瀵嗛挜
+ *
+ * @param secret 瑕佺敓鎴愬瘑閽ョ殑瀛楃
+ * @return secretKey 鐢熸垚鍚庣殑瀵嗛挜
+ * @throws GeneralSecurityException
+ */
+ public static SecretKey getKey(String secret) throws GeneralSecurityException {
+ try {
+ KeyGenerator _generator = KeyGenerator.getInstance("AES");
+ SecureRandom secureRandom = SecureRandom.getInstance("SHA1PRNG");
+ secureRandom.setSeed(secret.getBytes());
+ _generator.init(128, secureRandom);
+ return _generator.generateKey();
+ } catch (Exception e) {
+ throw new RuntimeException("鍒濆鍖栧瘑閽ュ嚭鐜板紓甯�");
+ }
+ }
+
+ /**
+ * 瑙e瘑
+ *
+ * @param content 寰呰В瀵嗗唴瀹�
+ * @param password 瑙e瘑瀵嗛挜
+ * @return
+ */
+ private static byte[] decryptData_AES(byte[] content, String password) {
+ try {
+ SecretKey secretKey = getKey(password);
+ byte[] enCodeFormat = secretKey.getEncoded();
+ SecretKeySpec key = new SecretKeySpec(enCodeFormat, "AES");
+ Cipher cipher = Cipher.getInstance("AES");// 鍒涘缓瀵嗙爜鍣�
+ cipher.init(Cipher.DECRYPT_MODE, key);// 鍒濆鍖�
+ byte[] result = cipher.doFinal(content);
+ return result; // 鍔犲瘑
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ return null;
+ }
+
+ public static String md5(String str) {
+ if (str == null) {
+ return null;
+ }
+ try {
+ messageDigest = MessageDigest.getInstance("MD5");
+ messageDigest.reset();
+ messageDigest.update(str.getBytes("UTF-8"));
+ } catch (Exception e) {
+ return str;
+ }
+ byte[] byteArray = messageDigest.digest();
+ StringBuffer md5StrBuff = new StringBuffer();
+ for (int i = 0; i < byteArray.length; i++) {
+ if (Integer.toHexString(0xFF & byteArray[i]).length() == 1)
+ md5StrBuff.append("0").append(Integer.toHexString(0xFF & byteArray[i]));
+ else
+ md5StrBuff.append(Integer.toHexString(0xFF & byteArray[i]));
+ }
+ return md5StrBuff.toString().toUpperCase();
+ }
+
+ public static String httpPOST2(String json, String serviceId) {
+
+ String url = TianChuangConstant.getUrl();
+ String appId = TianChuangConstant.getAppId();
+ String appSecret = TianChuangConstant.getAppSecret();
+ HttpClient client = new DefaultHttpClient();
+ HttpPost post = new HttpPost(url);
+ post.setHeader("appid", appId);
+ String currdate = new SimpleDateFormat("yyyyMMdd").format(new Date());
+ String token = md5(appId + appSecret + currdate + json.replaceAll("\r\n", ""));
+ System.out.println("token:" + token);
+
+ post.setHeader("token", token);
+ post.setHeader("tranId", GenerateCodeFactory.getGeneratorId(GenerateCodeFactory.CODE_PREFIX_tranId));
+ post.setHeader("serviceId", serviceId);
+ post.setHeader("serviceValue", serviceId);
+ post.setHeader("versionCode", "1.0");
+
+
+ String body = "";
+
+ logger.debug("璇锋眰鎶ユ枃={}", json);
+ try {
+ StringEntity s = new StringEntity(json, "UTF-8");
+ s.setContentType("application/json");
+ post.setEntity(s);
+ HttpResponse res = client.execute(post);
+ HttpEntity entity = res.getEntity();
+ if (entity != null) {
+ body = EntityUtils.toString(entity, "utf-8");
+ }
+ body = URLDecoder.decode(body, "utf-8");
+ } catch (Exception e) {
+ System.out.println(e.getMessage());
+ }
+ logger.debug("杩斿洖鎶ユ枃={}", body);
+
+ return body;
+ }
+
+ public static String httpPOST(String url, String json) {
+ HttpClient client = new DefaultHttpClient();
+ HttpPost post = new HttpPost(url);
+
+ String body = "";
+
+ try {
+ StringEntity s = new StringEntity(json, "UTF-8");
+ s.setContentType("application/json");
+ post.setEntity(s);
+ HttpResponse res = client.execute(post);
+ HttpEntity entity = res.getEntity();
+ if (entity != null) {
+ body = EntityUtils.toString(entity, "utf-8");
+ }
+ return URLDecoder.decode(body, "utf-8");
+ } catch (Exception e) {
+ System.out.println(e.getMessage());
+ }
+ return "";
+ }
+
+ private static final String SECRETKEY = "CAD3218426800B9FE0532D03A8C0310E";
+
+ public static void main(String[] args) throws Exception {
+ //String json = "{\"datas\":[{\"gmsfhm\":\"370122197507084821\",\"name\":\"鏉庡啺\"}],\"pages\":{\"psize\":\"10\",\"tcount\":\"\",\"pno\":\"1\",\"tsize\":\"\"}}";
+ // 鍔犲瘑
+ //String encryptResultStr = encryptStr(json, SECRETKEY);
+ //String a = "CB42C3F519BC831961E4CE27AA00FA6DEF0E494A467187F77E01CDC8FC4605295FD1BED29065B244E4C2B1AB86D0BCE7A5914F2DF70C5360F2C58D9B2B9DC32D16EF3CB68AD1A7BEC820D690763511E57A55B13D4F0558BA64A14B2DEB3B5C762CC84D88DF60F223A467FF53615D9B7DF0BC32A20F96637D425F82A4CDD7A311";
+ //System.out.println("鍔犲瘑鍚�1锛�" + encryptResultStr);
+ // System.out.println("鍔犲瘑鍚�2锛�" +a);
+ // System.out.println("鍔犲瘑鍚�3锛欳B42C3F519BC831961E4CE27AA00FA6DEF0E494A467187F77E01CDC8FC4605295FD1BED29065B244E4C2B1AB86D0BCE7A5914F2DF70C5360F2C58D9B2B9DC32D16EF3CB68AD1A7BEC820D690763511E57A55B13D4F0558BA64A14B2DEB3B5C762CC84D88DF60F223A467FF53615D9B7D71A92761E9E455F104519DF3AFA4E5F2");
+ // 瑙e瘑
+ String encryptResultStr = "%E8%AF%B7%E6%B1%82%E4%B8%8D%E5%90%88%E6%B3%95%EF%BC%8C%E5%8C%85%E4%BD%93%E6%A0%BC%E5%BC%8F%E9%94%99%E8%AF%AF";
+ String decryptResultStr = decryptStr(encryptResultStr, SECRETKEY);
+ System.out.println("瑙e瘑鍚庯細" + decryptResultStr);
+
+ //String decryptResultStr = decryptStr(a, "60F10B41F44BD4856C0C1952BF40690C");
+ //System.out.println(decryptResultStr);
+
+ // System.out.println(getKey("9A1158154DFA42CADDBD0694A4E9BDC8"));
+
+ }
+
}
--
Gitblit v1.8.0