forked from gzzfw/backEnd/gz-dyh

liyj
2024-09-02 c8d79abfc012de3d5cd6749866067b04613276c8
dyh-service/dyh-sys/src/main/java/cn/huge/module/file/controller/wechat/FileInfoWechatController.java
@@ -8,14 +8,17 @@
import cn.huge.module.client.api.impl.CustClientImpl;
import cn.huge.module.constant.BaseConsts;
import cn.huge.module.cust.dto.CtUserDTO;
import cn.huge.module.cust.dto.PaUserDTO;
import cn.huge.module.file.domain.dto.UploaderDTO;
import cn.huge.module.file.domain.po.FileInfo;
import cn.huge.module.file.service.FileInfoService;
import cn.huge.module.file.service.FileRelateService;
import cn.huge.module.file.utils.FileUtils;
import cn.huge.module.file.utils.FtpUtils;
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.utils.BaiduOcrUtils;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.io.IOUtils;
import org.apache.commons.lang3.StringUtils;
@@ -59,19 +62,25 @@
    /**
     * 页面附件上传-文件流方式
     * @url {ctx}/api/wechat/fileInfo/upload/{ownerId}/{ownerType}
     * @url {ctx}/api/wechat/fileInfo/upload?mainId=&ownerId=&ownerType=
     * @param mainId 所属业务主体编号
     * @param ownerId 所属业务编号
     * @param ownerType 所属业务类型
     * @param request 请求头
     * @return Object
     */
    @PostMapping("/upload/{ownerId}/{ownerType}")
    public Object upload(@PathVariable(value = "ownerId") String ownerId, @PathVariable(value = "ownerType") String ownerType,
    @PostMapping("/upload")
    public Object upload(@RequestParam(value = "mainId") String mainId,
                         @RequestParam(value = "ownerId") String ownerId,
                         @RequestParam(value = "ownerType") String ownerType,
                         @CurrentUser String userId, MultipartHttpServletRequest request) {
        try{
            CtUserDTO loginUser = custClient.clientGetUser(userId);
            PaUserDTO loginUser = custClient.paClientGetUserAll(userId);
            UploaderDTO uploaderDTO = new UploaderDTO();
            BeanUtils.copyProperties(loginUser, uploaderDTO);
            uploaderDTO.setUploaderId(loginUser.getId());
            uploaderDTO.setUploaderName(loginUser.getTrueName());
            uploaderDTO.setUploaderType(FileBaseConsts.UPLOADER_TYPE_1);
            uploaderDTO.setCustId(loginUser.getCustId());
            List<FileInfoBaseDTO> files = new ArrayList<>();
            Iterator<String> itr = request.getFileNames();
            int fileCount = fileRelateService.countByOwnerIdAndType(ownerId, ownerType)+1;
@@ -85,9 +94,15 @@
                        if (StringUtils.isEmpty(ownerType)) {
                            ownerType = FileOwnerTypeBaseEnum.OWNER_TYPE_000.getIndex();
                        }
                        FileInfo fileInfo = service.webPploadFile(file, ownerId, ownerType, fileCount, uploaderDTO);
                        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 {
@@ -167,6 +182,22 @@
        }
    }
    /**
     * 删除附件
     * @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) {
            return ReturnFailUtils.getRepInfo();
        }
    }