|
|
|
@ -4,9 +4,11 @@ import java.io.File;
|
|
|
|
|
import java.io.FileInputStream;
|
|
|
|
|
import java.io.IOException;
|
|
|
|
|
import java.util.Date;
|
|
|
|
|
import java.util.List;
|
|
|
|
|
|
|
|
|
|
import javax.servlet.http.HttpServletRequest;
|
|
|
|
|
|
|
|
|
|
import org.apache.commons.collections.CollectionUtils;
|
|
|
|
|
import org.apache.commons.io.FileUtils;
|
|
|
|
|
import org.slf4j.Logger;
|
|
|
|
|
import org.slf4j.LoggerFactory;
|
|
|
|
@ -25,8 +27,12 @@ import com.tamguo.common.utils.DateUtil;
|
|
|
|
|
import com.tamguo.common.utils.Result;
|
|
|
|
|
import com.tamguo.modules.book.model.DocumentEntity;
|
|
|
|
|
import com.tamguo.modules.book.model.FileEntity;
|
|
|
|
|
import com.tamguo.modules.book.model.FileUploadEntity;
|
|
|
|
|
import com.tamguo.modules.book.model.enums.BizTypeEnum;
|
|
|
|
|
import com.tamguo.modules.book.model.enums.FileUploadStatusEnum;
|
|
|
|
|
import com.tamguo.modules.book.service.IDocumentService;
|
|
|
|
|
import com.tamguo.modules.book.service.IFileEntityService;
|
|
|
|
|
import com.tamguo.modules.book.service.IFileUploadService;
|
|
|
|
|
import com.tamguo.utils.FileMd5Utils;
|
|
|
|
|
|
|
|
|
|
@Controller
|
|
|
|
@ -39,18 +45,32 @@ public class DocumentController {
|
|
|
|
|
IDocumentService iDocumentService;
|
|
|
|
|
@Autowired
|
|
|
|
|
IFileEntityService iFileEntityService;
|
|
|
|
|
@Autowired
|
|
|
|
|
IFileUploadService iFileUploadService;
|
|
|
|
|
|
|
|
|
|
@Value("${file.storage.path}")
|
|
|
|
|
private String fileStoragePath;
|
|
|
|
|
@Value("${domain.name}")
|
|
|
|
|
private String domainName;
|
|
|
|
|
|
|
|
|
|
@SuppressWarnings("unchecked")
|
|
|
|
|
@RequestMapping(value = "{id}" , method = RequestMethod.GET)
|
|
|
|
|
@ResponseBody
|
|
|
|
|
public Result getDocument(@PathVariable String id) {
|
|
|
|
|
DocumentEntity document = null;
|
|
|
|
|
try {
|
|
|
|
|
document = iDocumentService.selectById(id);
|
|
|
|
|
// 查询附件
|
|
|
|
|
List<FileUploadEntity> fileUploads = iFileUploadService.selectList(Condition.create().eq("biz_key", document.getId()).eq("biz_type", BizTypeEnum.DOCUMENT.getValue()));
|
|
|
|
|
if(!CollectionUtils.isEmpty(fileUploads)) {
|
|
|
|
|
for(int i=0 ; i<fileUploads.size() ; i++) {
|
|
|
|
|
FileUploadEntity fileUpload = fileUploads.get(i);
|
|
|
|
|
FileEntity fileEntity = iFileEntityService.selectOne(Condition.create().eq("file_id", fileUpload.getFileId()));
|
|
|
|
|
fileUpload.setFilePath(domainName + "files/" + fileEntity.getFilePath());
|
|
|
|
|
fileUpload.setFileSize(fileEntity.getFileSize());
|
|
|
|
|
}
|
|
|
|
|
document.setFileUploads(fileUploads);
|
|
|
|
|
}
|
|
|
|
|
} catch (Exception e) {
|
|
|
|
|
logger.error(e.getMessage() , e );
|
|
|
|
|
return Result.failResult("查询失败");
|
|
|
|
@ -130,14 +150,12 @@ public class DocumentController {
|
|
|
|
|
@SuppressWarnings("unchecked")
|
|
|
|
|
@RequestMapping(value = "uploadFile" , method = RequestMethod.POST)
|
|
|
|
|
@ResponseBody
|
|
|
|
|
public Result uploadFile(@RequestParam("editormd-file-file") MultipartFile file, String bookId , HttpServletRequest request) {
|
|
|
|
|
public Result uploadFile(@RequestParam("editormd-file-file") MultipartFile file , String documentId , String bookId , HttpServletRequest request) {
|
|
|
|
|
try {
|
|
|
|
|
String fileMd5 = FileMd5Utils.getMD5((FileInputStream)file.getInputStream());
|
|
|
|
|
FileEntity sysFile = iFileEntityService.selectOne(Condition.create().eq("file_md5", fileMd5));
|
|
|
|
|
if(sysFile != null) {
|
|
|
|
|
sysFile.setFilePath(domainName + "files/" + sysFile.getFilePath());
|
|
|
|
|
return Result.successResult(sysFile);
|
|
|
|
|
}
|
|
|
|
|
// 文件不存在
|
|
|
|
|
if(sysFile == null) {
|
|
|
|
|
String filePath = fileStoragePath + "book/" + DateUtil.fomatDate(new Date(), "yyyyMM") + "/" + bookId;
|
|
|
|
|
File dest = new File(filePath);
|
|
|
|
|
if(!dest.exists()) {
|
|
|
|
@ -145,21 +163,45 @@ public class DocumentController {
|
|
|
|
|
}
|
|
|
|
|
// save 文件
|
|
|
|
|
FileUtils.writeByteArrayToFile(new File(filePath + "/" + file.getOriginalFilename()) , file.getBytes());
|
|
|
|
|
|
|
|
|
|
FileEntity fileEntity = new FileEntity();
|
|
|
|
|
fileEntity.setFileContentType(file.getContentType());
|
|
|
|
|
fileEntity.setFileExtension(file.getOriginalFilename());
|
|
|
|
|
fileEntity.setFileMd5(FileMd5Utils.getMD5((FileInputStream)file.getInputStream()));
|
|
|
|
|
fileEntity.setFileSize(file.getSize());
|
|
|
|
|
fileEntity.setFilePath("book/" + DateUtil.fomatDate(new Date(), "yyyyMM") + "/" + bookId + "/" + file.getOriginalFilename());
|
|
|
|
|
iFileEntityService.insert(fileEntity);
|
|
|
|
|
|
|
|
|
|
fileEntity.setFilePath(domainName + "files/" + fileEntity.getFilePath());
|
|
|
|
|
|
|
|
|
|
return Result.successResult(fileEntity);
|
|
|
|
|
sysFile = new FileEntity();
|
|
|
|
|
sysFile.setFileContentType(file.getContentType());
|
|
|
|
|
sysFile.setFileExtension(file.getOriginalFilename());
|
|
|
|
|
sysFile.setFileMd5(FileMd5Utils.getMD5((FileInputStream)file.getInputStream()));
|
|
|
|
|
sysFile.setFileSize(file.getSize());
|
|
|
|
|
sysFile.setFilePath("book/" + DateUtil.fomatDate(new Date(), "yyyyMM") + "/" + bookId + "/" + file.getOriginalFilename());
|
|
|
|
|
iFileEntityService.insert(sysFile);
|
|
|
|
|
}
|
|
|
|
|
// 创建上传记录
|
|
|
|
|
FileUploadEntity fileUpload = new FileUploadEntity();
|
|
|
|
|
fileUpload.setBizKey(documentId);
|
|
|
|
|
fileUpload.setBizType(BizTypeEnum.DOCUMENT);
|
|
|
|
|
fileUpload.setCreateBy("system");
|
|
|
|
|
fileUpload.setCreateDate(new Date());
|
|
|
|
|
fileUpload.setFileId(sysFile.getFileId());
|
|
|
|
|
fileUpload.setFileName(sysFile.getFileExtension());
|
|
|
|
|
fileUpload.setFileType(file.getContentType());
|
|
|
|
|
fileUpload.setUpdateBy("system");
|
|
|
|
|
fileUpload.setUpdateDate(new Date());
|
|
|
|
|
fileUpload.setStatus(FileUploadStatusEnum.NORMAL);
|
|
|
|
|
iFileUploadService.insert(fileUpload);
|
|
|
|
|
|
|
|
|
|
fileUpload.setFilePath(domainName + "files/" + sysFile.getFilePath());
|
|
|
|
|
fileUpload.setFileSize(sysFile.getFileSize());
|
|
|
|
|
return Result.successResult(fileUpload);
|
|
|
|
|
} catch (IOException e) {
|
|
|
|
|
e.printStackTrace();
|
|
|
|
|
return Result.failResult("上传失败");
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@RequestMapping(value = "removeFile" , method = RequestMethod.POST)
|
|
|
|
|
@ResponseBody
|
|
|
|
|
public Result removeFile(String id) {
|
|
|
|
|
try {
|
|
|
|
|
iFileUploadService.deleteById(id);
|
|
|
|
|
} catch (Exception e) {
|
|
|
|
|
return Result.result(1, null, "删除失败");
|
|
|
|
|
}
|
|
|
|
|
return Result.successResult("删除成功");
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|