Browse Source

add 新增 翻译组件 用户昵称翻译实现

疯狂的狮子Li 2 years ago
parent
commit
7d94fc83cf

+ 8 - 0
ruoyi-api/ruoyi-api-system/src/main/java/org/dromara/system/api/RemoteUserService.java

@@ -73,6 +73,14 @@ public interface RemoteUserService {
      */
     String selectUserNameById(Long userId);
 
+    /**
+     * 通过用户ID查询用户昵称
+     *
+     * @param userId 用户id
+     * @return 结果
+     */
+    String selectNicknameById(Long userId);
+
     /**
      * 更新用户信息
      *

+ 5 - 0
ruoyi-common/ruoyi-common-core/src/main/java/org/dromara/common/core/constant/CacheNames.java

@@ -40,6 +40,11 @@ public interface CacheNames {
      */
     String SYS_USER_NAME = "sys_user_name#30d";
 
+    /**
+     * 用户名称
+     */
+    String SYS_NICKNAME = "sys_nickname#30d";
+
     /**
      * 部门
      */

+ 6 - 0
ruoyi-common/ruoyi-common-translation/src/main/java/org/dromara/common/translation/constant/TransConstant.java

@@ -12,6 +12,12 @@ public interface TransConstant {
      */
     String USER_ID_TO_NAME = "user_id_to_name";
 
+    /**
+     * 用户id转用户昵称
+     */
+    String USER_ID_TO_NICKNAME = "user_id_to_nickname";
+
+
     /**
      * 部门id转名称
      */

+ 26 - 0
ruoyi-common/ruoyi-common-translation/src/main/java/org/dromara/common/translation/core/impl/NicknameTranslationImpl.java

@@ -0,0 +1,26 @@
+package org.dromara.common.translation.core.impl;
+
+import lombok.AllArgsConstructor;
+import org.apache.dubbo.config.annotation.DubboReference;
+import org.dromara.common.translation.annotation.TranslationType;
+import org.dromara.common.translation.constant.TransConstant;
+import org.dromara.common.translation.core.TranslationInterface;
+import org.dromara.system.api.RemoteUserService;
+
+/**
+ * 用户昵称翻译实现
+ *
+ * @author may
+ */
+@AllArgsConstructor
+@TranslationType(type = TransConstant.USER_ID_TO_NICKNAME)
+public class NicknameTranslationImpl implements TranslationInterface<String> {
+
+    @DubboReference
+    private RemoteUserService remoteUserService;
+
+    @Override
+    public String translation(Object key, String other) {
+        return remoteUserService.selectNicknameById((Long) key);
+    }
+}

+ 1 - 0
ruoyi-common/ruoyi-common-translation/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports

@@ -3,3 +3,4 @@ org.dromara.common.translation.core.impl.DeptNameTranslationImpl
 org.dromara.common.translation.core.impl.DictTypeTranslationImpl
 org.dromara.common.translation.core.impl.OssUrlTranslationImpl
 org.dromara.common.translation.core.impl.UserNameTranslationImpl
+org.dromara.common.translation.core.impl.NicknameTranslationImpl

+ 5 - 0
ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/dubbo/RemoteUserServiceImpl.java

@@ -159,6 +159,11 @@ public class RemoteUserServiceImpl implements RemoteUserService {
         return userService.selectUserNameById(userId);
     }
 
+    @Override
+    public String selectNicknameById(Long userId) {
+        return userService.selectNicknameById(userId);
+    }
+
     /**
      * 构建登录用户
      */

+ 8 - 0
ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/ISysUserService.java

@@ -210,6 +210,14 @@ public interface ISysUserService {
      */
     String selectUserNameById(Long userId);
 
+    /**
+     * 通过用户ID查询用户账户
+     *
+     * @param userId 用户ID
+     * @return 用户账户
+     */
+    String selectNicknameById(Long userId);
+
     /**
      * 通过部门id查询当前部门所有用户
      *

+ 8 - 0
ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysUserServiceImpl.java

@@ -537,4 +537,12 @@ public class SysUserServiceImpl implements ISysUserService {
         return ObjectUtil.isNull(sysUser) ? null : sysUser.getUserName();
     }
 
+    @Override
+    @Cacheable(cacheNames = CacheNames.SYS_NICKNAME, key = "#userId")
+    public String selectNicknameById(Long userId) {
+        SysUser sysUser = baseMapper.selectOne(new LambdaQueryWrapper<SysUser>()
+            .select(SysUser::getNickName).eq(SysUser::getUserId, userId));
+        return ObjectUtil.isNull(sysUser) ? null : sysUser.getNickName();
+    }
+
 }