xiatian 2 éve
szülő
commit
09580d3cf6

+ 3 - 3
examcloud-core-questions-service/src/main/java/cn/com/qmth/examcloud/core/questions/service/consumer/CopyDataConsumer.java

@@ -96,7 +96,7 @@ public class CopyDataConsumer extends Consumer<CopyDataDto> {
         try {
             this.dealQuestionAudios(detailMaps, user.getDisplayName());
         } catch (Exception e) {
-            throw new StatusException("复制音频失败!");
+            throw new StatusException("500","复制音频失败!",e);
         }
 
         //复制原试卷的信息
@@ -107,7 +107,7 @@ public class CopyDataConsumer extends Consumer<CopyDataDto> {
             //保存新试卷的所有试题信息
             this.savePaperDetails(detailMaps, newPaper, user);
         } catch (Exception e) {
-            throw new StatusException("克隆试卷失败!");
+            throw new StatusException("500","克隆试卷失败!",e);
         }
     }
 
@@ -203,7 +203,7 @@ public class CopyDataConsumer extends Consumer<CopyDataDto> {
      */
     private void dealQuestionAudios(Map<PaperDetail, List<PaperDetailUnit>> detailMaps, String userName){
 //        UpYun upYun = upYunService.getInstance();
-        String copyAudioPath = UpYunService.TEMP_FILE_EXP + File.separator + userName + "_copyAudioPath";
+        String copyAudioPath = UpYunService.TEMP_FILE_EXP + File.separator + randomUUID();
         File copyAudioDir = new File(copyAudioPath);
         if (!copyAudioDir.exists()) {
             copyAudioDir.mkdirs();

+ 5 - 3
examcloud-core-questions-service/src/main/java/cn/com/qmth/examcloud/core/questions/service/impl/CopyDataServiceImpl.java

@@ -113,10 +113,12 @@ public class CopyDataServiceImpl implements CopyDataService {
 			}
 			Map<String, Object> param = new HashMap<>();
 			param.put("dtos", dtos);
-			copyDataProducer.startDispose(20, param, dtos.size());
+			copyDataProducer.startDispose(8, param, dtos.size());
+			String countInfo = "成功数:" + copyDataProducer.getProcess() + " 总数:" + copyDataProducer.getTotal();
+			log.info(countInfo);
+		}else {
+			log.info("没有试卷数据需要处理");
 		}
-		String countInfo = "成功数:" + copyDataProducer.getProcess() + " 总数:" + copyDataProducer.getTotal();
-		log.info(countInfo);
 	}
 
 	private void copyQuesTypeName(Map<String, Long> courses, Long fromRootOrgId, Long toRootOrgId) {

+ 2 - 1
examcloud-core-questions-service/src/main/java/cn/com/qmth/examcloud/core/questions/service/impl/PaperServiceImpl.java

@@ -2462,7 +2462,8 @@ public class PaperServiceImpl implements PaperService {
 	public List<String> findPaperId(Long fromRootOrgId) {
 		Query query = new Query();
 		query.addCriteria(Criteria.where("orgId").is(fromRootOrgId.toString()));
-		List<PaperId> paperList = this.mongoTemplate.find(query, PaperId.class);
+		query.addCriteria(Criteria.where("paperType").is(PaperType.IMPORT));
+		List<PaperId> paperList = this.mongoTemplate.find(query, PaperId.class,"paper");
 		if(CollectionUtils.isEmpty(paperList)) {
 			return null;
 		}

+ 6 - 0
examcloud-core-questions-starter/src/main/java/cn/com/qmth/examcloud/core/questions/starter/config/UserIDAuditorBean.java

@@ -4,6 +4,8 @@ import java.util.Optional;
 
 import org.springframework.context.annotation.Configuration;
 import org.springframework.data.domain.AuditorAware;
+import org.springframework.web.context.request.RequestContextHolder;
+import org.springframework.web.context.request.ServletRequestAttributes;
 
 import cn.com.qmth.examcloud.api.commons.security.bean.User;
 import cn.com.qmth.examcloud.web.enums.HttpServletRequestAttribute;
@@ -13,6 +15,10 @@ import cn.com.qmth.examcloud.web.support.ServletUtil;
 public class UserIDAuditorBean implements AuditorAware<Long> {
     @Override
     public Optional<Long> getCurrentAuditor() {
+    	ServletRequestAttributes requestAttributes = (ServletRequestAttributes) RequestContextHolder.getRequestAttributes();
+    	if(requestAttributes==null) {
+    		return Optional.of(-999L);
+    	}
     	User accessUser = (User) ServletUtil.getRequest()
                 .getAttribute(HttpServletRequestAttribute.$_ACCESS_USER.name());
         if (null == accessUser) {