已修改2个文件
61 ■■■■■ 文件已修改
src/main/java/com/product/file/service/DocumentService.java 30 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/product/file/service/FileManagerService.java 31 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/product/file/service/DocumentService.java
@@ -152,20 +152,16 @@
        sql.append(" FROM( \n");
        if ("!borrow".equals(directory_uuid)) {
            //借阅文件夹查询文件特殊处理
            sql.append("SELECT\n");
            sql.append("doc.*\n");
            sql.append("        FROM\n");
            sql.append("product_oa_directory dir\n");
            sql.append("JOIN product_oa_document doc ON dir.uuid = doc.uuid\n");
            sql.append("WHERE\n");
            sql.append("dir.directory_type = 1\n");
            sql.append("AND doc.attachments_uuid IN (\n");
            sql.append("        SELECT\n");
            sql.append("    sub_uuid\n");
            sql.append("        FROM\n");
            sql.append("    product_oa_document_borrow_sub\n");
            sql.append("        WHERE\n");
            sql.append("    borrow_uuid IN ( SELECT uuid FROM product_oa_document_borrow WHERE borrower = ? AND flow_flag=2))\n");
            sql.append("  SELECT\n");
            sql.append("    doc.*\n");
            sql.append("  FROM product_oa_document doc \n");
            sql.append("  JOIN product_oa_directory dir ON dir.uuid = doc.directory_uuid \n");
            sql.append("  WHERE dir.directory_type = 1\n");
            sql.append("  AND doc.attachments_uuid IN (\n");
            sql.append("    SELECT sub_uuid\n");
            sql.append("    FROM product_oa_document_borrow_sub\n");
            sql.append("    WHERE borrow_uuid IN ( SELECT uuid FROM product_oa_document_borrow WHERE borrower = ? AND flow_flag=2)\n");
            sql.append("  )\n");
            directory_uuid = SpringMVCContextHolder.getCurrentUserId();
        } else if ("!favorite".equals(directory_uuid)) {
            sql.append("SELECT\n");
@@ -184,7 +180,7 @@
        sql.append(")A \n");
        sql.append("LEFT JOIN product_sys_staffs B ON B.user_id = A.created_by \n");
        sql.append("LEFT JOIN product_sys_attachments C ON C.uuid = B.staff_avatar \n");
        sql.append("LEFT JOIN product_oa_document_collection D ON D.document_uuid = A.uuid AND D.created_by = ?");
        sql.append("LEFT JOIN product_oa_document_collection D ON D.document_uuid = A.uuid AND D.created_by = ? \n");
        sql.append("LEFT JOIN product_sys_function_buttons E ON E.uuid = A.turn_button ");
        DataTableEntity documentData = baseDao.listTable(sql.toString(), new String[]{directory_uuid, SpringMVCContextHolder.getCurrentUserId()},
@@ -351,9 +347,9 @@
                }
                if (!BaseUtil.strIsNull(buttonPermissions)) {
                    // 判断是否包含查看权限,包含查看权限则获取文件列表
                    if (buttonPermissions.contains(",1,")) {
//                    if (buttonPermissions.contains(",1,")) {
                        dataTable = this.documentAll(fieldSetEntity);
                    }
//                    }
                    finalButtonPermissions = Arrays.stream(buttonPermissions.split(","))
                            .filter(s -> !s.isEmpty())
                            .distinct()
src/main/java/com/product/file/service/FileManagerService.java
@@ -1024,13 +1024,22 @@
                    ftpService.downloadFile(path, os);
                }
            } else {
                // 直接在本地的目录中找文件
                String localBasePath = Global.getSystemConfig("local.dir", "");
                path = localBasePath + File.separator + path;
                File file = new File(path);
                int len;
                byte[] b = new byte[1024];
                try (InputStream is = new FileInputStream(file)) {
                InputStream is = null;
                try {
                    Object fileContent = attachmentFse.getValue("file_content");
                    boolean saveInDb = fileContent != null;
                    if (saveInDb) {
                        // 存储到数据库
                        is = (InputStream) fileContent;
                    } else {
                        // 直接在本地的目录中找文件
                        String localBasePath = Global.getSystemConfig("local.dir", "");
                        path = localBasePath + File.separator + path;
                        File file = new File(path);
                        is = Files.newInputStream(file.toPath());
                    }
                    int len;
                    byte[] b = new byte[1024];
                    while ((len = is.read(b)) > 0) {
                        if (Global.getPropertyToBoolean("file.encrypt", "true")) {
                            // 需要解密
@@ -1040,7 +1049,13 @@
                            os.write(b, 0, len);
                        }
                    }
                }
                } catch (Exception e) {
                    throw new BaseException(FileCode.GET_FILE_BYTES_FAIL);
                } finally {
                    if (is != null) {
                        is.close();
                    }
                }
            }
            return os.toByteArray();