优化 编辑机构时,清理机构下的用户缓存

This commit is contained in:
thinkgem
2025-02-20 17:49:44 +08:00
parent ed40654d6a
commit f9bcba6994

View File

@@ -7,13 +7,17 @@ package com.jeesite.modules.sys.service.support;
import com.jeesite.common.config.Global; import com.jeesite.common.config.Global;
import com.jeesite.common.service.ServiceException; import com.jeesite.common.service.ServiceException;
import com.jeesite.common.service.TreeService; import com.jeesite.common.service.TreeService;
import com.jeesite.common.utils.PageUtils;
import com.jeesite.common.utils.excel.ExcelImport; import com.jeesite.common.utils.excel.ExcelImport;
import com.jeesite.common.validator.ValidatorUtils; import com.jeesite.common.validator.ValidatorUtils;
import com.jeesite.modules.sys.dao.OfficeDao; import com.jeesite.modules.sys.dao.OfficeDao;
import com.jeesite.modules.sys.entity.EmpUser;
import com.jeesite.modules.sys.entity.Office; import com.jeesite.modules.sys.entity.Office;
import com.jeesite.modules.sys.service.DataScopeService; import com.jeesite.modules.sys.service.DataScopeService;
import com.jeesite.modules.sys.service.EmpUserService;
import com.jeesite.modules.sys.service.OfficeService; import com.jeesite.modules.sys.service.OfficeService;
import com.jeesite.modules.sys.utils.EmpUtils; import com.jeesite.modules.sys.utils.EmpUtils;
import com.jeesite.modules.sys.utils.UserUtils;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.multipart.MultipartFile; import org.springframework.web.multipart.MultipartFile;
@@ -32,6 +36,8 @@ public class OfficeServiceSupport extends TreeService<OfficeDao, Office>
@Autowired @Autowired
private DataScopeService dataScopeService; private DataScopeService dataScopeService;
@Autowired
private EmpUserService empUserService;
/** /**
* 获取单条数据 * 获取单条数据
@@ -74,7 +80,7 @@ public class OfficeServiceSupport extends TreeService<OfficeDao, Office>
} }
super.save(office); super.save(office);
// 清理部门相关缓存 // 清理部门相关缓存
clearOfficeCache(); clearOfficeCache(office);
} }
/** /**
@@ -149,7 +155,7 @@ public class OfficeServiceSupport extends TreeService<OfficeDao, Office>
public void updateStatus(Office office) { public void updateStatus(Office office) {
super.updateStatus(office); super.updateStatus(office);
// 清理部门相关缓存 // 清理部门相关缓存
clearOfficeCache(); clearOfficeCache(office);
} }
/** /**
@@ -161,15 +167,22 @@ public class OfficeServiceSupport extends TreeService<OfficeDao, Office>
office.sqlMap().markIdDelete(); office.sqlMap().markIdDelete();
super.delete(office); super.delete(office);
// 清理部门相关缓存 // 清理部门相关缓存
clearOfficeCache(); clearOfficeCache(office);
} }
/** /**
* 清理部门相关缓存 * 清理部门相关缓存
*/ */
private void clearOfficeCache(){ private void clearOfficeCache(Office office){
// EmpUtils.removeCache(EmpUtils.CACHE_OFFICE_LIST);
EmpUtils.removeCache(EmpUtils.CACHE_OFFICE_ALL_LIST); EmpUtils.removeCache(EmpUtils.CACHE_OFFICE_ALL_LIST);
// 清理组织下的用户缓存
EmpUser empUserWhere = new EmpUser();
empUserWhere.setCodes(new String[]{ office.getOfficeCode() });
PageUtils.findList(empUserWhere, null, e -> {
List<EmpUser> empUserList = empUserService.findUserListByOfficeCodes((EmpUser)e);
empUserList.forEach(UserUtils::clearCache);
return !empUserList.isEmpty();
});
} }
} }