Jelajahi Sumber

just format code.

deason 5 tahun lalu
induk
melakukan
a1a9c64294

+ 7 - 0
examcloud-core-questions-service/src/main/java/cn/com/qmth/examcloud/core/questions/service/cache/Constants.java

@@ -0,0 +1,7 @@
+package cn.com.qmth.examcloud.core.questions.service.cache;
+
+public interface Constants {
+
+    String CACHE_PREFIX_FOR_PAPER = "PAPER:";
+
+}

+ 13 - 20
examcloud-core-questions-service/src/main/java/cn/com/qmth/examcloud/core/questions/service/impl/ExtractConfigServiceImpl.java

@@ -21,6 +21,7 @@ import cn.com.qmth.examcloud.examwork.api.request.GetExamCourseListReq;
 import cn.com.qmth.examcloud.examwork.api.request.GetExamReq;
 import cn.com.qmth.examcloud.examwork.api.response.GetExamCourseListResp;
 import cn.com.qmth.examcloud.examwork.api.response.GetExamResp;
+import cn.com.qmth.examcloud.web.redis.RedisClient;
 import org.apache.commons.lang3.StringUtils;
 import org.nlpcn.commons.lang.util.StringUtil;
 import org.slf4j.Logger;
@@ -34,7 +35,6 @@ import org.springframework.data.domain.PageRequest;
 import org.springframework.data.mongodb.core.MongoTemplate;
 import org.springframework.data.mongodb.core.query.Criteria;
 import org.springframework.data.mongodb.core.query.Query;
-import org.springframework.data.redis.core.RedisTemplate;
 import org.springframework.stereotype.Service;
 import org.springframework.util.Assert;
 import org.springframework.util.CollectionUtils;
@@ -44,6 +44,8 @@ import java.util.regex.Matcher;
 import java.util.regex.Pattern;
 import java.util.stream.Collectors;
 
+import static cn.com.qmth.examcloud.core.questions.service.cache.Constants.CACHE_PREFIX_FOR_PAPER;
+
 /**
  * @author chenken
  * @date 2017年4月14日 下午6:07:55
@@ -112,9 +114,8 @@ public class ExtractConfigServiceImpl implements ExtractConfigService {
     @Autowired
     private SubQuestionDtoAssembler subQuestionDtoAssembler;
 
-    @SuppressWarnings("rawtypes")
     @Autowired
-    private RedisTemplate redisTemplate;
+    private RedisClient redisClient;
 
     @Autowired
     private PaperDetailUnitNativeRepo detailUnitNativeRepo;
@@ -249,12 +250,10 @@ public class ExtractConfigServiceImpl implements ExtractConfigService {
 
     @Override
     public boolean checkIsAllQbjectiveQuestion(String paperId) {
-
         //优先从redis中获取缓存dto
-        Object cacheDto = redisTemplate.opsForValue().get(paperId);
-        if (cacheDto != null && cacheDto.getClass().equals(PaperDto.class)) {
-            PaperDto paperDto = (PaperDto) cacheDto;
-            return paperDto.isAllQbjectiveQuestion();
+        PaperDto cachePaperDto = redisClient.get(CACHE_PREFIX_FOR_PAPER + paperId, PaperDto.class, 10 * 60);
+        if (cachePaperDto != null) {
+            return cachePaperDto.isAllQbjectiveQuestion();
         }
 
         Paper paper = Model.of(paperRepo.findById(paperId));
@@ -302,7 +301,7 @@ public class ExtractConfigServiceImpl implements ExtractConfigService {
 
     @Override
     public Map<String, String> makePaperByConfig(ExtractConfig extractConfig) {
-        Map<String, String> finishedPaperIdMap = new HashMap<String, String>();
+        Map<String, String> finishedPaperIdMap = new HashMap<>();
         if (extractConfig == null) {
             throw new RuntimeException("调卷规则不存在");
         }
@@ -315,9 +314,9 @@ public class ExtractConfigServiceImpl implements ExtractConfigService {
             String key = entry.getKey();
             //根据原有试卷重新组卷得到新试卷
         	/*Paper newPaper = this.recombinationPaper(entry.getValue(), 
-        											 PaperType.PREVIEW,
-							        				 extractConfig.getScrambling_the_question_order(), 
-							        				 extractConfig.getScrambling_the_option_order());*/
+             PaperType.PREVIEW,
+             extractConfig.getScrambling_the_question_order(),
+             extractConfig.getScrambling_the_option_order());*/
             finishedPaperIdMap.put(key, entry.getValue().getId());
         }
         return finishedPaperIdMap;
@@ -543,13 +542,6 @@ public class ExtractConfigServiceImpl implements ExtractConfigService {
      */
     @SuppressWarnings("unchecked")
     private PaperDto getPaperDtoByPaper(Paper paper, String basePaperId) {
-
-        //优先从redis中获取缓存dto
-		/*Object cacheDto = redisTemplate.opsForValue().get(paper.getId());
-		if(cacheDto != null && cacheDto.getClass().equals(PaperDto.class)){
-			return (PaperDto)cacheDto;
-		}
-		*/
         long beginTime = System.currentTimeMillis();
         //没有则重新组装
         PaperDto paperDto = paperDtoAssembler.toDto(paper);
@@ -636,8 +628,9 @@ public class ExtractConfigServiceImpl implements ExtractConfigService {
         }
         long paperDetailUnitDtoEndTime = System.currentTimeMillis();
         logger.info("单独组装paperDetailUnitDto耗时:" + (paperDetailUnitDtoEndTime - paperDetailDtoEndTime) + "ms");
+
         //将重新组装的dto放进缓存
-        redisTemplate.opsForValue().set(paperDto.getId(), paperDto);
+        redisClient.set(CACHE_PREFIX_FOR_PAPER + paperDto.getId(), paperDto, 10 * 60);
         return paperDto;
     }
 

+ 6 - 13
examcloud-core-questions-service/src/main/java/cn/com/qmth/examcloud/core/questions/service/impl/PaperDetailServiceImpl.java

@@ -1,13 +1,7 @@
 package cn.com.qmth.examcloud.core.questions.service.impl;
 
-import java.util.List;
-
-import cn.com.qmth.examcloud.core.questions.base.Model;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.data.redis.core.RedisTemplate;
-import org.springframework.stereotype.Service;
-
 import cn.com.qmth.examcloud.api.commons.security.bean.User;
+import cn.com.qmth.examcloud.core.questions.base.Model;
 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;
@@ -17,6 +11,10 @@ import cn.com.qmth.examcloud.core.questions.dao.entity.PaperDetailUnit;
 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.QuesTypeNameService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
 
 /**
  * @author chenken
@@ -39,14 +37,9 @@ public class PaperDetailServiceImpl implements PaperDetailService {
     @Autowired
     QuesTypeNameService quesTypeNameService;
 
-
     @Autowired
     PaperDetailUnitRepo paperDetailUnitRepo;
 
-    @SuppressWarnings("rawtypes")
-    @Autowired
-    RedisTemplate redisTemplate;
-
     /**
      * 根据Id获得对应所有小题
      *
@@ -127,5 +120,5 @@ public class PaperDetailServiceImpl implements PaperDetailService {
             paperDetailRepo.deleteAll(details);
         }
     }
-}
 
+}

+ 18 - 22
examcloud-core-questions-service/src/main/java/cn/com/qmth/examcloud/core/questions/service/impl/PaperDetailUnitServiceImpl.java

@@ -1,10 +1,18 @@
 package cn.com.qmth.examcloud.core.questions.service.impl;
 
-import java.math.BigDecimal;
-import java.util.ArrayList;
-import java.util.List;
-
+import cn.com.qmth.examcloud.api.commons.security.bean.User;
 import cn.com.qmth.examcloud.core.questions.base.Model;
+import cn.com.qmth.examcloud.core.questions.base.enums.PaperType;
+import cn.com.qmth.examcloud.core.questions.base.question.enums.QuesStructType;
+import cn.com.qmth.examcloud.core.questions.dao.PaperDetailUnitRepo;
+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.Question;
+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.QuesService;
+import cn.com.qmth.examcloud.core.questions.service.bean.dto.PaperDetailUnitExp;
 import cn.com.qmth.examcloud.web.redis.RedisClient;
 import org.bson.types.ObjectId;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -17,24 +25,9 @@ import org.springframework.data.mongodb.core.query.Criteria;
 import org.springframework.data.mongodb.core.query.Query;
 import org.springframework.stereotype.Service;
 
-import com.mongodb.BasicDBList;
-import com.mongodb.BasicDBObject;
-import com.mongodb.DBCursor;
-import com.mongodb.DBObject;
-
-import cn.com.qmth.examcloud.core.questions.base.question.enums.QuesStructType;
-import cn.com.qmth.examcloud.web.redis.RedisClient;
-import cn.com.qmth.examcloud.api.commons.security.bean.User;
-import cn.com.qmth.examcloud.core.questions.dao.PaperDetailUnitRepo;
-import cn.com.qmth.examcloud.core.questions.service.bean.dto.PaperDetailUnitExp;
-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.service.PaperDetailUnitService;
-import cn.com.qmth.examcloud.core.questions.service.PaperService;
-import cn.com.qmth.examcloud.core.questions.dao.entity.Question;
-import cn.com.qmth.examcloud.core.questions.service.QuesService;
-import cn.com.qmth.examcloud.core.questions.base.enums.PaperType;
+import java.math.BigDecimal;
+import java.util.ArrayList;
+import java.util.List;
 
 /**
  * @author chenken
@@ -158,9 +151,12 @@ public class PaperDetailUnitServiceImpl implements PaperDetailUnitService {
     public void deletePaperDetailUnit(String id, User user) {
         Paper paper = Model.of(paperDetailUnitRepo.findById(id)).getPaper();
         paperDetailUnitRepo.deleteById(id);
+
+        //清除缓存
         if (paper.getPaperType() == PaperType.GENERATE) {
             redisClient.delete(redisPaperPrefix + ":" + paper.getId());
         }
+
         paperService.formatPaper(paper, user);
     }
 

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

@@ -45,7 +45,6 @@ import org.springframework.data.domain.Sort.Order;
 import org.springframework.data.mongodb.core.MongoTemplate;
 import org.springframework.data.mongodb.core.query.Criteria;
 import org.springframework.data.mongodb.core.query.Query;
-import org.springframework.data.redis.core.RedisTemplate;
 import org.springframework.stereotype.Service;
 import org.springframework.util.Assert;
 import org.springframework.web.multipart.MultipartFile;
@@ -60,6 +59,8 @@ import java.util.*;
 import java.util.regex.Matcher;
 import java.util.regex.Pattern;
 
+import static cn.com.qmth.examcloud.core.questions.service.cache.Constants.CACHE_PREFIX_FOR_PAPER;
+
 /**
  * @author chenken
  * @date 2017年9月12日 上午11:20:44
@@ -113,10 +114,6 @@ public class PaperServiceImpl implements PaperService {
     @Autowired
     private QuestionAudioRepo questionAudioRepo;
 
-    @SuppressWarnings("rawtypes")
-    @Autowired
-    private RedisTemplate redisTemplate;
-
     @Autowired
     private ExportServiceManageRepo exportServiceManageRepo;
 
@@ -127,10 +124,10 @@ public class PaperServiceImpl implements PaperService {
     private CoursePaperCloudService coursePaperCloudService1;
 
     @Autowired
-    UpYunProperty upYunProperty;
+    private UpYunProperty upYunProperty;
 
     @Autowired
-    RedisClient redisClient;
+    private RedisClient redisClient;
 
     @Value("${$redis.paper.prefix}")
     private String redisPaperPrefix;
@@ -280,7 +277,8 @@ public class PaperServiceImpl implements PaperService {
             }
         }
         //删除缓存
-        redisTemplate.delete(paperExp.getId());
+        redisClient.delete(CACHE_PREFIX_FOR_PAPER + paperExp.getId());
+
         return msgMap;
     }
 
@@ -440,8 +438,12 @@ public class PaperServiceImpl implements PaperService {
         }
         paperDetailService.deletePaperDetailsByPapers(papers);
         paperRepo.deleteAll(papers);
-        //删除缓存
-        redisTemplate.delete(paperIds);
+
+        //清除缓存
+        for (String paperId : paperIds) {
+            redisClient.delete(CACHE_PREFIX_FOR_PAPER + paperId);
+        }
+
         msg = "success";
         msgMap.put("msg", msg);
         return msgMap;
@@ -797,7 +799,9 @@ public class PaperServiceImpl implements PaperService {
             paper.setLastModifyName(user.getDisplayName());
         }
         paperRepo.save(paper);
-        redisTemplate.delete(paper.getId());
+
+        //清除缓存
+        redisClient.delete(CACHE_PREFIX_FOR_PAPER + paper.getId());
     }
 
     /**
@@ -918,9 +922,12 @@ public class PaperServiceImpl implements PaperService {
             saveUnits.add(pdu);
         }
         paperDetailUnitRepo.saveAll(saveUnits);
+
+        //清除缓存
         if (paper.getPaperType() == PaperType.GENERATE) {
             redisClient.delete(redisPaperPrefix + ":" + paper.getId());
         }
+
         formatPaper(paper, user);
         return paper;
     }