From 234f74f8f009a9f164639666d8f3e654f1845b7c Mon Sep 17 00:00:00 2001 From: 疯狂的狮子li <15040126243@163.com> Date: 星期六, 04 二月 2023 11:47:11 +0800 Subject: [PATCH] add 新增 翻译模块 部门名称翻译 update 优化 部门业务增加缓存逻辑 --- ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysDeptServiceImpl.java | 43 ++++++++++++++++++--- ruoyi-common/ruoyi-common-translation/src/main/java/com/ruoyi/common/translation/core/TranslationInterface.java | 2 ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/constant/CacheNames.java | 5 ++ ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/service/DeptService.java | 18 +++++++++ ruoyi-common/ruoyi-common-translation/src/main/java/com/ruoyi/common/translation/constant/TransConstant.java | 11 ++++- ruoyi-common/ruoyi-common-translation/src/main/java/com/ruoyi/common/translation/core/impl/DeptNameTranslationImpl.java | 30 +++++++++++++++ 6 files changed, 98 insertions(+), 11 deletions(-) diff --git a/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/constant/CacheNames.java b/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/constant/CacheNames.java index df3a10a..b0d6573 100644 --- a/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/constant/CacheNames.java +++ b/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/constant/CacheNames.java @@ -36,6 +36,11 @@ String SYS_USER_NAME = "sys_user_name#30d"; /** + * 閮ㄩ棬 + */ + String SYS_DEPT = "sys_dept#30d"; + + /** * OSS鍐呭 */ String SYS_OSS = "sys_oss#30d"; diff --git a/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/service/DeptService.java b/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/service/DeptService.java new file mode 100644 index 0000000..c27f461 --- /dev/null +++ b/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/service/DeptService.java @@ -0,0 +1,18 @@ +package com.ruoyi.common.core.service; + +/** + * 閫氱敤 閮ㄩ棬鏈嶅姟 + * + * @author Lion Li + */ +public interface DeptService { + + /** + * 閫氳繃閮ㄩ棬ID鏌ヨ閮ㄩ棬鍚嶇О + * + * @param deptIds 閮ㄩ棬ID涓查�楀彿鍒嗛殧 + * @return 閮ㄩ棬鍚嶇О涓查�楀彿鍒嗛殧 + */ + String selectDeptNameByIds(String deptIds); + +} diff --git a/ruoyi-common/ruoyi-common-translation/src/main/java/com/ruoyi/common/translation/constant/TransConstant.java b/ruoyi-common/ruoyi-common-translation/src/main/java/com/ruoyi/common/translation/constant/TransConstant.java index 372f3a2..1cfec58 100644 --- a/ruoyi-common/ruoyi-common-translation/src/main/java/com/ruoyi/common/translation/constant/TransConstant.java +++ b/ruoyi-common/ruoyi-common-translation/src/main/java/com/ruoyi/common/translation/constant/TransConstant.java @@ -10,16 +10,21 @@ /** * 鐢ㄦ埛id杞处鍙� */ - String USER_ID_TO_NAME = "userIdToName"; + String USER_ID_TO_NAME = "user_id_to_name"; + + /** + * 閮ㄩ棬id杞悕绉� + */ + String DEPT_ID_TO_NAME = "dept_id_to_name"; /** * 瀛楀吀type杞琹abel */ - String DICT_TYPE_TO_LABEL = "dictTypeToLabel"; + String DICT_TYPE_TO_LABEL = "dict_type_to_label"; /** * ossId杞瑄rl */ - String OSS_ID_TO_URL = "ossIdToUrl"; + String OSS_ID_TO_URL = "oss_id_to_url"; } diff --git a/ruoyi-common/ruoyi-common-translation/src/main/java/com/ruoyi/common/translation/core/TranslationInterface.java b/ruoyi-common/ruoyi-common-translation/src/main/java/com/ruoyi/common/translation/core/TranslationInterface.java index df4c3a2..f325c3e 100644 --- a/ruoyi-common/ruoyi-common-translation/src/main/java/com/ruoyi/common/translation/core/TranslationInterface.java +++ b/ruoyi-common/ruoyi-common-translation/src/main/java/com/ruoyi/common/translation/core/TranslationInterface.java @@ -10,7 +10,7 @@ /** * 缈昏瘧 * - * @param key 闇�瑕佽缈昏瘧鐨勯敭 + * @param key 闇�瑕佽缈昏瘧鐨勯敭(涓嶄负绌�) * @return 杩斿洖閿搴旂殑鍊� */ String translation(Object key, String other); diff --git a/ruoyi-common/ruoyi-common-translation/src/main/java/com/ruoyi/common/translation/core/impl/DeptNameTranslationImpl.java b/ruoyi-common/ruoyi-common-translation/src/main/java/com/ruoyi/common/translation/core/impl/DeptNameTranslationImpl.java new file mode 100644 index 0000000..17b3314 --- /dev/null +++ b/ruoyi-common/ruoyi-common-translation/src/main/java/com/ruoyi/common/translation/core/impl/DeptNameTranslationImpl.java @@ -0,0 +1,30 @@ +package com.ruoyi.common.translation.core.impl; + +import com.ruoyi.common.core.service.DeptService; +import com.ruoyi.common.translation.annotation.TranslationType; +import com.ruoyi.common.translation.constant.TransConstant; +import com.ruoyi.common.translation.core.TranslationInterface; +import lombok.AllArgsConstructor; +import org.springframework.stereotype.Component; + +/** + * 閮ㄩ棬缈昏瘧瀹炵幇 + * + * @author Lion Li + */ +@Component +@AllArgsConstructor +@TranslationType(type = TransConstant.DEPT_ID_TO_NAME) +public class DeptNameTranslationImpl implements TranslationInterface { + + private final DeptService deptService; + + public String translation(Object key, String other) { + if (key instanceof String ids) { + return deptService.selectDeptNameByIds(ids); + } else if (key instanceof Long id) { + return deptService.selectDeptNameByIds(id.toString()); + } + return null; + } +} diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysDeptServiceImpl.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysDeptServiceImpl.java index 8206bdc..453d98f 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysDeptServiceImpl.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysDeptServiceImpl.java @@ -8,15 +8,19 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import com.ruoyi.common.core.constant.CacheNames; import com.ruoyi.common.core.constant.UserConstants; +import com.ruoyi.common.core.exception.ServiceException; +import com.ruoyi.common.core.service.DeptService; +import com.ruoyi.common.core.utils.SpringUtils; +import com.ruoyi.common.core.utils.StringUtils; +import com.ruoyi.common.core.utils.TreeBuildUtils; +import com.ruoyi.common.mybatis.helper.DataBaseHelper; +import com.ruoyi.common.redis.utils.CacheUtils; +import com.ruoyi.common.satoken.utils.LoginHelper; import com.ruoyi.system.domain.SysDept; import com.ruoyi.system.domain.SysRole; import com.ruoyi.system.domain.SysUser; -import com.ruoyi.common.core.exception.ServiceException; -import com.ruoyi.common.mybatis.helper.DataBaseHelper; -import com.ruoyi.common.satoken.utils.LoginHelper; -import com.ruoyi.common.core.utils.StringUtils; -import com.ruoyi.common.core.utils.TreeBuildUtils; import com.ruoyi.system.domain.bo.SysDeptBo; import com.ruoyi.system.domain.vo.SysDeptVo; import com.ruoyi.system.mapper.SysDeptMapper; @@ -24,6 +28,8 @@ import com.ruoyi.system.mapper.SysUserMapper; import com.ruoyi.system.service.ISysDeptService; import lombok.RequiredArgsConstructor; +import org.springframework.cache.annotation.CacheEvict; +import org.springframework.cache.annotation.Cacheable; import org.springframework.stereotype.Service; import java.util.ArrayList; @@ -37,7 +43,7 @@ */ @RequiredArgsConstructor @Service -public class SysDeptServiceImpl implements ISysDeptService { +public class SysDeptServiceImpl implements ISysDeptService, DeptService { private final SysDeptMapper baseMapper; private final SysRoleMapper roleMapper; @@ -117,6 +123,7 @@ * @param deptId 閮ㄩ棬ID * @return 閮ㄩ棬淇℃伅 */ + @Cacheable(cacheNames = CacheNames.SYS_DEPT, key = "#deptId") @Override public SysDeptVo selectDeptById(Long deptId) { SysDeptVo dept = baseMapper.selectVoById(deptId); @@ -124,6 +131,24 @@ .select(SysDept::getDeptName).eq(SysDept::getDeptId, dept.getParentId())); dept.setParentName(ObjectUtil.isNotNull(parentDept) ? parentDept.getDeptName() : null); return dept; + } + + /** + * 閫氳繃閮ㄩ棬ID鏌ヨ閮ㄩ棬鍚嶇О + * + * @param deptIds 閮ㄩ棬ID涓查�楀彿鍒嗛殧 + * @return 閮ㄩ棬鍚嶇О涓查�楀彿鍒嗛殧 + */ + @Override + public String selectDeptNameByIds(String deptIds) { + List<String> list = new ArrayList<>(); + for (Long id : Arrays.stream(deptIds.split(",")).map(Long::parseLong).toList()) { + SysDeptVo vo = SpringUtils.getAopProxy(this).selectDeptById(id); + if (ObjectUtil.isNotNull(vo)) { + list.add(vo.getDeptName()); + } + } + return String.join(",", list); } /** @@ -222,6 +247,7 @@ * @param bo 閮ㄩ棬淇℃伅 * @return 缁撴灉 */ + @CacheEvict(cacheNames = CacheNames.SYS_DEPT, key = "#bo.deptId") @Override public int updateDept(SysDeptBo bo) { SysDept dept = BeanUtil.toBean(bo, SysDept.class); @@ -273,7 +299,9 @@ list.add(dept); } if (CollUtil.isNotEmpty(list)) { - baseMapper.updateBatchById(list); + if (baseMapper.updateBatchById(list)) { + list.forEach(dept -> CacheUtils.evict(CacheNames.SYS_DEPT, dept.getDeptId())); + } } } @@ -283,6 +311,7 @@ * @param deptId 閮ㄩ棬ID * @return 缁撴灉 */ + @CacheEvict(cacheNames = CacheNames.SYS_DEPT, key = "#deptId") @Override public int deleteDeptById(Long deptId) { return baseMapper.deleteById(deptId); -- Gitblit v1.9.3