From b0b1e641a31a0494262187f97034807fc53515dd Mon Sep 17 00:00:00 2001 From: xusd <hugeinfo123> Date: Mon, 28 Oct 2024 15:49:39 +0800 Subject: [PATCH] Merge branch 'gzdyh_test' into gzdyh_grid --- 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