Commit 86bab055 authored by luzhuang's avatar luzhuang

pdf分节 默认400页一节

parent 99d98eb2
......@@ -137,11 +137,11 @@ public class BChapterController extends PaginationController<BChapter> {
@ApiOperation(value = "207 预览文件", notes = "(预览时传)")
@GetMapping("/getFileAtView")
public Result getFileAtView(CurUser curUser, @Valid BFile file, BindingResult br) throws IOException {
String newFileUrl = bChapterService.changeFileToPdfAtView(file);
FileToPdfAtViewDTO dto = bChapterService.changeFileToPdfAtView(file);
return Result.builder(new PersistModel(1),
MessageConstant.MESSAGE_ALERT_SUCCESS,
MessageConstant.MESSAGE_ALERT_ERROR,
newFileUrl);
dto);
}
@ApiOperation(value = "208 下载文件 返回服务器地址", notes = "下载文件 返回服务器地址")
......
......@@ -450,5 +450,35 @@ public interface BChapterRepository extends BaseMapper<BChapter> {
@Update("update b_chapter set chapter_name = #{name} where business_id = #{id}")
int updateChapterName(@Param("name")String name,@Param("id") String id);
/**
* 根据chapterid查询分割pdf章节的chapterIdList
* @param chapterId
* @return
*/
@Select("SELECT business_id " +
"from b_chapter where business_id in( " +
" SELECT chapter_id from b_file where video_url = ( " +
" select video_url from b_file where chapter_id = #{chapterId} and del_flag != 1 and flag =1) " +
" and del_flag != 1 and flag =1) " +
"ORDER BY sort")
List<String> getPdfIdList(@Param("chapterId")String chapterId);
/**
* 新增节时 pdf分节查询出之前 排序大于修改节的chapterId
* @param chapterId
* @return
*/
@Select("select business_id from b_chapter where sort > ( " +
"select sort from b_chapter where business_id = #{chapterId} and del_flag != 1 and flag =1) " +
"and del_flag != 1 and flag =1 " +
"and pid = #{pid}")
List<String> getPDFSortList(@Param("chapterId")String chapterId,@Param("pid")String pid);
@Update("<script>" +
"<foreach collection=\"ids\" item=\"item\" separator=\";\">" +
"update b_chapter set sort = (sort+#{num}) where business_id = #{item}" +
"</foreach></script>")
int updatePdfSort(@Param("ids")List<String> ids,@Param("num")int num);
}
package org.rcisoft.business.bchapter.dto;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.List;
@Data
public class FileToPdfAtViewDTO {
@ApiModelProperty(value = "预览地址")
private String url;
@ApiModelProperty(value = "切割pdf数量")
private int pdfNum;
}
......@@ -97,7 +97,7 @@ public interface BChapterService{
* @param bFile
* @return
*/
String changeFileToPdfAtView(BFile bFile);
FileToPdfAtViewDTO changeFileToPdfAtView(BFile bFile);
/**
* 下载文件
......
......@@ -51,6 +51,20 @@ public interface BFileRepository extends BaseMapper<BFile> {
"VALUES (#{businessId}, #{lessonId}, #{chapterId}, #{fileName}, #{videoUrl}, #{fileUrl}, #{type}, #{flag}, #{delFlag}, #{remarks}, #{createBy}, #{updateBy}, #{updateDate}, #{createDate},#{fileSize},#{fileTime})")
int insertUploadFile(BFile bFile);
/**
* 添加文件信息到file表
* @return
*/
@Insert("<script>" +
"INSERT INTO `b_file` " +
"(business_id,lesson_id,chapter_id,file_name,video_url,file_url,type,flag,del_flag,remarks,create_by,update_by,update_date,create_date,file_size,file_time) " +
"VALUES " +
"<foreach collection=\"list\" item=\"item\" separator=\",\">" +
"(#{item.businessId}, #{item.lessonId}, #{item.chapterId}, #{item.fileName}, #{item.videoUrl}, #{item.fileUrl}, #{item.type}, " +
"#{item.flag}, #{item.delFlag}, #{item.remarks}, #{item.createBy}, #{item.updateBy}, #{item.updateDate}, #{item.createDate},#{item.fileSize},#{item.fileTime})" +
"</foreach></script>")
int insertUploadFileList(List<BFile> bFiles);
@Update("update b_file set " +
"file_name = #{fileName} , " +
"video_url = #{videoUrl} ," +
......
......@@ -8,6 +8,7 @@ import com.itextpdf.text.pdf.PdfReader;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Component;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.text.SimpleDateFormat;
......@@ -23,7 +24,7 @@ import java.util.List;
public class CutPdfUtil {
public static void main(String[] args) {
try {
List<String> pdfList = toCutPdf("F:\\桌面整理\\文件归纳\\QQ下载\\xx文字+图片-100页.pdf", 3);
List<String> pdfList = toCutPdf("F:\\桌面整理\\文件\\测试资料\\06_API常用类.pdf","06_API常用类.pdf", 20);
} catch (Exception e) {
e.printStackTrace();
}
......@@ -37,7 +38,7 @@ public class CutPdfUtil {
* @return
* @throws Exception
*/
public static List<String> toCutPdf(String filePath, int page) throws Exception {
public static List<String> toCutPdf(String filePath,String fileName, int page) throws Exception {
List<String> pdfList = new ArrayList<>();
long l1 = System.currentTimeMillis();
int i = 0;
......@@ -46,7 +47,8 @@ public class CutPdfUtil {
PdfReader reader = new PdfReader(filePath);
int pageNum = reader.getNumberOfPages();
do {
String newFilePath = filePath.substring(0, filePath.lastIndexOf(".")) + "-" + j + ".pdf";
String path = filePath.replace(fileName,"pdf-"+fileName);
String newFilePath = path.substring(0, path.lastIndexOf(".")) +File.separator+fileName.substring(0, fileName.lastIndexOf("."))+ "-" + j + ".pdf";
int end = i + page;
if (end >= pageNum) {
end = pageNum;
......@@ -76,7 +78,11 @@ public class CutPdfUtil {
String newFilePath, int from, int end) {
Document document = null;
PdfCopy copy = null;
File newFile = new File(newFilePath);
try {
if (!newFile.getParentFile().exists()) {
newFile.getParentFile().mkdirs();
}
document = new Document(reader.getPageSize(1));
copy = new PdfCopy(document, new FileOutputStream(newFilePath));
document.open();
......
......@@ -136,7 +136,7 @@ public class FileReadableUtil {
}
private static Integer pdfReadable(String path){
public static Integer pdfReadable(String path){
Integer pages;
PDDocument doc = null;
try {
......@@ -155,7 +155,7 @@ public class FileReadableUtil {
}
FileReadableUtil.closeOtherStream(doc);
}
return 1;
return pages;
}
private static Integer docxReadable(String path){
Integer pages ;
......@@ -190,7 +190,7 @@ public class FileReadableUtil {
}
public static void fileReadable(String path,Long fileMaxSize,Long pdfMaxSize,Long txtMaxSize,Integer fileMaxPages) {
public static int fileReadable(String path,Long fileMaxSize,Long pdfMaxSize,Long txtMaxSize,Integer fileMaxPages) {
LogUtil.fileChangeLog("-----------FileReadableUtil-路径------------"+path);
File file = new File(path);
Long size = file.length();
......@@ -237,13 +237,10 @@ public class FileReadableUtil {
break;
}
if (pages != -1 && pages > fileMaxPages) {
if (pages != -1 && pages > fileMaxPages && !"pdf".equals(path.substring(path.lastIndexOf(".") + 1))) {
throw new ServiceException(400,"该文件超过最多"+fileMaxPages+"页限制");
}
// if (!CheckFileHeaderUtil.toCheck(path)){
// throw new ServiceException(ResultServiceEnums.FILE_UNREADABLE);
// }
return pages;
}
public File TXTHandler(File file) {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment