|
@@ -1,13 +1,19 @@
|
|
|
package com.yx.face.service.impl;
|
|
|
|
|
|
import cn.hutool.core.bean.BeanUtil;
|
|
|
+import cn.hutool.core.codec.Base64;
|
|
|
import cn.hutool.core.collection.CollUtil;
|
|
|
import cn.hutool.core.collection.CollectionUtil;
|
|
|
import cn.hutool.core.lang.Validator;
|
|
|
import cn.hutool.core.util.DesensitizedUtil;
|
|
|
import cn.hutool.core.util.IdcardUtil;
|
|
|
+import cn.hutool.core.util.RandomUtil;
|
|
|
import cn.hutool.core.util.StrUtil;
|
|
|
+import cn.hutool.crypto.SecureUtil;
|
|
|
+import cn.hutool.crypto.symmetric.AES;
|
|
|
+import cn.hutool.crypto.symmetric.SymmetricAlgorithm;
|
|
|
import com.alibaba.fastjson.JSON;
|
|
|
+import com.alibaba.fastjson.JSONObject;
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
|
|
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
|
@@ -15,7 +21,9 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
|
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
|
import com.yx.face.boot.restful.RestDTO;
|
|
|
import com.yx.face.boot.restful.RestResult;
|
|
|
+import com.yx.face.boot.uitls.AppTokenUtil;
|
|
|
import com.yx.face.boot.uitls.ClassUtil;
|
|
|
+import com.yx.face.boot.uitls.Sm4Util;
|
|
|
import com.yx.face.dao.AdminDao;
|
|
|
import com.yx.face.dao.FaceDeviceDao;
|
|
|
import com.yx.face.dao.UserBlackListDao;
|
|
@@ -350,7 +358,56 @@ public class UserBlackTaskServiceImpl extends ServiceImpl<UserBlackTaskDao, User
|
|
|
.in(UserBlackList::getAdminId, adminLessVos.stream().map(AdminLessVo::getAdminId).collect(Collectors.toList()))
|
|
|
);
|
|
|
|
|
|
- List<DeviceBlackVo> blackVos = userBlackListList.stream().map(p -> new DeviceBlackVo(p.getName(), p.getPhone(), p.getIdNumber())).distinct().collect(Collectors.toList());
|
|
|
+ List<DeviceBlackVo> blackVos = userBlackListList.stream().map(p -> new DeviceBlackVo(p.getName(), p.getIdNumber(), p.getPhone())).distinct().collect(Collectors.toList());
|
|
|
return RestResult.ok(blackVos);
|
|
|
}
|
|
|
+
|
|
|
+
|
|
|
+ private static final String appKey = "hhNgnrVy6GB";
|
|
|
+ private static final String appSecret = "e166f060d3ff50248b7bb914aa4e3a9bdd970cf0";
|
|
|
+ private static final String privateKey = "44wdisqvg7lm4qd8";
|
|
|
+ @Override
|
|
|
+ public RestResult<ThirdPlatformSm4DTO> getEncryBlackList(ThirdPlatformSm4DTO dto) {
|
|
|
+
|
|
|
+ //校验签名
|
|
|
+ Boolean checkSign = Sm4Util.checkSign(appKey, appSecret, dto.getSign(), String.valueOf(dto.getReqTimestamp()));
|
|
|
+ ClassUtil.throwBusinessException(!checkSign, "联动平台三方接口返回签名错误");
|
|
|
+ //解密数据
|
|
|
+ String decrypt = Sm4Util.decrypt(privateKey, dto.getBizContent());
|
|
|
+
|
|
|
+ DeviceBlackDto deviceBlackDto = JSON.parseObject(decrypt, DeviceBlackDto.class);
|
|
|
+ deviceBlackDto.setToken(AppTokenUtil.getTokens().get(0));
|
|
|
+//
|
|
|
+//
|
|
|
+//
|
|
|
+ RestResult<List<DeviceBlackVo>> blackList = this.getBlackList(deviceBlackDto);
|
|
|
+ List<DeviceBlackVo> data = blackList.getData();
|
|
|
+ ThirdPlatformSm4DTO thirdPlatformSm4DTO = new ThirdPlatformSm4DTO();
|
|
|
+ long currentTimeMillis = System.currentTimeMillis();
|
|
|
+ thirdPlatformSm4DTO.setReqTimestamp(currentTimeMillis);
|
|
|
+ thirdPlatformSm4DTO.setSign(Sm4Util.getSign(appKey, appSecret, String.valueOf(currentTimeMillis)));
|
|
|
+ thirdPlatformSm4DTO.setBizContent(Sm4Util.encrypt(privateKey, JSONObject.toJSONString(data)));
|
|
|
+ return RestResult.ok(thirdPlatformSm4DTO);
|
|
|
+ }
|
|
|
+
|
|
|
+ public static void main(String[] args) {
|
|
|
+ DeviceBlackDto data = new DeviceBlackDto();
|
|
|
+ data.setSn("224F010T01400584");
|
|
|
+
|
|
|
+
|
|
|
+ ThirdPlatformSm4DTO thirdPlatformSm4DTO = new ThirdPlatformSm4DTO();
|
|
|
+ long currentTimeMillis = System.currentTimeMillis();
|
|
|
+ thirdPlatformSm4DTO.setReqTimestamp(currentTimeMillis);
|
|
|
+ thirdPlatformSm4DTO.setSign(Sm4Util.getSign(appKey, appSecret, String.valueOf(currentTimeMillis)));
|
|
|
+ thirdPlatformSm4DTO.setBizContent(Sm4Util.encrypt(privateKey, JSONObject.toJSONString(data)));
|
|
|
+ System.out.println(JSONObject.toJSONString(thirdPlatformSm4DTO));
|
|
|
+// byte[] key = SecureUtil.generateKey(SymmetricAlgorithm.AES.getValue()).getEncoded();
|
|
|
+//转成字符串
|
|
|
+// String sey = Base64.encode(key);
|
|
|
+// String key = RandomUtil.randomString(16);
|
|
|
+// System.out.println(key);
|
|
|
+
|
|
|
+ System.out.println(Sm4Util.decrypt(privateKey, "2bc6930c24b82d803257569ed77c1d9e08ebfce4c663f5ce5ba911c8810294717f52d8006ed3cd6f582ad9d64065a558f89a74cf7a353dbbca0999548cd37c11baa4effbf75fced0e9bda8f7ec55424fad7f3effcd3070ed0dae4a5dcbd50bbd759d6174fa0fb9dc826a760655fd9ea53f117c521af96ef2432549382a2894aede74cdaec1c4f4d5ee38d4819aed1b64446d841ac93523808e1e2429bbcffd15"));
|
|
|
+ }
|
|
|
+
|
|
|
}
|