diff --git a/yudao-module-im/yudao-module-im-api/src/main/java/cn/iocoder/yudao/module/im/enums/conversation/ConversationTypeEnum.java b/yudao-module-im/yudao-module-im-api/src/main/java/cn/iocoder/yudao/module/im/enums/conversation/ConversationTypeEnum.java index 091f3af3f5..bc128243a1 100644 --- a/yudao-module-im/yudao-module-im-api/src/main/java/cn/iocoder/yudao/module/im/enums/conversation/ConversationTypeEnum.java +++ b/yudao-module-im/yudao-module-im-api/src/main/java/cn/iocoder/yudao/module/im/enums/conversation/ConversationTypeEnum.java @@ -6,6 +6,7 @@ import lombok.Getter; import java.util.Arrays; +// TODO @anhaohao:IM 前缀还是要的哈 /** * IM 会话类型枚举 * 参考 “会话类型” 文档 @@ -38,7 +39,7 @@ public enum ConversationTypeEnum implements IntArrayValuable { } /** - * 生成会话编号 + * 生成会话编号 TODO @anhaohao:方法注释,和下面参数之间,要有空格 * @param fromUserId 发送者编号 * @param receiverId 接收者编号 * @param conversationType 会话类型 diff --git a/yudao-module-im/yudao-module-im-api/src/main/java/cn/iocoder/yudao/module/im/enums/message/MessageContentTypeEnum.java b/yudao-module-im/yudao-module-im-api/src/main/java/cn/iocoder/yudao/module/im/enums/message/MessageContentTypeEnum.java index 580ed21056..f0e756987d 100644 --- a/yudao-module-im/yudao-module-im-api/src/main/java/cn/iocoder/yudao/module/im/enums/message/MessageContentTypeEnum.java +++ b/yudao-module-im/yudao-module-im-api/src/main/java/cn/iocoder/yudao/module/im/enums/message/MessageContentTypeEnum.java @@ -6,7 +6,7 @@ import lombok.Getter; import java.util.Arrays; - +// TODO @anhaohao:IM 前缀还是要的哈 /** * IM 消息的类型枚举 *
@@ -34,11 +34,11 @@ public enum MessageContentTypeEnum implements IntArrayValuable {
QUOTE(114, "引用消息"),
FACE(115, "表情消息"),
ADVANCED_REVOKE(118, "高级撤回消息"),
- //好友通知 1200-1299
+ // ========== 好友通知 1200-1299 ===========
FRIEND_ADDED(1201, "双方成为好友通知"),
- //系统通知 1400
+ // ========== 系统通知 1400 ==========
OA_NOTIFICATION(1400, "系统通知"),
- //群相关 1500-1599
+ // ========== 群相关 1500-1599 ==========
GROUP_CREATED(1501, "群创建通知"),
GROUP_INFO_CHANGED(1502, "群信息改变通知"),
MEMBER_QUIT(1504, "群成员退出通知"),
diff --git a/yudao-module-im/yudao-module-im-api/src/main/java/cn/iocoder/yudao/module/im/enums/message/MessageSourceEnum.java b/yudao-module-im/yudao-module-im-api/src/main/java/cn/iocoder/yudao/module/im/enums/message/MessageSourceEnum.java
index 3b04c97723..caa81ab4d7 100644
--- a/yudao-module-im/yudao-module-im-api/src/main/java/cn/iocoder/yudao/module/im/enums/message/MessageSourceEnum.java
+++ b/yudao-module-im/yudao-module-im-api/src/main/java/cn/iocoder/yudao/module/im/enums/message/MessageSourceEnum.java
@@ -6,8 +6,9 @@ import lombok.RequiredArgsConstructor;
import java.util.Arrays;
+// TODO @anhaohao:IM 前缀还是要的哈
/**
- * IM 消息的消息来源 100-用户发送;200-系统发送(一般是通知);不能为空
+ * IM 消息的消息来源
*/
@RequiredArgsConstructor
@Getter
@@ -18,11 +19,11 @@ public enum MessageSourceEnum implements IntArrayValuable {
public static final int[] ARRAYS = Arrays.stream(values()).mapToInt(MessageSourceEnum::getStatus).toArray();
+ // TODO @anhaohao:应该是 source
/**
* 状态
*/
private final Integer status;
-
/**
* 名字
*/
diff --git a/yudao-module-im/yudao-module-im-api/src/main/java/cn/iocoder/yudao/module/im/enums/message/MessageStatusEnum.java b/yudao-module-im/yudao-module-im-api/src/main/java/cn/iocoder/yudao/module/im/enums/message/MessageStatusEnum.java
index 389d9fdd70..fc7092040c 100644
--- a/yudao-module-im/yudao-module-im-api/src/main/java/cn/iocoder/yudao/module/im/enums/message/MessageStatusEnum.java
+++ b/yudao-module-im/yudao-module-im-api/src/main/java/cn/iocoder/yudao/module/im/enums/message/MessageStatusEnum.java
@@ -6,6 +6,15 @@ import lombok.RequiredArgsConstructor;
import java.util.Arrays;
+// TODO @anhaohao:IM 前缀还是要的哈
+// TODO TODO 状态是这些哈,客户端的视角:
+//
+//- 草稿(预留) 0
+//- 发送中 1
+//- 发送成功 2
+//- 发送失败 3
+//- 已删除 4
+//- 已撤回 5
/**
* IM 消息的状态枚举
*/
diff --git a/yudao-module-im/yudao-module-im-biz/src/main/java/cn/iocoder/yudao/module/im/controller/admin/conversation/ConversationController.java b/yudao-module-im/yudao-module-im-biz/src/main/java/cn/iocoder/yudao/module/im/controller/admin/conversation/ConversationController.java
index 35478c1d7e..33cb85765c 100755
--- a/yudao-module-im/yudao-module-im-biz/src/main/java/cn/iocoder/yudao/module/im/controller/admin/conversation/ConversationController.java
+++ b/yudao-module-im/yudao-module-im-biz/src/main/java/cn/iocoder/yudao/module/im/controller/admin/conversation/ConversationController.java
@@ -18,6 +18,7 @@ import java.util.List;
import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success;
+// TODO @anhaohao:im 前缀少啦
@Tag(name = "管理后台 - IM 会话")
@RestController
@RequestMapping("/im/conversation")
@@ -42,7 +43,6 @@ public class ConversationController {
return success(true);
}
-
// TODO @hao:这个接口,需要单独的 VO 哈;
@PostMapping("/update-last-read-time")
@Operation(summary = "更新最后已读时间")
diff --git a/yudao-module-im/yudao-module-im-biz/src/main/java/cn/iocoder/yudao/module/im/controller/admin/conversation/vo/ConversationLastTimeReqVO.java b/yudao-module-im/yudao-module-im-biz/src/main/java/cn/iocoder/yudao/module/im/controller/admin/conversation/vo/ConversationLastTimeReqVO.java
index dd516d50d6..dfd05a0692 100755
--- a/yudao-module-im/yudao-module-im-biz/src/main/java/cn/iocoder/yudao/module/im/controller/admin/conversation/vo/ConversationLastTimeReqVO.java
+++ b/yudao-module-im/yudao-module-im-biz/src/main/java/cn/iocoder/yudao/module/im/controller/admin/conversation/vo/ConversationLastTimeReqVO.java
@@ -7,10 +7,12 @@ import lombok.Data;
import java.time.LocalDateTime;
+// TODO @anhaohao:改成 ConversationUpdateLastReadTimeReqVO,项目目前都是动名词哈。更新置顶
@Schema(description = "管理后台 - 会话最后已读时间 Request VO")
@Data
public class ConversationLastTimeReqVO {
+ // TODO @anhaohao:no 不用传递哈。因为 userId + targetId 可以推出来
@Schema(description = "会话标志", requiredMode = Schema.RequiredMode.REQUIRED, example = "s_1_2")
@NotEmpty(message = "会话标志不能为空")
private String no;
@@ -19,6 +21,7 @@ public class ConversationLastTimeReqVO {
@NotNull(message = "最后已读时间不能为空")
private LocalDateTime lastReadTime;
+ // TODO @anhaohao:userId 不用传递,因为 token 已经能解析出当前用户
@Schema(description = "所属用户", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
private Long userId;
@@ -26,6 +29,6 @@ public class ConversationLastTimeReqVO {
private Long targetId;
@Schema(description = "会话类型",requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
- private Integer type; //枚举 ConversationTypeEnum
+ private Integer type; // 枚举 ConversationTypeEnum TODO ,这里可以使用 @InEnum 校验,这样这个注释就不用写了
}
\ No newline at end of file
diff --git a/yudao-module-im/yudao-module-im-biz/src/main/java/cn/iocoder/yudao/module/im/controller/admin/conversation/vo/ConversationPinnedReqVO.java b/yudao-module-im/yudao-module-im-biz/src/main/java/cn/iocoder/yudao/module/im/controller/admin/conversation/vo/ConversationPinnedReqVO.java
index f84a3219ca..f10ae27f99 100755
--- a/yudao-module-im/yudao-module-im-biz/src/main/java/cn/iocoder/yudao/module/im/controller/admin/conversation/vo/ConversationPinnedReqVO.java
+++ b/yudao-module-im/yudao-module-im-biz/src/main/java/cn/iocoder/yudao/module/im/controller/admin/conversation/vo/ConversationPinnedReqVO.java
@@ -8,10 +8,12 @@ import lombok.Data;
import java.time.LocalDateTime;
+// TODO @anhaohao:改成 ConversationUpdatePinnedReqVO,项目目前都是动名词哈。更新置顶
@Schema(description = "管理后台 - 会话置顶 Request VO")
@Data
public class ConversationPinnedReqVO {
+ // TODO @anhaohao:no 不用传递哈。因为 userId + targetId 可以推出来
@Schema(description = "会话标志", requiredMode = Schema.RequiredMode.REQUIRED, example = "s_1_2")
@NotEmpty(message = "会话标志不能为空")
private String no;
@@ -20,6 +22,7 @@ public class ConversationPinnedReqVO {
@NotNull(message = "是否置顶不能为空")
private Boolean pinned;
+ // TODO @anhaohao:userId 不用传递,因为 token 已经能解析出当前用户
@Schema(description = "所属用户", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
private Long userId;
@@ -27,8 +30,6 @@ public class ConversationPinnedReqVO {
private Long targetId;
@Schema(description = "会话类型",requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
- private Integer type; //枚举 ConversationTypeEnum
-
-
+ private Integer type; // 枚举 ConversationTypeEnum TODO ,这里可以使用 @InEnum 校验,这样这个注释就不用写了
}
\ No newline at end of file
diff --git a/yudao-module-im/yudao-module-im-biz/src/main/java/cn/iocoder/yudao/module/im/controller/admin/group/ImGroupController.java b/yudao-module-im/yudao-module-im-biz/src/main/java/cn/iocoder/yudao/module/im/controller/admin/group/ImGroupController.java
index abd97bff16..778b94098d 100644
--- a/yudao-module-im/yudao-module-im-biz/src/main/java/cn/iocoder/yudao/module/im/controller/admin/group/ImGroupController.java
+++ b/yudao-module-im/yudao-module-im-biz/src/main/java/cn/iocoder/yudao/module/im/controller/admin/group/ImGroupController.java
@@ -28,6 +28,7 @@ import cn.iocoder.yudao.module.im.controller.admin.group.vo.*;
import cn.iocoder.yudao.module.im.dal.dataobject.group.GroupDO;
import cn.iocoder.yudao.module.im.service.group.ImGroupService;
+// TODO @芋艿:得看看 create、update、delete、get、page 这几个接口,要保留哪些
@Tag(name = "管理后台 - 群")
@RestController
@RequestMapping("/im/group")
@@ -78,6 +79,7 @@ public class ImGroupController {
return success(BeanUtils.toBean(pageResult, ImGroupRespVO.class));
}
+ // TODO @anhaohao:导出可以先不做哈;
@GetMapping("/export-excel")
@Operation(summary = "导出群 Excel")
@PreAuthorize("@ss.hasPermission('im:group:export')")
diff --git a/yudao-module-im/yudao-module-im-biz/src/main/java/cn/iocoder/yudao/module/im/controller/admin/groupmember/ImGroupMemberController.java b/yudao-module-im/yudao-module-im-biz/src/main/java/cn/iocoder/yudao/module/im/controller/admin/groupmember/ImGroupMemberController.java
index 3e63bcdc64..285ea422bb 100644
--- a/yudao-module-im/yudao-module-im-biz/src/main/java/cn/iocoder/yudao/module/im/controller/admin/groupmember/ImGroupMemberController.java
+++ b/yudao-module-im/yudao-module-im-biz/src/main/java/cn/iocoder/yudao/module/im/controller/admin/groupmember/ImGroupMemberController.java
@@ -27,6 +27,7 @@ import java.util.List;
import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success;
import static cn.iocoder.yudao.framework.operatelog.core.enums.OperateTypeEnum.EXPORT;
+// TODO @芋艿:得看看 create、update、delete、get、page 这几个接口,要保留哪些
@Tag(name = "管理后台 - 群成员")
@RestController
@RequestMapping("/im/group-member")
diff --git a/yudao-module-im/yudao-module-im-biz/src/main/java/cn/iocoder/yudao/module/im/controller/admin/inbox/vo/InboxSaveMessageReqVO.java b/yudao-module-im/yudao-module-im-biz/src/main/java/cn/iocoder/yudao/module/im/controller/admin/inbox/vo/InboxSaveMessageReqVO.java
index f48a002bd6..35691cbfb9 100644
--- a/yudao-module-im/yudao-module-im-biz/src/main/java/cn/iocoder/yudao/module/im/controller/admin/inbox/vo/InboxSaveMessageReqVO.java
+++ b/yudao-module-im/yudao-module-im-biz/src/main/java/cn/iocoder/yudao/module/im/controller/admin/inbox/vo/InboxSaveMessageReqVO.java
@@ -5,6 +5,7 @@ import lombok.Data;
import java.time.LocalDateTime;
+// TODO @anhaohao:im 前缀哈
@Schema(description = "管理后台 - 收件箱保存消息 Request VO")
@Data
public class InboxSaveMessageReqVO {
@@ -20,7 +21,7 @@ public class InboxSaveMessageReqVO {
@Schema(description = "发送人头像", requiredMode = Schema.RequiredMode.REQUIRED)
private String senderAvatar;
-
+
@Schema(description = "接收人编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "32494")
private Long receiverId;
diff --git a/yudao-module-im/yudao-module-im-biz/src/main/java/cn/iocoder/yudao/module/im/controller/admin/message/MessageController.java b/yudao-module-im/yudao-module-im-biz/src/main/java/cn/iocoder/yudao/module/im/controller/admin/message/MessageController.java
index 1325cbd1c0..5923a93799 100755
--- a/yudao-module-im/yudao-module-im-biz/src/main/java/cn/iocoder/yudao/module/im/controller/admin/message/MessageController.java
+++ b/yudao-module-im/yudao-module-im-biz/src/main/java/cn/iocoder/yudao/module/im/controller/admin/message/MessageController.java
@@ -36,6 +36,7 @@ public class MessageController {
return success(messageService.sendMessage(getLoginUserId(), message));
}
+ // TODO @anhaohao:我在想,这个接口,改成叫 pullMessageList,会不会更好理解?拉取消息列表
@GetMapping("/list-by-sequence")
@Operation(summary = "拉取大于 sequence 的消息列表")
@Parameter(name = "sequence", description = "序号", required = true, example = "1")
@@ -46,6 +47,7 @@ public class MessageController {
return success(BeanUtils.toBean(messages, MessageReqVO.class));
}
+ // TODO @anhaohao:直接叫 getMessageList,不叫历史哈;因为它只是给用户叫历史,对系统来说,就是消息列表
@GetMapping("/history")
@Operation(summary = "查询聊天记录-根据会话标志和发送时间进行分页查询")
public CommonResult
- * 1. 单聊时,用户编号;群聊时,群编号
+ * 1. 单聊时,用户编号;
+ * 2. 群聊时,群编号
*/
private Long targetId;
/**
- * 会话标志 单聊:s_{userId}_{targetId},需要排序 userId 和 targetId 群聊:g_groupId
+ * 会话标志
+ *
+ * 1. 单聊:s_{userId}_{targetId},需要排序 userId 和 targetId
+ * 2. 群聊:g_groupId
*/
private String no;
/**
- * 是否置顶 0否 1是
+ * 是否置顶
*/
private Boolean pinned;
/**
diff --git a/yudao-module-im/yudao-module-im-biz/src/main/java/cn/iocoder/yudao/module/im/dal/dataobject/group/GroupDO.java b/yudao-module-im/yudao-module-im-biz/src/main/java/cn/iocoder/yudao/module/im/dal/dataobject/group/GroupDO.java
index ce6b1a6af3..8f846933dd 100644
--- a/yudao-module-im/yudao-module-im-biz/src/main/java/cn/iocoder/yudao/module/im/dal/dataobject/group/GroupDO.java
+++ b/yudao-module-im/yudao-module-im-biz/src/main/java/cn/iocoder/yudao/module/im/dal/dataobject/group/GroupDO.java
@@ -6,6 +6,7 @@ import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.*;
+// TODO @anhaohao:还是要有 IM
/**
* IM 群信息 DO
*
diff --git a/yudao-module-im/yudao-module-im-biz/src/main/java/cn/iocoder/yudao/module/im/dal/dataobject/group/GroupMemberDO.java b/yudao-module-im/yudao-module-im-biz/src/main/java/cn/iocoder/yudao/module/im/dal/dataobject/group/GroupMemberDO.java
index 0ccffeea85..87db7ec4f1 100644
--- a/yudao-module-im/yudao-module-im-biz/src/main/java/cn/iocoder/yudao/module/im/dal/dataobject/group/GroupMemberDO.java
+++ b/yudao-module-im/yudao-module-im-biz/src/main/java/cn/iocoder/yudao/module/im/dal/dataobject/group/GroupMemberDO.java
@@ -4,6 +4,7 @@ import lombok.*;
import com.baomidou.mybatisplus.annotation.*;
import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;
+// TODO @anhaohao:还是要有 IM
/**
* IM 群成员 DO
*
diff --git a/yudao-module-im/yudao-module-im-biz/src/main/java/cn/iocoder/yudao/module/im/dal/dataobject/inbox/InboxDO.java b/yudao-module-im/yudao-module-im-biz/src/main/java/cn/iocoder/yudao/module/im/dal/dataobject/inbox/InboxDO.java
index 62accc3c02..11b8c090bf 100755
--- a/yudao-module-im/yudao-module-im-biz/src/main/java/cn/iocoder/yudao/module/im/dal/dataobject/inbox/InboxDO.java
+++ b/yudao-module-im/yudao-module-im-biz/src/main/java/cn/iocoder/yudao/module/im/dal/dataobject/inbox/InboxDO.java
@@ -1,11 +1,13 @@
package cn.iocoder.yudao.module.im.dal.dataobject.inbox;
import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;
+import cn.iocoder.yudao.module.im.dal.dataobject.message.MessageDO;
import com.baomidou.mybatisplus.annotation.KeySequence;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.*;
+// TODO @anhaohao:还是要有 IM
// TODO 我们要不要改成 ImMessageQueue 队列?从理解上,概念上,可能都更清晰一点哈。每个用户一个消息队列;
/**
* IM 收件箱 DO
@@ -35,6 +37,8 @@ public class InboxDO extends BaseDO {
private Long userId;
/**
* 消息编号
+ *
+ * 关联 {@link MessageDO#getId()}
*/
private Long messageId;
/**
diff --git a/yudao-module-im/yudao-module-im-biz/src/main/java/cn/iocoder/yudao/module/im/dal/dataobject/message/MessageDO.java b/yudao-module-im/yudao-module-im-biz/src/main/java/cn/iocoder/yudao/module/im/dal/dataobject/message/MessageDO.java
index 7f89a93deb..d6b3f6728a 100755
--- a/yudao-module-im/yudao-module-im-biz/src/main/java/cn/iocoder/yudao/module/im/dal/dataobject/message/MessageDO.java
+++ b/yudao-module-im/yudao-module-im-biz/src/main/java/cn/iocoder/yudao/module/im/dal/dataobject/message/MessageDO.java
@@ -12,6 +12,7 @@ import lombok.*;
import java.time.LocalDateTime;
+// TODO @anhaohao:还是要有 IM
/**
* IM 消息 DO
*
@@ -63,15 +64,21 @@ public class MessageDO extends BaseDO {
*/
private Integer conversationType;
/**
- * 会话标志 {@link ConversationTypeEnum} 的generateConversationNo() 方法生成
+ * 会话标志
+ *
+ * 生成规则:{@link ConversationTypeEnum#generateConversationNo(Long, Long, Integer)} 方法
*/
private String conversationNo;
/**
- * 消息类型 枚举 {@link MessageContentTypeEnum}
+ * 消息类型
+ *
+ * 枚举 {@link MessageContentTypeEnum}
*/
private Integer contentType;
/**
- * 消息内容 JSON 格式 对应 dal/dataobject/message/content 包
+ * 消息内容
+ *
+ * JSON 格式 对应 dal/dataobject/message/content 包
*/
private String content;
/**
@@ -79,11 +86,15 @@ public class MessageDO extends BaseDO {
*/
private LocalDateTime sendTime;
/**
- * 消息来源 枚举 {@link MessageSourceEnum}
+ * 消息来源
+ *
+ * 枚举 {@link MessageSourceEnum}
*/
private Integer sendFrom;
/**
- * 消息状态 枚举 {@link MessageStatusEnum}
+ * 消息状态
+ *
+ * 枚举 {@link MessageStatusEnum}
*/
private Integer messageStatus;
diff --git a/yudao-module-im/yudao-module-im-biz/src/main/java/cn/iocoder/yudao/module/im/dal/dataobject/message/content/AudioMessage.java b/yudao-module-im/yudao-module-im-biz/src/main/java/cn/iocoder/yudao/module/im/dal/dataobject/message/content/AudioMessage.java
index 41420acde3..9258ce7342 100644
--- a/yudao-module-im/yudao-module-im-biz/src/main/java/cn/iocoder/yudao/module/im/dal/dataobject/message/content/AudioMessage.java
+++ b/yudao-module-im/yudao-module-im-biz/src/main/java/cn/iocoder/yudao/module/im/dal/dataobject/message/content/AudioMessage.java
@@ -5,6 +5,8 @@ import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
+// TODO @anhaohao:要有 IM;
+// TODO @芋艿:后续要挪到 api 包下,主要是给外部接口使用
/**
* 语音消息的 {@link MessageDO 字段 content} 的内容
*
diff --git a/yudao-module-im/yudao-module-im-biz/src/main/java/cn/iocoder/yudao/module/im/dal/mysql/inbox/InboxMapper.java b/yudao-module-im/yudao-module-im-biz/src/main/java/cn/iocoder/yudao/module/im/dal/mysql/inbox/InboxMapper.java
index 26c1145930..73921fca21 100755
--- a/yudao-module-im/yudao-module-im-biz/src/main/java/cn/iocoder/yudao/module/im/dal/mysql/inbox/InboxMapper.java
+++ b/yudao-module-im/yudao-module-im-biz/src/main/java/cn/iocoder/yudao/module/im/dal/mysql/inbox/InboxMapper.java
@@ -15,12 +15,13 @@ import java.util.List;
@Mapper
public interface InboxMapper extends BaseMapperX> getHistoryMessage(@Valid MessagePageReqVO pageReqVO) {
diff --git a/yudao-module-im/yudao-module-im-biz/src/main/java/cn/iocoder/yudao/module/im/controller/admin/message/vo/MessagePageReqVO.java b/yudao-module-im/yudao-module-im-biz/src/main/java/cn/iocoder/yudao/module/im/controller/admin/message/vo/MessagePageReqVO.java
index 01e7b70920..2bac34409a 100755
--- a/yudao-module-im/yudao-module-im-biz/src/main/java/cn/iocoder/yudao/module/im/controller/admin/message/vo/MessagePageReqVO.java
+++ b/yudao-module-im/yudao-module-im-biz/src/main/java/cn/iocoder/yudao/module/im/controller/admin/message/vo/MessagePageReqVO.java
@@ -10,14 +10,19 @@ import java.time.LocalDateTime;
import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY;
import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;
+// TODO @anhaohao:这个类,不要交 Page,而是消息列表,MessageListReqVO
@Schema(description = "管理后台 - 消息分页 Request VO")
@Data
@ToString(callSuper = true)
public class MessagePageReqVO {
+ // TODO @anhaohao:还是传递 targetId 和 conversationType,我们要弱化 no 的概念;
+
@Schema(description = "会话标志", requiredMode = Schema.RequiredMode.REQUIRED, example = "g_1000")
private String conversationNo;
+ // TODO @anhaohao:应该不传递时间范围,而是传递分页的时间,然后根据时间,查询消息
+
@Schema(description = "发送时间", requiredMode = Schema.RequiredMode.REQUIRED, example = "2024-03-27")
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
private LocalDateTime[] sendTime;
diff --git a/yudao-module-im/yudao-module-im-biz/src/main/java/cn/iocoder/yudao/module/im/controller/admin/message/vo/MessageReqVO.java b/yudao-module-im/yudao-module-im-biz/src/main/java/cn/iocoder/yudao/module/im/controller/admin/message/vo/MessageReqVO.java
index 16ec8c512e..8dac88ce28 100755
--- a/yudao-module-im/yudao-module-im-biz/src/main/java/cn/iocoder/yudao/module/im/controller/admin/message/vo/MessageReqVO.java
+++ b/yudao-module-im/yudao-module-im-biz/src/main/java/cn/iocoder/yudao/module/im/controller/admin/message/vo/MessageReqVO.java
@@ -12,6 +12,8 @@ import java.time.LocalDateTime;
import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;
+// TODO @anhaohao:MessageRespVO 消息响应 Response VO
+// TODO @anahaohao:每个 example 都写下;啊哈,漏了地方,要补下;因为 http mock 的时候,可以根据它去生成
@Schema(description = "管理后台 - 消息 Request VO")
@Data
public class MessageReqVO {
@@ -22,6 +24,7 @@ public class MessageReqVO {
@Schema(description = "会话类型", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
private Integer conversationType; // 对应 ImConversationTypeEnum 枚举
+ // TODO @anhaohao:这个应该是 senderId
@Schema(description = "发送人编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024")
private Long fromId; // 根据 conversationType 区分
diff --git a/yudao-module-im/yudao-module-im-biz/src/main/java/cn/iocoder/yudao/module/im/controller/admin/message/vo/SendMessageReqVO.java b/yudao-module-im/yudao-module-im-biz/src/main/java/cn/iocoder/yudao/module/im/controller/admin/message/vo/SendMessageReqVO.java
index dd97a9c410..15f6e909c9 100755
--- a/yudao-module-im/yudao-module-im-biz/src/main/java/cn/iocoder/yudao/module/im/controller/admin/message/vo/SendMessageReqVO.java
+++ b/yudao-module-im/yudao-module-im-biz/src/main/java/cn/iocoder/yudao/module/im/controller/admin/message/vo/SendMessageReqVO.java
@@ -7,6 +7,10 @@ import com.alibaba.excel.annotation.ExcelProperty;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
+// TODO @anhaohao:MessageSendReqVO,消息发送
+
+// TODO @anhaohao:不应该有 excel 相关的注解
+
@Schema(description = "管理后台 - 发送消息 Request VO")
@Data
@ExcelIgnoreUnannotated
diff --git a/yudao-module-im/yudao-module-im-biz/src/main/java/cn/iocoder/yudao/module/im/controller/admin/message/vo/SendMessageRespVO.java b/yudao-module-im/yudao-module-im-biz/src/main/java/cn/iocoder/yudao/module/im/controller/admin/message/vo/SendMessageRespVO.java
index 79ac75707b..534cf254b5 100755
--- a/yudao-module-im/yudao-module-im-biz/src/main/java/cn/iocoder/yudao/module/im/controller/admin/message/vo/SendMessageRespVO.java
+++ b/yudao-module-im/yudao-module-im-biz/src/main/java/cn/iocoder/yudao/module/im/controller/admin/message/vo/SendMessageRespVO.java
@@ -10,6 +10,8 @@ import java.time.LocalDateTime;
import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;
+// TODO @anhaohao:MessageSendRespVO,消息发送结果
+
@Schema(description = "管理后台 - 发送消息 Response VO")
@Data
@AllArgsConstructor
diff --git a/yudao-module-im/yudao-module-im-biz/src/main/java/cn/iocoder/yudao/module/im/dal/dataobject/conversation/ConversationDO.java b/yudao-module-im/yudao-module-im-biz/src/main/java/cn/iocoder/yudao/module/im/dal/dataobject/conversation/ConversationDO.java
index 0f8f22e663..4342179cdc 100755
--- a/yudao-module-im/yudao-module-im-biz/src/main/java/cn/iocoder/yudao/module/im/dal/dataobject/conversation/ConversationDO.java
+++ b/yudao-module-im/yudao-module-im-biz/src/main/java/cn/iocoder/yudao/module/im/dal/dataobject/conversation/ConversationDO.java
@@ -9,6 +9,7 @@ import lombok.*;
import java.time.LocalDateTime;
+// TODO @anhaohao:还是有 IM 前缀哈
/**
* IM 会话 DO
*
@@ -44,15 +45,19 @@ public class ConversationDO extends BaseDO {
/**
* 聊天对象编号
*