|
@@ -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);
|
|
|
-
|
|
|
- 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);
|
|
|
-
|
|
|
- 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))
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
- .post(true)
|
|
|
- .sync();
|
|
|
- log.info("苏康码返回值;{}", sync);
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
|
|
|
-
|
|
|
- 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);
|
|
|
-
|
|
|
- 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);
|
|
|
- }
|
|
|
-
|
|
|
- }
|
|
|
-}
|
|
|
+
|
|
|
+
|
|
|
+
|