Commit bee3337925538407bb582e97c7ba4280689fdc35
1 parent
ac05257e
♻️ refactor(im): 重命名群聊和私聊消息相关方法以提高可读性
重构了 ImGroupMessageController 和 ImPrivateMessageController 中的方法名称, 将 sendMessage、pullMessages、readMessages 和 recallMessage 等方法重命名为 sendGroupMessage、pullGroupMessages、readGroupMessages 和 recallGroupMessage。 同时,更新了相关服务和测试类中的调用,确保一致性和可读性。
Showing
12 changed files
with
71 additions
and
123 deletions
yudao-module-im/yudao-module-im-biz/src/main/java/cn/iocoder/yudao/module/im/controller/admin/message/ImGroupMessageController.java
| 1 | package cn.iocoder.yudao.module.im.controller.admin.message; | 1 | package cn.iocoder.yudao.module.im.controller.admin.message; |
| 2 | 2 | ||
| 3 | import cn.iocoder.yudao.framework.common.pojo.CommonResult; | 3 | import cn.iocoder.yudao.framework.common.pojo.CommonResult; |
| 4 | -import cn.iocoder.yudao.module.im.controller.admin.message.vo.*; | ||
| 5 | -import cn.iocoder.yudao.module.im.controller.admin.message.vo.group.ImGroupMessageReadReqVO; | ||
| 6 | import cn.iocoder.yudao.module.im.controller.admin.message.vo.group.ImGroupMessageRespVO; | 4 | import cn.iocoder.yudao.module.im.controller.admin.message.vo.group.ImGroupMessageRespVO; |
| 7 | import cn.iocoder.yudao.module.im.controller.admin.message.vo.group.ImGroupMessageSendReqVO; | 5 | import cn.iocoder.yudao.module.im.controller.admin.message.vo.group.ImGroupMessageSendReqVO; |
| 8 | import cn.iocoder.yudao.module.im.dal.dataobject.message.ImGroupMessageDO; | 6 | import cn.iocoder.yudao.module.im.dal.dataobject.message.ImGroupMessageDO; |
| @@ -35,40 +33,35 @@ public class ImGroupMessageController { | @@ -35,40 +33,35 @@ public class ImGroupMessageController { | ||
| 35 | 33 | ||
| 36 | @PostMapping("/send") | 34 | @PostMapping("/send") |
| 37 | @Operation(summary = "发送群聊消息") | 35 | @Operation(summary = "发送群聊消息") |
| 38 | - public CommonResult<ImGroupMessageRespVO> sendMessage(@Valid @RequestBody ImGroupMessageSendReqVO reqVO) { | ||
| 39 | - ImGroupMessageDO message = imGroupMessageService.sendMessage(getLoginUserId(), reqVO); | 36 | + public CommonResult<ImGroupMessageRespVO> sendGroupMessage(@Valid @RequestBody ImGroupMessageSendReqVO reqVO) { |
| 37 | + ImGroupMessageDO message = imGroupMessageService.sendGroupMessage(getLoginUserId(), reqVO); | ||
| 40 | return success(toRespVO(message)); | 38 | return success(toRespVO(message)); |
| 41 | } | 39 | } |
| 42 | 40 | ||
| 43 | - // DONE @AI:需要在评估下,是否需要 nextMinId。结论:需要,前端用 nextMinId 做增量拉取游标 | ||
| 44 | @GetMapping("/pull") | 41 | @GetMapping("/pull") |
| 45 | @Operation(summary = "拉取群聊消息(增量)") | 42 | @Operation(summary = "拉取群聊消息(增量)") |
| 46 | @Parameter(name = "minId", description = "最小消息 id", required = true, example = "0") | 43 | @Parameter(name = "minId", description = "最小消息 id", required = true, example = "0") |
| 47 | @Parameter(name = "size", description = "拉取数量", required = true, example = "100") | 44 | @Parameter(name = "size", description = "拉取数量", required = true, example = "100") |
| 48 | - public CommonResult<ImMessagePullRespVO<ImGroupMessageRespVO>> pullMessages( | 45 | + public CommonResult<List<ImGroupMessageRespVO>> pullGroupMessages( |
| 49 | @RequestParam("minId") Long minId, | 46 | @RequestParam("minId") Long minId, |
| 50 | @RequestParam("size") Integer size) { | 47 | @RequestParam("size") Integer size) { |
| 51 | - List<ImGroupMessageDO> messages = imGroupMessageService.pullMessages(getLoginUserId(), minId, size); | ||
| 52 | - ImMessagePullRespVO<ImGroupMessageRespVO> resp = new ImMessagePullRespVO<>(); | ||
| 53 | - resp.setList(messages.stream().map(this::toRespVO).collect(Collectors.toList())); | ||
| 54 | - resp.setNextMinId(messages.isEmpty() ? minId | ||
| 55 | - : messages.get(messages.size() - 1).getId()); | ||
| 56 | - return success(resp); | 48 | + List<ImGroupMessageDO> messages = imGroupMessageService.pullGroupMessages(getLoginUserId(), minId, size); |
| 49 | + return success(messages.stream().map(this::toRespVO).collect(Collectors.toList())); | ||
| 57 | } | 50 | } |
| 58 | 51 | ||
| 59 | - // DONE @AI:它是不是不用 VO。结论:需要 ReqVO,承载 groupId 字段并做参数校验 | ||
| 60 | @PutMapping("/read") | 52 | @PutMapping("/read") |
| 61 | @Operation(summary = "标记群聊消息已读") | 53 | @Operation(summary = "标记群聊消息已读") |
| 62 | - public CommonResult<Boolean> readMessages(@Valid @RequestBody ImGroupMessageReadReqVO reqVO) { | ||
| 63 | - imGroupMessageService.readMessages(getLoginUserId(), reqVO.getGroupId()); | 54 | + @Parameter(name = "groupId", description = "群编号", required = true, example = "1") |
| 55 | + public CommonResult<Boolean> readGroupMessages(@RequestParam("groupId") Long groupId) { | ||
| 56 | + imGroupMessageService.readGroupMessages(getLoginUserId(), groupId); | ||
| 64 | return success(true); | 57 | return success(true); |
| 65 | } | 58 | } |
| 66 | 59 | ||
| 67 | @DeleteMapping("/recall") | 60 | @DeleteMapping("/recall") |
| 68 | @Operation(summary = "撤回群聊消息") | 61 | @Operation(summary = "撤回群聊消息") |
| 69 | @Parameter(name = "id", description = "消息编号", required = true, example = "1") | 62 | @Parameter(name = "id", description = "消息编号", required = true, example = "1") |
| 70 | - public CommonResult<Boolean> recallMessage(@RequestParam("id") Long id) { | ||
| 71 | - imGroupMessageService.recallMessage(getLoginUserId(), id); | 63 | + public CommonResult<Boolean> recallGroupMessage(@RequestParam("id") Long id) { |
| 64 | + imGroupMessageService.recallGroupMessage(getLoginUserId(), id); | ||
| 72 | return success(true); | 65 | return success(true); |
| 73 | } | 66 | } |
| 74 | 67 | ||
| @@ -77,10 +70,10 @@ public class ImGroupMessageController { | @@ -77,10 +70,10 @@ public class ImGroupMessageController { | ||
| 77 | @Operation(summary = "获取群消息已读用户列表") | 70 | @Operation(summary = "获取群消息已读用户列表") |
| 78 | @Parameter(name = "groupId", description = "群编号", required = true, example = "1") | 71 | @Parameter(name = "groupId", description = "群编号", required = true, example = "1") |
| 79 | @Parameter(name = "messageId", description = "消息编号", required = true, example = "1") | 72 | @Parameter(name = "messageId", description = "消息编号", required = true, example = "1") |
| 80 | - public CommonResult<List<String>> getReadUsers( | 73 | + public CommonResult<List<String>> getGroupReadUsers( |
| 81 | @RequestParam("groupId") Long groupId, | 74 | @RequestParam("groupId") Long groupId, |
| 82 | @RequestParam("messageId") Long messageId) { | 75 | @RequestParam("messageId") Long messageId) { |
| 83 | - List<Long> readUserIds = imGroupMessageService.getReadUsers(getLoginUserId(), groupId, messageId); | 76 | + List<Long> readUserIds = imGroupMessageService.getGroupReadUsers(getLoginUserId(), groupId, messageId); |
| 84 | // Long -> String 转换 | 77 | // Long -> String 转换 |
| 85 | return success(readUserIds.stream().map(String::valueOf).collect(Collectors.toList())); | 78 | return success(readUserIds.stream().map(String::valueOf).collect(Collectors.toList())); |
| 86 | } | 79 | } |
yudao-module-im/yudao-module-im-biz/src/main/java/cn/iocoder/yudao/module/im/controller/admin/message/ImPrivateMessageController.java
| @@ -2,7 +2,6 @@ package cn.iocoder.yudao.module.im.controller.admin.message; | @@ -2,7 +2,6 @@ package cn.iocoder.yudao.module.im.controller.admin.message; | ||
| 2 | 2 | ||
| 3 | import cn.iocoder.yudao.framework.common.pojo.CommonResult; | 3 | import cn.iocoder.yudao.framework.common.pojo.CommonResult; |
| 4 | import cn.iocoder.yudao.framework.common.util.object.BeanUtils; | 4 | import cn.iocoder.yudao.framework.common.util.object.BeanUtils; |
| 5 | -import cn.iocoder.yudao.module.im.controller.admin.message.vo.*; | ||
| 6 | import cn.iocoder.yudao.module.im.controller.admin.message.vo.privates.ImPrivateMessageRespVO; | 5 | import cn.iocoder.yudao.module.im.controller.admin.message.vo.privates.ImPrivateMessageRespVO; |
| 7 | import cn.iocoder.yudao.module.im.controller.admin.message.vo.privates.ImPrivateMessageSendReqVO; | 6 | import cn.iocoder.yudao.module.im.controller.admin.message.vo.privates.ImPrivateMessageSendReqVO; |
| 8 | import cn.iocoder.yudao.module.im.dal.dataobject.message.ImPrivateMessageDO; | 7 | import cn.iocoder.yudao.module.im.dal.dataobject.message.ImPrivateMessageDO; |
| @@ -34,8 +33,8 @@ public class ImPrivateMessageController { | @@ -34,8 +33,8 @@ public class ImPrivateMessageController { | ||
| 34 | 33 | ||
| 35 | @PostMapping("/send") | 34 | @PostMapping("/send") |
| 36 | @Operation(summary = "发送私聊消息") | 35 | @Operation(summary = "发送私聊消息") |
| 37 | - public CommonResult<ImPrivateMessageRespVO> sendMessage(@Valid @RequestBody ImPrivateMessageSendReqVO reqVO) { | ||
| 38 | - ImPrivateMessageDO message = imPrivateMessageService.sendMessage(getLoginUserId(), reqVO); | 36 | + public CommonResult<ImPrivateMessageRespVO> sendPrivateMessage(@Valid @RequestBody ImPrivateMessageSendReqVO reqVO) { |
| 37 | + ImPrivateMessageDO message = imPrivateMessageService.sendPrivateMessage(getLoginUserId(), reqVO); | ||
| 39 | return success(BeanUtils.toBean(message, ImPrivateMessageRespVO.class)); | 38 | return success(BeanUtils.toBean(message, ImPrivateMessageRespVO.class)); |
| 40 | } | 39 | } |
| 41 | 40 | ||
| @@ -43,30 +42,25 @@ public class ImPrivateMessageController { | @@ -43,30 +42,25 @@ public class ImPrivateMessageController { | ||
| 43 | @Operation(summary = "拉取私聊消息(增量)") | 42 | @Operation(summary = "拉取私聊消息(增量)") |
| 44 | @Parameter(name = "minId", description = "最小消息 id", required = true, example = "0") | 43 | @Parameter(name = "minId", description = "最小消息 id", required = true, example = "0") |
| 45 | @Parameter(name = "size", description = "拉取数量", required = true, example = "100") | 44 | @Parameter(name = "size", description = "拉取数量", required = true, example = "100") |
| 46 | - public CommonResult<ImMessagePullRespVO<ImPrivateMessageRespVO>> pullMessages( | ||
| 47 | - @RequestParam("minId") Long minId, | ||
| 48 | - @RequestParam("size") Integer size) { | ||
| 49 | - List<ImPrivateMessageDO> messages = imPrivateMessageService.pullMessages(getLoginUserId(), minId, size); | ||
| 50 | - ImMessagePullRespVO<ImPrivateMessageRespVO> resp = new ImMessagePullRespVO<>(); | ||
| 51 | - resp.setList(BeanUtils.toBean(messages, ImPrivateMessageRespVO.class)); | ||
| 52 | - resp.setNextMinId(messages.isEmpty() ? minId | ||
| 53 | - : messages.get(messages.size() - 1).getId()); | ||
| 54 | - return success(resp); | 45 | + public CommonResult<List<ImPrivateMessageRespVO>> pullPrivateMessages(@RequestParam("minId") Long minId, |
| 46 | + @RequestParam("size") Integer size) { | ||
| 47 | + List<ImPrivateMessageDO> messages = imPrivateMessageService.pullPrivateMessages(getLoginUserId(), minId, size); | ||
| 48 | + return success(BeanUtils.toBean(messages, ImPrivateMessageRespVO.class)); | ||
| 55 | } | 49 | } |
| 56 | 50 | ||
| 57 | @PutMapping("/read") | 51 | @PutMapping("/read") |
| 58 | @Operation(summary = "标记私聊消息已读") | 52 | @Operation(summary = "标记私聊消息已读") |
| 59 | @Parameter(name = "friendId", description = "好友用户编号", required = true, example = "2") | 53 | @Parameter(name = "friendId", description = "好友用户编号", required = true, example = "2") |
| 60 | - public CommonResult<Boolean> readMessages(@RequestParam("friendId") Long friendId) { | ||
| 61 | - imPrivateMessageService.readMessages(getLoginUserId(), friendId); | 54 | + public CommonResult<Boolean> readPrivateMessages(@RequestParam("friendId") Long friendId) { |
| 55 | + imPrivateMessageService.readPrivateMessages(getLoginUserId(), friendId); | ||
| 62 | return success(true); | 56 | return success(true); |
| 63 | } | 57 | } |
| 64 | 58 | ||
| 65 | @DeleteMapping("/recall") | 59 | @DeleteMapping("/recall") |
| 66 | @Operation(summary = "撤回私聊消息") | 60 | @Operation(summary = "撤回私聊消息") |
| 67 | @Parameter(name = "id", description = "消息编号", required = true, example = "1") | 61 | @Parameter(name = "id", description = "消息编号", required = true, example = "1") |
| 68 | - public CommonResult<Boolean> recallMessage(@RequestParam("id") Long id) { | ||
| 69 | - imPrivateMessageService.recallMessage(getLoginUserId(), id); | 62 | + public CommonResult<Boolean> recallPrivateMessage(@RequestParam("id") Long id) { |
| 63 | + imPrivateMessageService.recallPrivateMessage(getLoginUserId(), id); | ||
| 70 | return success(true); | 64 | return success(true); |
| 71 | } | 65 | } |
| 72 | 66 |
yudao-module-im/yudao-module-im-biz/src/main/java/cn/iocoder/yudao/module/im/controller/admin/message/vo/ImMessagePullRespVO.java deleted
| 1 | -package cn.iocoder.yudao.module.im.controller.admin.message.vo; | ||
| 2 | - | ||
| 3 | -import io.swagger.v3.oas.annotations.media.Schema; | ||
| 4 | -import lombok.Data; | ||
| 5 | - | ||
| 6 | -import java.util.List; | ||
| 7 | - | ||
| 8 | -/** | ||
| 9 | - * 消息拉取 Response VO | ||
| 10 | - */ | ||
| 11 | -@Schema(description = "管理后台 - 消息拉取 Response VO") | ||
| 12 | -@Data | ||
| 13 | -public class ImMessagePullRespVO<T> { | ||
| 14 | - | ||
| 15 | - @Schema(description = "消息列表") | ||
| 16 | - private List<T> list; | ||
| 17 | - | ||
| 18 | - @Schema(description = "下次拉取的最小 id", example = "100") | ||
| 19 | - private Long nextMinId; | ||
| 20 | - | ||
| 21 | -} |
yudao-module-im/yudao-module-im-biz/src/main/java/cn/iocoder/yudao/module/im/controller/admin/message/vo/group/ImGroupMessageReadReqVO.java deleted
| 1 | -package cn.iocoder.yudao.module.im.controller.admin.message.vo.group; | ||
| 2 | - | ||
| 3 | -import io.swagger.v3.oas.annotations.media.Schema; | ||
| 4 | -import jakarta.validation.constraints.NotNull; | ||
| 5 | -import lombok.Data; | ||
| 6 | - | ||
| 7 | -/** | ||
| 8 | - * 群聊已读 Request VO | ||
| 9 | - */ | ||
| 10 | -@Schema(description = "管理后台 - 群聊已读 Request VO") | ||
| 11 | -@Data | ||
| 12 | -public class ImGroupMessageReadReqVO { | ||
| 13 | - | ||
| 14 | - @Schema(description = "群编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") | ||
| 15 | - @NotNull(message = "群编号不能为空") | ||
| 16 | - private Long groupId; | ||
| 17 | - | ||
| 18 | -} |
yudao-module-im/yudao-module-im-biz/src/main/java/cn/iocoder/yudao/module/im/dal/dataobject/message/ImGroupMessageDO.java
| 1 | package cn.iocoder.yudao.module.im.dal.dataobject.message; | 1 | package cn.iocoder.yudao.module.im.dal.dataobject.message; |
| 2 | 2 | ||
| 3 | import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO; | 3 | import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO; |
| 4 | +import cn.iocoder.yudao.framework.mybatis.core.type.LongListTypeHandler; | ||
| 4 | import cn.iocoder.yudao.module.im.dal.dataobject.group.ImGroupDO; | 5 | import cn.iocoder.yudao.module.im.dal.dataobject.group.ImGroupDO; |
| 5 | import cn.iocoder.yudao.module.im.enums.message.ImGroupMessageReceiptStatusEnum; | 6 | import cn.iocoder.yudao.module.im.enums.message.ImGroupMessageReceiptStatusEnum; |
| 6 | import cn.iocoder.yudao.module.im.enums.message.ImMessageStatusEnum; | 7 | import cn.iocoder.yudao.module.im.enums.message.ImMessageStatusEnum; |
| @@ -9,7 +10,6 @@ import com.baomidou.mybatisplus.annotation.KeySequence; | @@ -9,7 +10,6 @@ import com.baomidou.mybatisplus.annotation.KeySequence; | ||
| 9 | import com.baomidou.mybatisplus.annotation.TableField; | 10 | import com.baomidou.mybatisplus.annotation.TableField; |
| 10 | import com.baomidou.mybatisplus.annotation.TableId; | 11 | import com.baomidou.mybatisplus.annotation.TableId; |
| 11 | import com.baomidou.mybatisplus.annotation.TableName; | 12 | import com.baomidou.mybatisplus.annotation.TableName; |
| 12 | -import com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler; | ||
| 13 | import lombok.*; | 13 | import lombok.*; |
| 14 | 14 | ||
| 15 | import java.time.LocalDateTime; | 15 | import java.time.LocalDateTime; |
| @@ -77,20 +77,20 @@ public class ImGroupMessageDO extends BaseDO { | @@ -77,20 +77,20 @@ public class ImGroupMessageDO extends BaseDO { | ||
| 77 | */ | 77 | */ |
| 78 | private LocalDateTime sendTime; | 78 | private LocalDateTime sendTime; |
| 79 | /** | 79 | /** |
| 80 | - * 定向接收用户编号列表 | 80 | + * 定向接收用户编号列表,以逗号分隔 |
| 81 | * <p> | 81 | * <p> |
| 82 | * 为空表示全员可见 | 82 | * 为空表示全员可见 |
| 83 | * | 83 | * |
| 84 | * 关联 AdminUserDO 的 id 字段 | 84 | * 关联 AdminUserDO 的 id 字段 |
| 85 | */ | 85 | */ |
| 86 | - @TableField(typeHandler = JacksonTypeHandler.class) | 86 | + @TableField(typeHandler = LongListTypeHandler.class) |
| 87 | private List<Long> receiverUserIds; | 87 | private List<Long> receiverUserIds; |
| 88 | /** | 88 | /** |
| 89 | - * @ 目标用户编号列表 | 89 | + * @ 目标用户编号列表,以逗号分隔 |
| 90 | * | 90 | * |
| 91 | * 关联 AdminUserDO 的 id 字段 | 91 | * 关联 AdminUserDO 的 id 字段 |
| 92 | */ | 92 | */ |
| 93 | - @TableField(typeHandler = JacksonTypeHandler.class) | 93 | + @TableField(typeHandler = LongListTypeHandler.class) |
| 94 | private List<Long> atUserIds; | 94 | private List<Long> atUserIds; |
| 95 | /** | 95 | /** |
| 96 | * 回执状态 | 96 | * 回执状态 |
yudao-module-im/yudao-module-im-biz/src/main/java/cn/iocoder/yudao/module/im/service/message/ImGroupMessageService.java
| @@ -19,7 +19,7 @@ public interface ImGroupMessageService { | @@ -19,7 +19,7 @@ public interface ImGroupMessageService { | ||
| 19 | * @param reqVO 发送请求 | 19 | * @param reqVO 发送请求 |
| 20 | * @return 消息 | 20 | * @return 消息 |
| 21 | */ | 21 | */ |
| 22 | - ImGroupMessageDO sendMessage(Long senderId, ImGroupMessageSendReqVO reqVO); | 22 | + ImGroupMessageDO sendGroupMessage(Long senderId, ImGroupMessageSendReqVO reqVO); |
| 23 | 23 | ||
| 24 | /** | 24 | /** |
| 25 | * 拉取群聊消息(增量) | 25 | * 拉取群聊消息(增量) |
| @@ -29,7 +29,7 @@ public interface ImGroupMessageService { | @@ -29,7 +29,7 @@ public interface ImGroupMessageService { | ||
| 29 | * @param size 拉取数量 | 29 | * @param size 拉取数量 |
| 30 | * @return 消息列表 | 30 | * @return 消息列表 |
| 31 | */ | 31 | */ |
| 32 | - List<ImGroupMessageDO> pullMessages(Long userId, Long minId, Integer size); | 32 | + List<ImGroupMessageDO> pullGroupMessages(Long userId, Long minId, Integer size); |
| 33 | 33 | ||
| 34 | /** | 34 | /** |
| 35 | * 标记群聊消息已读 | 35 | * 标记群聊消息已读 |
| @@ -37,7 +37,7 @@ public interface ImGroupMessageService { | @@ -37,7 +37,7 @@ public interface ImGroupMessageService { | ||
| 37 | * @param userId 当前用户编号 | 37 | * @param userId 当前用户编号 |
| 38 | * @param groupId 群编号 | 38 | * @param groupId 群编号 |
| 39 | */ | 39 | */ |
| 40 | - void readMessages(Long userId, Long groupId); | 40 | + void readGroupMessages(Long userId, Long groupId); |
| 41 | 41 | ||
| 42 | /** | 42 | /** |
| 43 | * 撤回群聊消息 | 43 | * 撤回群聊消息 |
| @@ -45,7 +45,7 @@ public interface ImGroupMessageService { | @@ -45,7 +45,7 @@ public interface ImGroupMessageService { | ||
| 45 | * @param userId 当前用户编号 | 45 | * @param userId 当前用户编号 |
| 46 | * @param messageId 消息编号 | 46 | * @param messageId 消息编号 |
| 47 | */ | 47 | */ |
| 48 | - void recallMessage(Long userId, Long messageId); | 48 | + void recallGroupMessage(Long userId, Long messageId); |
| 49 | 49 | ||
| 50 | /** | 50 | /** |
| 51 | * 获取群消息的已读用户列表 | 51 | * 获取群消息的已读用户列表 |
| @@ -55,6 +55,6 @@ public interface ImGroupMessageService { | @@ -55,6 +55,6 @@ public interface ImGroupMessageService { | ||
| 55 | * @param messageId 消息编号 | 55 | * @param messageId 消息编号 |
| 56 | * @return 已读用户编号列表 | 56 | * @return 已读用户编号列表 |
| 57 | */ | 57 | */ |
| 58 | - List<Long> getReadUsers(Long userId, Long groupId, Long messageId); | 58 | + List<Long> getGroupReadUsers(Long userId, Long groupId, Long messageId); |
| 59 | 59 | ||
| 60 | } | 60 | } |
yudao-module-im/yudao-module-im-biz/src/main/java/cn/iocoder/yudao/module/im/service/message/ImGroupMessageServiceImpl.java
| @@ -55,7 +55,7 @@ public class ImGroupMessageServiceImpl implements ImGroupMessageService { | @@ -55,7 +55,7 @@ public class ImGroupMessageServiceImpl implements ImGroupMessageService { | ||
| 55 | private WebSocketMessageSender webSocketMessageSender; | 55 | private WebSocketMessageSender webSocketMessageSender; |
| 56 | 56 | ||
| 57 | @Override | 57 | @Override |
| 58 | - public ImGroupMessageDO sendMessage(Long senderId, ImGroupMessageSendReqVO reqVO) { | 58 | + public ImGroupMessageDO sendGroupMessage(Long senderId, ImGroupMessageSendReqVO reqVO) { |
| 59 | // 1. 幂等校验 | 59 | // 1. 幂等校验 |
| 60 | ImGroupMessageDO existing = imGroupMessageMapper.selectBySenderIdAndClientMessageId( | 60 | ImGroupMessageDO existing = imGroupMessageMapper.selectBySenderIdAndClientMessageId( |
| 61 | senderId, reqVO.getClientMessageId()); | 61 | senderId, reqVO.getClientMessageId()); |
| @@ -100,7 +100,7 @@ public class ImGroupMessageServiceImpl implements ImGroupMessageService { | @@ -100,7 +100,7 @@ public class ImGroupMessageServiceImpl implements ImGroupMessageService { | ||
| 100 | } | 100 | } |
| 101 | 101 | ||
| 102 | @Override | 102 | @Override |
| 103 | - public List<ImGroupMessageDO> pullMessages(Long userId, Long minId, Integer size) { | 103 | + public List<ImGroupMessageDO> pullGroupMessages(Long userId, Long minId, Integer size) { |
| 104 | if (size > MAX_PULL_SIZE) { | 104 | if (size > MAX_PULL_SIZE) { |
| 105 | throw exception(MESSAGE_PULL_SIZE_EXCEEDED); | 105 | throw exception(MESSAGE_PULL_SIZE_EXCEEDED); |
| 106 | } | 106 | } |
| @@ -145,7 +145,7 @@ public class ImGroupMessageServiceImpl implements ImGroupMessageService { | @@ -145,7 +145,7 @@ public class ImGroupMessageServiceImpl implements ImGroupMessageService { | ||
| 145 | } | 145 | } |
| 146 | 146 | ||
| 147 | @Override | 147 | @Override |
| 148 | - public void readMessages(Long userId, Long groupId) { | 148 | + public void readGroupMessages(Long userId, Long groupId) { |
| 149 | // 1. 校验用户在群中(权限校验) | 149 | // 1. 校验用户在群中(权限校验) |
| 150 | ImGroupMemberDO member = imGroupMemberService.getGroupMember(groupId, userId); | 150 | ImGroupMemberDO member = imGroupMemberService.getGroupMember(groupId, userId); |
| 151 | if (member == null || CommonStatusEnum.DISABLE.getStatus().equals(member.getStatus())) { | 151 | if (member == null || CommonStatusEnum.DISABLE.getStatus().equals(member.getStatus())) { |
| @@ -173,7 +173,7 @@ public class ImGroupMessageServiceImpl implements ImGroupMessageService { | @@ -173,7 +173,7 @@ public class ImGroupMessageServiceImpl implements ImGroupMessageService { | ||
| 173 | } | 173 | } |
| 174 | 174 | ||
| 175 | @Override | 175 | @Override |
| 176 | - public void recallMessage(Long userId, Long messageId) { | 176 | + public void recallGroupMessage(Long userId, Long messageId) { |
| 177 | // 1. 校验消息存在 | 177 | // 1. 校验消息存在 |
| 178 | ImGroupMessageDO message = imGroupMessageMapper.selectById(messageId); | 178 | ImGroupMessageDO message = imGroupMessageMapper.selectById(messageId); |
| 179 | if (message == null) { | 179 | if (message == null) { |
| @@ -210,7 +210,7 @@ public class ImGroupMessageServiceImpl implements ImGroupMessageService { | @@ -210,7 +210,7 @@ public class ImGroupMessageServiceImpl implements ImGroupMessageService { | ||
| 210 | } | 210 | } |
| 211 | 211 | ||
| 212 | @Override | 212 | @Override |
| 213 | - public List<Long> getReadUsers(Long userId, Long groupId, Long messageId) { | 213 | + public List<Long> getGroupReadUsers(Long userId, Long groupId, Long messageId) { |
| 214 | // 1. 校验用户在群中(权限校验) | 214 | // 1. 校验用户在群中(权限校验) |
| 215 | ImGroupMemberDO currentMember = imGroupMemberService.getGroupMember(groupId, userId); | 215 | ImGroupMemberDO currentMember = imGroupMemberService.getGroupMember(groupId, userId); |
| 216 | if (currentMember == null || CommonStatusEnum.DISABLE.getStatus().equals(currentMember.getStatus())) { | 216 | if (currentMember == null || CommonStatusEnum.DISABLE.getStatus().equals(currentMember.getStatus())) { |
yudao-module-im/yudao-module-im-biz/src/main/java/cn/iocoder/yudao/module/im/service/message/ImPrivateMessageService.java
| @@ -19,7 +19,7 @@ public interface ImPrivateMessageService { | @@ -19,7 +19,7 @@ public interface ImPrivateMessageService { | ||
| 19 | * @param reqVO 发送请求 | 19 | * @param reqVO 发送请求 |
| 20 | * @return 消息 | 20 | * @return 消息 |
| 21 | */ | 21 | */ |
| 22 | - ImPrivateMessageDO sendMessage(Long senderId, ImPrivateMessageSendReqVO reqVO); | 22 | + ImPrivateMessageDO sendPrivateMessage(Long senderId, ImPrivateMessageSendReqVO reqVO); |
| 23 | 23 | ||
| 24 | /** | 24 | /** |
| 25 | * 拉取私聊消息(增量) | 25 | * 拉取私聊消息(增量) |
| @@ -29,7 +29,7 @@ public interface ImPrivateMessageService { | @@ -29,7 +29,7 @@ public interface ImPrivateMessageService { | ||
| 29 | * @param size 拉取数量 | 29 | * @param size 拉取数量 |
| 30 | * @return 消息列表 | 30 | * @return 消息列表 |
| 31 | */ | 31 | */ |
| 32 | - List<ImPrivateMessageDO> pullMessages(Long userId, Long minId, Integer size); | 32 | + List<ImPrivateMessageDO> pullPrivateMessages(Long userId, Long minId, Integer size); |
| 33 | 33 | ||
| 34 | /** | 34 | /** |
| 35 | * 标记私聊消息已读 | 35 | * 标记私聊消息已读 |
| @@ -37,7 +37,7 @@ public interface ImPrivateMessageService { | @@ -37,7 +37,7 @@ public interface ImPrivateMessageService { | ||
| 37 | * @param userId 当前用户编号 | 37 | * @param userId 当前用户编号 |
| 38 | * @param friendId 好友用户编号 | 38 | * @param friendId 好友用户编号 |
| 39 | */ | 39 | */ |
| 40 | - void readMessages(Long userId, Long friendId); | 40 | + void readPrivateMessages(Long userId, Long friendId); |
| 41 | 41 | ||
| 42 | /** | 42 | /** |
| 43 | * 撤回私聊消息 | 43 | * 撤回私聊消息 |
| @@ -45,6 +45,6 @@ public interface ImPrivateMessageService { | @@ -45,6 +45,6 @@ public interface ImPrivateMessageService { | ||
| 45 | * @param userId 当前用户编号 | 45 | * @param userId 当前用户编号 |
| 46 | * @param messageId 消息编号 | 46 | * @param messageId 消息编号 |
| 47 | */ | 47 | */ |
| 48 | - void recallMessage(Long userId, Long messageId); | 48 | + void recallPrivateMessage(Long userId, Long messageId); |
| 49 | 49 | ||
| 50 | } | 50 | } |
yudao-module-im/yudao-module-im-biz/src/main/java/cn/iocoder/yudao/module/im/service/message/ImPrivateMessageServiceImpl.java
| @@ -50,7 +50,7 @@ public class ImPrivateMessageServiceImpl implements ImPrivateMessageService { | @@ -50,7 +50,7 @@ public class ImPrivateMessageServiceImpl implements ImPrivateMessageService { | ||
| 50 | private WebSocketMessageSender webSocketMessageSender; | 50 | private WebSocketMessageSender webSocketMessageSender; |
| 51 | 51 | ||
| 52 | @Override | 52 | @Override |
| 53 | - public ImPrivateMessageDO sendMessage(Long senderId, ImPrivateMessageSendReqVO reqVO) { | 53 | + public ImPrivateMessageDO sendPrivateMessage(Long senderId, ImPrivateMessageSendReqVO reqVO) { |
| 54 | // 1.1 幂等校验:根据 senderId + clientMessageId 查重 | 54 | // 1.1 幂等校验:根据 senderId + clientMessageId 查重 |
| 55 | ImPrivateMessageDO existing = imPrivateMessageMapper.selectBySenderIdAndClientMessageId( | 55 | ImPrivateMessageDO existing = imPrivateMessageMapper.selectBySenderIdAndClientMessageId( |
| 56 | senderId, reqVO.getClientMessageId()); | 56 | senderId, reqVO.getClientMessageId()); |
| @@ -80,7 +80,7 @@ public class ImPrivateMessageServiceImpl implements ImPrivateMessageService { | @@ -80,7 +80,7 @@ public class ImPrivateMessageServiceImpl implements ImPrivateMessageService { | ||
| 80 | } | 80 | } |
| 81 | 81 | ||
| 82 | @Override | 82 | @Override |
| 83 | - public List<ImPrivateMessageDO> pullMessages(Long userId, Long minId, Integer size) { | 83 | + public List<ImPrivateMessageDO> pullPrivateMessages(Long userId, Long minId, Integer size) { |
| 84 | if (size > MAX_PULL_SIZE) { | 84 | if (size > MAX_PULL_SIZE) { |
| 85 | throw exception(MESSAGE_PULL_SIZE_EXCEEDED); | 85 | throw exception(MESSAGE_PULL_SIZE_EXCEEDED); |
| 86 | } | 86 | } |
| @@ -89,7 +89,7 @@ public class ImPrivateMessageServiceImpl implements ImPrivateMessageService { | @@ -89,7 +89,7 @@ public class ImPrivateMessageServiceImpl implements ImPrivateMessageService { | ||
| 89 | 89 | ||
| 90 | // DONE @芋艿:已 review,逻辑正确 | 90 | // DONE @芋艿:已 review,逻辑正确 |
| 91 | @Override | 91 | @Override |
| 92 | - public void readMessages(Long userId, Long friendId) { | 92 | + public void readPrivateMessages(Long userId, Long friendId) { |
| 93 | // 1. 批量更新消息状态为已读 | 93 | // 1. 批量更新消息状态为已读 |
| 94 | int updated = imPrivateMessageMapper.updateStatusToRead(userId, friendId); | 94 | int updated = imPrivateMessageMapper.updateStatusToRead(userId, friendId); |
| 95 | if (updated == 0) { | 95 | if (updated == 0) { |
| @@ -114,7 +114,7 @@ public class ImPrivateMessageServiceImpl implements ImPrivateMessageService { | @@ -114,7 +114,7 @@ public class ImPrivateMessageServiceImpl implements ImPrivateMessageService { | ||
| 114 | 114 | ||
| 115 | // DONE @芋艿:已 review,逻辑正确 | 115 | // DONE @芋艿:已 review,逻辑正确 |
| 116 | @Override | 116 | @Override |
| 117 | - public void recallMessage(Long userId, Long messageId) { | 117 | + public void recallPrivateMessage(Long userId, Long messageId) { |
| 118 | // 1.1 校验消息存在 | 118 | // 1.1 校验消息存在 |
| 119 | ImPrivateMessageDO message = imPrivateMessageMapper.selectById(messageId); | 119 | ImPrivateMessageDO message = imPrivateMessageMapper.selectById(messageId); |
| 120 | if (message == null) { | 120 | if (message == null) { |
yudao-module-im/yudao-module-im-biz/src/test/java/cn/iocoder/yudao/module/im/service/message/ImGroupMessageServiceImplTest.java
| @@ -96,7 +96,7 @@ public class ImGroupMessageServiceImplTest { | @@ -96,7 +96,7 @@ public class ImGroupMessageServiceImplTest { | ||
| 96 | }); | 96 | }); |
| 97 | 97 | ||
| 98 | // 调用 | 98 | // 调用 |
| 99 | - ImGroupMessageDO result = groupMessageService.sendMessage(1L, reqVO); | 99 | + ImGroupMessageDO result = groupMessageService.sendGroupMessage(1L, reqVO); |
| 100 | 100 | ||
| 101 | // 断言 | 101 | // 断言 |
| 102 | assertNotNull(result); | 102 | assertNotNull(result); |
| @@ -121,7 +121,7 @@ public class ImGroupMessageServiceImplTest { | @@ -121,7 +121,7 @@ public class ImGroupMessageServiceImplTest { | ||
| 121 | .thenReturn(existing); | 121 | .thenReturn(existing); |
| 122 | 122 | ||
| 123 | // 调用 | 123 | // 调用 |
| 124 | - ImGroupMessageDO result = groupMessageService.sendMessage(1L, reqVO); | 124 | + ImGroupMessageDO result = groupMessageService.sendGroupMessage(1L, reqVO); |
| 125 | 125 | ||
| 126 | // 断言 | 126 | // 断言 |
| 127 | assertEquals(100L, result.getId()); | 127 | assertEquals(100L, result.getId()); |
| @@ -141,7 +141,7 @@ public class ImGroupMessageServiceImplTest { | @@ -141,7 +141,7 @@ public class ImGroupMessageServiceImplTest { | ||
| 141 | 141 | ||
| 142 | // 调用并断言 | 142 | // 调用并断言 |
| 143 | ServiceException exception = assertThrows(ServiceException.class, | 143 | ServiceException exception = assertThrows(ServiceException.class, |
| 144 | - () -> groupMessageService.sendMessage(1L, reqVO)); | 144 | + () -> groupMessageService.sendGroupMessage(1L, reqVO)); |
| 145 | assertEquals(GROUP_MEMBER_NOT_IN_GROUP.getCode(), exception.getCode()); | 145 | assertEquals(GROUP_MEMBER_NOT_IN_GROUP.getCode(), exception.getCode()); |
| 146 | } | 146 | } |
| 147 | 147 | ||
| @@ -168,7 +168,7 @@ public class ImGroupMessageServiceImplTest { | @@ -168,7 +168,7 @@ public class ImGroupMessageServiceImplTest { | ||
| 168 | .thenReturn(List.of(beforeJoin, afterJoin)); | 168 | .thenReturn(List.of(beforeJoin, afterJoin)); |
| 169 | 169 | ||
| 170 | // 调用 | 170 | // 调用 |
| 171 | - List<ImGroupMessageDO> result = groupMessageService.pullMessages(1L, 0L, 100); | 171 | + List<ImGroupMessageDO> result = groupMessageService.pullGroupMessages(1L, 0L, 100); |
| 172 | 172 | ||
| 173 | // 断言:入群前消息不可见 | 173 | // 断言:入群前消息不可见 |
| 174 | assertEquals(1, result.size()); | 174 | assertEquals(1, result.size()); |
| @@ -197,7 +197,7 @@ public class ImGroupMessageServiceImplTest { | @@ -197,7 +197,7 @@ public class ImGroupMessageServiceImplTest { | ||
| 197 | .thenReturn(List.of(beforeQuit, afterQuit)); | 197 | .thenReturn(List.of(beforeQuit, afterQuit)); |
| 198 | 198 | ||
| 199 | // 调用 | 199 | // 调用 |
| 200 | - List<ImGroupMessageDO> result = groupMessageService.pullMessages(1L, 0L, 100); | 200 | + List<ImGroupMessageDO> result = groupMessageService.pullGroupMessages(1L, 0L, 100); |
| 201 | 201 | ||
| 202 | // 断言:退群后消息不可见 | 202 | // 断言:退群后消息不可见 |
| 203 | assertEquals(1, result.size()); | 203 | assertEquals(1, result.size()); |
| @@ -216,7 +216,7 @@ public class ImGroupMessageServiceImplTest { | @@ -216,7 +216,7 @@ public class ImGroupMessageServiceImplTest { | ||
| 216 | // 定向接收消息:只给用户 2 和 3 | 216 | // 定向接收消息:只给用户 2 和 3 |
| 217 | ImGroupMessageDO directedMsg = ImGroupMessageDO.builder() | 217 | ImGroupMessageDO directedMsg = ImGroupMessageDO.builder() |
| 218 | .id(1L).groupId(10L).senderId(5L) | 218 | .id(1L).groupId(10L).senderId(5L) |
| 219 | - .receiverUserIds("2,3") | 219 | + .receiverUserIds(List.of(2L, 3L)) |
| 220 | .sendTime(LocalDateTime.of(2026, 4, 12, 10, 0, 0)).build(); | 220 | .sendTime(LocalDateTime.of(2026, 4, 12, 10, 0, 0)).build(); |
| 221 | // 全员消息 | 221 | // 全员消息 |
| 222 | ImGroupMessageDO allMsg = ImGroupMessageDO.builder() | 222 | ImGroupMessageDO allMsg = ImGroupMessageDO.builder() |
| @@ -226,7 +226,7 @@ public class ImGroupMessageServiceImplTest { | @@ -226,7 +226,7 @@ public class ImGroupMessageServiceImplTest { | ||
| 226 | .thenReturn(List.of(directedMsg, allMsg)); | 226 | .thenReturn(List.of(directedMsg, allMsg)); |
| 227 | 227 | ||
| 228 | // 调用 | 228 | // 调用 |
| 229 | - List<ImGroupMessageDO> result = groupMessageService.pullMessages(1L, 0L, 100); | 229 | + List<ImGroupMessageDO> result = groupMessageService.pullGroupMessages(1L, 0L, 100); |
| 230 | 230 | ||
| 231 | // 断言:定向接收的消息用户 1 看不到,只能看到全员消息 | 231 | // 断言:定向接收的消息用户 1 看不到,只能看到全员消息 |
| 232 | assertEquals(1, result.size()); | 232 | assertEquals(1, result.size()); |
| @@ -244,17 +244,17 @@ public class ImGroupMessageServiceImplTest { | @@ -244,17 +244,17 @@ public class ImGroupMessageServiceImplTest { | ||
| 244 | 244 | ||
| 245 | ImGroupMessageDO atMsg = ImGroupMessageDO.builder() | 245 | ImGroupMessageDO atMsg = ImGroupMessageDO.builder() |
| 246 | .id(1L).groupId(10L).senderId(2L) | 246 | .id(1L).groupId(10L).senderId(2L) |
| 247 | - .atUserIds("1,3") | 247 | + .atUserIds(List.of(1L, 3L)) |
| 248 | .sendTime(LocalDateTime.of(2026, 4, 12, 10, 0, 0)).build(); | 248 | .sendTime(LocalDateTime.of(2026, 4, 12, 10, 0, 0)).build(); |
| 249 | when(imGroupMessageMapper.selectListByMinId(List.of(10L), 0L, 100)) | 249 | when(imGroupMessageMapper.selectListByMinId(List.of(10L), 0L, 100)) |
| 250 | .thenReturn(List.of(atMsg)); | 250 | .thenReturn(List.of(atMsg)); |
| 251 | 251 | ||
| 252 | // 调用 | 252 | // 调用 |
| 253 | - List<ImGroupMessageDO> result = groupMessageService.pullMessages(1L, 0L, 100); | 253 | + List<ImGroupMessageDO> result = groupMessageService.pullGroupMessages(1L, 0L, 100); |
| 254 | 254 | ||
| 255 | // 断言:@ 字段正确返回 | 255 | // 断言:@ 字段正确返回 |
| 256 | assertEquals(1, result.size()); | 256 | assertEquals(1, result.size()); |
| 257 | - assertEquals("1,3", result.get(0).getAtUserIds()); | 257 | + assertEquals(List.of(1L, 3L), result.get(0).getAtUserIds()); |
| 258 | } | 258 | } |
| 259 | 259 | ||
| 260 | // ========== 撤回测试 ========== | 260 | // ========== 撤回测试 ========== |
| @@ -279,7 +279,7 @@ public class ImGroupMessageServiceImplTest { | @@ -279,7 +279,7 @@ public class ImGroupMessageServiceImplTest { | ||
| 279 | when(imGroupMemberService.selectByGroupId(10L)).thenReturn(members); | 279 | when(imGroupMemberService.selectByGroupId(10L)).thenReturn(members); |
| 280 | 280 | ||
| 281 | // 调用 | 281 | // 调用 |
| 282 | - groupMessageService.recallMessage(1L, 50L); | 282 | + groupMessageService.recallGroupMessage(1L, 50L); |
| 283 | 283 | ||
| 284 | // 断言:只给 2 个活跃成员发送 RECALL 事件(userId=3 已退群) | 284 | // 断言:只给 2 个活跃成员发送 RECALL 事件(userId=3 已退群) |
| 285 | verify(webSocketMessageSender, times(2)).sendObject(anyInt(), anyLong(), anyString(), any()); | 285 | verify(webSocketMessageSender, times(2)).sendObject(anyInt(), anyLong(), anyString(), any()); |
| @@ -294,7 +294,7 @@ public class ImGroupMessageServiceImplTest { | @@ -294,7 +294,7 @@ public class ImGroupMessageServiceImplTest { | ||
| 294 | 294 | ||
| 295 | // 调用并断言:越权校验 | 295 | // 调用并断言:越权校验 |
| 296 | ServiceException exception = assertThrows(ServiceException.class, | 296 | ServiceException exception = assertThrows(ServiceException.class, |
| 297 | - () -> groupMessageService.readMessages(1L, 10L)); | 297 | + () -> groupMessageService.readGroupMessages(1L, 10L)); |
| 298 | assertEquals(GROUP_MEMBER_NOT_IN_GROUP.getCode(), exception.getCode()); | 298 | assertEquals(GROUP_MEMBER_NOT_IN_GROUP.getCode(), exception.getCode()); |
| 299 | } | 299 | } |
| 300 | 300 | ||
| @@ -340,7 +340,7 @@ public class ImGroupMessageServiceImplTest { | @@ -340,7 +340,7 @@ public class ImGroupMessageServiceImplTest { | ||
| 340 | when(groupReadPositionRedisDAO.getAllReadPositions(10L)).thenReturn(positions); | 340 | when(groupReadPositionRedisDAO.getAllReadPositions(10L)).thenReturn(positions); |
| 341 | 341 | ||
| 342 | // 调用:查询 messageId=80 的已读用户 | 342 | // 调用:查询 messageId=80 的已读用户 |
| 343 | - List<Long> readUsers = groupMessageService.getReadUsers(1L, 10L, 80L); | 343 | + List<Long> readUsers = groupMessageService.getGroupReadUsers(1L, 10L, 80L); |
| 344 | 344 | ||
| 345 | // 断言: | 345 | // 断言: |
| 346 | // 用户 1: 可见 + readMaxId=100>=80 → 已读 ✓(但排除发送者?不是发送者,所以算入) | 346 | // 用户 1: 可见 + readMaxId=100>=80 → 已读 ✓(但排除发送者?不是发送者,所以算入) |
| @@ -361,7 +361,7 @@ public class ImGroupMessageServiceImplTest { | @@ -361,7 +361,7 @@ public class ImGroupMessageServiceImplTest { | ||
| 361 | 361 | ||
| 362 | // 调用并断言:越权校验 | 362 | // 调用并断言:越权校验 |
| 363 | ServiceException exception = assertThrows(ServiceException.class, | 363 | ServiceException exception = assertThrows(ServiceException.class, |
| 364 | - () -> groupMessageService.getReadUsers(99L, 10L, 80L)); | 364 | + () -> groupMessageService.getGroupReadUsers(99L, 10L, 80L)); |
| 365 | assertEquals(GROUP_MEMBER_NOT_IN_GROUP.getCode(), exception.getCode()); | 365 | assertEquals(GROUP_MEMBER_NOT_IN_GROUP.getCode(), exception.getCode()); |
| 366 | } | 366 | } |
| 367 | 367 |
yudao-module-im/yudao-module-im-biz/src/test/java/cn/iocoder/yudao/module/im/service/message/ImPrivateMessageServiceImplTest.java
| @@ -66,7 +66,7 @@ public class ImPrivateMessageServiceImplTest { | @@ -66,7 +66,7 @@ public class ImPrivateMessageServiceImplTest { | ||
| 66 | }); | 66 | }); |
| 67 | 67 | ||
| 68 | // 调用 | 68 | // 调用 |
| 69 | - ImPrivateMessageDO result = privateMessageService.sendMessage(1L, reqVO); | 69 | + ImPrivateMessageDO result = privateMessageService.sendPrivateMessage(1L, reqVO); |
| 70 | 70 | ||
| 71 | // 断言 | 71 | // 断言 |
| 72 | assertNotNull(result); | 72 | assertNotNull(result); |
| @@ -95,7 +95,7 @@ public class ImPrivateMessageServiceImplTest { | @@ -95,7 +95,7 @@ public class ImPrivateMessageServiceImplTest { | ||
| 95 | .thenReturn(existingMessage); | 95 | .thenReturn(existingMessage); |
| 96 | 96 | ||
| 97 | // 调用 | 97 | // 调用 |
| 98 | - ImPrivateMessageDO result = privateMessageService.sendMessage(1L, reqVO); | 98 | + ImPrivateMessageDO result = privateMessageService.sendPrivateMessage(1L, reqVO); |
| 99 | 99 | ||
| 100 | // 断言:返回已存在的消息 | 100 | // 断言:返回已存在的消息 |
| 101 | assertEquals(100L, result.getId()); | 101 | assertEquals(100L, result.getId()); |
| @@ -114,7 +114,7 @@ public class ImPrivateMessageServiceImplTest { | @@ -114,7 +114,7 @@ public class ImPrivateMessageServiceImplTest { | ||
| 114 | 114 | ||
| 115 | // 调用并断言 | 115 | // 调用并断言 |
| 116 | ServiceException exception = assertThrows(ServiceException.class, | 116 | ServiceException exception = assertThrows(ServiceException.class, |
| 117 | - () -> privateMessageService.sendMessage(1L, reqVO)); | 117 | + () -> privateMessageService.sendPrivateMessage(1L, reqVO)); |
| 118 | assertEquals(FRIEND_NOT_FRIEND.getCode(), exception.getCode()); | 118 | assertEquals(FRIEND_NOT_FRIEND.getCode(), exception.getCode()); |
| 119 | } | 119 | } |
| 120 | 120 | ||
| @@ -130,7 +130,7 @@ public class ImPrivateMessageServiceImplTest { | @@ -130,7 +130,7 @@ public class ImPrivateMessageServiceImplTest { | ||
| 130 | when(imPrivateMessageMapper.selectListByMinId(1L, 0L, 100)).thenReturn(mockMessages); | 130 | when(imPrivateMessageMapper.selectListByMinId(1L, 0L, 100)).thenReturn(mockMessages); |
| 131 | 131 | ||
| 132 | // 调用 | 132 | // 调用 |
| 133 | - List<ImPrivateMessageDO> result = privateMessageService.pullMessages(1L, 0L, 100); | 133 | + List<ImPrivateMessageDO> result = privateMessageService.pullPrivateMessages(1L, 0L, 100); |
| 134 | 134 | ||
| 135 | // 断言 | 135 | // 断言 |
| 136 | assertEquals(2, result.size()); | 136 | assertEquals(2, result.size()); |
| @@ -140,7 +140,7 @@ public class ImPrivateMessageServiceImplTest { | @@ -140,7 +140,7 @@ public class ImPrivateMessageServiceImplTest { | ||
| 140 | public void testPullMessages_sizeExceeded() { | 140 | public void testPullMessages_sizeExceeded() { |
| 141 | // 调用并断言 | 141 | // 调用并断言 |
| 142 | ServiceException exception = assertThrows(ServiceException.class, | 142 | ServiceException exception = assertThrows(ServiceException.class, |
| 143 | - () -> privateMessageService.pullMessages(1L, 0L, 1001)); | 143 | + () -> privateMessageService.pullPrivateMessages(1L, 0L, 1001)); |
| 144 | assertEquals(MESSAGE_PULL_SIZE_EXCEEDED.getCode(), exception.getCode()); | 144 | assertEquals(MESSAGE_PULL_SIZE_EXCEEDED.getCode(), exception.getCode()); |
| 145 | } | 145 | } |
| 146 | 146 | ||
| @@ -152,7 +152,7 @@ public class ImPrivateMessageServiceImplTest { | @@ -152,7 +152,7 @@ public class ImPrivateMessageServiceImplTest { | ||
| 152 | when(imPrivateMessageMapper.updateStatusToRead(1L, 2L)).thenReturn(3); | 152 | when(imPrivateMessageMapper.updateStatusToRead(1L, 2L)).thenReturn(3); |
| 153 | 153 | ||
| 154 | // 调用 | 154 | // 调用 |
| 155 | - privateMessageService.readMessages(1L, 2L); | 155 | + privateMessageService.readPrivateMessages(1L, 2L); |
| 156 | 156 | ||
| 157 | // 断言:发送了 READ 和 RECEIPT 事件 | 157 | // 断言:发送了 READ 和 RECEIPT 事件 |
| 158 | verify(webSocketMessageSender, times(2)).sendObject(anyInt(), anyLong(), anyString(), any()); | 158 | verify(webSocketMessageSender, times(2)).sendObject(anyInt(), anyLong(), anyString(), any()); |
| @@ -170,7 +170,7 @@ public class ImPrivateMessageServiceImplTest { | @@ -170,7 +170,7 @@ public class ImPrivateMessageServiceImplTest { | ||
| 170 | when(imPrivateMessageMapper.updateById(any(ImPrivateMessageDO.class))).thenReturn(1); | 170 | when(imPrivateMessageMapper.updateById(any(ImPrivateMessageDO.class))).thenReturn(1); |
| 171 | 171 | ||
| 172 | // 调用 | 172 | // 调用 |
| 173 | - privateMessageService.recallMessage(1L, 10L); | 173 | + privateMessageService.recallPrivateMessage(1L, 10L); |
| 174 | 174 | ||
| 175 | // 断言 | 175 | // 断言 |
| 176 | verify(imPrivateMessageMapper).updateById(any(ImPrivateMessageDO.class)); | 176 | verify(imPrivateMessageMapper).updateById(any(ImPrivateMessageDO.class)); |
| @@ -188,7 +188,7 @@ public class ImPrivateMessageServiceImplTest { | @@ -188,7 +188,7 @@ public class ImPrivateMessageServiceImplTest { | ||
| 188 | 188 | ||
| 189 | // 调用并断言 | 189 | // 调用并断言 |
| 190 | ServiceException exception = assertThrows(ServiceException.class, | 190 | ServiceException exception = assertThrows(ServiceException.class, |
| 191 | - () -> privateMessageService.recallMessage(1L, 10L)); | 191 | + () -> privateMessageService.recallPrivateMessage(1L, 10L)); |
| 192 | assertEquals(MESSAGE_RECALL_DENIED.getCode(), exception.getCode()); | 192 | assertEquals(MESSAGE_RECALL_DENIED.getCode(), exception.getCode()); |
| 193 | } | 193 | } |
| 194 | 194 | ||
| @@ -202,7 +202,7 @@ public class ImPrivateMessageServiceImplTest { | @@ -202,7 +202,7 @@ public class ImPrivateMessageServiceImplTest { | ||
| 202 | 202 | ||
| 203 | // 调用并断言 | 203 | // 调用并断言 |
| 204 | ServiceException exception = assertThrows(ServiceException.class, | 204 | ServiceException exception = assertThrows(ServiceException.class, |
| 205 | - () -> privateMessageService.recallMessage(1L, 10L)); | 205 | + () -> privateMessageService.recallPrivateMessage(1L, 10L)); |
| 206 | assertEquals(MESSAGE_ALREADY_RECALLED.getCode(), exception.getCode()); | 206 | assertEquals(MESSAGE_ALREADY_RECALLED.getCode(), exception.getCode()); |
| 207 | } | 207 | } |
| 208 | 208 |
yudao-module-im/yudao-module-im-biz/src/test/java/cn/iocoder/yudao/module/im/service/message/ImWebSocketEventTest.java
| @@ -60,7 +60,7 @@ public class ImWebSocketEventTest { | @@ -60,7 +60,7 @@ public class ImWebSocketEventTest { | ||
| 60 | }); | 60 | }); |
| 61 | 61 | ||
| 62 | // 调用 | 62 | // 调用 |
| 63 | - privateMessageService.sendMessage(1L, reqVO); | 63 | + privateMessageService.sendPrivateMessage(1L, reqVO); |
| 64 | 64 | ||
| 65 | // 捕获 WebSocket 调用 | 65 | // 捕获 WebSocket 调用 |
| 66 | ArgumentCaptor<String> typeCaptor = ArgumentCaptor.forClass(String.class); | 66 | ArgumentCaptor<String> typeCaptor = ArgumentCaptor.forClass(String.class); |
| @@ -87,7 +87,7 @@ public class ImWebSocketEventTest { | @@ -87,7 +87,7 @@ public class ImWebSocketEventTest { | ||
| 87 | when(imPrivateMessageMapper.updateStatusToRead(1L, 2L)).thenReturn(1); | 87 | when(imPrivateMessageMapper.updateStatusToRead(1L, 2L)).thenReturn(1); |
| 88 | 88 | ||
| 89 | // 调用 | 89 | // 调用 |
| 90 | - privateMessageService.readMessages(1L, 2L); | 90 | + privateMessageService.readPrivateMessages(1L, 2L); |
| 91 | 91 | ||
| 92 | // 捕获 | 92 | // 捕获 |
| 93 | ArgumentCaptor<String> typeCaptor = ArgumentCaptor.forClass(String.class); | 93 | ArgumentCaptor<String> typeCaptor = ArgumentCaptor.forClass(String.class); |
| @@ -112,7 +112,7 @@ public class ImWebSocketEventTest { | @@ -112,7 +112,7 @@ public class ImWebSocketEventTest { | ||
| 112 | when(imPrivateMessageMapper.updateById(any(ImPrivateMessageDO.class))).thenReturn(1); | 112 | when(imPrivateMessageMapper.updateById(any(ImPrivateMessageDO.class))).thenReturn(1); |
| 113 | 113 | ||
| 114 | // 调用 | 114 | // 调用 |
| 115 | - privateMessageService.recallMessage(1L, 10L); | 115 | + privateMessageService.recallPrivateMessage(1L, 10L); |
| 116 | 116 | ||
| 117 | // 捕获 | 117 | // 捕获 |
| 118 | ArgumentCaptor<String> typeCaptor = ArgumentCaptor.forClass(String.class); | 118 | ArgumentCaptor<String> typeCaptor = ArgumentCaptor.forClass(String.class); |