liu пре 2 година
родитељ
комит
4fc76697c6

+ 3 - 0
src/main/java/com/example/faceverification/api/IdentityComparisonRecordControllerAPI.java

@@ -12,4 +12,7 @@ public interface IdentityComparisonRecordControllerAPI {
 
 
     BaseResponse comparison(DataDto name);
     BaseResponse comparison(DataDto name);
 
 
+
+    BaseResponse obtainPersonnel(String idCard);
+
 }
 }

+ 1 - 1
src/main/java/com/example/faceverification/config/MyBatisPlusConfig.java

@@ -13,7 +13,7 @@ import org.springframework.context.annotation.Profile;
 import org.springframework.transaction.annotation.EnableTransactionManagement;
 import org.springframework.transaction.annotation.EnableTransactionManagement;
 
 
 
 
-@MapperScan("com.example.mapper")
+@MapperScan("com.example.faceverification.mapper")
 @EnableTransactionManagement
 @EnableTransactionManagement
 @Configuration // 配置类
 @Configuration // 配置类
 public class MyBatisPlusConfig {
 public class MyBatisPlusConfig {

+ 56 - 0
src/main/java/com/example/faceverification/controller/BackController.java

@@ -0,0 +1,56 @@
+package com.example.faceverification.controller;
+
+import com.alibaba.fastjson.JSONObject;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import javax.servlet.http.HttpServletRequest;
+import java.io.BufferedReader;
+import java.io.InputStreamReader;
+
+@RestController
+@RequestMapping
+public class BackController {
+
+    //    入群密度
+    @PostMapping("/back/sms/population")
+    public void backPopulation(HttpServletRequest request) {
+        try {
+            BufferedReader streamReader = new BufferedReader(new InputStreamReader(request.getInputStream(), "UTF-8"));
+            StringBuilder responseStrBuilder = new StringBuilder();
+            String inputStr;
+            while ((inputStr = streamReader.readLine()) != null) {
+                responseStrBuilder.append(inputStr);
+            }
+            JSONObject jsonObject = JSONObject.parseObject(responseStrBuilder.toString());
+            System.out.println("jsonObject = " + jsonObject);
+
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+
+    }
+
+
+    @PostMapping()
+    public void backPopulation2(HttpServletRequest request) {
+        try {
+            BufferedReader streamReader = new BufferedReader(new InputStreamReader(request.getInputStream(), "UTF-8"));
+            StringBuilder responseStrBuilder = new StringBuilder();
+            String inputStr;
+            while ((inputStr = streamReader.readLine()) != null) {
+                responseStrBuilder.append(inputStr);
+            }
+            JSONObject jsonObject = JSONObject.parseObject(responseStrBuilder.toString());
+            System.out.println("jsonObject = " + jsonObject);
+
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+
+    }
+
+
+
+}

+ 6 - 2
src/main/java/com/example/faceverification/controller/IdentityComparisonRecordController.java

@@ -40,8 +40,12 @@ public class IdentityComparisonRecordController implements IdentityComparisonRec
        return identityComparisonRecordService.comparison(data);
        return identityComparisonRecordService.comparison(data);
     }
     }
 
 
-
-
+    @Override
+    @PostMapping("/personnel")
+    @Encrypt
+    public BaseResponse obtainPersonnel(@RequestBody String idCard) {
+        return identityComparisonRecordService.personnel(idCard);
+    }
 
 
 
 
 }
 }

+ 2 - 1
src/main/java/com/example/faceverification/core/JwtlnterceptorConfig.java

@@ -18,7 +18,8 @@ public class JwtlnterceptorConfig implements WebMvcConfigurer {
     public FilterRegistrationBean someFilterRegistration() {
     public FilterRegistrationBean someFilterRegistration() {
         FilterRegistrationBean registration = new FilterRegistrationBean();
         FilterRegistrationBean registration = new FilterRegistrationBean();
         registration.setFilter(replaceStreamFilter());
         registration.setFilter(replaceStreamFilter());
-        registration.addUrlPatterns("/*");
+//        registration.addUrlPatterns("/*");
+        registration.addUrlPatterns("/auto");
 //        registration.setName("streamFilter");
 //        registration.setName("streamFilter");
         return registration;
         return registration;
     }
     }

+ 10 - 5
src/main/java/com/example/faceverification/core/ReplaceStreamFilter.java

@@ -14,7 +14,7 @@ import java.io.BufferedReader;
 import java.io.IOException;
 import java.io.IOException;
 
 
 /**
 /**
- *  替换请求体的过滤逻辑
+ * 替换请求体的过滤逻辑
  *
  *
  * @author wang
  * @author wang
  * @since 2022-05-20
  * @since 2022-05-20
@@ -25,6 +25,7 @@ public class ReplaceStreamFilter implements Filter {
     public String privateKey;
     public String privateKey;
     @Value("${aes-key}")
     @Value("${aes-key}")
     public String aesKey;
     public String aesKey;
+
     @SneakyThrows
     @SneakyThrows
     @Override
     @Override
     public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
     public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
@@ -45,15 +46,17 @@ public class ReplaceStreamFilter implements Filter {
         while ((line = reader.readLine()) != null) {
         while ((line = reader.readLine()) != null) {
             buffer.append(line);
             buffer.append(line);
         }
         }
-
+        System.out.println("buffer = " + buffer.toString());
+            String bufferString = buffer.toString().replaceAll(" ", "");
+        System.out.println("bufferString = " + bufferString);
         //解密
         //解密
-        JSONObject jsonObject = JSON.parseObject(buffer.toString());
+        JSONObject jsonObject = JSON.parseObject(bufferString);
         //得到的密文
         //得到的密文
         String data = jsonObject.getString("data");
         String data = jsonObject.getString("data");
         //先用RSA解密,得到AES加密的数据
         //先用RSA解密,得到AES加密的数据
         String decrypt = RSAUtils.decrypt(data, RSAUtils.getPrivateKey(privateKey));
         String decrypt = RSAUtils.decrypt(data, RSAUtils.getPrivateKey(privateKey));
         //再用AES解密数据
         //再用AES解密数据
-         decrypt = AES.decryptFromBase64(decrypt, aesKey);
+        decrypt = AES.decryptFromBase64(decrypt, aesKey);
         System.out.println("decrypt = " + decrypt);
         System.out.println("decrypt = " + decrypt);
         //把解密之后的aesKey一并交给下游,方便在AOP对出参加密
         //把解密之后的aesKey一并交给下游,方便在AOP对出参加密
 //        jsonObject = JSON.parseObject(data);
 //        jsonObject = JSON.parseObject(data);
@@ -64,9 +67,11 @@ public class ReplaceStreamFilter implements Filter {
 
 
         chain.doFilter(requestWrapper, response);
         chain.doFilter(requestWrapper, response);
     }
     }
- 
+
     @Override
     @Override
     public void destroy() {
     public void destroy() {
 
 
     }
     }
+
+
 }
 }

+ 2 - 0
src/main/java/com/example/faceverification/service/IdentityComparisonRecordService.java

@@ -17,4 +17,6 @@ public interface IdentityComparisonRecordService extends IService<IdentityCompar
 
 
     BaseResponse comparison(DataDto data);
     BaseResponse comparison(DataDto data);
 
 
+    BaseResponse personnel(String idCard);
+
 }
 }

+ 39 - 3
src/main/java/com/example/faceverification/service/impl/IdentityComparisonRecordServiceImpl.java

@@ -53,6 +53,7 @@ public class IdentityComparisonRecordServiceImpl extends ServiceImpl<IdentityCom
             try {
             try {
 
 
                 String s = taskID();
                 String s = taskID();
+                log.info("以图搜图任务id:{}",taskId);
                 target(s, url);
                 target(s, url);
                 control(s);
                 control(s);
                 //        获取进度
                 //        获取进度
@@ -75,6 +76,15 @@ public class IdentityComparisonRecordServiceImpl extends ServiceImpl<IdentityCom
                 for (int i = 0; i < jsonArray.size(); i++) {
                 for (int i = 0; i < jsonArray.size(); i++) {
                     JSONObject jsonObject = JSONObject.parseObject(jsonArray.get(i).toString());
                     JSONObject jsonObject = JSONObject.parseObject(jsonArray.get(i).toString());
                     JSONObject targetInfo = jsonObject.getJSONObject("TargetInfo");
                     JSONObject targetInfo = jsonObject.getJSONObject("TargetInfo");
+//                    获取通道id
+                    ArrayList<String> libIdList = new ArrayList<>();
+                    JSONArray belongLibIDList=targetInfo.getJSONArray("BelongLibIDList");
+                    if (ObjectUtils.isNotEmpty(belongLibIDList)) {
+                        for (int j = 0; j < belongLibIDList.size(); j++) {
+                            String libID = belongLibIDList.get(j).toString();
+                            libIdList.add(libID);
+                        }
+                    }
 //                    获取姓名
 //                    获取姓名
                     String personName = targetInfo.getString("PersonName");
                     String personName = targetInfo.getString("PersonName");
                     log.info("找到对比图片的姓名【{}】",personName);
                     log.info("找到对比图片的姓名【{}】",personName);
@@ -88,7 +98,7 @@ public class IdentityComparisonRecordServiceImpl extends ServiceImpl<IdentityCom
                             if (data.getIdCard().equals(number)||data.getStudentNumber().equals(number)) {
                             if (data.getIdCard().equals(number)||data.getStudentNumber().equals(number)) {
                                 comparisonRecord.setResults(0);
                                 comparisonRecord.setResults(0);
                                 this.save(comparisonRecord);
                                 this.save(comparisonRecord);
-                                return BaseResponse.ok(StatusEnum.FACE_SUCCESS);
+                                return BaseResponse.ok(StatusEnum.FACE_SUCCESS,libIdList);
                             }
                             }
                         }
                         }
                     }
                     }
@@ -96,12 +106,23 @@ public class IdentityComparisonRecordServiceImpl extends ServiceImpl<IdentityCom
                         log.info("人脸对比成功");
                         log.info("人脸对比成功");
                         comparisonRecord.setResults(0);
                         comparisonRecord.setResults(0);
                         this.save(comparisonRecord);
                         this.save(comparisonRecord);
-                        return BaseResponse.ok(StatusEnum.FACE_SUCCESS);
+                        return BaseResponse.ok(StatusEnum.FACE_SUCCESS,libIdList);
                     }
                     }
                 }
                 }
 
 
             } catch (Exception e) {
             } catch (Exception e) {
                 log.error("人脸对比报错");
                 log.error("人脸对比报错");
+                Integer id = Integer.valueOf(taskId);
+                if (id>10) {
+                    id=id-10;
+                }else {
+                    id=0;
+                }
+                for (int i = id; i < id+10; i++) {
+                    delect(id+"");
+                }
+                e.printStackTrace();
+                return BaseResponse.error(StatusEnum.FACE_FAIL,"系统繁忙请稍后重试");
             } finally {
             } finally {
                 delect(taskId);
                 delect(taskId);
             }
             }
@@ -109,11 +130,26 @@ public class IdentityComparisonRecordServiceImpl extends ServiceImpl<IdentityCom
 
 
         comparisonRecord.setResults(1);
         comparisonRecord.setResults(1);
         log.info("人脸对比失败");
         log.info("人脸对比失败");
-        this.save(comparisonRecord);
+        try {
+            this.save(comparisonRecord);
+        }catch (Exception e){
+            return BaseResponse.error(StatusEnum.FACE_FAIL,"参数不全");
+        }
+
         return BaseResponse.error(StatusEnum.FACE_FAIL);
         return BaseResponse.error(StatusEnum.FACE_FAIL);
     }
     }
 
 
     /**
     /**
+     * 根据身份证号查询人脸库信息
+     * @param idCard
+     * @return
+     */
+    @Override
+    public BaseResponse personnel(String idCard) {
+        return null;
+    }
+
+    /**
      * 创建图搜任务
      * 创建图搜任务
      *
      *
      * @return
      * @return

+ 2 - 1
src/main/resources/application.yml

@@ -4,7 +4,7 @@ spring:
   #??
   #??
   datasource:
   datasource:
     driver-class-name: com.mysql.cj.jdbc.Driver
     driver-class-name: com.mysql.cj.jdbc.Driver
-    url: jdbc:mysql://172.16.20.80/face_verification?characterEncoding=utf-8&useSSL=FALSE&useAffectedRows=TRUE&allowMultiQueries=true&serverTimezone=GMT%2B8
+    url: jdbc:mysql://172.16.20.80:3306/face_verification?characterEncoding=utf-8&useSSL=FALSE&useAffectedRows=TRUE&allowMultiQueries=true&serverTimezone=GMT%2B8
     username: root
     username: root
     password: Chuanghai_test
     password: Chuanghai_test
 
 
@@ -18,6 +18,7 @@ logging:
 
 
 
 
 
 
+
 mybatis-plus:
 mybatis-plus:
   configuration:
   configuration:
     # 驼峰命名和底杠命名自动转换
     # 驼峰命名和底杠命名自动转换

+ 40 - 0
src/main/resources/sql/face_verification.sql

@@ -0,0 +1,40 @@
+/*
+ Navicat Premium Data Transfer
+
+ Source Server         : 172.16.20.80测试服务器
+ Source Server Type    : MySQL
+ Source Server Version : 80026
+ Source Host           : 172.16.20.80:3306
+ Source Schema         : face_verification
+
+ Target Server Type    : MySQL
+ Target Server Version : 80026
+ File Encoding         : 65001
+
+ Date: 05/02/2024 18:01:24
+*/
+
+SET NAMES utf8mb4;
+SET FOREIGN_KEY_CHECKS = 0;
+
+-- ----------------------------
+-- Table structure for identity_comparison_record
+-- ----------------------------
+DROP TABLE IF EXISTS `identity_comparison_record`;
+CREATE TABLE `identity_comparison_record`  (
+  `id` int(0) NOT NULL AUTO_INCREMENT,
+  `picture_url` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '图片路径',
+  `name` varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '姓名',
+  `identity_card` varchar(18) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '身份证',
+  `student_number` varbinary(20) NOT NULL COMMENT '学工号',
+  `category` varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '类别',
+  `results` char(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '对比结果(0:成功,1:失败)',
+  `create_time` datetime(0) NOT NULL COMMENT '创建时间',
+  `update_time` datetime(0) NOT NULL COMMENT '更新时间',
+  `create_user` bigint(0) NOT NULL COMMENT '创建人员',
+  `update_user` bigint(0) NOT NULL COMMENT '更新人员',
+  `deleted` bigint(0) NOT NULL COMMENT '逻辑删除标记',
+  PRIMARY KEY (`id`) USING BTREE
+) ENGINE = InnoDB AUTO_INCREMENT = 6197 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci ROW_FORMAT = Dynamic;
+
+SET FOREIGN_KEY_CHECKS = 1;