Sfoglia il codice sorgente

fix: 修复MailAccountService 更新/删除缓存未清空

zhangjiayu 1 anno fa
parent
commit
508ad76cb8

+ 5 - 2
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/mail/MailAccountServiceImpl.java

@@ -9,6 +9,7 @@ import cn.iocoder.yudao.module.system.dal.dataobject.mail.MailAccountDO;
 import cn.iocoder.yudao.module.system.dal.mysql.mail.MailAccountMapper;
 import cn.iocoder.yudao.module.system.dal.redis.RedisKeyConstants;
 import lombok.extern.slf4j.Slf4j;
+import org.springframework.cache.annotation.CacheEvict;
 import org.springframework.cache.annotation.Cacheable;
 import org.springframework.stereotype.Service;
 import org.springframework.validation.annotation.Validated;
@@ -46,7 +47,8 @@ public class MailAccountServiceImpl implements MailAccountService {
     }
 
     @Override
-    @Cacheable(value = RedisKeyConstants.MAIL_ACCOUNT, key = "#updateReqVO.id")
+    @CacheEvict(value = RedisKeyConstants.MAIL_ACCOUNT,
+            allEntries = true)// allEntries 清空所有缓存,主要一次更新涉及到的 mailAccountId 较多,反倒批量会更快
     public void updateMailAccount(MailAccountUpdateReqVO updateReqVO) {
         // 校验是否存在
         validateMailAccountExists(updateReqVO.getId());
@@ -57,7 +59,8 @@ public class MailAccountServiceImpl implements MailAccountService {
     }
 
     @Override
-    @Cacheable(value = RedisKeyConstants.MAIL_ACCOUNT, key = "#id")
+    @CacheEvict(value = RedisKeyConstants.MAIL_ACCOUNT,
+            allEntries = true) // allEntries 清空所有缓存,主要一次更新涉及到的 mailAccountId 较多,反倒批量会更快
     public void deleteMailAccount(Long id) {
         // 校验是否存在账号
         validateMailAccountExists(id);