Browse Source

二维码图片

523096025 2 years ago
parent
commit
c202254293

+ 12 - 0
admin/pom.xml

@@ -166,6 +166,18 @@
             <artifactId>javase</artifactId>
             <version>3.1.0</version>
         </dependency>
+<!--        百度ocr-->
+        <dependency>
+            <groupId>com.squareup.okhttp3</groupId>
+            <artifactId>okhttp</artifactId>
+            <version>4.10.0</version>
+        </dependency>
+        <dependency>
+            <groupId>com.vaadin.external.google</groupId>
+            <artifactId>android-json</artifactId>
+            <version>0.0.20131108.vaadin1</version>
+            <scope>compile</scope>
+        </dependency>
 
     </dependencies>
 

+ 7 - 7
admin/src/main/java/com/huimv/farm/damsubsidy/common/token/TokenConstant.java

@@ -1,20 +1,20 @@
 package com.huimv.farm.damsubsidy.common.token;
- 
+
 import java.util.HashMap;
 import java.util.Map;
 
 public class TokenConstant {
- 
+
     private static Map<String,String> map=new HashMap();
- 
- 
+
+
     public static String getToken(){
             return map.get("token");
     }
- 
+
     public static void updateTokenMap(String token){
         map.put("token",token);
     }
- 
- 
+
+
 }

+ 24 - 24
admin/src/main/java/com/huimv/farm/damsubsidy/config/InterceptorConfig.java

@@ -1,24 +1,24 @@
-
-package com.huimv.farm.damsubsidy.config;
-
-import org.springframework.context.annotation.Bean;
-import org.springframework.context.annotation.Configuration;
-import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
-import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
-
-
-@Configuration
-public class InterceptorConfig implements WebMvcConfigurer {
-    @Bean
-    public JWTInterceptor jwtInterceptor(){
-        return new JWTInterceptor();
-    }
-
-    @Override
-    public void addInterceptors(InterceptorRegistry registry) {
-        registry.addInterceptor(jwtInterceptor()).
-                excludePathPatterns("/sys-user/*","/bill-subsidy/print"
-                        ,"/bill-subsidy/printPay","/bill-subsidy/printAmount","/bill-subsidy/printWaitPay","/bill-subsidy/QRCode");
-    }
-}
-
+//
+//package com.huimv.farm.damsubsidy.config;
+//
+//import org.springframework.context.annotation.Bean;
+//import org.springframework.context.annotation.Configuration;
+//import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
+//import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
+//
+//
+//@Configuration
+//public class InterceptorConfig implements WebMvcConfigurer {
+//    @Bean
+//    public JWTInterceptor jwtInterceptor(){
+//        return new JWTInterceptor();
+//    }
+//
+//    @Override
+//    public void addInterceptors(InterceptorRegistry registry) {
+//        registry.addInterceptor(jwtInterceptor()).
+//                excludePathPatterns("/sys-user/*","/bill-subsidy/print"
+//                        ,"/bill-subsidy/printPay","/bill-subsidy/printAmount","/bill-subsidy/printWaitPay","/bill-subsidy/QRCode");
+//    }
+//}
+//

+ 82 - 82
admin/src/main/java/com/huimv/farm/damsubsidy/config/JWTInterceptor.java

@@ -1,82 +1,82 @@
-package com.huimv.farm.damsubsidy.config;
-
-import com.alibaba.fastjson.JSONObject;
-import com.huimv.farm.damsubsidy.common.token.TokenConstant;
-import com.huimv.farm.damsubsidy.common.token.TokenSign;
-import io.jsonwebtoken.Claims;
-import org.springframework.web.method.HandlerMethod;
-import org.springframework.web.servlet.HandlerInterceptor;
-import org.springframework.web.servlet.ModelAndView;
-
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-import java.util.HashMap;
-import java.util.Map;
-
-/**
- * <p>
- * jwt拦截器
- * </p>
- *
- * @since 2021/4/19
- */
-public class JWTInterceptor implements HandlerInterceptor {
-
-
-    @Override
-    public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
-        // 如果不是映射到方法,则直接通过
-        if (!(handler instanceof HandlerMethod)) {
-            return true;
-        }
-
-        response.setContentType("application/json;charset=utf-8");
-        // 获取token
-        String token = request.getHeader("accessToken");
-
-
-        if (null == token) {
-            Map<String, Object> map = new HashMap<>();
-            map.put("data", "token is null");
-            map.put("code", "401");
-            response.setStatus(401);
-            response.getWriter().write(JSONObject.toJSONString(map));
-            return false;
-        } else {
-            Claims claims = TokenSign.getClaims(token);
-            if (claims == null) {
-                Map<String, Object> map = new HashMap<>();
-                map.put("data", "token is overdue");
-                map.put("code", "403");
-                response.setStatus(403);
-                response.getWriter().write(JSONObject.toJSONString(map));
-                return false;
-            }
-
-            boolean result = TokenSign.verify(token);
-            if (result) {
-                //更新存储的token信息
-                TokenConstant.updateTokenMap(token);
-                return true;
-            }
-            Map<String, Object> map = new HashMap<>();
-            map.put("data", "token is null");
-            map.put("code", "401");
-            response.setStatus(401);
-            response.getWriter().write(JSONObject.toJSONString(map));
-            return false;
-
-        }
-    }
-
-
-    @Override
-    public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception {
-
-    }
-
-    @Override
-    public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception {
-
-    }
-}
+//package com.huimv.farm.damsubsidy.config;
+//
+//import com.alibaba.fastjson.JSONObject;
+//import com.huimv.farm.damsubsidy.common.token.TokenConstant;
+//import com.huimv.farm.damsubsidy.common.token.TokenSign;
+//import io.jsonwebtoken.Claims;
+//import org.springframework.web.method.HandlerMethod;
+//import org.springframework.web.servlet.HandlerInterceptor;
+//import org.springframework.web.servlet.ModelAndView;
+//
+//import javax.servlet.http.HttpServletRequest;
+//import javax.servlet.http.HttpServletResponse;
+//import java.util.HashMap;
+//import java.util.Map;
+//
+///**
+// * <p>
+// * jwt拦截器
+// * </p>
+// *
+// * @since 2021/4/19
+// */
+//public class JWTInterceptor implements HandlerInterceptor {
+//
+//
+//    @Override
+//    public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
+//        // 如果不是映射到方法,则直接通过
+//        if (!(handler instanceof HandlerMethod)) {
+//            return true;
+//        }
+//
+//        response.setContentType("application/json;charset=utf-8");
+//        // 获取token
+//        String token = request.getHeader("accessToken");
+//
+//
+//        if (null == token) {
+//            Map<String, Object> map = new HashMap<>();
+//            map.put("data", "token is null");
+//            map.put("code", "401");
+//            response.setStatus(401);
+//            response.getWriter().write(JSONObject.toJSONString(map));
+//            return false;
+//        } else {
+//            Claims claims = TokenSign.getClaims(token);
+//            if (claims == null) {
+//                Map<String, Object> map = new HashMap<>();
+//                map.put("data", "token is overdue");
+//                map.put("code", "403");
+//                response.setStatus(403);
+//                response.getWriter().write(JSONObject.toJSONString(map));
+//                return false;
+//            }
+//
+//            boolean result = TokenSign.verify(token);
+//            if (result) {
+//                //更新存储的token信息
+//                TokenConstant.updateTokenMap(token);
+//                return true;
+//            }
+//            Map<String, Object> map = new HashMap<>();
+//            map.put("data", "token is null");
+//            map.put("code", "401");
+//            response.setStatus(401);
+//            response.getWriter().write(JSONObject.toJSONString(map));
+//            return false;
+//
+//        }
+//    }
+//
+//
+//    @Override
+//    public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception {
+//
+//    }
+//
+//    @Override
+//    public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception {
+//
+//    }
+//}

+ 7 - 4
admin/src/main/java/com/huimv/farm/damsubsidy/controller/BaseUserBankController.java

@@ -84,10 +84,13 @@ public class BaseUserBankController {
     }
 
     @PostMapping("/getBankName")
-    public Result getBankName(@RequestBody String bankCardId){
-//        if (!(BankUtil.checkBankCard(bankCardId))) {
-//            return new Result(10001, "卡号不符合标准,请检查银行卡号是否正确!", false);
-//        }
+    public Result getBankName(@RequestBody Map<String,String> map){
+        String bankCardId = map.get("bankCardId");
+        System.out.println(bankCardId);
+        if (!(BankUtil.checkBankCard(bankCardId))) {
+            return new Result(10001, "卡号不符合标准,请检查银行卡号是否正确!", false);
+        }
+
         String bankName = BankUtil.getname(bankCardId);
         if (ObjectUtil.isEmpty(bankName)) {
             return new Result(10001, "寻找不到银行卡开户行!", false);

+ 113 - 0
admin/src/main/java/com/huimv/farm/damsubsidy/controller/ImagesTest.java

@@ -2,20 +2,34 @@ package com.huimv.farm.damsubsidy.controller;
 
 import cn.hutool.core.date.DateUtil;
 import cn.hutool.core.lang.UUID;
+import cn.hutool.core.util.ObjectUtil;
+import cn.hutool.json.JSONUtil;
 import cn.hutool.poi.excel.ExcelReader;
 import cn.hutool.poi.excel.ExcelUtil;
 import com.huimv.farm.damsubsidy.common.annotate.DictTranslate;
 import com.huimv.farm.damsubsidy.common.utils.PovertyUtils;
+import com.huimv.farm.damsubsidy.common.utils.Result;
 import com.huimv.farm.damsubsidy.common.utils.UploadImage;
 import com.huimv.farm.damsubsidy.entity.PovertyUserRegist;
+import com.huimv.farm.damsubsidy.entity.vo.IDCardVo;
+import okhttp3.*;
+import okhttp3.RequestBody;
+import okhttp3.ResponseBody;
 import org.apache.commons.collections.CollectionUtils;
+import org.json.JSONException;
+import org.json.JSONObject;
 import org.springframework.util.StringUtils;
 import org.springframework.web.bind.annotation.*;
 import org.springframework.web.multipart.MultipartFile;
+import sun.misc.BASE64Encoder;
 
 import javax.imageio.ImageIO;
 import java.io.*;
 import java.lang.reflect.Field;
+import java.net.URLEncoder;
+import java.nio.file.Files;
+import java.nio.file.Paths;
+import java.util.Base64;
 import java.util.Date;
 import java.util.List;
 import java.util.Map;
@@ -73,4 +87,103 @@ public class ImagesTest {
         return "成功";
     }*/
 
+  /*  public static void main(String []args) throws IOException, JSONException {
+        MediaType mediaType = MediaType.parse("application/x-www-form-urlencoded");
+        // image 可以通过 getFileContentAsBase64("C:\fakepath\039fc6cbebda8c7d48ed16b4bbf03d7.jpg") 方法获取,如果Content-Type是application/x-www-form-urlencoded时,第二个参数传true
+        Request request = new Request.Builder()
+                .url("https://aip.baidubce.com/rest/2.0/ocr/v1/idcard?access_token=" + getAccessToken())
+                .method("POST", body)
+                .addHeader("Content-Type", "application/x-www-form-urlencoded")
+                .addHeader("Accept", "application/json")
+                .build();
+        Response response = HTTP_CLIENT.newCall(request).execute();
+        System.out.println(response.body().string());
+
+    }*/
+
+
+
+   public static final String API_KEY = "tOWx25FyomcHf51HDQqQUhSq";
+    public static final String SECRET_KEY = "6MOI0wIGqstuFk3xO6D0nHYaKdvn6DPD";
+    static final OkHttpClient HTTP_CLIENT = new OkHttpClient().newBuilder().build();
+
+
+    @RequestMapping("/excelTest/import")
+     public Result evaluationUpdate(@RequestParam("image") MultipartFile file) throws Exception {
+
+        if (ObjectUtil.isEmpty(file)){
+//            return  ;
+        }
+        BASE64Encoder encoder = new BASE64Encoder();
+        String  fileStr = encoder.encode(file.getBytes());
+        String image = URLEncoder.encode(fileStr, "utf-8");
+           MediaType mediaType = MediaType.parse("application/x-www-form-urlencoded");
+           // image 可以通过 getFileContentAsBase64("C:\fakepath\039fc6cbebda8c7d48ed16b4bbf03d7.jpg") 方法获取,如果Content-Type是application/x-www-form-urlencoded时,第二个参数传true
+      okhttp3.RequestBody body = okhttp3.RequestBody.create(mediaType, "id_card_side=front&image="+image+"&detect_risk=true&detect_quality=true&detect_photo=true&detect_card=true&detect_direction=true");
+
+        Request request = new Request.Builder()
+                   .url("https://aip.baidubce.com/rest/2.0/ocr/v1/idcard?access_token=" + getAccessToken())
+                   .method("POST", body)
+                   .addHeader("Content-Type", "application/x-www-form-urlencoded")
+                   .addHeader("Accept", "application/json")
+                   .build();
+           Response response = HTTP_CLIENT.newCall(request).execute();
+        String body1 = response.body().string();
+        IDCardVo idCardVo = JSONUtil.toBean(body1, IDCardVo.class);
+        Integer idcardNumberType = idCardVo.getIdcardNumberType();
+        if (idcardNumberType != 1){
+            String reslut = "";
+            switch (idcardNumberType){
+                case 1:
+
+            }
+            return  new Result(10001,"",false);
+        }
+        System.out.println(idCardVo.getIdcardNumberType());
+        System.out.println(idCardVo.getWordsResult());
+
+//        return "识别成功";
+        return null;
+    }
+
+
+
+
+    /**
+     * 获取文件base64编码
+     *
+     * @param path      文件路径
+     * @param urlEncode 如果Content-Type是application/x-www-form-urlencoded时,传true
+     * @return base64编码信息,不带文件头
+     * @throws IOException IO异常
+     */
+    static String getFileContentAsBase64(String path, boolean urlEncode) throws IOException {
+        byte[] b = Files.readAllBytes(Paths.get(path));
+        String base64 = Base64.getEncoder().encodeToString(b);
+        if (urlEncode) {
+            base64 = URLEncoder.encode(base64, "utf-8");
+        }
+        return base64;
+    }
+
+
+    /**
+     * 从用户的AK,SK生成鉴权签名(Access Token)
+     *
+     * @return 鉴权签名(Access Token)
+     * @throws IOException IO异常
+     */
+    static String getAccessToken() throws IOException, JSONException {
+        MediaType mediaType = MediaType.parse("application/x-www-form-urlencoded");
+        okhttp3.RequestBody body = RequestBody.create(mediaType, "grant_type=client_credentials&client_id=" + API_KEY
+                + "&client_secret=" + SECRET_KEY);
+        Request request = new Request.Builder()
+                .url("https://aip.baidubce.com/oauth/2.0/token")
+                .method("POST", body)
+                .addHeader("Content-Type", "application/x-www-form-urlencoded")
+                .build();
+        Response response = HTTP_CLIENT.newCall(request).execute();
+        return new JSONObject(response.body().string()).getString("access_token");
+    }
+
 }

+ 19 - 0
admin/src/main/java/com/huimv/farm/damsubsidy/entity/vo/IDCardVo.java

@@ -0,0 +1,19 @@
+package com.huimv.farm.damsubsidy.entity.vo;
+
+import lombok.Data;
+
+import java.util.Map;
+
+@Data
+public class IDCardVo {
+
+        private Map wordsResult;
+        //- 1: 身份证正面所有字段全为空
+        //0: 身份证证号不合法,此情况下不返回身份证证号
+        //1: 身份证证号和性别、出生信息一致
+        //2: 身份证证号和性别、出生信息都不一致
+        //3: 身份证证号和出生信息不一致
+        //4: 身份证证号和性别信息不一致
+        private  Integer idcardNumberType;
+
+}

File diff suppressed because it is too large
+ 72 - 0
admin/src/main/java/com/huimv/farm/damsubsidy/test/Sample.java