孙永军 1 éve
szülő
commit
20fd8cced0

+ 15 - 3
src/main/java/com/smcic/api/operate/service/impl/EnrollInfoServiceImpl.java

@@ -80,17 +80,29 @@ public class EnrollInfoServiceImpl extends ServiceImpl<EnrollInfoMapper, EnrollI
 
     public void updateEnrollCache(EnrollInfo enrollInfo){
         try {
-            redisTemplate.opsForValue().set(KeysConst.TARGET + enrollInfo.getOperateId() + "_" + enrollInfo.getPhone(),
-                    objectMapper.writeValueAsString(enrollInfo),
-                    Duration.ofSeconds(operateService.getTTl(enrollInfo.getOperateId())));
+
             List<String> range = redisTemplate.opsForList().range(KeysConst.ENROLL_LIST + enrollInfo.getOperateId(), 0, -1);
+            if(null == range || range.isEmpty()){
+                pushEnrollCache(enrollInfo);
+                return;
+            }
+            boolean exists = false;
             for(int i = 0 ; i < range.size(); i++){
                 EnrollInfo item = objectMapper.readValue(range.get(i), EnrollInfo.class);
                 if(enrollInfo.getPhone().equals(item.getPhone())){
+                    exists = true;
                     redisTemplate.opsForList().set(KeysConst.ENROLL_LIST + enrollInfo.getOperateId(), i, objectMapper.writeValueAsString(enrollInfo));
                 }
 
             }
+            if(!exists){
+                pushEnrollCache(enrollInfo);
+                return;
+            }
+
+            redisTemplate.opsForValue().set(KeysConst.TARGET + enrollInfo.getOperateId() + "_" + enrollInfo.getPhone(),
+                    objectMapper.writeValueAsString(enrollInfo),
+                    Duration.ofSeconds(operateService.getTTl(enrollInfo.getOperateId())));
 
         } catch (JsonProcessingException e) {
             log.error("报名信息入缓存失败", e);