From 11300ed86ee803697ae98bcf922160ffba296e3b Mon Sep 17 00:00:00 2001 From: tangmingyou <234767776@qq.com> Date: Tue, 31 May 2022 16:14:39 +0800 Subject: [PATCH] das mapper --- .../soim/das/user/api/config/LogicTables.java | 12 +++++++++++ .../das/user/api/model/entity/ImFriend.java | 8 +++++-- .../das/user/api/model/entity/ImGroup.java | 3 ++- .../user/api/model/entity/ImGroupMessage.java | 3 ++- .../user/api/model/entity/ImGroupUser.java | 3 ++- .../das/user/api/model/entity/ImMessage.java | 3 ++- .../soim/das/user/api/service/FriendDas.java | 2 ++ .../main/resources/META-INF/spring.factories | 2 +- .../sopod/soim/das/user/amqp/Receiver.java | 21 ++++++++++++++----- .../net/sopod/soim/das/user/amqp/Sender.java | 16 ++++++++++---- .../soim/das/user/dao/ImGroupMapper.java | 14 +++++++++++++ .../das/user/dao/ImGroupMessageMapper.java | 14 +++++++++++++ .../soim/das/user/dao/ImMessageMapper.java | 14 +++++++++++++ .../soim/das/user/service/FriendDasImpl.java | 17 +++++++++------ .../main/resources/mapper/ImGroupMapper.xml | 5 +++++ .../resources/mapper/ImGroupMessageMapper.xml | 5 +++++ .../main/resources/mapper/ImMessageMapper.xml | 5 +++++ .../logic/user/service/ChatServiceImpl.java | 10 +++++++++ im-service/im-router/pom.xml | 4 ++++ .../router/service/UserRouteServiceImpl.java | 12 +++++------ 20 files changed, 144 insertions(+), 29 deletions(-) create mode 100644 im-das/im-das-user/src/main/java/net/sopod/soim/das/user/dao/ImGroupMapper.java create mode 100644 im-das/im-das-user/src/main/java/net/sopod/soim/das/user/dao/ImGroupMessageMapper.java create mode 100644 im-das/im-das-user/src/main/java/net/sopod/soim/das/user/dao/ImMessageMapper.java create mode 100644 im-das/im-das-user/src/main/resources/mapper/ImGroupMapper.xml create mode 100644 im-das/im-das-user/src/main/resources/mapper/ImGroupMessageMapper.xml create mode 100644 im-das/im-das-user/src/main/resources/mapper/ImMessageMapper.xml diff --git a/im-das-api/im-das-user-api/src/main/java/net/sopod/soim/das/user/api/config/LogicTables.java b/im-das-api/im-das-user-api/src/main/java/net/sopod/soim/das/user/api/config/LogicTables.java index 0b30c67..298bb45 100644 --- a/im-das-api/im-das-user-api/src/main/java/net/sopod/soim/das/user/api/config/LogicTables.java +++ b/im-das-api/im-das-user-api/src/main/java/net/sopod/soim/das/user/api/config/LogicTables.java @@ -8,8 +8,20 @@ package net.sopod.soim.das.user.api.config; */ public interface LogicTables { + Integer STATUS_DEL = 0; + + Integer STATUS_NORMAL = 1; + String IM_USER = "im_user"; String IM_FRIEND = "im_friend"; + String IM_MESSAGE = "im_message"; + + String IM_GROUP = "im_group"; + + String IM_GROUP_USER = "im_group_user"; + + String IM_GROUP_MESSAGE = "im_group_message"; + } diff --git a/im-das-api/im-das-user-api/src/main/java/net/sopod/soim/das/user/api/model/entity/ImFriend.java b/im-das-api/im-das-user-api/src/main/java/net/sopod/soim/das/user/api/model/entity/ImFriend.java index 0890cd6..ef5d323 100644 --- a/im-das-api/im-das-user-api/src/main/java/net/sopod/soim/das/user/api/model/entity/ImFriend.java +++ b/im-das-api/im-das-user-api/src/main/java/net/sopod/soim/das/user/api/model/entity/ImFriend.java @@ -6,6 +6,7 @@ import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import lombok.Data; import lombok.experimental.Accessors; +import net.sopod.soim.das.user.api.config.LogicTables; import java.io.Serializable; import java.util.Date; @@ -19,7 +20,7 @@ import java.util.Date; */ @Data @Accessors(chain = true) -@TableName("im_friend") +@TableName(LogicTables.IM_FRIEND) public class ImFriend implements Serializable { private static final long serialVersionUID = -4703347353944742873L; @@ -36,7 +37,10 @@ public class ImFriend implements Serializable { @TableField(value = "fid") private Long fid; - /** 状态:0删除1正常 */ + /** + * 状态:0删除1正常 + * TODO 2临时好友(群单聊) + **/ @TableField(value = "status") private Integer status; diff --git a/im-das-api/im-das-user-api/src/main/java/net/sopod/soim/das/user/api/model/entity/ImGroup.java b/im-das-api/im-das-user-api/src/main/java/net/sopod/soim/das/user/api/model/entity/ImGroup.java index 325fbc2..8e4d5cc 100644 --- a/im-das-api/im-das-user-api/src/main/java/net/sopod/soim/das/user/api/model/entity/ImGroup.java +++ b/im-das-api/im-das-user-api/src/main/java/net/sopod/soim/das/user/api/model/entity/ImGroup.java @@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import lombok.Data; import lombok.experimental.Accessors; +import net.sopod.soim.das.user.api.config.LogicTables; import java.io.Serializable; import java.util.Date; @@ -17,7 +18,7 @@ import java.util.Date; */ @Data @Accessors(chain = true) -@TableName("im_group") +@TableName(LogicTables.IM_GROUP) public class ImGroup implements Serializable { private static final long serialVersionUID = 2081139176340955425L; diff --git a/im-das-api/im-das-user-api/src/main/java/net/sopod/soim/das/user/api/model/entity/ImGroupMessage.java b/im-das-api/im-das-user-api/src/main/java/net/sopod/soim/das/user/api/model/entity/ImGroupMessage.java index 9835df2..070209c 100644 --- a/im-das-api/im-das-user-api/src/main/java/net/sopod/soim/das/user/api/model/entity/ImGroupMessage.java +++ b/im-das-api/im-das-user-api/src/main/java/net/sopod/soim/das/user/api/model/entity/ImGroupMessage.java @@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import lombok.Data; import lombok.experimental.Accessors; +import net.sopod.soim.das.user.api.config.LogicTables; import java.io.Serializable; import java.util.Date; @@ -17,7 +18,7 @@ import java.util.Date; */ @Data @Accessors(chain = true) -@TableName("im_group_message") +@TableName(LogicTables.IM_GROUP_MESSAGE) public class ImGroupMessage implements Serializable { private static final long serialVersionUID = -509462521791459558L; diff --git a/im-das-api/im-das-user-api/src/main/java/net/sopod/soim/das/user/api/model/entity/ImGroupUser.java b/im-das-api/im-das-user-api/src/main/java/net/sopod/soim/das/user/api/model/entity/ImGroupUser.java index 40ff378..c8589a9 100644 --- a/im-das-api/im-das-user-api/src/main/java/net/sopod/soim/das/user/api/model/entity/ImGroupUser.java +++ b/im-das-api/im-das-user-api/src/main/java/net/sopod/soim/das/user/api/model/entity/ImGroupUser.java @@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import lombok.Data; import lombok.experimental.Accessors; +import net.sopod.soim.das.user.api.config.LogicTables; import java.io.Serializable; import java.util.Date; @@ -17,7 +18,7 @@ import java.util.Date; */ @Data @Accessors(chain = true) -@TableName("im_group_user") +@TableName(LogicTables.IM_GROUP_USER) public class ImGroupUser implements Serializable { private static final long serialVersionUID = -1236982266782872316L; diff --git a/im-das-api/im-das-user-api/src/main/java/net/sopod/soim/das/user/api/model/entity/ImMessage.java b/im-das-api/im-das-user-api/src/main/java/net/sopod/soim/das/user/api/model/entity/ImMessage.java index 37ca04a..3a86780 100644 --- a/im-das-api/im-das-user-api/src/main/java/net/sopod/soim/das/user/api/model/entity/ImMessage.java +++ b/im-das-api/im-das-user-api/src/main/java/net/sopod/soim/das/user/api/model/entity/ImMessage.java @@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import lombok.Data; import lombok.experimental.Accessors; +import net.sopod.soim.das.user.api.config.LogicTables; import java.io.Serializable; import java.util.Date; @@ -17,7 +18,7 @@ import java.util.Date; */ @Data @Accessors(chain = true) -@TableName("im_message") +@TableName(LogicTables.IM_MESSAGE) public class ImMessage implements Serializable { private static final long serialVersionUID = 7374196343496533922L; diff --git a/im-das-api/im-das-user-api/src/main/java/net/sopod/soim/das/user/api/service/FriendDas.java b/im-das-api/im-das-user-api/src/main/java/net/sopod/soim/das/user/api/service/FriendDas.java index 56207a2..4c47e8b 100644 --- a/im-das-api/im-das-user-api/src/main/java/net/sopod/soim/das/user/api/service/FriendDas.java +++ b/im-das-api/im-das-user-api/src/main/java/net/sopod/soim/das/user/api/service/FriendDas.java @@ -21,6 +21,8 @@ public interface FriendDas { */ int insert(Long uid, Long fid); + Long getFriendId(Long uid, Long fid); + /** * 好友是否存在 * diff --git a/im-das-api/im-das-user-api/src/main/resources/META-INF/spring.factories b/im-das-api/im-das-user-api/src/main/resources/META-INF/spring.factories index 8a09a3e..df33bab 100644 --- a/im-das-api/im-das-user-api/src/main/resources/META-INF/spring.factories +++ b/im-das-api/im-das-user-api/src/main/resources/META-INF/spring.factories @@ -1 +1 @@ -org.springframework.boot.autoconfigure.EnableAutoConfiguration=net.sopod.soim.logic.api.segmentid.config.SegmentIdAutoConfiguration \ No newline at end of file +org.springframework.boot.autoconfigure.EnableAutoConfiguration=net.sopod.soim.das.user.api.config.ChatRabbitMQAutoConfiguration \ No newline at end of file diff --git a/im-das/im-das-user/src/main/java/net/sopod/soim/das/user/amqp/Receiver.java b/im-das/im-das-user/src/main/java/net/sopod/soim/das/user/amqp/Receiver.java index ef05c7b..31abc78 100644 --- a/im-das/im-das-user/src/main/java/net/sopod/soim/das/user/amqp/Receiver.java +++ b/im-das/im-das-user/src/main/java/net/sopod/soim/das/user/amqp/Receiver.java @@ -1,13 +1,14 @@ package net.sopod.soim.das.user.amqp; -import net.sopod.soim.common.util.Jackson; +import lombok.AllArgsConstructor; import net.sopod.soim.das.user.api.model.entity.ImGroupMessage; import net.sopod.soim.das.user.api.model.entity.ImMessage; import net.sopod.soim.das.user.api.mq.ChatQueue; -import org.springframework.amqp.core.Message; +import net.sopod.soim.das.user.dao.ImGroupMessageMapper; +import net.sopod.soim.das.user.dao.ImMessageMapper; import org.springframework.amqp.rabbit.annotation.RabbitHandler; import org.springframework.amqp.rabbit.annotation.RabbitListener; -import org.springframework.stereotype.Component; +import org.springframework.stereotype.Service; /** * Listener @@ -16,18 +17,28 @@ import org.springframework.stereotype.Component; * @author tmy * @date 2022-05-28 16:26 */ -@RabbitListener(queues = {ChatQueue.IM_MESSAGE_PERSISTENT, ChatQueue.IM_GROUP_MESSAGE_PERSISTENT}) -@Component +@Service +@AllArgsConstructor +@RabbitListener(queues = { + ChatQueue.IM_MESSAGE_PERSISTENT, + ChatQueue.IM_GROUP_MESSAGE_PERSISTENT +}) public class Receiver { + ImMessageMapper imMessageMapper; + + ImGroupMessageMapper imGroupMessageMapper; + @RabbitHandler public void process(ImGroupMessage imGroupMessage) { System.out.println("receiver2: " + imGroupMessage); + imGroupMessageMapper.insert(imGroupMessage); } @RabbitHandler public void process(ImMessage imMessage) { System.out.println("receive3: " + imMessage); + imMessageMapper.insert(imMessage); } } diff --git a/im-das/im-das-user/src/main/java/net/sopod/soim/das/user/amqp/Sender.java b/im-das/im-das-user/src/main/java/net/sopod/soim/das/user/amqp/Sender.java index 2f61efd..737909c 100644 --- a/im-das/im-das-user/src/main/java/net/sopod/soim/das/user/amqp/Sender.java +++ b/im-das/im-das-user/src/main/java/net/sopod/soim/das/user/amqp/Sender.java @@ -1,9 +1,13 @@ package net.sopod.soim.das.user.amqp; +import lombok.AllArgsConstructor; import net.sopod.soim.common.util.ImClock; +import net.sopod.soim.das.user.api.config.LogicTables; import net.sopod.soim.das.user.api.model.entity.ImGroupMessage; import net.sopod.soim.das.user.api.model.entity.ImMessage; import net.sopod.soim.das.user.api.mq.ChatQueueType; +import net.sopod.soim.logic.api.segmentid.core.SegmentIdGenerator; +import org.apache.dubbo.config.annotation.DubboReference; import org.springframework.amqp.core.AmqpTemplate; import org.springframework.boot.context.event.ApplicationReadyEvent; import org.springframework.context.ApplicationListener; @@ -19,9 +23,12 @@ import java.util.concurrent.TimeUnit; * @author tmy * @date 2022-05-28 16:23 */ -@Component +//@Component +@AllArgsConstructor public class Sender implements ApplicationListener { + private SegmentIdGenerator segmentIdGenerator; + @Override public void onApplicationEvent(ApplicationReadyEvent event) { ConfigurableApplicationContext context = event.getApplicationContext(); @@ -35,8 +42,9 @@ public class Sender implements ApplicationListener { System.out.println("send msg...."); String content = "《蒙娜丽莎》的姿势,已经升华为一种神圣的符号,它不仅仅是艺术规律问题,不仅仅是对文艺复兴人文思想粗糙大潮的冲击,而是心灵回归者、觉醒者心中的一个崇高细致理想的显现。《蒙娜丽莎》具有另一种难以说明的象征意义,如佛的坐势、站势、讲道姿势,菩萨的动势,基督的几种象征性姿势:如两手摊开,一手持十字,一手指天,这有某种非世俗的意味,不是做作,而是不得不是如此,是最不自然最自然,最不简单最简单,最轻松最沉甸甸的样式,你无法赞美它,又无法挑剔它,它就是这样,原始的样子,人们只能沉醉其中,而不能有条理地褒贬它。一切欺骗与神秘都集中在《蒙娜丽莎》身上,而令人们产生一种畏惧。《蒙娜丽莎》是一个精力充沛的形象,在该幅作品面前,不能说她是女人肖像,她穿越一切无所不见、又视而不见的空洞目光,想躲避是办不到的,而想迎接那目光同样也是枉然。奇异的前额,广阔得失去了一个平凡人的味道,弥漫在脸上的那种神奇表情,似笑、非笑使人们无法相信这是一张现实的脸,而它的存在,又无法使人们的怀疑进行得彻底。《蒙娜丽莎》的表情,像东方佛教中佛陀的表情一样,是非凡人所能做出来的。“蒙娜丽莎”不是因为了什么而微笑,她只是静静地在那,脸上是自然地出现的一种永恒的、无所谓表情的表情。 [12] 《蒙娜丽莎》的美学意义,主要在于人物形象焕发出的人性的光辉;而在这之前,即使是人的形象,也带有或多或少的宗教气息。 [13] "; if (i % 2 == 0) { + long id = segmentIdGenerator.nextId(LogicTables.IM_GROUP_MESSAGE); ImGroupMessage imGroupMessage = new ImGroupMessage() - .setId(new Random().nextLong()) + .setId(id) .setGroupId(10010L) .setSender(10086L) .setCreateTime(ImClock.date()) @@ -44,15 +52,15 @@ public class Sender implements ApplicationListener { amqpTemplate.convertAndSend(ChatQueueType.IM_GROUP_MESSAGE.getQueueName(), imGroupMessage); continue; } + long id = segmentIdGenerator.nextId(LogicTables.IM_MESSAGE); ImMessage imMessage = new ImMessage() - .setId(new Random().nextLong()) + .setId(id) .setSender(10808L) .setReceiver(180002L) .setFriendId(101010L) .setContent(content) .setCreateTime(ImClock.date()); amqpTemplate.convertAndSend(ChatQueueType.IM_MESSAGE.getQueueName(), imMessage); - } } diff --git a/im-das/im-das-user/src/main/java/net/sopod/soim/das/user/dao/ImGroupMapper.java b/im-das/im-das-user/src/main/java/net/sopod/soim/das/user/dao/ImGroupMapper.java new file mode 100644 index 0000000..e5d5744 --- /dev/null +++ b/im-das/im-das-user/src/main/java/net/sopod/soim/das/user/dao/ImGroupMapper.java @@ -0,0 +1,14 @@ +package net.sopod.soim.das.user.dao; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import net.sopod.soim.das.user.api.model.entity.ImGroup; + +/** + * ImGroupMapper + * + * @author tmy + * @date 2022-05-31 9:59 + */ +public interface ImGroupMapper extends BaseMapper { + +} diff --git a/im-das/im-das-user/src/main/java/net/sopod/soim/das/user/dao/ImGroupMessageMapper.java b/im-das/im-das-user/src/main/java/net/sopod/soim/das/user/dao/ImGroupMessageMapper.java new file mode 100644 index 0000000..055da721 --- /dev/null +++ b/im-das/im-das-user/src/main/java/net/sopod/soim/das/user/dao/ImGroupMessageMapper.java @@ -0,0 +1,14 @@ +package net.sopod.soim.das.user.dao; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import net.sopod.soim.das.user.api.model.entity.ImGroupMessage; + +/** + * ImGroupMessageMapper + * + * @author tmy + * @date 2022-05-31 9:59 + */ +public interface ImGroupMessageMapper extends BaseMapper { + +} diff --git a/im-das/im-das-user/src/main/java/net/sopod/soim/das/user/dao/ImMessageMapper.java b/im-das/im-das-user/src/main/java/net/sopod/soim/das/user/dao/ImMessageMapper.java new file mode 100644 index 0000000..322b321 --- /dev/null +++ b/im-das/im-das-user/src/main/java/net/sopod/soim/das/user/dao/ImMessageMapper.java @@ -0,0 +1,14 @@ +package net.sopod.soim.das.user.dao; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import net.sopod.soim.das.user.api.model.entity.ImMessage; + +/** + * ImMessageMapper + * + * @author tmy + * @date 2022-05-31 9:47 + */ +public interface ImMessageMapper extends BaseMapper { + +} diff --git a/im-das/im-das-user/src/main/java/net/sopod/soim/das/user/service/FriendDasImpl.java b/im-das/im-das-user/src/main/java/net/sopod/soim/das/user/service/FriendDasImpl.java index d570776..f552cec 100644 --- a/im-das/im-das-user/src/main/java/net/sopod/soim/das/user/service/FriendDasImpl.java +++ b/im-das/im-das-user/src/main/java/net/sopod/soim/das/user/service/FriendDasImpl.java @@ -54,19 +54,24 @@ public class FriendDasImpl implements FriendDas { } @Override - public Boolean isExists(Long uid, Long fid) { + public Long getFriendId(Long uid, Long fid) { LambdaQueryWrapper friendQuery = new QueryWrapper().lambda() .eq(ImFriend::getUid, uid) .eq(ImFriend::getFid, fid) - .eq(ImFriend::getStatus, 1); + .eq(ImFriend::getStatus, LogicTables.STATUS_NORMAL); List imFriends = friendMapper.selectList(friendQuery); if (Collects.isEmpty(imFriends)) { - return Boolean.FALSE; + return null; } if (imFriends.size() > 1) { logger.warn("重复的好友数据: user={}, friend={}", uid, fid); } - return Boolean.TRUE; + return imFriends.get(0).getId(); + } + + @Override + public Boolean isExists(Long uid, Long fid) { + return getFriendId(uid, fid) != null; } @Override @@ -74,7 +79,7 @@ public class FriendDasImpl implements FriendDas { LambdaQueryWrapper friendQuery = new QueryWrapper().lambda() .eq(ImFriend::getUid, uid) .eq(ImFriend::getFid, fid) - .eq(ImFriend::getStatus, 1); + .eq(ImFriend::getStatus, LogicTables.STATUS_NORMAL); return friendMapper.update(new ImFriend().setStatus(0), friendQuery); } @@ -86,7 +91,7 @@ public class FriendDasImpl implements FriendDas { } LambdaQueryWrapper userQuery = new QueryWrapper().lambda() .in(ImUser::getId, fids) - .eq(ImUser::getStatus, LogicConsts.STATUS_NORMAL); + .eq(ImUser::getStatus, LogicTables.STATUS_NORMAL); return userMapper.selectList(userQuery); } diff --git a/im-das/im-das-user/src/main/resources/mapper/ImGroupMapper.xml b/im-das/im-das-user/src/main/resources/mapper/ImGroupMapper.xml new file mode 100644 index 0000000..71d1c3a --- /dev/null +++ b/im-das/im-das-user/src/main/resources/mapper/ImGroupMapper.xml @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/im-das/im-das-user/src/main/resources/mapper/ImGroupMessageMapper.xml b/im-das/im-das-user/src/main/resources/mapper/ImGroupMessageMapper.xml new file mode 100644 index 0000000..c41c6ae --- /dev/null +++ b/im-das/im-das-user/src/main/resources/mapper/ImGroupMessageMapper.xml @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/im-das/im-das-user/src/main/resources/mapper/ImMessageMapper.xml b/im-das/im-das-user/src/main/resources/mapper/ImMessageMapper.xml new file mode 100644 index 0000000..9a010c3 --- /dev/null +++ b/im-das/im-das-user/src/main/resources/mapper/ImMessageMapper.xml @@ -0,0 +1,5 @@ + + + + + diff --git a/im-service/im-logic-user/src/main/java/net/sopod/soim/logic/user/service/ChatServiceImpl.java b/im-service/im-logic-user/src/main/java/net/sopod/soim/logic/user/service/ChatServiceImpl.java index d75ea27..dde6836 100644 --- a/im-service/im-logic-user/src/main/java/net/sopod/soim/logic/user/service/ChatServiceImpl.java +++ b/im-service/im-logic-user/src/main/java/net/sopod/soim/logic/user/service/ChatServiceImpl.java @@ -1,6 +1,7 @@ package net.sopod.soim.logic.user.service; import net.sopod.soim.das.user.api.model.entity.ImUser; +import net.sopod.soim.das.user.api.service.FriendDas; import net.sopod.soim.das.user.api.service.UserDas; import net.sopod.soim.logic.api.user.service.ChatService; import net.sopod.soim.logic.common.model.TextChat; @@ -26,6 +27,9 @@ public class ChatServiceImpl implements ChatService { @DubboReference private UserDas userDas; + @DubboReference + private FriendDas friendDas; + @Override public Boolean textChat(TextChat textChat) { if (textChat.getReceiverUid() == null @@ -36,6 +40,12 @@ public class ChatServiceImpl implements ChatService { } textChat.setReceiverUid(receiverUser.getId()); } + // 查询好友关系 + Long friendId = friendDas.getFriendId(textChat.getUid(), textChat.getReceiverUid()); + // 不是好友 + if (friendId == null) { + return false; + } // 设置调用 router 为消息接受者地址 RpcContextUtil.setContextUid(textChat.getReceiverUid()); return userRouteService.routeTextChat(textChat); diff --git a/im-service/im-router/pom.xml b/im-service/im-router/pom.xml index 6301bc4..3d254d5 100644 --- a/im-service/im-router/pom.xml +++ b/im-service/im-router/pom.xml @@ -88,6 +88,10 @@ org.xerial.snappy snappy-java + + org.springframework.boot + spring-boot-starter-amqp + \ No newline at end of file diff --git a/im-service/im-router/src/main/java/net/sopod/soim/router/service/UserRouteServiceImpl.java b/im-service/im-router/src/main/java/net/sopod/soim/router/service/UserRouteServiceImpl.java index bf58c9a..af75312 100644 --- a/im-service/im-router/src/main/java/net/sopod/soim/router/service/UserRouteServiceImpl.java +++ b/im-service/im-router/src/main/java/net/sopod/soim/router/service/UserRouteServiceImpl.java @@ -9,6 +9,7 @@ import net.sopod.soim.entry.api.service.OnlineUserService; import net.sopod.soim.entry.api.service.TextChatService; import net.sopod.soim.logic.common.model.TextChat; import net.sopod.soim.logic.common.model.UserInfo; +import net.sopod.soim.logic.common.util.RpcContextUtil; import net.sopod.soim.router.api.model.RegistryRes; import net.sopod.soim.router.cache.RouterUser; import net.sopod.soim.router.api.service.UserRouteService; @@ -45,6 +46,7 @@ public class UserRouteServiceImpl implements UserRouteService { @DubboReference private OnlineUserService onlineUserService; + @Override public RegistryRes registryUserEntry(Long uid, String imEntryAddr) { ImUser imUser = userDas.getUserById(uid); @@ -80,16 +82,12 @@ public class UserRouteServiceImpl implements UserRouteService { */ @Override public Boolean routeTextChat(TextChat textChat) { - // 本服务实例没有存储接收者用户信息,查询其他服务 -// if (receiverImEntryAddr == null) { -// RpcContext.getServiceContext().setAttachment(DubboConstant.CTX_UID, String.valueOf(receiverUid)); -// receiverImEntryAddr = onlineUserService.getImEntryAddrByUid(receiverUid); -// logger.info("other im-router service invoke: {}, {}", receiverUid, receiverImEntryAddr); -// } + // TODO 消息队列存储 + RpcContextUtil.setContextUid(textChat.getReceiverUid()); Boolean send = textChatService.sendTextChat(textChat); if (!Boolean.TRUE.equals(send)) { - // 未送到,消息存储,重发... + // TODO 未送到,消息存储,重发... logger.info("消息未送达: {}: {}", textChat.getReceiverName(), textChat.getMessage()); } return Boolean.TRUE;