|
@@ -1,144 +1,144 @@
|
|
|
-package com.yx.face.service.impl;
|
|
|
-
|
|
|
-import com.alibaba.fastjson.JSON;
|
|
|
-import com.alibaba.fastjson.JSONObject;
|
|
|
-import com.yx.face.boot.uitls.ForeignAesUtil;
|
|
|
-import com.yx.face.boot.uitls.OkHttpUtils;
|
|
|
-import com.yx.face.dao.SystemConfigDao;
|
|
|
-import com.yx.face.service.SuKangMaAipService;
|
|
|
-import lombok.SneakyThrows;
|
|
|
-import lombok.extern.slf4j.Slf4j;
|
|
|
-import org.springframework.stereotype.Service;
|
|
|
-import com.yx.face.boot.core.Constants;
|
|
|
-
|
|
|
-import javax.annotation.Resource;
|
|
|
-import java.util.ArrayList;
|
|
|
-import java.util.TreeMap;
|
|
|
-
|
|
|
-
|
|
|
-/**
|
|
|
- * @ProjectName: airport-review-smoke
|
|
|
- * @Package: com.yixin.review.service.impl
|
|
|
- * @ClassName: SuKangMaAipServiceImpl
|
|
|
- * @Author: 崔哥
|
|
|
- * @Description: 苏康码扫码接口 SuKangMaAipServiceImpl
|
|
|
- * @Date: 2021/9/3 16:19
|
|
|
- * @Version: 1.0
|
|
|
- */
|
|
|
-@Slf4j
|
|
|
-@Service
|
|
|
-public class SuKangMaAipServiceImpl implements SuKangMaAipService {
|
|
|
-
|
|
|
- @Resource
|
|
|
- private SystemConfigDao systemConfigDao;
|
|
|
-
|
|
|
-
|
|
|
- @SneakyThrows
|
|
|
- @Override
|
|
|
- public void getLocalSkmInfo(String name, String IdCard, String sn, Long id, String extend3) {
|
|
|
- //签名秘钥
|
|
|
- String superAppKey = systemConfigDao.getConfigByKeyValue(Constants.SUPER_APP_KEY);
|
|
|
- //签名信息
|
|
|
- String superSign = systemConfigDao.getConfigByKeyValue(Constants.SUPER_SIGN);
|
|
|
- //三方接口url
|
|
|
- String skmUrl = systemConfigDao.getConfigByKeyValue(Constants.SKM_API_URL);
|
|
|
-
|
|
|
- String tbUrl = systemConfigDao.getConfigByKeyValue(Constants.TB_API_URL);
|
|
|
- //去除空格
|
|
|
- String xm = name.replaceAll(" ", "");
|
|
|
- //日志
|
|
|
- log.info("加密前; name {} , IdCard {} ", xm, IdCard);
|
|
|
-
|
|
|
- ForeignAesUtil foreignAesUtil = new ForeignAesUtil();
|
|
|
- // 加密方法
|
|
|
- String encryptByHexName = foreignAesUtil.encryptByHex(xm);
|
|
|
- String encryptByHexCode = foreignAesUtil.encryptByHex(IdCard);
|
|
|
- log.info("加密后的内容:姓名 {} 身份证 {}", encryptByHexName, encryptByHexCode);
|
|
|
- //解密
|
|
|
- String decryptByHexName = foreignAesUtil.decryptByHex(encryptByHexName);
|
|
|
- String decryptByHexCode = foreignAesUtil.decryptByHex(encryptByHexCode);
|
|
|
- log.info("解密后的内容:姓名 {} 身份证 {}", decryptByHexName, decryptByHexCode);
|
|
|
- // post请求,分为两种,一种是普通表单提交,一种是json提交
|
|
|
- log.info("请求苏康码内容;cardCode {} userName{} super_app_key{} super_sign{} super_time{}", encryptByHexCode, encryptByHexName, superAppKey, superSign, System.currentTimeMillis());
|
|
|
-
|
|
|
- TreeMap<String, String> map = new TreeMap<>();
|
|
|
- map.put("super_time", String.valueOf(System.currentTimeMillis() / 1000));
|
|
|
- map.put("userName", encryptByHexName);
|
|
|
- map.put("cardCode", encryptByHexCode);
|
|
|
- map.put("super_app_key", superAppKey);
|
|
|
- String sign = foreignAesUtil.getMD5BySort(map, superSign);
|
|
|
- log.info("加密后 sign {}", sign);
|
|
|
- String sync = OkHttpUtils.builder().url(skmUrl)
|
|
|
- // 有参数的话添加参数,可多个
|
|
|
- .addParam("cardCode", encryptByHexCode)
|
|
|
- .addParam("userName", encryptByHexName)
|
|
|
- .addParam("super_app_key", superAppKey)
|
|
|
- .addParam("super_sign", sign)
|
|
|
- .addParam("super_time", String.valueOf(System.currentTimeMillis() / 1000))
|
|
|
- // 也可以添加多个
|
|
|
-// .addHeader("Content-Type", "application/x-www-form-urlencoded")
|
|
|
- // 如果是true的话,会类似于postman中post提交方式的raw,用json的方式提交,不是表单
|
|
|
- // 如果是false的话传统的表单提交
|
|
|
- .post(true)
|
|
|
- .sync();
|
|
|
- log.info("苏康码返回值;{}", sync);
|
|
|
-
|
|
|
-
|
|
|
-// if (StringUtils.isNotBlank(extend3)) {
|
|
|
-// extend3 = extend3 + "度";
|
|
|
+//package com.yx.face.service.impl;
|
|
|
+//
|
|
|
+//import com.alibaba.fastjson.JSON;
|
|
|
+//import com.alibaba.fastjson.JSONObject;
|
|
|
+//import com.yx.face.boot.uitls.ForeignAesUtil;
|
|
|
+//import com.yx.face.boot.uitls.OkHttpUtils;
|
|
|
+//import com.yx.face.dao.SystemConfigDao;
|
|
|
+////import com.yx.face.service.SuKangMaAipService;
|
|
|
+//import lombok.SneakyThrows;
|
|
|
+//import lombok.extern.slf4j.Slf4j;
|
|
|
+//import org.springframework.stereotype.Service;
|
|
|
+//import com.yx.face.boot.core.Constants;
|
|
|
+//
|
|
|
+//import javax.annotation.Resource;
|
|
|
+//import java.util.ArrayList;
|
|
|
+//import java.util.TreeMap;
|
|
|
+//
|
|
|
+//
|
|
|
+///**
|
|
|
+// * @ProjectName: airport-review-smoke
|
|
|
+// * @Package: com.yixin.review.service.impl
|
|
|
+// * @ClassName: SuKangMaAipServiceImpl
|
|
|
+// * @Author: 崔哥
|
|
|
+// * @Description: 苏康码扫码接口 SuKangMaAipServiceImpl
|
|
|
+// * @Date: 2021/9/3 16:19
|
|
|
+// * @Version: 1.0
|
|
|
+// */
|
|
|
+//@Slf4j
|
|
|
+//@Service
|
|
|
+//public class SuKangMaAipServiceImpl implements SuKangMaAipService {
|
|
|
+//
|
|
|
+// @Resource
|
|
|
+// private SystemConfigDao systemConfigDao;
|
|
|
+//
|
|
|
+//
|
|
|
+// @SneakyThrows
|
|
|
+// @Override
|
|
|
+// public void getLocalSkmInfo(String name, String IdCard, String sn, Long id, String extend3) {
|
|
|
+// //签名秘钥
|
|
|
+// String superAppKey = systemConfigDao.getConfigByKeyValue(Constants.SUPER_APP_KEY);
|
|
|
+// //签名信息
|
|
|
+// String superSign = systemConfigDao.getConfigByKeyValue(Constants.SUPER_SIGN);
|
|
|
+// //三方接口url
|
|
|
+// String skmUrl = systemConfigDao.getConfigByKeyValue(Constants.SKM_API_URL);
|
|
|
+//
|
|
|
+// String tbUrl = systemConfigDao.getConfigByKeyValue(Constants.TB_API_URL);
|
|
|
+// //去除空格
|
|
|
+// String xm = name.replaceAll(" ", "");
|
|
|
+// //日志
|
|
|
+// log.info("加密前; name {} , IdCard {} ", xm, IdCard);
|
|
|
+//
|
|
|
+// ForeignAesUtil foreignAesUtil = new ForeignAesUtil();
|
|
|
+// // 加密方法
|
|
|
+// String encryptByHexName = foreignAesUtil.encryptByHex(xm);
|
|
|
+// String encryptByHexCode = foreignAesUtil.encryptByHex(IdCard);
|
|
|
+// log.info("加密后的内容:姓名 {} 身份证 {}", encryptByHexName, encryptByHexCode);
|
|
|
+// //解密
|
|
|
+// String decryptByHexName = foreignAesUtil.decryptByHex(encryptByHexName);
|
|
|
+// String decryptByHexCode = foreignAesUtil.decryptByHex(encryptByHexCode);
|
|
|
+// log.info("解密后的内容:姓名 {} 身份证 {}", decryptByHexName, decryptByHexCode);
|
|
|
+// // post请求,分为两种,一种是普通表单提交,一种是json提交
|
|
|
+// log.info("请求苏康码内容;cardCode {} userName{} super_app_key{} super_sign{} super_time{}", encryptByHexCode, encryptByHexName, superAppKey, superSign, System.currentTimeMillis());
|
|
|
+//
|
|
|
+// TreeMap<String, String> map = new TreeMap<>();
|
|
|
+// map.put("super_time", String.valueOf(System.currentTimeMillis() / 1000));
|
|
|
+// map.put("userName", encryptByHexName);
|
|
|
+// map.put("cardCode", encryptByHexCode);
|
|
|
+// map.put("super_app_key", superAppKey);
|
|
|
+// String sign = foreignAesUtil.getMD5BySort(map, superSign);
|
|
|
+// log.info("加密后 sign {}", sign);
|
|
|
+// String sync = OkHttpUtils.builder().url(skmUrl)
|
|
|
+// // 有参数的话添加参数,可多个
|
|
|
+// .addParam("cardCode", encryptByHexCode)
|
|
|
+// .addParam("userName", encryptByHexName)
|
|
|
+// .addParam("super_app_key", superAppKey)
|
|
|
+// .addParam("super_sign", sign)
|
|
|
+// .addParam("super_time", String.valueOf(System.currentTimeMillis() / 1000))
|
|
|
+// // 也可以添加多个
|
|
|
+//// .addHeader("Content-Type", "application/x-www-form-urlencoded")
|
|
|
+// // 如果是true的话,会类似于postman中post提交方式的raw,用json的方式提交,不是表单
|
|
|
+// // 如果是false的话传统的表单提交
|
|
|
+// .post(true)
|
|
|
+// .sync();
|
|
|
+// log.info("苏康码返回值;{}", sync);
|
|
|
+//
|
|
|
+//
|
|
|
+//// if (StringUtils.isNotBlank(extend3)) {
|
|
|
+//// extend3 = extend3 + "度";
|
|
|
+//// }
|
|
|
+// //请求参数
|
|
|
+// ArrayList<String> snList = new ArrayList<String>();
|
|
|
+// snList.add(sn);
|
|
|
+// JSONObject param = new JSONObject();
|
|
|
+// param.put("SN", snList);
|
|
|
+// param.put("type", "doorControl");
|
|
|
+// param.put("taskId", id);
|
|
|
+// //Data
|
|
|
+// JSONObject Data = new JSONObject();
|
|
|
+// JSONObject jsonObject = JSON.parseObject(sync);
|
|
|
+// Integer code = jsonObject.getInteger("code");
|
|
|
+// String data = jsonObject.getString("data");
|
|
|
+// //下发指令开关门
|
|
|
+// OkHttpUtils url = OkHttpUtils.builder().url(tbUrl);
|
|
|
+// if (code == 200 && code != null) {
|
|
|
+// String decryptSync = foreignAesUtil.decryptByHex(data);
|
|
|
+// log.info("苏康码返回值 解密;{}", decryptSync);
|
|
|
+// JSONObject jsonObject1 = JSONObject.parseObject(decryptSync);
|
|
|
+// String levelData = jsonObject1.getString("levelData");
|
|
|
+// // 有参数的话添加参数,可多个
|
|
|
+// if ("1".equals(levelData)) {
|
|
|
+// Data.put("tts", extend3 + "绿码,请通行");
|
|
|
+// Data.put("displayType", 1);
|
|
|
+// Data.put("doorControl", "1,1");
|
|
|
+// param.put("Data", Data);
|
|
|
+// String paramJson = param.toJSONString();
|
|
|
+// String sync1 = url.localPost(paramJson)
|
|
|
+// .sync();
|
|
|
+// log.info("开门返回;{} ", sync1);
|
|
|
+// log.info("paramJson;{} ", paramJson);
|
|
|
+// } else {
|
|
|
+// Data.put("tts", extend3 + "禁止通行请联系管理员");
|
|
|
+// Data.put("displayType", 2);
|
|
|
+// Data.put("doorControl", "1,0");
|
|
|
+// param.put("Data", Data);
|
|
|
+// String paramJson = param.toJSONString();
|
|
|
+// String sync1 = url.localPost(paramJson)
|
|
|
+// .sync();
|
|
|
+// log.info("开门返回;{}", sync1);
|
|
|
+// log.info("paramJson;{} ", paramJson);
|
|
|
+// }
|
|
|
+// } else {
|
|
|
+// Data.put("tts", extend3 + "未获取到健康码");
|
|
|
+// Data.put("displayType", 0);
|
|
|
+// Data.put("doorControl", "1,0");
|
|
|
+// param.put("Data", Data);
|
|
|
+// String paramJson = param.toJSONString();
|
|
|
+// String sync1 = url.localPost(paramJson)
|
|
|
+// .sync();
|
|
|
+// log.info("开门返回;{}", sync1);
|
|
|
+// log.info("paramJson;{} ", paramJson);
|
|
|
// }
|
|
|
- //请求参数
|
|
|
- ArrayList<String> snList = new ArrayList<String>();
|
|
|
- snList.add(sn);
|
|
|
- JSONObject param = new JSONObject();
|
|
|
- param.put("SN", snList);
|
|
|
- param.put("type", "doorControl");
|
|
|
- param.put("taskId", id);
|
|
|
- //Data
|
|
|
- JSONObject Data = new JSONObject();
|
|
|
- JSONObject jsonObject = JSON.parseObject(sync);
|
|
|
- Integer code = jsonObject.getInteger("code");
|
|
|
- String data = jsonObject.getString("data");
|
|
|
- //下发指令开关门
|
|
|
- OkHttpUtils url = OkHttpUtils.builder().url(tbUrl);
|
|
|
- if (code == 200 && code != null) {
|
|
|
- String decryptSync = foreignAesUtil.decryptByHex(data);
|
|
|
- log.info("苏康码返回值 解密;{}", decryptSync);
|
|
|
- JSONObject jsonObject1 = JSONObject.parseObject(decryptSync);
|
|
|
- String levelData = jsonObject1.getString("levelData");
|
|
|
- // 有参数的话添加参数,可多个
|
|
|
- if ("1".equals(levelData)) {
|
|
|
- Data.put("tts", extend3 + "绿码,请通行");
|
|
|
- Data.put("displayType", 1);
|
|
|
- Data.put("doorControl", "1,1");
|
|
|
- param.put("Data", Data);
|
|
|
- String paramJson = param.toJSONString();
|
|
|
- String sync1 = url.localPost(paramJson)
|
|
|
- .sync();
|
|
|
- log.info("开门返回;{} ", sync1);
|
|
|
- log.info("paramJson;{} ", paramJson);
|
|
|
- } else {
|
|
|
- Data.put("tts", extend3 + "禁止通行请联系管理员");
|
|
|
- Data.put("displayType", 2);
|
|
|
- Data.put("doorControl", "1,0");
|
|
|
- param.put("Data", Data);
|
|
|
- String paramJson = param.toJSONString();
|
|
|
- String sync1 = url.localPost(paramJson)
|
|
|
- .sync();
|
|
|
- log.info("开门返回;{}", sync1);
|
|
|
- log.info("paramJson;{} ", paramJson);
|
|
|
- }
|
|
|
- } else {
|
|
|
- Data.put("tts", extend3 + "未获取到健康码");
|
|
|
- Data.put("displayType", 0);
|
|
|
- Data.put("doorControl", "1,0");
|
|
|
- param.put("Data", Data);
|
|
|
- String paramJson = param.toJSONString();
|
|
|
- String sync1 = url.localPost(paramJson)
|
|
|
- .sync();
|
|
|
- log.info("开门返回;{}", sync1);
|
|
|
- log.info("paramJson;{} ", paramJson);
|
|
|
- }
|
|
|
-
|
|
|
- }
|
|
|
-}
|
|
|
+//
|
|
|
+// }
|
|
|
+//}
|