From f8a008d88b8b3a76c5f165cca6a65005b7e19dda Mon Sep 17 00:00:00 2001 From: thinkgem Date: Thu, 7 Nov 2024 10:14:37 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96=20=E5=A2=9E=E5=8A=A0?= =?UTF-8?q?=E5=B2=97=E4=BD=8D=E4=BF=9D=E5=AD=98=E6=97=B6=E6=B8=85=E7=90=86?= =?UTF-8?q?=E5=85=B3=E8=81=94=E7=9A=84=E7=94=A8=E6=88=B7=E7=BC=93=E5=AD=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/support/PostServiceSupport.java | 27 ++++++++++++++++--- 1 file changed, 23 insertions(+), 4 deletions(-) diff --git a/modules/core/src/main/java/com/jeesite/modules/sys/service/support/PostServiceSupport.java b/modules/core/src/main/java/com/jeesite/modules/sys/service/support/PostServiceSupport.java index a9f19f77..62eb0d7c 100644 --- a/modules/core/src/main/java/com/jeesite/modules/sys/service/support/PostServiceSupport.java +++ b/modules/core/src/main/java/com/jeesite/modules/sys/service/support/PostServiceSupport.java @@ -9,13 +9,14 @@ import com.jeesite.common.config.Global; import com.jeesite.common.entity.Page; import com.jeesite.common.lang.StringUtils; import com.jeesite.common.service.CrudService; +import com.jeesite.common.utils.PageUtils; import com.jeesite.modules.sys.dao.PostDao; import com.jeesite.modules.sys.dao.PostRoleDao; -import com.jeesite.modules.sys.entity.Post; -import com.jeesite.modules.sys.entity.PostRole; -import com.jeesite.modules.sys.entity.Role; +import com.jeesite.modules.sys.entity.*; +import com.jeesite.modules.sys.service.EmpUserService; import com.jeesite.modules.sys.service.PostService; import com.jeesite.modules.sys.utils.CorpUtils; +import com.jeesite.modules.sys.utils.UserUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.transaction.annotation.Transactional; @@ -31,6 +32,8 @@ public class PostServiceSupport extends CrudService @Autowired private PostRoleDao postRoleDao; + @Autowired + private EmpUserService empUserService; /** * 查询岗位 @@ -101,12 +104,13 @@ public class PostServiceSupport extends CrudService postRoleDao.insertBatch(list, null); } } + clearCache(post); } /** * 岗位编码生成规则 */ - public void genId(Role entity, String viewCode){ + public void genId(Post entity, String viewCode){ if (StringUtils.isNotBlank(viewCode)){ // 如果是租户模式,并且当前租户不是默认租户的时候,增加租户前缀防止编码重复 if (Global.isUseCorpModel() && !CorpUtils.DEFAULT_CORP_CODE.equals(CorpUtils.getCurrentCorpCode())){ @@ -134,6 +138,21 @@ public class PostServiceSupport extends CrudService public void delete(Post post) { post.sqlMap().markIdDelete(); super.delete(post); + clearCache(post); + } + + /** + * 根据岗位清理缓存 + */ + protected void clearCache(Post post){ + // 清除该岗位下所有的用户缓存 + EmpUser where = new EmpUser(); + where.setCodes(new String[]{ post.getPostCode() }); + PageUtils.findList(where, null, e -> { + List userList = empUserService.findUserListByPostCodes((EmpUser)e); + userList.forEach(UserUtils::clearCache); + return !userList.isEmpty(); + }); } } \ No newline at end of file