|
@@ -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);
|