|
@@ -136,18 +136,19 @@ public class CollectApi {
|
|
*/
|
|
*/
|
|
@RequestMapping(value = "file/ms-slice/{workId}/{subjectId}/{fileName}", method = { RequestMethod.PUT, RequestMethod.POST })
|
|
@RequestMapping(value = "file/ms-slice/{workId}/{subjectId}/{fileName}", method = { RequestMethod.PUT, RequestMethod.POST })
|
|
public void upload(@PathVariable Long workId,@PathVariable Integer subjectId,
|
|
public void upload(@PathVariable Long workId,@PathVariable Integer subjectId,
|
|
- @PathVariable String fileName,@RequestParam(required = false) boolean original,
|
|
|
|
|
|
+ @PathVariable String fileName,
|
|
HttpServletRequest request,HttpServletResponse response) throws IOException{
|
|
HttpServletRequest request,HttpServletResponse response) throws IOException{
|
|
|
|
+ String md5 = request.getHeader("md5");
|
|
|
|
+ InputStream inputStream = request.getInputStream();
|
|
|
|
+ String sliceMD5 = DigestUtils.md5Hex(inputStream);
|
|
|
|
+ if(!md5.equalsIgnoreCase(sliceMD5)){
|
|
|
|
+ throw new RuntimeException("图片md5值不一致");
|
|
|
|
+ }
|
|
Student student = studentRepo.findByWorkIdAndExamNumber(workId,fileName);
|
|
Student student = studentRepo.findByWorkIdAndExamNumber(workId,fileName);
|
|
Subject subject = Subject.values()[subjectId-1];
|
|
Subject subject = Subject.values()[subjectId-1];
|
|
Paper paper = paperRepo.findByWorkIdAndSubjectAndExamNumber(student.getWorkId(), subject,
|
|
Paper paper = paperRepo.findByWorkIdAndSubjectAndExamNumber(student.getWorkId(), subject,
|
|
student.getExamNumber());
|
|
student.getExamNumber());
|
|
- InputStream inputStream = request.getInputStream();
|
|
|
|
- if(original){//仅保存原图
|
|
|
|
- String savePath = systemConfig.getSheetDir() + File.separator + workId + File.separator + subject
|
|
|
|
- + File.separator + student.getAreaCode();
|
|
|
|
- saveImage(student, inputStream, savePath);
|
|
|
|
- }else{
|
|
|
|
|
|
+ //保存遮盖图
|
|
String savePath = systemConfig.getImageDir() + File.separator + workId + File.separator + subject
|
|
String savePath = systemConfig.getImageDir() + File.separator + workId + File.separator + subject
|
|
+ File.separator + student.getAreaCode();
|
|
+ File.separator + student.getAreaCode();
|
|
File outFile = saveImage(student, inputStream, savePath);
|
|
File outFile = saveImage(student, inputStream, savePath);
|
|
@@ -161,11 +162,8 @@ public class CollectApi {
|
|
BufferedImage bufferedImage = ImageCompression.compress(outFile, compressionConfig);
|
|
BufferedImage bufferedImage = ImageCompression.compress(outFile, compressionConfig);
|
|
String thumbFileName = thumbDir + File.separator + student.getExamNumber() + ".jpg";
|
|
String thumbFileName = thumbDir + File.separator + student.getExamNumber() + ".jpg";
|
|
ImageIO.write(bufferedImage, "jpg", new File(thumbFileName));
|
|
ImageIO.write(bufferedImage, "jpg", new File(thumbFileName));
|
|
- String sliceMD5 = DigestUtils.md5Hex(new FileInputStream(thumbFileName));
|
|
|
|
- paper.setSliceMD5(sliceMD5);
|
|
|
|
- }
|
|
|
|
- String sheetMD5 = DigestUtils.md5Hex(inputStream);
|
|
|
|
- paper.setSheetMD5(sheetMD5);
|
|
|
|
|
|
+
|
|
|
|
+ paper.setSliceMD5(sliceMD5);
|
|
paperRepo.save(paper);
|
|
paperRepo.save(paper);
|
|
}
|
|
}
|
|
|
|
|
|
@@ -179,6 +177,37 @@ public class CollectApi {
|
|
FileCopyUtils.copy(inputStream, new FileOutputStream(outFile));
|
|
FileCopyUtils.copy(inputStream, new FileOutputStream(outFile));
|
|
return outFile;
|
|
return outFile;
|
|
}
|
|
}
|
|
|
|
+
|
|
|
|
+ /**
|
|
|
|
+ * 上传裁切原图并压缩
|
|
|
|
+ * @param workId
|
|
|
|
+ * @param subjectId
|
|
|
|
+ * @param fileName
|
|
|
|
+ * @param request
|
|
|
|
+ * @param response
|
|
|
|
+ * @throws IOException
|
|
|
|
+ */
|
|
|
|
+ @RequestMapping(value = "file/ms-sheet/{workId}/{subjectId}/{fileName}", method = { RequestMethod.PUT, RequestMethod.POST })
|
|
|
|
+ public void uploadsheet(@PathVariable Long workId,@PathVariable Integer subjectId,
|
|
|
|
+ @PathVariable String fileName,
|
|
|
|
+ HttpServletRequest request,HttpServletResponse response) throws IOException{
|
|
|
|
+ Student student = studentRepo.findByWorkIdAndExamNumber(workId,fileName);
|
|
|
|
+ Subject subject = Subject.values()[subjectId-1];
|
|
|
|
+ Paper paper = paperRepo.findByWorkIdAndSubjectAndExamNumber(student.getWorkId(), subject,
|
|
|
|
+ student.getExamNumber());
|
|
|
|
+ InputStream inputStream = request.getInputStream();
|
|
|
|
+ String md5 = request.getHeader("md5");
|
|
|
|
+ String sheetMD5 = DigestUtils.md5Hex(inputStream);
|
|
|
|
+ if(!md5.equalsIgnoreCase(sheetMD5)){
|
|
|
|
+ throw new RuntimeException("图片md5值不一致");
|
|
|
|
+ }
|
|
|
|
+ //保存原图图
|
|
|
|
+ String savePath = systemConfig.getSheetDir() + File.separator + workId + File.separator + subject
|
|
|
|
+ + File.separator + student.getAreaCode();
|
|
|
|
+ saveImage(student, inputStream, savePath);
|
|
|
|
+ paper.setSheetMD5(sheetMD5);
|
|
|
|
+ paperRepo.save(paper);
|
|
|
|
+ }
|
|
|
|
|
|
@RequestMapping(value = "subject/collect-config", method = RequestMethod.POST)
|
|
@RequestMapping(value = "subject/collect-config", method = RequestMethod.POST)
|
|
public boolean updateConfig(@RequestBody CollectSubjectDTO collectSubjectDTO){
|
|
public boolean updateConfig(@RequestBody CollectSubjectDTO collectSubjectDTO){
|