|
@@ -14,6 +14,7 @@ import com.qmth.teachcloud.common.config.DictionaryConfig;
|
|
|
import com.qmth.teachcloud.common.contant.SystemConstant;
|
|
|
import com.qmth.teachcloud.common.entity.SysUser;
|
|
|
import com.qmth.teachcloud.common.enums.ExceptionResultEnum;
|
|
|
+import com.qmth.teachcloud.common.enums.LocalCatalogEnum;
|
|
|
import com.qmth.teachcloud.common.enums.UploadFileEnum;
|
|
|
import com.qmth.teachcloud.common.service.TeachcloudCommonService;
|
|
|
import com.qmth.teachcloud.common.util.*;
|
|
@@ -123,17 +124,14 @@ public class TSyncExamStudentScoreServiceImpl extends ServiceImpl<TSyncExamStude
|
|
|
Optional.ofNullable(tSyncExamStudentScore.getSheetUrls()).orElseThrow(() -> ExceptionResultEnum.ERROR.exception("未获取到考生原卷地址"));
|
|
|
Optional.ofNullable(tSyncExamStudentScore.getSyncData()).orElseThrow(() -> ExceptionResultEnum.ERROR.exception("未获取到考生作答数据"));
|
|
|
StringJoiner stringJoiner = new StringJoiner("");
|
|
|
- if (Objects.nonNull(dictionaryConfig.fssLocalFileDomain()) && !StringUtils.isBlank(dictionaryConfig.fssLocalFileDomain().getConfig())) {
|
|
|
+ if (!oss && Objects.nonNull(dictionaryConfig.fssLocalFileDomain()) && !StringUtils.isBlank(dictionaryConfig.fssLocalFileDomain().getConfig())) {
|
|
|
stringJoiner.add(dictionaryConfig.fssLocalFileDomain().getConfig()).add(File.separator);
|
|
|
- } else {
|
|
|
- stringJoiner.add(dictionaryConfig.fssPublicDomain().getServer()).add(File.separator);
|
|
|
}
|
|
|
- List<String> trailUrlsList = tSyncExamStudentScore.getTrailUrls();
|
|
|
+ stringJoiner = SystemConstant.getDirName(stringJoiner, UploadFileEnum.FILE, true);
|
|
|
+ stringJoiner.add(SystemConstant.getNanoId()).add(File.separator);
|
|
|
|
|
|
- String hostUrl = null;
|
|
|
- if (Objects.nonNull(dictionaryConfig.fssLocalFileDomain()) && !StringUtils.isBlank(dictionaryConfig.fssLocalFileDomain().getServer())) {
|
|
|
- hostUrl = SystemConstant.getLocalFileHostByUserId(dictionaryConfig.fssLocalFileDomain().getServer(), userId);
|
|
|
- }
|
|
|
+ String dirName = stringJoiner.toString();
|
|
|
+ List<String> trailUrlsList = tSyncExamStudentScore.getTrailUrls();
|
|
|
|
|
|
if (needSync || Objects.isNull(tSyncExamStudentScore.getLocalSheetUrls()) || Objects.isNull(tSyncExamStudentScore.getTrajectoryUrls())) {
|
|
|
JSONArray jsonArray = JSONArray.parseArray(tSyncExamStudentScore.getSheetUrls());
|
|
@@ -154,32 +152,27 @@ public class TSyncExamStudentScoreServiceImpl extends ServiceImpl<TSyncExamStude
|
|
|
for (int i = 0; i < jsonArray.size(); i++) {
|
|
|
String url = (String) jsonArray.get(i);
|
|
|
String sheetName = url.substring(url.lastIndexOf(SystemConstant.ORG_SPLIT) + 1);
|
|
|
- StringJoiner dirJpgName = SystemConstant.getDirName(UploadFileEnum.FILE, true);
|
|
|
- dirJpgName.add(tSyncExamStudentScore.getExamNumber()).add(File.separator).add("sheet").add(File.separator).add(sheetName);
|
|
|
- File fileSource = new File(stringJoiner.toString() + dirJpgName.toString());
|
|
|
- if (!fileSource.exists()) {
|
|
|
- fileSource.getParentFile().mkdirs();
|
|
|
- fileSource.createNewFile();
|
|
|
- }
|
|
|
+ StringJoiner dirJpgName = new StringJoiner("");
|
|
|
+ dirJpgName.add(dirName).add(tSyncExamStudentScore.getExamNumber()).add(File.separator).add("sheet").add(File.separator).add(sheetName);
|
|
|
+
|
|
|
+ File fileSource = SystemConstant.getFileTempDirVar(dirJpgName.toString(), null);
|
|
|
fileSource = HttpUtil.httpDownload(url, fileSource.getPath());
|
|
|
fileSourceList.add(fileSource);
|
|
|
JSONObject sheetObject = new JSONObject();
|
|
|
+ sheetObject.put(SystemConstant.PATH, dirJpgName);
|
|
|
+ String jpgFileMd5 = DigestUtils.md5Hex(new FileInputStream(fileSource));
|
|
|
if (oss) {
|
|
|
- String dirName = dirJpgName.toString().replaceAll("\\\\", SystemConstant.ORG_SPLIT);
|
|
|
- fileStoreUtil.ossUpload(dirName, fileSource, DigestUtils.md5Hex(new FileInputStream(fileSource)), UploadFileEnum.FILE.getFssType());
|
|
|
- if (imageTrajectoryEnum == ImageTrajectoryEnum.PREVIEW) {
|
|
|
- fileStoreUtil.getPrivateUrl(dirName, UploadFileEnum.FILE.getFssType());
|
|
|
- }
|
|
|
+ fileStoreUtil.ossUpload(dirJpgName.toString(), fileSource, DigestUtils.md5Hex(new FileInputStream(fileSource)), UploadFileEnum.FILE.getFssType());
|
|
|
sheetObject.put(SystemConstant.TYPE, SystemConstant.OSS);
|
|
|
- sheetObject.put(SystemConstant.UPLOAD_TYPE, UploadFileEnum.FILE);
|
|
|
- sheetObject.put(SystemConstant.PATH, dirName);
|
|
|
} else {
|
|
|
- if (imageTrajectoryEnum == ImageTrajectoryEnum.PREVIEW) {
|
|
|
- fileSource.getPath();
|
|
|
+ if (Objects.nonNull(dictionaryConfig.fssLocalFileDomain()) && !StringUtils.isBlank(dictionaryConfig.fssLocalFileDomain().getConfig())) {
|
|
|
+ fileStoreUtil.localUpload(dirJpgName.toString(), new FileInputStream(fileSource), jpgFileMd5, LocalCatalogEnum.LOCAL_FILE);
|
|
|
+ } else {
|
|
|
+ fileStoreUtil.ossUpload(dirJpgName.toString(), fileSource, DigestUtils.md5Hex(new FileInputStream(fileSource)), UploadFileEnum.FILE.getFssType());
|
|
|
}
|
|
|
sheetObject.put(SystemConstant.TYPE, SystemConstant.LOCAL);
|
|
|
- sheetObject.put(SystemConstant.PATH, (stringJoiner.toString() + dirJpgName.toString()).replaceAll("\\\\", SystemConstant.ORG_SPLIT));
|
|
|
}
|
|
|
+ sheetObject.put(SystemConstant.UPLOAD_TYPE, UploadFileEnum.FILE);
|
|
|
jsonImageSourcePathArray.add(sheetObject);
|
|
|
|
|
|
// 轨迹
|
|
@@ -188,40 +181,25 @@ public class TSyncExamStudentScoreServiceImpl extends ServiceImpl<TSyncExamStude
|
|
|
}
|
|
|
JSONArray markTagJsonArray = (JSONArray) markTagsJson.get(i + 1);
|
|
|
|
|
|
- StringJoiner dirTargetJpgName = SystemConstant.getDirName(UploadFileEnum.FILE, true);
|
|
|
- dirTargetJpgName.add(tSyncExamStudentScore.getExamNumber()).add(File.separator).add("trail").add(File.separator).add(sheetName);
|
|
|
- File fileTarget = new File(stringJoiner.toString() + dirTargetJpgName.toString());
|
|
|
- if (!fileTarget.exists()) {
|
|
|
- fileTarget.getParentFile().mkdirs();
|
|
|
- fileTarget.createNewFile();
|
|
|
- }
|
|
|
+ StringJoiner dirTargetJpgName = new StringJoiner("");
|
|
|
+ dirTargetJpgName.add(dirName).add(tSyncExamStudentScore.getExamNumber()).add(File.separator).add("trail").add(File.separator).add(sheetName);
|
|
|
+ File fileTarget = SystemConstant.getFileTempDirVar(dirTargetJpgName.toString(), null);
|
|
|
|
|
|
ImageTrajectoryUtil.createImage(fileSource, fileTarget, markTagJsonArray);
|
|
|
fileTargetList.add(fileTarget);
|
|
|
String dirTargetName = dirTargetJpgName.toString().replaceAll("\\\\", SystemConstant.ORG_SPLIT);
|
|
|
+ String jpgTargetFileMd5 = DigestUtils.md5Hex(new FileInputStream(fileTarget));
|
|
|
+ jsonImageTrajectoryPathArray.add(dirTargetName);
|
|
|
if (oss) {
|
|
|
fileStoreUtil.ossUpload(dirTargetName, fileTarget, DigestUtils.md5Hex(new FileInputStream(fileTarget)), UploadFileEnum.FILE.getFssType());
|
|
|
- if (imageTrajectoryEnum == ImageTrajectoryEnum.PREVIEW) {
|
|
|
- trailUrlsList.add(fileStoreUtil.getPrivateUrl(dirTargetName, UploadFileEnum.FILE.getFssType()));
|
|
|
- }
|
|
|
- jsonImageTrajectoryPathArray.add(dirTargetName);
|
|
|
} else {
|
|
|
- if (imageTrajectoryEnum == ImageTrajectoryEnum.PREVIEW) {
|
|
|
- if (Objects.nonNull(dictionaryConfig.fssLocalFileDomain()) && !StringUtils.isBlank(dictionaryConfig.fssLocalFileDomain().getServer())) {
|
|
|
- String filePath = fileTarget.getPath();
|
|
|
- String trailUrl;
|
|
|
- if (filePath.startsWith(SystemConstant.ORG_SPLIT)) {
|
|
|
- trailUrl = hostUrl + filePath;
|
|
|
- } else {
|
|
|
- trailUrl = hostUrl + File.separator + filePath;
|
|
|
- }
|
|
|
- trailUrlsList.add(trailUrl);
|
|
|
- } else {
|
|
|
- trailUrlsList.add(fileStoreUtil.getPrivateUrl(dirTargetName, UploadFileEnum.FILE.getFssType()));
|
|
|
- }
|
|
|
+ if (Objects.nonNull(dictionaryConfig.fssLocalFileDomain()) && !StringUtils.isBlank(dictionaryConfig.fssLocalFileDomain().getConfig())) {
|
|
|
+ fileStoreUtil.localUpload(dirTargetName, new FileInputStream(fileTarget), jpgTargetFileMd5, LocalCatalogEnum.LOCAL_FILE);
|
|
|
+ } else {
|
|
|
+ fileStoreUtil.ossUpload(dirTargetName, fileTarget, DigestUtils.md5Hex(new FileInputStream(fileTarget)), UploadFileEnum.FILE.getFssType());
|
|
|
}
|
|
|
- jsonImageTrajectoryPathArray.add((stringJoiner.toString() + dirTargetJpgName.toString()).replaceAll("\\\\", SystemConstant.ORG_SPLIT));
|
|
|
}
|
|
|
+ trailUrlsList.add(dirTargetName);
|
|
|
}
|
|
|
if (!jsonImageSourcePathArray.isEmpty()) {
|
|
|
tSyncExamStudentScore.setLocalSheetUrls(jsonImageSourcePathArray.toJSONString());
|
|
@@ -251,14 +229,8 @@ public class TSyncExamStudentScoreServiceImpl extends ServiceImpl<TSyncExamStude
|
|
|
if (imageTrajectoryEnum == ImageTrajectoryEnum.DOWNLOAD) {
|
|
|
fileTargetList.add(new File(url));
|
|
|
} else {
|
|
|
- if (Objects.nonNull(dictionaryConfig.fssLocalFileDomain()) && !StringUtils.isBlank(dictionaryConfig.fssLocalFileDomain().getServer())) {
|
|
|
- String trailUrl = null;
|
|
|
- if (url.startsWith(SystemConstant.ORG_SPLIT)) {
|
|
|
- trailUrl = hostUrl + url;
|
|
|
- } else {
|
|
|
- trailUrl = hostUrl + File.separator + url;
|
|
|
- }
|
|
|
- trailUrlsList.add(trailUrl);
|
|
|
+ if (Objects.nonNull(dictionaryConfig.fssLocalFileDomain()) && !StringUtils.isBlank(dictionaryConfig.fssLocalFileDomain().getConfig())) {
|
|
|
+ trailUrlsList.add(url);
|
|
|
} else {
|
|
|
trailUrlsList.add(fileStoreUtil.getPrivateUrl(url, UploadFileEnum.FILE.getFssType()));
|
|
|
}
|