|
@@ -3,8 +3,11 @@ package cn.com.qmth.stmms.ms.admin.api;
|
|
|
import cn.com.qmth.stmms.ms.admin.assembler.ScoreAssembler;
|
|
|
import cn.com.qmth.stmms.ms.admin.dto.ScoreCheckDTO;
|
|
|
import cn.com.qmth.stmms.ms.admin.utils.WaterMarkUtils;
|
|
|
+import cn.com.qmth.stmms.ms.commons.config.AliYunOssConfig;
|
|
|
import cn.com.qmth.stmms.ms.commons.config.ImageConfig;
|
|
|
+import cn.com.qmth.stmms.ms.commons.config.ImageServerConfig;
|
|
|
import cn.com.qmth.stmms.ms.commons.utils.MD5Util;
|
|
|
+import cn.com.qmth.stmms.ms.commons.utils.OssUtil;
|
|
|
import cn.com.qmth.stmms.ms.commons.web.PageableDTO;
|
|
|
import cn.com.qmth.stmms.ms.core.domain.MarkStage;
|
|
|
import cn.com.qmth.stmms.ms.core.domain.Paper;
|
|
@@ -28,9 +31,11 @@ import org.springframework.http.ResponseEntity;
|
|
|
import org.springframework.ui.ModelMap;
|
|
|
import org.springframework.web.bind.annotation.*;
|
|
|
|
|
|
+import javax.annotation.Resource;
|
|
|
import javax.persistence.criteria.Predicate;
|
|
|
import java.awt.*;
|
|
|
import java.io.File;
|
|
|
+import java.io.FileInputStream;
|
|
|
import java.io.IOException;
|
|
|
import java.nio.charset.Charset;
|
|
|
import java.util.*;
|
|
@@ -66,6 +71,15 @@ public class ScoreApi {
|
|
|
@Autowired
|
|
|
ImageConfig imageConfig;
|
|
|
|
|
|
+ @Resource
|
|
|
+ OssUtil ossUtil;
|
|
|
+
|
|
|
+ @Resource
|
|
|
+ AliYunOssConfig aliYunOssConfig;
|
|
|
+
|
|
|
+ @Resource
|
|
|
+ ImageServerConfig imageServerConfig;
|
|
|
+
|
|
|
/**
|
|
|
* 查询
|
|
|
*
|
|
@@ -267,6 +281,7 @@ public class ScoreApi {
|
|
|
String imageFile = null;
|
|
|
String watermarkFile = null;
|
|
|
String imageMd5 = null;
|
|
|
+ StringJoiner watermarkSj = null;
|
|
|
if (imageConfig.isImageEnc()) {
|
|
|
Student student = studentRepo.findByWorkIdAndExamNumber(workId, examNumber);
|
|
|
imageMd5 = MD5Util.getImageRuleMd5(workId, subject.ordinal(), areaCode, examNumber, student.getId());
|
|
@@ -274,8 +289,26 @@ public class ScoreApi {
|
|
|
imageFile = imagePath + "/" + workId + "/" + subject.toString() + "/" + areaCode + "/" + imageMd5;
|
|
|
watermarkFile = watermark + "/" + workId + "/" + subject.toString() + "/" + areaCode + "/" + imageMd5;
|
|
|
} else {
|
|
|
- imageFile = imagePath + "/" + workId + "/" + subject.toString() + "/" + areaCode + "/" + examNumber + ".jpg";
|
|
|
- watermarkFile = watermark + "/" + workId + "/" + subject.toString() + "/" + areaCode + "/" + examNumber + ".jpg";
|
|
|
+ if (imageConfig.isCustomSubject() && imageServerConfig.isAliyunOss()) {
|
|
|
+ //阿里云oss图片加水印
|
|
|
+ String imageDirName = aliYunOssConfig.getImageDir();
|
|
|
+ String watermarkDirName = aliYunOssConfig.getWatermark();
|
|
|
+ imageDirName = imageDirName.substring(imageDirName.indexOf(aliYunOssConfig.getBucket() + File.separator), imageDirName.lastIndexOf("/")).replace(aliYunOssConfig.getBucket() + File.separator, "");
|
|
|
+ watermarkDirName = watermarkDirName.substring(watermarkDirName.indexOf(aliYunOssConfig.getBucket() + File.separator), watermarkDirName.lastIndexOf("/")).replace(aliYunOssConfig.getBucket() + File.separator, "");
|
|
|
+ StringJoiner imageSj = new StringJoiner("").add(imageDirName).add(File.separator).add(String.valueOf(paper.getWorkId())).add(File.separator).add(paper.getSubject().toString()).add(File.separator).add(paper.getAreaCode()).add(File.separator).add(paper.getExamNumber()).add(".jpg");
|
|
|
+ watermarkSj = new StringJoiner("").add(watermarkDirName).add(File.separator).add(String.valueOf(paper.getWorkId())).add(File.separator).add(paper.getSubject().toString()).add(File.separator).add(paper.getAreaCode()).add(File.separator).add(paper.getExamNumber()).add(".jpg");
|
|
|
+ imageFile = imagePath + "/" + workId + "/" + subject.toString() + "/" + areaCode + "/" + examNumber + ".jpg";
|
|
|
+ watermarkFile = watermark + "/" + workId + "/" + subject.toString() + "/" + areaCode + "/" + examNumber + ".jpg";
|
|
|
+ try {
|
|
|
+ ossUtil.ossDownload(imageSj.toString(), imageFile);
|
|
|
+ ossUtil.ossDownload(watermarkSj.toString(), watermarkFile);
|
|
|
+ } catch (IOException e) {
|
|
|
+ e.printStackTrace();
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ imageFile = imagePath + "/" + workId + "/" + subject.toString() + "/" + areaCode + "/" + examNumber + ".jpg";
|
|
|
+ watermarkFile = watermark + "/" + workId + "/" + subject.toString() + "/" + areaCode + "/" + examNumber + ".jpg";
|
|
|
+ }
|
|
|
}
|
|
|
File targetFile = new File(watermarkFile);
|
|
|
targetFile.getParentFile().mkdirs();//创建父级目录
|
|
@@ -284,13 +317,19 @@ public class ScoreApi {
|
|
|
// WaterMarkUtils.addWaterMark(imageFile, watermarkFile, text, color, font);
|
|
|
try {
|
|
|
if (imageConfig.isImageEnc()) {
|
|
|
- WaterMarkUtils.addTextWatermark(text, "jpg", imageFile, watermarkFile);
|
|
|
- } else {
|
|
|
WaterMarkUtils.addTextWatermarkNew(imageMd5, text, "jpg", imageFile, watermarkFile);
|
|
|
+ } else {
|
|
|
+ File watermarkF = WaterMarkUtils.addTextWatermark(text, "jpg", imageFile, watermarkFile);
|
|
|
+ if (imageConfig.isCustomSubject() && imageServerConfig.isAliyunOss()) {
|
|
|
+ ossUtil.ossUpload(watermarkSj.toString(), new FileInputStream(watermarkF));
|
|
|
+ watermarkF.delete();
|
|
|
+ }
|
|
|
}
|
|
|
System.out.println(watermarkFile + "生成成功");
|
|
|
} catch (IOException e) {
|
|
|
System.out.println(watermarkFile + "生成失败");
|
|
|
+ } catch (Exception e) {
|
|
|
+ e.printStackTrace();
|
|
|
}
|
|
|
|
|
|
}
|