|
@@ -9,14 +9,17 @@ import cn.com.qmth.stmms.ms.commons.config.ImageCompressionConfig;
|
|
import cn.com.qmth.stmms.ms.commons.config.SystemConfig;
|
|
import cn.com.qmth.stmms.ms.commons.config.SystemConfig;
|
|
import cn.com.qmth.stmms.ms.commons.utils.image.ImageCompression;
|
|
import cn.com.qmth.stmms.ms.commons.utils.image.ImageCompression;
|
|
import cn.com.qmth.stmms.ms.core.domain.MarkSubject;
|
|
import cn.com.qmth.stmms.ms.core.domain.MarkSubject;
|
|
|
|
+import cn.com.qmth.stmms.ms.core.domain.Paper;
|
|
import cn.com.qmth.stmms.ms.core.domain.Student;
|
|
import cn.com.qmth.stmms.ms.core.domain.Student;
|
|
import cn.com.qmth.stmms.ms.core.domain.Work;
|
|
import cn.com.qmth.stmms.ms.core.domain.Work;
|
|
import cn.com.qmth.stmms.ms.core.repository.MarkSubjectRepo;
|
|
import cn.com.qmth.stmms.ms.core.repository.MarkSubjectRepo;
|
|
|
|
+import cn.com.qmth.stmms.ms.core.repository.PaperRepo;
|
|
import cn.com.qmth.stmms.ms.core.repository.StudentRepo;
|
|
import cn.com.qmth.stmms.ms.core.repository.StudentRepo;
|
|
import cn.com.qmth.stmms.ms.core.repository.WorkRepo;
|
|
import cn.com.qmth.stmms.ms.core.repository.WorkRepo;
|
|
import cn.com.qmth.stmms.ms.core.vo.Subject;
|
|
import cn.com.qmth.stmms.ms.core.vo.Subject;
|
|
import net.sf.json.JSONObject;
|
|
import net.sf.json.JSONObject;
|
|
|
|
|
|
|
|
+import org.apache.commons.codec.digest.DigestUtils;
|
|
import org.assertj.core.util.Strings;
|
|
import org.assertj.core.util.Strings;
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
import org.springframework.util.FileCopyUtils;
|
|
import org.springframework.util.FileCopyUtils;
|
|
@@ -62,6 +65,9 @@ public class CollectApi {
|
|
|
|
|
|
@Autowired
|
|
@Autowired
|
|
private ImageCompressionConfig compressionConfig;
|
|
private ImageCompressionConfig compressionConfig;
|
|
|
|
+
|
|
|
|
+ @Autowired
|
|
|
|
+ private PaperRepo paperRepo;
|
|
|
|
|
|
@RequestMapping("user/login")
|
|
@RequestMapping("user/login")
|
|
public LoginDTO login(@RequestParam String loginname,@RequestParam String password){
|
|
public LoginDTO login(@RequestParam String loginname,@RequestParam String password){
|
|
@@ -130,10 +136,12 @@ 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 boolean original,
|
|
|
|
|
|
+ @PathVariable String fileName,@RequestParam(required = false) boolean original,
|
|
HttpServletRequest request,HttpServletResponse response) throws IOException{
|
|
HttpServletRequest request,HttpServletResponse response) throws IOException{
|
|
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,
|
|
|
|
+ student.getExamNumber());
|
|
InputStream inputStream = request.getInputStream();
|
|
InputStream inputStream = request.getInputStream();
|
|
if(original){//仅保存原图
|
|
if(original){//仅保存原图
|
|
String savePath = systemConfig.getSheetDir() + File.separator + workId + File.separator + subject
|
|
String savePath = systemConfig.getSheetDir() + File.separator + workId + File.separator + subject
|
|
@@ -153,8 +161,12 @@ 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);
|
|
|
|
+ paperRepo.save(paper);
|
|
}
|
|
}
|
|
|
|
|
|
private File saveImage(Student student, InputStream inputStream,
|
|
private File saveImage(Student student, InputStream inputStream,
|