From 1269e626cac290050db7eff3956b2c0eaf839e08 Mon Sep 17 00:00:00 2001 From: YunaiV Date: Sun, 12 Apr 2026 11:15:54 +0800 Subject: [PATCH] 📝 refactor(controller): 移除不必要的导入和注解,优化会话和群成员响应对象 --- yudao-module-im/yudao-module-im-biz/src/main/java/cn/iocoder/yudao/module/im/dal/dataobject/message/ImMessageDO.java | 100 ---------------------------------------------------------------------------------------------------- yudao-module-im/yudao-module-im-biz/src/main/java/cn/iocoder/yudao/module/im/dal/redis/inbox/InboxLockRedisDAO.java | 39 --------------------------------------- yudao-module-im/yudao-module-im-biz/src/main/java/cn/iocoder/yudao/module/im/dal/redis/inbox/SequenceRedisDAO.java | 36 ------------------------------------ 3 files changed, 0 insertions(+), 175 deletions(-) delete mode 100755 yudao-module-im/yudao-module-im-biz/src/main/java/cn/iocoder/yudao/module/im/dal/dataobject/message/ImMessageDO.java delete mode 100644 yudao-module-im/yudao-module-im-biz/src/main/java/cn/iocoder/yudao/module/im/dal/redis/inbox/InboxLockRedisDAO.java delete mode 100644 yudao-module-im/yudao-module-im-biz/src/main/java/cn/iocoder/yudao/module/im/dal/redis/inbox/SequenceRedisDAO.java diff --git a/yudao-module-im/yudao-module-im-biz/src/main/java/cn/iocoder/yudao/module/im/dal/dataobject/message/ImMessageDO.java b/yudao-module-im/yudao-module-im-biz/src/main/java/cn/iocoder/yudao/module/im/dal/dataobject/message/ImMessageDO.java deleted file mode 100755 index 93b4acf..0000000 --- a/yudao-module-im/yudao-module-im-biz/src/main/java/cn/iocoder/yudao/module/im/dal/dataobject/message/ImMessageDO.java +++ /dev/null @@ -1,100 +0,0 @@ -package cn.iocoder.yudao.module.im.dal.dataobject.message; - -import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO; -import cn.iocoder.yudao.module.im.enums.conversation.ImConversationTypeEnum; -import cn.iocoder.yudao.module.im.enums.message.ImMessageContentTypeEnum; -import cn.iocoder.yudao.module.im.enums.message.ImMessageSourceEnum; -import cn.iocoder.yudao.module.im.enums.message.ImMessageStatusEnum; -import com.baomidou.mybatisplus.annotation.KeySequence; -import com.baomidou.mybatisplus.annotation.TableId; -import com.baomidou.mybatisplus.annotation.TableName; -import lombok.*; - -import java.time.LocalDateTime; - -/** - * IM 消息 DO - * - * @author 芋道源码 - */ -@TableName("im_message") -@KeySequence("im_message_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。 -@Data -@EqualsAndHashCode(callSuper = true) -@ToString(callSuper = true) -@Builder -@NoArgsConstructor -@AllArgsConstructor -public class ImMessageDO extends BaseDO { - - /** - * 编号 - */ - @TableId - private Long id; - /** - * 客户端消息编号 uuid,用于排重 - */ - private String clientMessageId; - /** - * 发送人编号 存储的是用户编号 - */ - private Long senderId; - /** - * 接收人编号 - *

- * 1. 单聊时,用户编号;群聊时,群编号 - */ - private Long receiverId; - /** - * 消息发送者昵称 - *

- * 冗余 AdminUserDO 的 nickname 字段 - */ - private String senderNickname; - /** - * 消息发送者头像 - *

- * 冗余 AdminUserDO 的 avatar 字段 - */ - private String senderAvatar; - /** - * 会话类型 枚举 {@link ImConversationTypeEnum} - */ - private Integer conversationType; - /** - * 会话标志 - *

- * 生成规则:{@link ImConversationTypeEnum#generateConversationNo(Long, Long, Integer)} 方法 - */ - private String conversationNo; - /** - * 消息类型 - *

- * 枚举 {@link ImMessageContentTypeEnum} - */ - private Integer contentType; - /** - * 消息内容 - *

- * JSON 格式 对应 dal/dataobject/message/content 包 - */ - private String content; - /** - * 发送时间 - */ - private LocalDateTime sendTime; - /** - * 消息来源 - *

- * 枚举 {@link ImMessageSourceEnum} - */ - private Integer sendFrom; - /** - * 消息状态 - *

- * 枚举 {@link ImMessageStatusEnum} - */ - private Integer messageStatus; - -} \ No newline at end of file diff --git a/yudao-module-im/yudao-module-im-biz/src/main/java/cn/iocoder/yudao/module/im/dal/redis/inbox/InboxLockRedisDAO.java b/yudao-module-im/yudao-module-im-biz/src/main/java/cn/iocoder/yudao/module/im/dal/redis/inbox/InboxLockRedisDAO.java deleted file mode 100644 index a247d09..0000000 --- a/yudao-module-im/yudao-module-im-biz/src/main/java/cn/iocoder/yudao/module/im/dal/redis/inbox/InboxLockRedisDAO.java +++ /dev/null @@ -1,39 +0,0 @@ -package cn.iocoder.yudao.module.im.dal.redis.inbox; - -import jakarta.annotation.Resource; -import org.redisson.api.RLock; -import org.redisson.api.RedissonClient; -import org.springframework.stereotype.Repository; - -import java.util.concurrent.TimeUnit; - -import static cn.iocoder.yudao.module.im.dal.redis.RedisKeyConstants.INBOX_LOCK; - -/** - * 收件箱的锁 Redis DAO - * - * @author 芋道源码 - */ -@Repository -public class InboxLockRedisDAO { - - @Resource - private RedissonClient redissonClient; - - private static String formatKey(Long id) { - return String.format(INBOX_LOCK, id); - } - - public void lock(Long id, Long timeoutMillis, Runnable runnable) { - String lockKey = formatKey(id); - RLock lock = redissonClient.getLock(lockKey); - try { - lock.lock(timeoutMillis, TimeUnit.MILLISECONDS); - // 执行逻辑 - runnable.run(); - } finally { - lock.unlock(); - } - } - -} diff --git a/yudao-module-im/yudao-module-im-biz/src/main/java/cn/iocoder/yudao/module/im/dal/redis/inbox/SequenceRedisDAO.java b/yudao-module-im/yudao-module-im-biz/src/main/java/cn/iocoder/yudao/module/im/dal/redis/inbox/SequenceRedisDAO.java deleted file mode 100644 index 6b8c066..0000000 --- a/yudao-module-im/yudao-module-im-biz/src/main/java/cn/iocoder/yudao/module/im/dal/redis/inbox/SequenceRedisDAO.java +++ /dev/null @@ -1,36 +0,0 @@ -package cn.iocoder.yudao.module.im.dal.redis.inbox; - -import jakarta.annotation.Resource; -import org.springframework.data.redis.core.RedisTemplate; -import org.springframework.stereotype.Repository; - -import static cn.iocoder.yudao.module.im.dal.redis.RedisKeyConstants.INBOX_SEQUENCE; - -// TODO @芋艿:这个名字,需要在考虑下;至少先搞个 IM 前缀 - -/** - * 序号生成器 Redis DAO - * - * @author anhaohao - */ -@Repository -public class SequenceRedisDAO { - - @Resource - private RedisTemplate redisTemplate; - - private static String formatKey(Long userId) { - return String.format(INBOX_SEQUENCE, userId); - } - - /** - * 生成序号 - * - * @param userId 用户编号 - * @return 序号 - */ - public Long generateSequence(Long userId) { - return redisTemplate.opsForValue().increment(formatKey(userId), 1); - } - -} -- libgit2 0.21.4