From ee92264adf9df9018eaeb3f83b7b58ec5f938c57 Mon Sep 17 00:00:00 2001 From: wangqx Date: Sun, 28 Sep 2025 16:08:53 +0800 Subject: [PATCH] =?UTF-8?q?[fix]=E4=BF=AE=E6=94=B9=E4=BF=A1=E6=81=AF?= =?UTF-8?q?=E5=9B=9E=E8=B0=83?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/impl/IMCallbackServiceImpl.java | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) diff --git a/ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/service/impl/IMCallbackServiceImpl.java b/ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/service/impl/IMCallbackServiceImpl.java index a34eac031..e498605ef 100644 --- a/ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/service/impl/IMCallbackServiceImpl.java +++ b/ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/service/impl/IMCallbackServiceImpl.java @@ -18,6 +18,9 @@ import org.dromara.common.redis.utils.RedisUtils; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; +import java.time.Instant; +import java.time.LocalDate; +import java.time.ZoneId; import java.util.HashMap; import java.util.List; import java.util.Map; @@ -177,14 +180,13 @@ public class IMCallbackServiceImpl implements IMCallbackService { log.warn("IM取消关注回调参数不完整: {}", callbackData); } // 返回IM平台要求的应答 - return IMCallbackVO.success(); + return IMCallbackVO.success(); } return IMCallbackVO.success(); } - // 资料修改回调处理逻辑 @Override public IMCallbackVO handleProfileCallbackPortraitSet(Map callbackData) { @@ -218,6 +220,7 @@ public class IMCallbackServiceImpl implements IMCallbackService { return IMCallbackVO.success(); } + // 只更新 nickname/gender 字段 private void updateMemberProfile(Member member, String tag, Object value) { if (tag == null || value == null) { @@ -236,6 +239,18 @@ public class IMCallbackServiceImpl implements IMCallbackService { member.setGender(0); } break; + case "Tag_Profile_IM_SelfSignature": + member.setMark(value.toString()); + break; + case "Tag_Profile_IM_BirthDay": + // 1. 将字符串时间戳转换为长整数(1756828800 是秒级时间戳) + // 2. 转换为 Instant(UTC 时间) + Instant instant = Instant.ofEpochSecond((long) value); + + // 3. 转换为 LocalDate(需指定时区,否则使用系统默认时区) + // 例如:使用上海时区(Asia/Shanghai) + LocalDate localDate = instant.atZone(ZoneId.of("Asia/Shanghai")).toLocalDate(); + member.setBirthday(localDate); default: log.debug("未处理的用户资料字段: tag={}, value={}", tag, value); break;