package com.lxzn.nc.controller; import com.lxzn.api.nc.DocInfoControllerApi; import com.lxzn.framework.domain.nc.DocFile; import com.lxzn.framework.domain.nc.DocInfo; import com.lxzn.framework.domain.nc.request.DocInfoQueryRequest; import com.lxzn.framework.domain.nc.request.DocInfoUploadRequest; import com.lxzn.framework.model.response.CommonCode; import com.lxzn.framework.model.response.QueryListResponseResult; import com.lxzn.framework.model.response.QueryPageResponseResult; import com.lxzn.framework.model.response.ResponseResult; import com.lxzn.framework.utils.ValidateUtil; import com.lxzn.framework.utils.file.FileUtil; import com.lxzn.nc.service.IDocInfoService; import javafx.scene.shape.VLineTo; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; import org.springframework.web.multipart.MultipartFile; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.util.List; @RestController @RequestMapping("/nc/doc") public class DocInfoController implements DocInfoControllerApi { @Autowired private IDocInfoService docInfoService; @Override @PostMapping("/add") public ResponseResult addDocInfo(@RequestParam("file") MultipartFile file, DocInfoUploadRequest docInfo) { boolean b = docInfoService.addDocInfo(file, docInfo); if(!b) return new ResponseResult(CommonCode.FAIL); return new ResponseResult(CommonCode.SUCCESS); } @Override @PutMapping("/edit/{id}") public ResponseResult editDocInfo(@PathVariable("id") String id, @RequestBody DocInfo docInfo) { boolean b = docInfoService.editDocInfo(id, docInfo); if(!b) return new ResponseResult(CommonCode.FAIL); return new ResponseResult(CommonCode.SUCCESS); } @Override @DeleteMapping("/delete") public ResponseResult deleteDocInfo(@RequestParam("id") String id) { boolean b = docInfoService.deleteDocInfo(id); if(!b) return new ResponseResult(CommonCode.FAIL); return new ResponseResult(CommonCode.SUCCESS); } @Override @PostMapping("/push/{id}") public ResponseResult pushDocFile(@PathVariable("id") String id, @RequestParam("file") MultipartFile file) { boolean b = docInfoService.pushDocFile(id, file); if(!b) return new ResponseResult(CommonCode.FAIL); return new ResponseResult(CommonCode.SUCCESS); } @Override @GetMapping("/pull/{id}") public ResponseResult pullDocFile(HttpServletRequest request, HttpServletResponse response, @PathVariable("id") String id) { return docInfoService.pullDocFile(request, response, id); } @Override @PutMapping("/cancel/pull/{id}") public ResponseResult cancelPullDocInfo(@PathVariable("id") String id) { boolean b = docInfoService.cancelPullDocInfo(id); if(!b) return new ResponseResult(CommonCode.FAIL); return new ResponseResult(CommonCode.SUCCESS); } @Override @PutMapping("/publish/{id}") public ResponseResult publishDocInfo(@PathVariable("id") String id) { boolean b = docInfoService.publishDocInfo(id); if(!b) return new ResponseResult(CommonCode.FAIL); return new ResponseResult(CommonCode.SUCCESS); } @Override @PutMapping("/republish/{id}") public ResponseResult republishDocInfo(@PathVariable("id") String id) { boolean b = docInfoService.republishDocInfo(id); if(!b) return new ResponseResult(CommonCode.FAIL); return new ResponseResult(CommonCode.SUCCESS); } @Override @PutMapping("/pigeonhole/{id}") public ResponseResult pigeonholeDocInfo(@PathVariable("id") String id) { boolean b = docInfoService.pigeonholeDocInfo(id); if(!b) return new ResponseResult(CommonCode.FAIL); return new ResponseResult(CommonCode.SUCCESS); } @Override @GetMapping("/find/page/{page}/{size}") public QueryPageResponseResult findPageList(@PathVariable("page") int page, @PathVariable("size") int size, DocInfoQueryRequest docQuery) { return docInfoService.findPageList(page, size, docQuery); } @Override @GetMapping("/find/page/device/{page}/{size}") public QueryPageResponseResult findPageListByDevice(@PathVariable("page") int page, @PathVariable("size") int size, DocInfoQueryRequest docQuery) { return docInfoService.findPageListByDevice(page, size, docQuery); } @Override @GetMapping("/preview/{id}") public QueryListResponseResult previewDocFile(@PathVariable("id") String id) { DocFile docFile = docInfoService.previewDocFile(id); if(!ValidateUtil.validateString(docFile.getFilePath()) || !ValidateUtil.validateString(docFile.getFileName()) // || !ValidateUtil.validateString(docFile.getFileSuffix()) || !ValidateUtil.validateString(docFile.getFileEncodeName())) return new QueryListResponseResult(CommonCode.FAIL, null); String filePath = docFile.getFilePath(); String fileEncodeName = docFile.getFileEncodeName(); List list = FileUtil.readFile(fileEncodeName, filePath); if(list == null || list.isEmpty()) return new QueryListResponseResult(CommonCode.FAIL, null); return new QueryListResponseResult(CommonCode.SUCCESS, list); } @Override @GetMapping("/preview/pdf/{id}") public ResponseResult previewPdfDocFile(HttpServletRequest request, HttpServletResponse response, @PathVariable("id") String id) { DocFile docFile = docInfoService.previewDocFile(id); if(!ValidateUtil.validateString(docFile.getFilePath()) || !ValidateUtil.validateString(docFile.getFileName()) || /*!ValidateUtil.validateString(docFile.getFileSuffix()) ||*/ !ValidateUtil.validateString(docFile.getFileEncodeName())) return new ResponseResult(CommonCode.FAIL); String fileName; if(ValidateUtil.validateString(docFile.getFileSuffix())) { fileName = docFile.getFileName() + "." + docFile.getFileSuffix(); }else { fileName = docFile.getFileName(); } String filePath = docFile.getFilePath(); String fileEncodeName = docFile.getFileEncodeName(); FileUtil.downLoadFile(response, fileEncodeName, filePath, fileName); return null; } @Override @GetMapping("/find/list") public QueryListResponseResult findList(DocInfoQueryRequest docQuery) { return docInfoService.findList(docQuery); } @Override @PostMapping("/batch/remove") public ResponseResult batchRemoveDocInfo(@RequestBody String[] docIds) { boolean b = docInfoService.batchRemoveDocInfo(docIds); if(!b) return new ResponseResult(CommonCode.FAIL); return new ResponseResult(CommonCode.SUCCESS); } @Override @GetMapping("/download/{id}") public ResponseResult downloadDocFile(HttpServletRequest request, HttpServletResponse response, @PathVariable("id") String id) { return docInfoService.downloadDocFile(request, response, id); } }