Переглянути джерело

account-service 添加 AccountQuery#getAccountAvatar 方法, 用于获取用户的简要信息

reghao 6 місяців тому
батько
коміт
1008202eb2

+ 24 - 0
account/account-api/src/main/java/cn/reghao/tnb/account/api/dto/AccountAvatar.java

@@ -0,0 +1,24 @@
+package cn.reghao.tnb.account.api.dto;
+
+import lombok.Getter;
+
+import java.io.Serializable;
+
+/**
+ * @author reghao
+ * @date 2025-09-05 17:31:35
+ */
+@Getter
+public class AccountAvatar implements Serializable {
+    private static final long serialVersionUID = 1L;
+
+    private String userIdStr;
+    private String screenName;
+    private String avatarUrl;
+
+    public AccountAvatar(String userIdStr, AccountInfo accountInfo) {
+        this.userIdStr = userIdStr;
+        this.screenName = accountInfo.getScreenName();
+        this.avatarUrl = accountInfo.getAvatarUrl();
+    }
+}

+ 1 - 0
account/account-api/src/main/java/cn/reghao/tnb/account/api/iface/AccountQuery.java

@@ -12,6 +12,7 @@ public interface AccountQuery {
     AuthedAccount getAuthedAccount(int type, String sessId);
     Long getUserId(String username);
     AccountInfo getAccountInfo(long userId);
+    AccountAvatar getAccountAvatar(long userId);
     List<AccountInfo> getAccountInfos(List<Long> userIds);
     AccountInfo getByMobile(String mobile);
     AccountInfo getByUsername(String username);

+ 7 - 0
account/account-service/src/main/java/cn/reghao/tnb/account/app/rpc/AccountQueryImpl.java

@@ -67,6 +67,13 @@ public class AccountQueryImpl implements AccountQuery {
         return accountInfo;
     }
 
+    @Override
+    public AccountAvatar getAccountAvatar(long userId) {
+        String userIdStr = userIdObfuscation.obfuscate(userId);
+        AccountInfo accountInfo = accountRepository.getAccountInfo(userId);
+        return accountInfo != null ? new AccountAvatar(userIdStr, accountInfo) : null;
+    }
+
     @Override
     public List<AccountInfo> getAccountInfos(List<Long> userIds) {
         return accountRepository.getAccountInfos(userIds);