|
@@ -1,26 +1,32 @@
|
|
|
package cn.com.qmth.examcloud.core.questions.service.impl;
|
|
|
|
|
|
-import java.io.BufferedInputStream;
|
|
|
-import java.io.File;
|
|
|
-import java.io.FileOutputStream;
|
|
|
-import java.io.IOException;
|
|
|
-import java.math.BigDecimal;
|
|
|
-import java.text.SimpleDateFormat;
|
|
|
-import java.util.ArrayList;
|
|
|
-import java.util.Date;
|
|
|
-import java.util.HashMap;
|
|
|
-import java.util.HashSet;
|
|
|
-import java.util.List;
|
|
|
-import java.util.Map;
|
|
|
-import java.util.Random;
|
|
|
-import java.util.Set;
|
|
|
-import java.util.regex.Matcher;
|
|
|
-import java.util.regex.Pattern;
|
|
|
-
|
|
|
+import cn.com.qmth.examcloud.api.commons.security.bean.User;
|
|
|
+import cn.com.qmth.examcloud.commons.logging.ExamCloudLog;
|
|
|
+import cn.com.qmth.examcloud.commons.logging.ExamCloudLogFactory;
|
|
|
import cn.com.qmth.examcloud.commons.util.JsonUtil;
|
|
|
+import cn.com.qmth.examcloud.core.print.api.CoursePaperCloudService;
|
|
|
+import cn.com.qmth.examcloud.core.print.api.bean.SyncCoursePaperBean;
|
|
|
+import cn.com.qmth.examcloud.core.print.api.request.SyncCoursePaperReq;
|
|
|
+import cn.com.qmth.examcloud.core.print.api.response.SyncCoursePaperResp;
|
|
|
+import cn.com.qmth.examcloud.core.questions.base.BeanCopierUtil;
|
|
|
+import cn.com.qmth.examcloud.core.questions.base.CommonUtils;
|
|
|
import cn.com.qmth.examcloud.core.questions.base.Model;
|
|
|
+import cn.com.qmth.examcloud.core.questions.base.SpringContextUtils;
|
|
|
+import cn.com.qmth.examcloud.core.questions.base.enums.PaperStatus;
|
|
|
+import cn.com.qmth.examcloud.core.questions.base.enums.PaperType;
|
|
|
+import cn.com.qmth.examcloud.core.questions.base.exception.PaperException;
|
|
|
+import cn.com.qmth.examcloud.core.questions.base.question.enums.QuesStructType;
|
|
|
+import cn.com.qmth.examcloud.core.questions.base.word.DocxProcessUtil;
|
|
|
+import cn.com.qmth.examcloud.core.questions.dao.*;
|
|
|
+import cn.com.qmth.examcloud.core.questions.dao.entity.*;
|
|
|
+import cn.com.qmth.examcloud.core.questions.service.*;
|
|
|
+import cn.com.qmth.examcloud.core.questions.service.bean.dto.*;
|
|
|
+import cn.com.qmth.examcloud.core.questions.service.config.UpYunProperty;
|
|
|
+import cn.com.qmth.examcloud.core.questions.service.export.ExportPaperAbstractService;
|
|
|
+import cn.com.qmth.examcloud.core.questions.service.rpc.PrintCoursePaperClient;
|
|
|
+import cn.com.qmth.examcloud.web.redis.RedisClient;
|
|
|
+import com.google.gson.Gson;
|
|
|
import main.java.com.UpYun;
|
|
|
-
|
|
|
import org.apache.commons.io.FileUtils;
|
|
|
import org.apache.commons.lang3.StringUtils;
|
|
|
import org.docx4j.XmlUtils;
|
|
@@ -33,11 +39,7 @@ import org.nlpcn.commons.lang.util.StringUtil;
|
|
|
import org.springframework.beans.BeanUtils;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.beans.factory.annotation.Value;
|
|
|
-import org.springframework.data.domain.Example;
|
|
|
-import org.springframework.data.domain.Page;
|
|
|
-import org.springframework.data.domain.PageImpl;
|
|
|
-import org.springframework.data.domain.PageRequest;
|
|
|
-import org.springframework.data.domain.Sort;
|
|
|
+import org.springframework.data.domain.*;
|
|
|
import org.springframework.data.domain.Sort.Direction;
|
|
|
import org.springframework.data.domain.Sort.Order;
|
|
|
import org.springframework.data.mongodb.core.MongoTemplate;
|
|
@@ -48,59 +50,15 @@ import org.springframework.stereotype.Service;
|
|
|
import org.springframework.util.Assert;
|
|
|
import org.springframework.web.multipart.MultipartFile;
|
|
|
|
|
|
-import cn.com.qmth.examcloud.core.print.api.CoursePaperCloudService;
|
|
|
-import cn.com.qmth.examcloud.core.print.api.bean.SyncCoursePaperBean;
|
|
|
-import cn.com.qmth.examcloud.core.print.api.request.SyncCoursePaperReq;
|
|
|
-import cn.com.qmth.examcloud.core.print.api.response.SyncCoursePaperResp;
|
|
|
-import cn.com.qmth.examcloud.core.questions.base.question.enums.QuesStructType;
|
|
|
-import cn.com.qmth.examcloud.core.questions.base.word.DocxProcessUtil;
|
|
|
-import cn.com.qmth.examcloud.commons.logging.ExamCloudLog;
|
|
|
-import cn.com.qmth.examcloud.commons.logging.ExamCloudLogFactory;
|
|
|
-import cn.com.qmth.examcloud.commons.util.JsonUtil;
|
|
|
-import cn.com.qmth.examcloud.web.redis.RedisClient;
|
|
|
-import cn.com.qmth.examcloud.api.commons.security.bean.User;
|
|
|
-
|
|
|
-import com.google.gson.Gson;
|
|
|
-import cn.com.qmth.examcloud.core.questions.dao.ExamPaperRepo;
|
|
|
-import cn.com.qmth.examcloud.core.questions.dao.ExportServiceManageRepo;
|
|
|
-import cn.com.qmth.examcloud.core.questions.dao.PaperDetailRepo;
|
|
|
-import cn.com.qmth.examcloud.core.questions.dao.PaperDetailUnitRepo;
|
|
|
-import cn.com.qmth.examcloud.core.questions.dao.PaperRepo;
|
|
|
-import cn.com.qmth.examcloud.core.questions.service.bean.dto.ObjectiveQuestionStructure;
|
|
|
-import cn.com.qmth.examcloud.core.questions.service.bean.dto.PaperDetailExp;
|
|
|
-import cn.com.qmth.examcloud.core.questions.service.bean.dto.PaperDetailUnitExp;
|
|
|
-import cn.com.qmth.examcloud.core.questions.service.bean.dto.PaperExp;
|
|
|
-import cn.com.qmth.examcloud.core.questions.service.bean.dto.PaperQuestionStructureInfo;
|
|
|
-import cn.com.qmth.examcloud.core.questions.service.bean.dto.SubjectiveQuestionStructure;
|
|
|
-import cn.com.qmth.examcloud.core.questions.dao.entity.Course;
|
|
|
-import cn.com.qmth.examcloud.core.questions.dao.entity.ExamPaper;
|
|
|
-import cn.com.qmth.examcloud.core.questions.dao.entity.ExportServiceManage;
|
|
|
-import cn.com.qmth.examcloud.core.questions.dao.entity.Paper;
|
|
|
-import cn.com.qmth.examcloud.core.questions.dao.entity.PaperDetail;
|
|
|
-import cn.com.qmth.examcloud.core.questions.dao.entity.PaperDetailUnit;
|
|
|
-import cn.com.qmth.examcloud.core.questions.dao.entity.PaperSearchInfo;
|
|
|
-import cn.com.qmth.examcloud.core.questions.dao.entity.QuesProperty;
|
|
|
-import cn.com.qmth.examcloud.core.questions.service.rpc.PrintCoursePaperClient;
|
|
|
-import cn.com.qmth.examcloud.core.questions.service.ExtractConfigService;
|
|
|
-import cn.com.qmth.examcloud.core.questions.service.PaperDetailService;
|
|
|
-import cn.com.qmth.examcloud.core.questions.service.PaperDetailUnitService;
|
|
|
-import cn.com.qmth.examcloud.core.questions.service.PaperService;
|
|
|
-import cn.com.qmth.examcloud.core.questions.service.export.ExportPaperAbstractService;
|
|
|
-import cn.com.qmth.examcloud.core.questions.dao.QuesBakRepo;
|
|
|
-import cn.com.qmth.examcloud.core.questions.dao.QuesRepo;
|
|
|
-import cn.com.qmth.examcloud.core.questions.dao.QuestionAudioRepo;
|
|
|
-import cn.com.qmth.examcloud.core.questions.dao.entity.QuesOption;
|
|
|
-import cn.com.qmth.examcloud.core.questions.dao.entity.Question;
|
|
|
-import cn.com.qmth.examcloud.core.questions.dao.entity.QuestionAudio;
|
|
|
-import cn.com.qmth.examcloud.core.questions.dao.entity.QuestionBak;
|
|
|
-import cn.com.qmth.examcloud.core.questions.service.QuesService;
|
|
|
-import cn.com.qmth.examcloud.core.questions.service.impl.QuestionAudioServiceImpl;
|
|
|
-import cn.com.qmth.examcloud.core.questions.base.BeanCopierUtil;
|
|
|
-import cn.com.qmth.examcloud.core.questions.base.CommonUtils;
|
|
|
-import cn.com.qmth.examcloud.core.questions.base.SpringContextUtils;
|
|
|
-import cn.com.qmth.examcloud.core.questions.base.enums.PaperStatus;
|
|
|
-import cn.com.qmth.examcloud.core.questions.base.enums.PaperType;
|
|
|
-import cn.com.qmth.examcloud.core.questions.base.exception.PaperException;
|
|
|
+import java.io.BufferedInputStream;
|
|
|
+import java.io.File;
|
|
|
+import java.io.FileOutputStream;
|
|
|
+import java.io.IOException;
|
|
|
+import java.math.BigDecimal;
|
|
|
+import java.text.SimpleDateFormat;
|
|
|
+import java.util.*;
|
|
|
+import java.util.regex.Matcher;
|
|
|
+import java.util.regex.Pattern;
|
|
|
|
|
|
/**
|
|
|
* @author chenken
|
|
@@ -168,23 +126,8 @@ public class PaperServiceImpl implements PaperService {
|
|
|
@Autowired
|
|
|
private CoursePaperCloudService coursePaperCloudService1;
|
|
|
|
|
|
- @Value("${upyun.radioType}")
|
|
|
- private String radioType;
|
|
|
-
|
|
|
- @Value("${upyun.audio.maxsize}")
|
|
|
- private String audioMaxsize;
|
|
|
-
|
|
|
- @Value("${upyun.audio.uploadUrl}")
|
|
|
- private String upyunRadioPath;
|
|
|
-
|
|
|
- @Value("${$upyun.site.2.bucketName}")
|
|
|
- private String bucketName;
|
|
|
-
|
|
|
- @Value("${$upyun.site.2.userName}")
|
|
|
- private String userName;
|
|
|
-
|
|
|
- @Value("${$upyun.site.2.password}")
|
|
|
- private String password;
|
|
|
+ @Autowired
|
|
|
+ UpYunProperty upYunProperty;
|
|
|
|
|
|
@Autowired
|
|
|
RedisClient redisClient;
|
|
@@ -1092,8 +1035,8 @@ public class PaperServiceImpl implements PaperService {
|
|
|
for (String fileName : filesName) {
|
|
|
String[] fileNames = fileName.split("\\.");
|
|
|
String fileType = fileNames[fileNames.length - 1];
|
|
|
- if (radioType.indexOf(fileType) < 0) {
|
|
|
- messageMap.put("errorMsg", fileName + ",文件格式不正确,当前支持格式:" + radioType);
|
|
|
+ if (upYunProperty.getRadioType().indexOf(fileType) < 0) {
|
|
|
+ messageMap.put("errorMsg", fileName + ",文件格式不正确,当前支持格式:" + upYunProperty.getRadioType());
|
|
|
return messageMap;
|
|
|
}
|
|
|
String pattern_01 = "\\d+_1_\\d{1,2}"; //题干正则
|
|
@@ -1192,7 +1135,7 @@ public class PaperServiceImpl implements PaperService {
|
|
|
for (MultipartFile file : files) {
|
|
|
//判断文件大小
|
|
|
long fileSize = file.getSize();
|
|
|
- int size = Integer.parseInt(audioMaxsize);
|
|
|
+ int size = Integer.parseInt(upYunProperty.getAudioMaxsize());
|
|
|
if (fileSize > size * 1048576) {
|
|
|
throw new RuntimeException("音频文件大小超过5M,不能上传");
|
|
|
}
|
|
@@ -1250,11 +1193,11 @@ public class PaperServiceImpl implements PaperService {
|
|
|
outputStream.flush();
|
|
|
outputStream.close();
|
|
|
//上传到又拍云
|
|
|
- UpYun upYun = new UpYun(bucketName, userName, password);
|
|
|
- upYun.writeFile(upyunRadioPath + mp3FileNameString, mp3File, true);
|
|
|
+ UpYun upYun = new UpYun(upYunProperty.getBucketName(), upYunProperty.getUserName(), upYunProperty.getPassword());
|
|
|
+ upYun.writeFile(upYunProperty.getRadioUploadPath() + mp3FileNameString, mp3File, true);
|
|
|
mp3File.delete();
|
|
|
//保存记录
|
|
|
- questionAudioService.saveQuestionAudio(new QuestionAudio(questionId, file.getOriginalFilename(), upyunRadioPath + mp3FileNameString), user);
|
|
|
+ questionAudioService.saveQuestionAudio(new QuestionAudio(questionId, file.getOriginalFilename(), upYunProperty.getRadioUploadPath() + mp3FileNameString), user);
|
|
|
} catch (IOException e) {
|
|
|
e.printStackTrace();
|
|
|
}
|