rain
2024-08-21 2db1aa88e8ab53096a936163d686b90d8e056a99
src/main/java/com/dji/sample/droneairport/service/impl/RegistServiceImpl.java
@@ -88,7 +88,7 @@
            String secret = SM4Util.generateSM4Key();
            String jsonBody = buildRequestBody(registDto);
            String base64 = SM4Util.encrypt(secret, jsonBody);
            String keys=Utils.encrypt(secret,"04CF7CAE31B5130D1D5D1AC1DC2778D94533868A8D57FC02BBD97B688E07145DAAA96462DC83D9F348261F738D51C049770C43BA53B584917C9E30C6221B737CDD");
            String keys=Utils.encrypt(secret,"04225AACF606D800EA3C2C31FCF8FB161B15F7A8D0460DEB91013D4F228C455E76A2ED8D71BC6525B5DC5CC015C155479D8839950344AEE438A3A6305C90F8269F");
            String enSM2=Utils.hexToBase64(keys);
            // 设置请求头
            HttpHeaders headers = new HttpHeaders();
@@ -101,26 +101,29 @@
            headers.set("x-lc-secret", enSM2);
            // 构建请求实体
            HttpEntity<String> requestEntity = new HttpEntity<>(base64, headers);
            // 发送请求
            ResponseEntity<String> response = restTemplate.exchange(
                    "https://xcx.geoway.com.cn:8033/v1/droneAirport/RegistService",
                    HttpMethod.POST,
                    requestEntity,
                    String.class);
            HttpHeaders responseHeaders = response.getHeaders();
            String responseSecret = responseHeaders.getFirst("x-lc-secret");
//            HttpEntity<String> requestEntity = new HttpEntity<>(base64, headers);
//            // 发送请求
//            ResponseEntity<String> response = restTemplate.exchange(
//                    "https://xcx.geoway.com.cn:8033/v1/droneAirport/RegistService",
//                    HttpMethod.POST,
//                    requestEntity,
//                    String.class);
//            HttpHeaders responseHeaders = response.getHeaders();
//            String responseSecret = responseHeaders.getFirst("x-lc-secret");
            String data=deSM2(responseSecret, "00D631FD5615416EAB63D33A9E66E801F95DE840567504210080006081DE877AE3");
            String data=deSM2(enSM2, "00D631FD5615416EAB63D33A9E66E801F95DE840567504210080006081DE877AE3");
            // 使用 Hutool 的 JSONUtil 解析 JSON 字符串
            JSONObject jsonObject = JSONUtil.parseObj(response.getBody());
//            JSONObject jsonObject = JSONUtil.parseObj(response.getBody());
            // 提取 data 字段的值
            String dataValue = jsonObject.getStr("data");
//            String dataValue = jsonObject.getStr("data");
            return SM4Util.decrypt(data,dataValue);
//            return SM4Util.decrypt(data,dataValue);
            String text=SM4Util.decrypt(data,base64);
            return SM4Util.decrypt(data,base64);
        } catch (Exception e) {
            // 异常处理
            return(e.getMessage());
        }
@@ -271,7 +274,7 @@
        //获取SM4密钥
        String secret = SM4Util.generateSM4Key();
        //对SM4密钥进行SM2加密
        String retse = Utils.encrypt(secret, "04225AACF606D800EA3C2C31FCF8FB161B15F7A8D0460DEB91013D4F228C455E76A2ED8D71BC6525B5DC5CC015C155479D8839950344AEE438A3A6305C90F8269F");
        String retse = Utils.encrypt(secret, "04CF7CAE31B5130D1D5D1AC1DC2778D94533868A8D57FC02BBD97B688E07145DAAA96462DC83D9F348261F738D51C049770C43BA53B584917C9E30C6221B737CDD");
        String taskId = UUID.randomUUID().toString();
        String traceid = UUID.randomUUID().toString();
        //通过SM2私钥解密请求头里的secret获取SM4密钥
@@ -321,8 +324,8 @@
                String waylineName = TimerUtil.getTimeName();
                MultipartFile multipartFile = timerUtil.getFile(waylineName, lotInfosForAirport, airport.getLat(), airport.getLon());
                WaylineFileEntity waylineFile = timerUtil.backWayline(multipartFile, waylineName, airport.getWorkspaceId(), username);
//                Long time = getNextDayEightAMTimestamp(getDistinctTaskIdCount(airport.getWorkspaceId()));
                Long time = getAdjustedTimestamp(50);
                Long time = getNextDayEightAMTimestamp(getDistinctTaskIdCount(airport.getWorkspaceId()));
//                Long time = getAdjustedTimestamp(50);
                List<List<Long>> listOfLists = new ArrayList<>();
                List<Long> sublist = new ArrayList<>();
                sublist.add(time);
@@ -347,7 +350,7 @@
    public Map<String, String>  updateTask(String base64, String Secret, String username) throws Exception {
        ReturnTaskParam param = new ReturnTaskParam();
        String secret = SM4Util.generateSM4Key();
        String retse = Utils.encrypt(secret, "04225AACF606D800EA3C2C31FCF8FB161B15F7A8D0460DEB91013D4F228C455E76A2ED8D71BC6525B5DC5CC015C155479D8839950344AEE438A3A6305C90F8269F");
        String retse = Utils.encrypt(secret, "04CF7CAE31B5130D1D5D1AC1DC2778D94533868A8D57FC02BBD97B688E07145DAAA96462DC83D9F348261F738D51C049770C43BA53B584917C9E30C6221B737CDD");
        String traceid = UUID.randomUUID().toString();
        String sm4Secrect = deSM2(Secret, "00D631FD5615416EAB63D33A9E66E801F95DE840567504210080006081DE877AE3");
        String decryptedJson = SM4Util.decrypt(sm4Secrect, base64);
@@ -420,12 +423,17 @@
    }
    @Override
    public ResponseResult cancelTask(String taskId) {
    public Map<String, String>  cancelTask(String taskId) throws InvalidCipherTextException, IOException {
        String secret = SM4Util.generateSM4Key();
        String retse = Utils.encrypt(secret, "04CF7CAE31B5130D1D5D1AC1DC2778D94533868A8D57FC02BBD97B688E07145DAAA96462DC83D9F348261F738D51C049770C43BA53B584917C9E30C6221B737CDD");
        LambdaUpdateWrapper<WaylineJobEntity> updateWrapper = new LambdaUpdateWrapper<>();
        updateWrapper.like(WaylineJobEntity::getJobId, taskId)
                .set(WaylineJobEntity::getStatus, 4);
        waylineJobMapper.update(null, updateWrapper);
        return null;
        Map<String, String> info = new HashMap<>();
        info.put("serect", retse);
        info.put("taskid", SM4Util.encrypt(secret,taskId));
        return info;
    }
    public void processAndInsertTasks(List<AirportTasks> airportTasks) {
@@ -446,7 +454,7 @@
        List<WaylineJobEntity> jobEntity = waylineJobMapper.selectList(new LambdaQueryWrapper<WaylineJobEntity>().like(WaylineJobEntity::getJobId, taskid));
        if (jobEntity == null || jobEntity.isEmpty()) {
            return ResponseResult.error(201, "查询无人机机场任务状态失败!");
            return ResponseResult.success(201, "查询无人机机场任务状态失败!","",UUID.randomUUID().toString());
        }
        // 检查是否所有 status 都等于 4
@@ -458,11 +466,11 @@
                .allMatch(job -> job.getStatus() == 3);
        if (allStatusAreFour) {
            return ResponseResult.error(204, "查询无人机机场任务状态成功!");
            return ResponseResult.success(204, "查询无人机机场任务状态成功!","",UUID.randomUUID().toString());
        } else if (allStatusAreThree) {
            return ResponseResult.error(200, "查询无人机机场任务状态成功!");
            return ResponseResult.success(200, "查询无人机机场任务状态成功!","",UUID.randomUUID().toString());
        } else {
            return ResponseResult.error(202, "查询无人机机场任务状态成功!");
            return ResponseResult.success(202, "查询无人机机场任务状态成功!","",UUID.randomUUID().toString());
        }
    }
@@ -478,7 +486,7 @@
        String secret = SM4Util.generateSM4Key();
        String traceId = UUID.randomUUID().toString();
        Map<String,String> info =new HashMap<>();
        String retse = Utils.encrypt(secret, "04CF7CAE31B5130D1D5D1AC1DC2778D94533868A8D57FC02BBD97B688E07145DAAA96462DC83D9F348261F738D51C049770C43BA53B584917C9E30C6221B737CDD");
        String retse = Utils.encrypt(secret, "04225AACF606D800EA3C2C31FCF8FB161B15F7A8D0460DEB91013D4F228C455E76A2ED8D71BC6525B5DC5CC015C155479D8839950344AEE438A3A6305C90F8269F");
        if (entity != null) {
            DbUploadDto dto = DbEntityToDto(entity);
            String data=buildRequestBody(dto);