feat: 文本消息接收者也需要更新头像和昵称

This commit is contained in:
songyuanlun 2024-01-11 15:24:07 +08:00
parent d141187d79
commit 5700df0753

View File

@ -32,6 +32,7 @@ import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.BooleanUtils;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping;
@ -76,7 +77,7 @@ public class PrivateMessageController {
AccountRegister account = accounts.get(0);
if (param.getSenderType() == AccountTypeEnum.USER) {
// 更新用户头像和昵称到网易云信
updateUserProfile(param, account);
updateUserProfile(param, account, false);
}
param.getAppTypeList().forEach(type -> {
@ -90,6 +91,12 @@ public class PrivateMessageController {
return;
}
AccountRegister receiver = receivers.get(0);
if (AccountTypeEnum.USER.getCode().equals(receiver.getAccountType())) {
// 更新接收方头像和昵称到网易云信
log.info("updateUserProfile receiver avatarUrl and nickName, receiverPersonId= [{}]"
, receiver.getAccountId());
updateUserProfile(param, receiver,true);
}
MessageDispatchRequest messageRequest = new MessageDispatchRequest();
messageRequest.setFrom(account.getImAccount());
@ -116,11 +123,11 @@ public class PrivateMessageController {
return CommonResponse.success(result);
}
private void updateUserProfile(SendMessageRequest param, AccountRegister account) {
private void updateUserProfile(SendMessageRequest param, AccountRegister account, boolean fromUserFlag) {
String extJson = new JSONObject().fluentPut("accountType", AccountTypeEnum.USER.getCode()).toJSONString();
RegisterUpdateRequest updateProfile = new RegisterUpdateRequest();
updateProfile.setAccid(account.getImAccount());
if (Objects.nonNull(param.getExt())) {
if (Objects.nonNull(param.getExt()) && BooleanUtils.isNotTrue(fromUserFlag)) {
log.info("普通用户从请求参数获取头像昵称, personId= [{}]", account.getAccountId());
updateProfile.setName(param.getExt().getString("nickName"));
updateProfile.setIcon(param.getExt().getString("avatarUrl"));