From 6f4ed9dbb428374e5513fbf88aae1377fd423a51 Mon Sep 17 00:00:00 2001
From: zhouxiantao <1026371446@qq.com>
Date: Sat, 14 Sep 2024 15:19:52 +0800
Subject: [PATCH] 综合查询

---
 dyh-service/dyh-sys/src/main/java/cn/huge/module/file/controller/wechat/FileInfoWechatController.java |  130 +++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 130 insertions(+), 0 deletions(-)

diff --git a/dyh-service/dyh-sys/src/main/java/cn/huge/module/file/controller/wechat/FileInfoWechatController.java b/dyh-service/dyh-sys/src/main/java/cn/huge/module/file/controller/wechat/FileInfoWechatController.java
index 168fbcc..c9eaa96 100644
--- a/dyh-service/dyh-sys/src/main/java/cn/huge/module/file/controller/wechat/FileInfoWechatController.java
+++ b/dyh-service/dyh-sys/src/main/java/cn/huge/module/file/controller/wechat/FileInfoWechatController.java
@@ -18,6 +18,9 @@
 import cn.huge.module.sys.constant.FileBaseConsts;
 import cn.huge.module.sys.constant.FileOwnerTypeBaseEnum;
 import cn.huge.module.sys.dto.FileInfoBaseDTO;
+import cn.huge.module.sys.dto.IdcardOcrResultDTO;
+import cn.huge.module.utils.BaiduOcrUtils;
+import com.google.common.collect.Maps;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.io.IOUtils;
 import org.apache.commons.lang3.StringUtils;
@@ -35,6 +38,7 @@
 import java.util.ArrayList;
 import java.util.Iterator;
 import java.util.List;
+import java.util.Map;
 
 /**
  * @title: 附件信息表接口api-wechat端
@@ -96,6 +100,12 @@
                         FileInfo fileInfo = service.wechatUploadFile(file, mainId, ownerId, ownerType, fileCount, uploaderDTO);
                         FileInfoBaseDTO fileInfoBaseDTO = new FileInfoBaseDTO();
                         BeanUtils.copyProperties(fileInfo, fileInfoBaseDTO);
+
+                        // 如果是身份证,就调用ocr识别
+                        if (FileOwnerTypeBaseEnum.OWNER_TYPE_202.getIndex().equals(ownerType)){
+                            fileInfoBaseDTO.setIdcardOcrResult(BaiduOcrUtils.ocrIdcard(file.getBytes()));
+                        }
+
                         files.add(fileInfoBaseDTO);
                         fileCount++;
                     } else {
@@ -175,7 +185,127 @@
         }
     }
 
+    /**
+     * 删除附件
+     * @url {ctx}/api/wechat/fileInfo/deleteFileById?id=
+     * @param id 附件编号
+     * @return Object
+     */
+    @GetMapping("/deleteFileById")
+    public Object deleteFileById(@RequestParam(value = "id") String id) {
+        try {
+            service.deleteFileById(id);
+            return ReturnSucUtils.getRepInfo();
+        } catch (Exception e) {
+            log.error("controller接口[FileInfoWechatController.deleteFileById]请求异常:"+e, e);
+            return ReturnFailUtils.getRepInfo();
+        }
+    }
 
+    /**
+     * 根据多个所属编号查询附件
+     * @url {ctx}/api/wechat/fileInfo/listByMainId
+     * @return Object
+     */
+    @GetMapping("/listByMainId")
+    public Object listByMainId(@RequestParam(value = "mainId") String mainId) {
+        try {
+            return ReturnSucUtils.getRepInfo(service.listByMainId(mainId));
+        } catch (Exception e) {
+            log.error("controller接口[FileInfoWechatController.listByMainId]请求异常:"+e, e);
+            return ReturnFailUtils.getRepInfo();
+        }
+    }
 
+    /**
+     * 根据多个所属编号查询附件
+     * @url {ctx}/api/wechat/fileInfo/listByMainIdAndType?mainId=&ownerType=
+     * @return Object
+     */
+    @GetMapping("/listByMainIdAndType")
+    public Object listByMainIdAndType(@RequestParam(value = "mainId") String mainId,@RequestParam(value = "ownerType") String ownerType) {
+        try {
+            return ReturnSucUtils.getRepInfo(service.listByMainIdAndType(mainId,ownerType));
+        } catch (Exception e) {
+            log.error("controller接口[FileInfoWechatController.listByMainIdAndType]请求异常:"+e, e);
+            return ReturnFailUtils.getRepInfo();
+        }
+    }
+
+    /**
+     * ocr识别身份证
+     * @url {ctx}/api/wechat/fileInfo/wecatRecognition?ownerId=&ownerType=
+     * @param request
+     * @return Object
+     */
+    @PostMapping(value = "/wecatRecognition")
+    public Object wecatRecognition(MultipartHttpServletRequest request, @CurrentUser String userId){
+        try{
+            // todo 判断是小程序还是PC
+//            UploaderDTO uploaderDTO = new UploaderDTO();
+//            PaUserDTO paUserDTO = custClient.paClientGetUserAll(userId);
+//            BeanUtils.copyProperties(paUserDTO, uploaderDTO);
+            Map<String , Object> result = Maps.newHashMap();
+            Iterator<String> itr = request.getFileNames();
+            while (itr.hasNext()) {
+                MultipartFile file = request.getFile(itr.next());
+//                try{
+//                    String ownerId = request.getParameter("ownerId");
+//                    if (StringUtils.isNotEmpty(ownerId)) {
+//                        String ownerType = request.getParameter("ownerType");
+//                        int fileCount = fileRelateService.countByOwnerIdAndType(ownerId, ownerType)+1;
+//                        if(StringUtils.isEmpty(ownerType)){
+//                            ownerType = FileOwnerTypeBaseEnum.OWNER_TYPE_000.getIndex();
+//                        }
+//                        FileInfo fileInfo = service.wechatUploadFile(file, ownerId,ownerId, ownerType, fileCount, uploaderDTO);
+//                        FileInfoBaseDTO fileInfoBaseDTO = new FileInfoBaseDTO();
+//                        BeanUtils.copyProperties(fileInfo, fileInfoBaseDTO);
+//                        result.put("attachment", fileInfoBaseDTO);
+//                    }
+//                }catch (Exception e){
+//                    log.error("Controller接口[FileInfoWechatController.wecatRecognition]请求异常:"+e, e);
+//                }
+                try{
+                    IdcardOcrResultDTO map = BaiduOcrUtils.ocrIdcard(file.getBytes());
+                    result.put("ocrResult", map);
+                }catch (Exception e){
+                    log.error("Controller接口[FileInfoWechatController.wecatRecognition]请求异常:"+e, e);
+                    return ReturnFailUtils.getRepInfo("OCR失败失败!");
+                }
+            }
+            return ReturnSucUtils.getRepInfo(result);
+        }catch (Exception e){
+            log.error("Controller接口[FileInfoWechatController.wecatRecognition]请求异常:"+e, e);
+            return ReturnFailUtils.getRepInfo(e.getMessage());
+        }
+    }
+
+    /**
+     * ocr识别文字
+     * @url {ctx}/api/wechat/fileInfo/recognitionText
+     * @param request
+     * @return Object
+     */
+    @PostMapping(value = "/recognitionText")
+    public Object recognitionText(MultipartHttpServletRequest request){
+        try{
+            Map<String , Object> result = Maps.newHashMap();
+            Iterator<String> itr = request.getFileNames();
+            while (itr.hasNext()) {
+                MultipartFile file = request.getFile(itr.next());
+                try{
+                    Map<String , Object> map = BaiduOcrUtils.ocrText(file.getBytes());
+                    result.put("ocrResult", map);
+                }catch (Exception e){
+                    log.error("Controller接口[FileInfoWechatController.recognitionText]请求异常:"+e, e);
+                    return ReturnFailUtils.getRepInfo("OCR失败!");
+                }
+            }
+            return ReturnSucUtils.getRepInfo("识别成功", result);
+        }catch (Exception e){
+            log.error("Controller接口[FileInfoWechatController.recognitionText]请求异常:"+e, e);
+            return ReturnFailUtils.getRepInfo(e.getMessage());
+        }
+    }
 
 }

--
Gitblit v1.8.0