Commit eec213b0 by 王祖波

入群时间在访问分享页之前的才算无效入群

parent 07472368
package com.gic.haoban.manage.service.pojo.bo.chat;
import com.gic.haoban.manage.api.dto.chat.GroupChatActivityDTO;
import com.gic.haoban.manage.service.entity.chat.TabGroupChatUser;
import java.util.Date;
/**
* Created by wangzubo on 2024/10/9.
......@@ -33,6 +32,11 @@ public class GroupChatActivityBaseContext {
*/
private String uniqueId;
/**
* 最后一次访问邀请页时间
*/
private Date lastShareTime;
public Long getChatUserId() {
return chatUserId;
}
......@@ -72,4 +76,12 @@ public class GroupChatActivityBaseContext {
public void setUniqueId(String uniqueId) {
this.uniqueId = uniqueId;
}
public Date getLastShareTime() {
return lastShareTime;
}
public void setLastShareTime(Date lastShareTime) {
this.lastShareTime = lastShareTime;
}
}
......@@ -110,7 +110,7 @@ public class GroupChatActivityInviteLogServiceImpl implements GroupChatActivityI
return;
}
List<String> unionIdList = chatUserList.stream().map(TabGroupChatUser::getUnionid).collect(Collectors.toList());
List<List<String>> partition = Lists.partition(unionIdList, 1000);
List<List<String>> partition = Lists.partition(unionIdList, 100);
for (List<String> unionIds : partition) {
List<TabGroupChatActivityShareBind> shareBindList = groupChatActivityShareBindService.query24Record(unionIds);
if (CollectionUtils.isEmpty(shareBindList)) {
......@@ -120,6 +120,7 @@ public class GroupChatActivityInviteLogServiceImpl implements GroupChatActivityI
Map<String, List<TabGroupChatActivityShareBind>> map = shareBindList.stream().collect(Collectors.groupingBy(TabGroupChatActivityShareBind::getInviteeUnionId));
for (TabGroupChatUser groupChatUser : chatUserList) {
Long chatUserId = groupChatUser.getChatUserId();
Date joinTime = groupChatUser.getJoinTime();
String unionid = groupChatUser.getUnionid();
List<TabGroupChatActivityShareBind> list = map.get(unionid);
if (CollectionUtils.isEmpty(list)) {
......@@ -128,6 +129,10 @@ public class GroupChatActivityInviteLogServiceImpl implements GroupChatActivityI
Set<Long> chatActivityIdSet = new HashSet<>();
//同个活动取最近一条绑定信息
for (TabGroupChatActivityShareBind shareBind : list) {
if (DateUtil.compare(shareBind.getCreateTime(),joinTime) >= 0) {
logger.info("分享绑定时间大于入群时间 过滤");
continue;
}
Long chatActivityId = shareBind.getChatActivityId();
if (chatActivityIdSet.add(chatActivityId)) {
GroupChatActivityBaseContext chatActivityContext = new GroupChatActivityBaseContext();
......@@ -136,7 +141,7 @@ public class GroupChatActivityInviteLogServiceImpl implements GroupChatActivityI
chatActivityContext.setInviterMemberId(shareBind.getInviterMemberId());
chatActivityContext.setEnterpriseId(shareBind.getEnterpriseId());
chatActivityContext.setUniqueId(shareBind.getInviteeUnionId());
// todo 社群邀请-mq异步
chatActivityContext.setLastShareTime(shareBind.getCreateTime());
// groupChatInvite(chatActivityContext);
try {
GICMQClientUtil.getClientInstance().sendMessage("shareGroupChatInviteMQ",JSON.toJSONString(chatActivityContext));
......@@ -273,8 +278,8 @@ public class GroupChatActivityInviteLogServiceImpl implements GroupChatActivityI
String enterpriseId = activity.getEnterpriseId();
TabGroupChatUser chatUser = context.getChatUser();
String userId = chatUser.getUserId();
Long chatUserId = chatUser.getChatUserId();
Long chatActivityId = context.getChatActivityId();
Date lastShareTime = context.getLastShareTime();
Integer inviteType = activity.getInviteType();
TabGroupChatActivityInviteLog inviteLog = new TabGroupChatActivityInviteLog();
inviteLog.setChatActivityId(chatActivityId);
......@@ -287,19 +292,19 @@ public class GroupChatActivityInviteLogServiceImpl implements GroupChatActivityI
if (Objects.equals(ChatActivityInviteTypeEnum.NONE_GROUP_CHAT.value, inviteType)) {
List<TabGroupChatUser> chatUserList = groupChatUserMapper.listByUserId(enterpriseId, userId, 1);
if (CollectionUtils.isNotEmpty(chatUserList)) {
TabGroupChatUser groupChatUser = chatUserList.get(0);
if (!Objects.equals(groupChatUser.getChatUserId(),chatUserId)) {
// 入群时间在访问分享页之前的才算无效入群
chatUserList = chatUserList.stream().filter(u -> DateUtil.compare(lastShareTime, u.getJoinTime()) >= 0).collect(Collectors.toList());
if (CollectionUtils.isNotEmpty(chatUserList)) {
return ChatActivityInvalidInviteTypeEnum.TWO.value;
}
}
}
if (Objects.equals(ChatActivityInviteTypeEnum.FIRST_GROUP_CHAT.value, inviteType)) {
List<TabGroupChatUser> chatUserList2 = groupChatUserMapper.listByUserId(enterpriseId, userId, null);
// 入群时间在访问分享页之前的才算无效入群
chatUserList2 = chatUserList2.stream().filter(u -> DateUtil.compare(lastShareTime, u.getJoinTime()) >= 0).collect(Collectors.toList());
if (CollectionUtils.isNotEmpty(chatUserList2)) {
TabGroupChatUser groupChatUser = chatUserList2.get(0);
if (!Objects.equals(groupChatUser.getChatUserId(),chatUserId)) {
return ChatActivityInvalidInviteTypeEnum.THREE.value;
}
return ChatActivityInvalidInviteTypeEnum.THREE.value;
}
}
return null;
......
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