Commit bfd374eedf28fc660e6731b356f67739185891dd

Authored by YunaiV
1 parent 4d2f4704

♻️ refactor(im): 清理代码中的 TODO 注释并优化逻辑

yudao-module-im/src/main/java/cn/iocoder/yudao/module/im/controller/admin/manager/group/vo/ImGroupManagerPageReqVO.java
... ... @@ -27,7 +27,6 @@ public class ImGroupManagerPageReqVO extends PageParam {
27 27 @Schema(description = "是否封禁", example = "false")
28 28 private Boolean banned;
29 29  
30   - // TODO DONE @AI:这个不太对,参考别的模块
31 30 @Schema(description = "创建时间", example = "[2026-04-01 00:00:00, 2026-04-30 23:59:59]")
32 31 @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
33 32 private LocalDateTime[] createTime;
... ...
yudao-module-im/src/main/java/cn/iocoder/yudao/module/im/service/group/ImGroupServiceImpl.java
... ... @@ -382,7 +382,6 @@ public class ImGroupServiceImpl implements ImGroupService {
382 382 throw exception(MESSAGE_NOT_IN_GROUP);
383 383 }
384 384 // 3. 幂等 + 上限校验
385   - // TODO @AI:并发读改写非原子(两个管理员同时 pin 不同消息会丢更新),后续考虑 @Version 乐观锁或带旧值条件的 SQL
386 385 List<Long> pinned = new ArrayList<>(CollUtil.emptyIfNull(group.getPinnedMessageIds()));
387 386 if (pinned.contains(messageId)) {
388 387 throw exception(GROUP_MESSAGE_ALREADY_PINNED);
... ... @@ -405,7 +404,6 @@ public class ImGroupServiceImpl implements ImGroupService {
405 404 // 1. 校验群主 / 管理员;同时拿到 group 复用,避免再走一次 @Cacheable
406 405 ImGroupDO group = validateOwnerOrAdminAndGetGroup(groupId, userId);
407 406 // 2. 幂等校验
408   - // TODO @AI:并发读改写非原子,后续考虑 @Version 乐观锁或带旧值条件的 SQL
409 407 List<Long> pinned = new ArrayList<>(CollUtil.emptyIfNull(group.getPinnedMessageIds()));
410 408 if (!pinned.contains(messageId)) {
411 409 throw exception(GROUP_MESSAGE_NOT_PINNED);
... ...
yudao-module-im/src/main/java/cn/iocoder/yudao/module/im/service/message/ImGroupMessageServiceImpl.java
... ... @@ -369,7 +369,6 @@ public class ImGroupMessageServiceImpl implements ImGroupMessageService {
369 369 visibleUserIds.remove(message.getSenderId());
370 370  
371 371 // 4. 只返回在可见范围内且已读位置 >= messageId 的用户
372   - // DONE @AI:根据返回结果,进行简化;应该都是 Long、Long;——RedisDAO 已返回 Map<Long, Long>,直接使用
373 372 List<Long> readUserIds = new ArrayList<>();
374 373 allPositions.forEach((uid, readMaxMessageId) -> {
375 374 if (visibleUserIds.contains(uid) && readMaxMessageId >= messageId) {
... ...
yudao-module-im/src/main/java/cn/iocoder/yudao/module/im/service/websocket/ImWebSocketServiceImpl.java
... ... @@ -15,7 +15,6 @@ import org.springframework.validation.annotation.Validated;
15 15  
16 16 import java.util.Collection;
17 17  
18   -// TODO @芋艿:后续要分析下,是不是要拆分下 notify(类似好友、群的变更)
19 18 /**
20 19 * IM WebSocket 推送 Service 实现类
21 20 * <p>
... ...