Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commitf34957c

Browse files
authored
Merge pull request#258 from link2fun/fix-institution-cache-not-invalidate-after-update
fix: 修复机构配置修改后缓存没有清空,导致界面上看上去 修改失败了
2 parents4646c67 +85e07fc commitf34957c

File tree

3 files changed

+37
-3
lines changed

3 files changed

+37
-3
lines changed

‎maxkey-persistence/src/main/java/org/dromara/maxkey/persistence/service/InstitutionsService.java‎

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,13 @@
2323
publicinterfaceInstitutionsServiceextendsIJpaService<Institutions>{
2424

2525
publicInstitutionsfindByDomain(Stringdomain) ;
26-
27-
26+
27+
2828
publicInstitutionsget(StringinstIdOrDomain) ;
29+
30+
/**
31+
* 清除指定机构的缓存
32+
* @param instIdOrDomain 机构ID或域名
33+
*/
34+
voidclearInstitutionsCache(StringinstIdOrDomain);
2935
}

‎maxkey-persistence/src/main/java/org/dromara/maxkey/persistence/service/impl/InstitutionsServiceImpl.java‎

Lines changed: 26 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -71,5 +71,30 @@ private Institutions getByDomain(String instIdOrDomain) {
7171

7272
returninst;
7373
}
74-
74+
75+
@Override
76+
publicvoidclearInstitutionsCache(StringinstIdOrDomain) {
77+
_logger.debug("clearInstitutionsCache instIdOrDomain: {}",instIdOrDomain);
78+
79+
// 先尝试从缓存中获取
80+
Institutionsinst =institutionsStore.getIfPresent(instIdOrDomain);
81+
82+
// 如果缓存中没有,从数据库查询
83+
if(inst ==null) {
84+
inst =findByDomain(instIdOrDomain);
85+
}
86+
87+
// 清除所有相关的缓存key
88+
if(inst !=null) {
89+
institutionsStore.invalidate(inst.getDomain());
90+
institutionsStore.invalidate(inst.getConsoleDomain());
91+
institutionsStore.invalidate(inst.getId());
92+
_logger.debug("Cleared cache for domain: {}, consoleDomain: {}, id: {}",
93+
inst.getDomain(),inst.getConsoleDomain(),inst.getId());
94+
}
95+
96+
// 同时清除传入的key(可能是别名或其他key)
97+
institutionsStore.invalidate(instIdOrDomain);
98+
}
99+
75100
}

‎maxkey-webs/maxkey-web-mgt/src/main/java/org/dromara/maxkey/web/config/contorller/InstitutionsController.java‎

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -52,6 +52,9 @@ public Message<?> update(
5252
BindingResultresult) {
5353
logger.debug("updateRole institutions : {}" ,institutions);
5454
if(institutionsService.update(institutions)) {
55+
// 更新成功后清除缓存
56+
institutionsService.clearInstitutionsCache(institutions.getId());
57+
logger.debug("Cleared institutions cache for id: {}",institutions.getId());
5558
returnnewMessage<Institutions>(Message.SUCCESS);
5659
}else {
5760
returnnewMessage<Institutions>(Message.FAIL);

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp