Commit b260532f by Future

好友逻辑调整

parent 85b8c064
...@@ -15,22 +15,30 @@ spring-boot-plus: ...@@ -15,22 +15,30 @@ spring-boot-plus:
spring: spring:
datasource: datasource:
url: jdbc:mysql://127.0.0.1:3306/wecloud-im?serverTimezone=UTC&useUnicode=true&characterEncoding=utf8&useSSL=false&allowPublicKeyRetrieval=true # url: jdbc:mysql://127.0.0.1:3306/wecloud-im?serverTimezone=UTC&useUnicode=true&characterEncoding=utf8&useSSL=false&allowPublicKeyRetrieval=true
# username: root
# password: 123456
# 测试外网
url: jdbc:mysql://121.37.22.224:3306/wecloud_im_feature_cluster?serverTimezone=UTC&useUnicode=true&characterEncoding=utf8&useSSL=false&allowPublicKeyRetrieval=true
username: root username: root
password: 123456 password: temple123456
#//测试外网
# url: jdbc:mysql://18.136.207.16:3306/wecloud_im?serverTimezone=UTC&useUnicode=true&characterEncoding=utf8&useSSL=false&allowPublicKeyRetrieval=true
# username: web
# password: axT8knPN5hAP
# Redis配置 # Redis配置
redis: redis:
# database: 0
# host: 127.0.0.1
# password:
# port: 6379
database: 0 database: 0
host: 127.0.0.1 host: 121.37.22.224
password: password: temple123456
port: 6379 port: 6379
cloud: cloud:
nacos: nacos:
discovery: discovery:
......
...@@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; ...@@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.metadata.OrderItem; import com.baomidou.mybatisplus.core.metadata.OrderItem;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.google.common.collect.Lists;
import com.wecloud.im.entity.ImClient; import com.wecloud.im.entity.ImClient;
import com.wecloud.im.enums.FriendStateEnum; import com.wecloud.im.enums.FriendStateEnum;
import com.wecloud.im.friend.entity.ImFriend; import com.wecloud.im.friend.entity.ImFriend;
...@@ -137,7 +138,7 @@ public class ImFriendService extends BaseServiceImpl<ImFriendMapper, ImFriend> { ...@@ -137,7 +138,7 @@ public class ImFriendService extends BaseServiceImpl<ImFriendMapper, ImFriend> {
/** /**
* 根据 自己id和好友id查询好友信息 * 根据 自己id和好友id查询好友信息 - 待确认、已确认
* @param clientId * @param clientId
* @param friendClientId * @param friendClientId
* @return * @return
...@@ -145,7 +146,8 @@ public class ImFriendService extends BaseServiceImpl<ImFriendMapper, ImFriend> { ...@@ -145,7 +146,8 @@ public class ImFriendService extends BaseServiceImpl<ImFriendMapper, ImFriend> {
public ImFriend getByKey(String clientId, String friendClientId) { public ImFriend getByKey(String clientId, String friendClientId) {
return this.getOne(new QueryWrapper<ImFriend>().lambda() return this.getOne(new QueryWrapper<ImFriend>().lambda()
.eq(ImFriend::getClientId, clientId) .eq(ImFriend::getClientId, clientId)
.eq(ImFriend::getClientIdFriend, friendClientId)); .eq(ImFriend::getClientIdFriend, friendClientId)
.in(ImFriend::getState, Lists.newArrayList(FriendStateEnum.UNSURE.getCode(), FriendStateEnum.CONFORM.getCode())));
} }
/** /**
......
...@@ -36,4 +36,9 @@ public class ImHistoryMessagePageParam extends BasePageOrderParam { ...@@ -36,4 +36,9 @@ public class ImHistoryMessagePageParam extends BasePageOrderParam {
*/ */
@ApiModelProperty("消息id最大值") @ApiModelProperty("消息id最大值")
private Long msgIdEnd; private Long msgIdEnd;
/**
* 当前操作人client主键id
*/
private Long currentFkClientId;
} }
...@@ -74,11 +74,11 @@ public interface ImMessageService extends BaseService<ImMessage> { ...@@ -74,11 +74,11 @@ public interface ImMessageService extends BaseService<ImMessage> {
/** /**
* 查询某个会话历史消息分页列表 * 查询某个会话历史消息分页列表
* *
* @param imHistoryMessagePageParam * @param param
* @return * @return
* @throws Exception * @throws Exception
*/ */
Paging<OfflineMsgDto> getHistoryMsgConversationId(ImHistoryMessagePageParam imHistoryMessagePageParam); Paging<OfflineMsgDto> getHistoryMsgConversationId(ImHistoryMessagePageParam param);
/** /**
* 查询用户所有离线消息 * 查询用户所有离线消息
......
...@@ -178,7 +178,6 @@ public class ImConversationServiceImpl extends BaseServiceImpl<ImConversationMap ...@@ -178,7 +178,6 @@ public class ImConversationServiceImpl extends BaseServiceImpl<ImConversationMap
return ApiResult.ok(imConversationCreateVo); return ApiResult.ok(imConversationCreateVo);
} }
} }
} }
// 会话id // 会话id
...@@ -220,9 +219,8 @@ public class ImConversationServiceImpl extends BaseServiceImpl<ImConversationMap ...@@ -220,9 +219,8 @@ public class ImConversationServiceImpl extends BaseServiceImpl<ImConversationMap
ImClient client2 = imClientService.getOne(new QueryWrapper<ImClient>().lambda() ImClient client2 = imClientService.getOne(new QueryWrapper<ImClient>().lambda()
.eq(ImClient::getFkAppid, createClient.getFkAppid()) .eq(ImClient::getFkAppid, createClient.getFkAppid())
.eq(ImClient::getClientId, id)); .eq(ImClient::getClientId, id));
Long imConversationMembersId2 = SnowflakeUtil.getId();
ImConversationMembers imConversationMembers2 = new ImConversationMembers(); ImConversationMembers imConversationMembers2 = new ImConversationMembers();
imConversationMembers2.setId(imConversationMembersId2); imConversationMembers2.setId(SnowflakeUtil.getId());
imConversationMembers2.setCreateTime(new Date()); imConversationMembers2.setCreateTime(new Date());
imConversationMembers2.setFkAppid(createClient.getFkAppid()); imConversationMembers2.setFkAppid(createClient.getFkAppid());
imConversationMembers2.setFkConversationId(imConversationId); imConversationMembers2.setFkConversationId(imConversationId);
......
...@@ -487,10 +487,11 @@ public class ImMessageServiceImpl extends BaseServiceImpl<ImMessageMapper, ImMes ...@@ -487,10 +487,11 @@ public class ImMessageServiceImpl extends BaseServiceImpl<ImMessageMapper, ImMes
} }
@Override @Override
public Paging<OfflineMsgDto> getHistoryMsgConversationId(ImHistoryMessagePageParam imHistoryMessagePageParam) { public Paging<OfflineMsgDto> getHistoryMsgConversationId(ImHistoryMessagePageParam param) {
Page<ImMessage> page = new PageInfo<>(imHistoryMessagePageParam, OrderItem.desc(getLambdaColumn(ImMessage::getCreateTime))); Page<ImMessage> page = new PageInfo<>(param, OrderItem.desc(getLambdaColumn(ImMessage::getCreateTime)));
ImClient currentClient = imClientService.getCurrentClient();
IPage<OfflineMsgDto> iPage = imMessageMapper.getHistoryMsgConversationId(page, imHistoryMessagePageParam); param.setCurrentFkClientId(currentClient.getId());
IPage<OfflineMsgDto> iPage = imMessageMapper.getHistoryMsgConversationId(page, param);
return new Paging<>(iPage); return new Paging<>(iPage);
} }
......
...@@ -60,10 +60,10 @@ public class UserStateCacheManager extends UserStateListener { ...@@ -60,10 +60,10 @@ public class UserStateCacheManager extends UserStateListener {
public List<ClientChannelInfo> findOnlineInfosByClientId(Long clientId) { public List<ClientChannelInfo> findOnlineInfosByClientId(Long clientId) {
// 获取所有 CLIENTS的 <platform>:<ip> // 获取所有 CLIENTS的 <platform>:<ip>
Set<String> platformAndIs = redisUtils.getForSetMembers(getUserStateCacheKey(clientId)); Set<String> platformAndIps = redisUtils.getForSetMembers(getUserStateCacheKey(clientId));
ArrayList<ClientChannelInfo> clientChannelInfos = new ArrayList<>(); ArrayList<ClientChannelInfo> clientChannelInfos = new ArrayList<>();
for(String platformAndIp : platformAndIs) { for(String platformAndIp : platformAndIps) {
String[] split = platformAndIp.split(RedisUtils.SPLIT); String[] split = platformAndIp.split(RedisUtils.SPLIT);
ClientChannelInfo clientChannelInfo = new ClientChannelInfo(); ClientChannelInfo clientChannelInfo = new ClientChannelInfo();
clientChannelInfo.setPlatform(Integer.valueOf(split[0])); clientChannelInfo.setPlatform(Integer.valueOf(split[0]));
......
...@@ -73,6 +73,7 @@ ...@@ -73,6 +73,7 @@
FROM `im_message` FROM `im_message`
INNER JOIN `im_client` ON `im_client`.id = `im_message`.sender INNER JOIN `im_client` ON `im_client`.id = `im_message`.sender
WHERE fk_conversation_id = #{param.conversationId} and im_message.is_delete = 1 and im_message.withdraw = 0 WHERE fk_conversation_id = #{param.conversationId} and im_message.is_delete = 1 and im_message.withdraw = 0
and (im_message.`event`=0 || (im_message.`event`=1 and sender != #{currentFkClientId} ))
<if test="param.msgIdStart != null"> <if test="param.msgIdStart != null">
AND im_message.id > #{param.msgIdStart} AND im_message.id > #{param.msgIdStart}
</if> </if>
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment