From 3ac0f64eaa3d619e41a37554479d1c89c65f1a16 Mon Sep 17 00:00:00 2001 From: xiejunyu Date: Thu, 9 Jun 2022 14:36:27 +0800 Subject: [PATCH] =?UTF-8?q?ocr=E5=A2=9E=E5=8A=A0=E5=88=9B=E5=BB=BA?= =?UTF-8?q?=E8=80=85=E6=9D=83=E9=99=90=E6=A0=A1=E9=AA=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ocr/controller/OcrRecordEOController.java | 35 +++++++++-- .../ocr/controller/OcrRestfulController.java | 58 ++++++++++++------- 2 files changed, 69 insertions(+), 24 deletions(-) diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/ocr/controller/OcrRecordEOController.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/ocr/controller/OcrRecordEOController.java index 7c3a48a08..b246489ea 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/ocr/controller/OcrRecordEOController.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/ocr/controller/OcrRecordEOController.java @@ -2,12 +2,14 @@ package com.jero.modules.ocr.controller; import cn.hutool.core.collection.CollectionUtil; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.jero.common.api.vo.Result; import com.jero.common.aspect.annotation.AutoLog; import com.jero.common.constant.enums.CutEnum; import com.jero.common.system.base.controller.JeroController; +import com.jero.common.system.vo.LoginUser; import com.jero.modules.document.service.IBussDocumentLibraryEOService; import com.jero.modules.ocr.entity.OcrRecordEO; import com.jero.modules.ocr.enums.FileSyncStateEnum; @@ -19,6 +21,7 @@ import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang.StringUtils; +import org.apache.shiro.SecurityUtils; import org.apache.shiro.authz.annotation.RequiresPermissions; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.validation.annotation.Validated; @@ -30,6 +33,7 @@ import javax.servlet.http.HttpServletResponse; import java.util.Arrays; import java.util.List; import java.util.Map; +import java.util.stream.Collectors; /** @@ -61,6 +65,10 @@ public class OcrRecordEOController extends JeroController queryPageList(@RequestBody OcrRecordEOPage ocrRecordEOPage) { + //查询创建者为当前用户的数据 + LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal(); + String loginUser = sysUser.getUsername(); + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); if (StringUtils.isNotEmpty(ocrRecordEOPage.getStandNumber())) { ocrRecordEOPage.setStandNumber(ocrRecordEOPage.getStandNumber().replace("%","\\%")); @@ -70,6 +78,7 @@ public class OcrRecordEOController extends JeroController page = new Page(ocrRecordEOPage.getPageNo(), ocrRecordEOPage.getPageSize()); @@ -234,13 +243,31 @@ public class OcrRecordEOController extends JeroController delete(@RequestParam(name="id",required=true) String id) { + public Result delete(@RequestParam(name="id",required=true) String id, + @RequestParam(name="cut",required=true) String cut) { if (StringUtils.isBlank(id)) { return Result.error("删除数据不能为空"); } - ocrRecordService.deleteById(id); - //TODO 删除上传的pdf文件,转换成功的将doc文件一并删除 - return Result.OK("删除成功!"); + + //增加创建者校验 + LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal(); + String loginUser = sysUser.getUsername(); + QueryWrapper ocrRecordEOQueryWrapper = new QueryWrapper<>(); + ocrRecordEOQueryWrapper.eq("id",id); + String ocrRecordEOCreateBy = ocrRecordService.list(ocrRecordEOQueryWrapper).stream().map(e -> e.getCreateBy()).collect(Collectors.toList()).get(0); + if (loginUser.equals(ocrRecordEOCreateBy)) { + ocrRecordService.deleteById(id); + + //TODO 删除上传的pdf文件,转换成功的将doc文件一并删除 + return Result.OK("删除成功!"); + + }else { + if (CutEnum.CN.getValue().equals(cut)) { + return Result.error("当前用户非创建者,无法下载"); + }else{ + return Result.error("The current user is not the creator and cannot be downloaded."); + } + } } /** diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/ocr/controller/OcrRestfulController.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/ocr/controller/OcrRestfulController.java index 56565b83b..acdb9bd31 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/ocr/controller/OcrRestfulController.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/ocr/controller/OcrRestfulController.java @@ -1,9 +1,11 @@ package com.jero.modules.ocr.controller; import cn.hutool.core.util.ObjectUtil; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.jero.common.api.vo.Result; import com.jero.common.constant.enums.CutEnum; import com.jero.common.exception.JeroBootException; +import com.jero.common.system.vo.LoginUser; import com.jero.modules.ocr.entity.OcrRecordEO; import com.jero.modules.ocr.enums.ResultContentEnum; import com.jero.modules.ocr.service.IOcrRecordEOService; @@ -17,6 +19,7 @@ import lombok.extern.slf4j.Slf4j; import org.apache.commons.io.IOUtils; import org.apache.commons.lang.StringUtils; import org.apache.http.entity.ContentType; +import org.apache.shiro.SecurityUtils; import org.apache.shiro.authz.annotation.RequiresPermissions; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; @@ -29,6 +32,7 @@ import javax.servlet.http.HttpServletResponse; import java.io.*; import java.text.SimpleDateFormat; import java.util.Date; +import java.util.stream.Collectors; /** * @program: OcrDemo @@ -67,27 +71,41 @@ public class OcrRestfulController{ @ApiOperation(value = "下载word文件") @GetMapping("/downFile") @RequiresPermissions("ocr:ocrRestful:downFile") - public void downFile(String fileName, HttpServletResponse response, HttpServletRequest request) throws Exception { - InputStream is = null; - OutputStream os = null; - response.reset(); - try { - String downFileName = fileName.substring(fileName.indexOf("_") + 1); - response.setHeader("Content-Disposition", "attachment; filename=" + downFileName); - response.setContentType("application/octet-stream"); + public void downFile(String fileName, HttpServletResponse response, HttpServletRequest request,String cut) throws Exception { + //增加创建者校验 + LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal(); + String loginUser = sysUser.getUsername(); + QueryWrapper ocrRecordEOQueryWrapper = new QueryWrapper<>(); + ocrRecordEOQueryWrapper.eq("doc_real_name",fileName); + String ocrRecordEOCreateBy = ocrRecordEOService.list(ocrRecordEOQueryWrapper).stream().map(e -> e.getCreateBy()).collect(Collectors.toList()).get(0); + if (loginUser.equals(ocrRecordEOCreateBy)) { + InputStream is = null; + OutputStream os = null; + response.reset(); + try { + String downFileName = fileName.substring(fileName.indexOf("_") + 1); + response.setHeader("Content-Disposition", "attachment; filename=" + downFileName); + response.setContentType("application/octet-stream"); - String fullPath = ocrPath + fileName; - is = new FileInputStream(fullPath); - os = response.getOutputStream(); - IOUtils.copy(is, os); - os.flush(); - } catch (FileNotFoundException var4) { - throw new JeroBootException("文件[" + ocrPath + fileName + "]不存在"); - } catch (IOException e) { - log.error(e.getMessage(), e); - } finally { - is.close(); - os.close(); + String fullPath = ocrPath + fileName; + is = new FileInputStream(fullPath); + os = response.getOutputStream(); + IOUtils.copy(is, os); + os.flush(); + } catch (FileNotFoundException var4) { + throw new JeroBootException("文件[" + ocrPath + fileName + "]不存在"); + } catch (IOException e) { + log.error(e.getMessage(), e); + } finally { + is.close(); + os.close(); + } + }else{ + if (CutEnum.CN.getValue().equals(cut)) { + throw new JeroBootException("当前用户非创建者,无法下载"); + }else{ + throw new JeroBootException("The current user is not the creator and cannot be downloaded."); + } } }