|
@@ -6,11 +6,8 @@ import cn.hutool.json.JSONUtil;
|
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
|
import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
|
|
import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
|
|
-import com.baomidou.mybatisplus.core.toolkit.StringUtils;
|
|
|
|
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
|
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
-import com.tourism.common.additional.config.ApplicationConfig;
|
|
|
|
-import com.tourism.common.core.object.ResponseResult;
|
|
|
|
import com.tourism.common.core.object.TokenData;
|
|
import com.tourism.common.core.object.TokenData;
|
|
import com.tourism.webadmin.app.website.dto.*;
|
|
import com.tourism.webadmin.app.website.dto.*;
|
|
import com.tourism.webadmin.app.website.service.TourGroupService;
|
|
import com.tourism.webadmin.app.website.service.TourGroupService;
|
|
@@ -19,12 +16,9 @@ import com.tourism.webadmin.app.website.vo.MainMemberVo;
|
|
import com.tourism.webadmin.back.dao.TourImMemberMapper;
|
|
import com.tourism.webadmin.back.dao.TourImMemberMapper;
|
|
import com.tourism.webadmin.back.model.*;
|
|
import com.tourism.webadmin.back.model.*;
|
|
import com.tourism.webadmin.back.model.constant.IsTrue;
|
|
import com.tourism.webadmin.back.model.constant.IsTrue;
|
|
-import com.tourism.webadmin.back.model.constant.NoticeType;
|
|
|
|
import com.tourism.webadmin.back.service.*;
|
|
import com.tourism.webadmin.back.service.*;
|
|
-import com.tourism.webadmin.enums.GroupAuthenticationState;
|
|
|
|
-import com.tourism.webadmin.enums.GroupRole;
|
|
|
|
-import com.tourism.webadmin.enums.SystemDefault;
|
|
|
|
-import com.tourism.webadmin.enums.SystemDefaultHead;
|
|
|
|
|
|
+import com.tourism.webadmin.enums.*;
|
|
|
|
+import com.tourism.webadmin.strategy.dto.FocusDTO;
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
import org.springframework.stereotype.Service;
|
|
import org.springframework.stereotype.Service;
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
@@ -129,11 +123,13 @@ public class TourMemberImpl extends ServiceImpl<TourImMemberMapper, TourImMember
|
|
.eq("revocation_tag",0)
|
|
.eq("revocation_tag",0)
|
|
.groupBy("group_id");
|
|
.groupBy("group_id");
|
|
List<Map<String, Object>> maps = tourImMessageService.getBaseMapper().selectMaps(query);
|
|
List<Map<String, Object>> maps = tourImMessageService.getBaseMapper().selectMaps(query);
|
|
|
|
+ //获取未读消息数量 groupId->number
|
|
Map<Long, Integer> unreadCountMap = maps.stream()
|
|
Map<Long, Integer> unreadCountMap = maps.stream()
|
|
.collect(Collectors.toMap(
|
|
.collect(Collectors.toMap(
|
|
itemMap -> (Long) itemMap.get("group_id"),
|
|
itemMap -> (Long) itemMap.get("group_id"),
|
|
itemMap -> ((Long) itemMap.get("unreadCount")).intValue()
|
|
itemMap -> ((Long) itemMap.get("unreadCount")).intValue()
|
|
));
|
|
));
|
|
|
|
+ //最后一条消息 groupId->message
|
|
HashMap<Long, TourImMessage> messageHashMap = new HashMap<>();
|
|
HashMap<Long, TourImMessage> messageHashMap = new HashMap<>();
|
|
for (TourImMessage tourImMessage : message) {
|
|
for (TourImMessage tourImMessage : message) {
|
|
messageHashMap.put(tourImMessage.getGroupId(), tourImMessage);
|
|
messageHashMap.put(tourImMessage.getGroupId(), tourImMessage);
|
|
@@ -146,24 +142,26 @@ public class TourMemberImpl extends ServiceImpl<TourImMemberMapper, TourImMember
|
|
mainMemberVo.setUnreadMessageCount(num);
|
|
mainMemberVo.setUnreadMessageCount(num);
|
|
TourImMessage tourImMessage = messageHashMap.get(l);
|
|
TourImMessage tourImMessage = messageHashMap.get(l);
|
|
if(tourImMessage!=null){
|
|
if(tourImMessage!=null){
|
|
- //单独处理系统消息关注消息和互动消息
|
|
|
|
- String content = tourImMessage.getMessageContent();
|
|
|
|
- if (content !=null){
|
|
|
|
- MessageContentBase bean = JSONUtil.toBean(content, MessageContentBase.class);
|
|
|
|
- if (bean!=null){
|
|
|
|
- String getUserId = bean.getSendUserId();
|
|
|
|
- TourUser tourUser = tourUserService.getById(Long.parseLong(getUserId));
|
|
|
|
-// if ()
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- }
|
|
|
|
|
|
+// //单独处理系统消息关注消息和互动消息
|
|
|
|
+// String content = tourImMessage.getMessageContent();
|
|
|
|
+// if (content !=null){
|
|
|
|
+// MessageContentBase bean = JSONUtil.toBean(content, MessageContentBase.class);
|
|
|
|
+// if (bean!=null){
|
|
|
|
+// String getUserId = bean.getSendUserId();
|
|
|
|
+// TourUser tourUser = tourUserService.getById(Long.parseLong(getUserId));
|
|
|
|
+//// if ()
|
|
|
|
+// }
|
|
|
|
+//
|
|
|
|
+// }
|
|
mainMemberVo.setLastMessage(tourImMessage);
|
|
mainMemberVo.setLastMessage(tourImMessage);
|
|
mainMemberVo.setCreateTime(tourImMessage.getCreateTime());
|
|
mainMemberVo.setCreateTime(tourImMessage.getCreateTime());
|
|
}
|
|
}
|
|
}
|
|
}
|
|
- //排序
|
|
|
|
|
|
+ //排序 1 系统 2 关注 3 互动 .....
|
|
List<MainMemberVo> sort = sort(list);
|
|
List<MainMemberVo> sort = sort(list);
|
|
userMainMemberVo.setList(sort);
|
|
userMainMemberVo.setList(sort);
|
|
|
|
+ //处理前三个固定群聊的最后一条消息
|
|
|
|
+ this.delLastSysMessage(sort);
|
|
return userMainMemberVo;
|
|
return userMainMemberVo;
|
|
}
|
|
}
|
|
|
|
|
|
@@ -431,6 +429,77 @@ public class TourMemberImpl extends ServiceImpl<TourImMemberMapper, TourImMember
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
+ /**
|
|
|
|
+ * 处理消息提示
|
|
|
|
+ * @param list
|
|
|
|
+ */
|
|
|
|
+ public void delLastSysMessage(List<MainMemberVo> list){
|
|
|
|
+ MainMemberVo mainMemberVo = list.get(1);//关注消息
|
|
|
|
+ String message="";
|
|
|
|
+ TourImMessage lastMessage = mainMemberVo.getLastMessage();
|
|
|
|
+ String messageContent = lastMessage.getMessageContent();
|
|
|
|
+
|
|
|
|
+ if(mainMemberVo.getLastMessage()!=null){
|
|
|
|
+ message = NoticeTypeInfo.NOTICE_LIKE_COMMENT.getOperation();
|
|
|
|
+ //关注消息类容对象
|
|
|
|
+ FocusDTO bean = JSONUtil.toBean(messageContent, FocusDTO.class);
|
|
|
|
+ //发送人ID
|
|
|
|
+ message=bean.getTourUserVo().getShowName()+message;
|
|
|
|
+ }
|
|
|
|
+ MainMemberVo vo = list.get(2);//互动消息
|
|
|
|
+ if(vo.getLastMessage()!=null){
|
|
|
|
+ //互动消息类容对象
|
|
|
|
+ InteractionMessageDto bean = JSONUtil.toBean(messageContent, InteractionMessageDto.class);
|
|
|
|
+ String type = bean.getNoticeType();
|
|
|
|
+ String getUserId = bean.getGetUserId();
|
|
|
|
+ //业务
|
|
|
|
+ String business="";
|
|
|
|
+ if(BusinessType.TRAVELNOTES.getCode().equals(bean.getType())){
|
|
|
|
+ //游记
|
|
|
|
+ business="游记";
|
|
|
|
+ }
|
|
|
|
|
|
|
|
+ //发送人信息
|
|
|
|
+ TourUser byId = tourUserService.getById(getUserId);
|
|
|
|
+ if (bean==null) return;
|
|
|
|
+
|
|
|
|
+ switch (type)
|
|
|
|
+ {
|
|
|
|
+ case "4":
|
|
|
|
+ //用户 +关注了你
|
|
|
|
+ message=byId.getShowName()+NoticeTypeInfo.NOTICE_LIKE_COMMENT.getOperation();
|
|
|
|
+ break;
|
|
|
|
+ case "5":
|
|
|
|
+ //用户 + 点赞 + 业务
|
|
|
|
+ message=byId.getShowName()+NoticeTypeInfo.NOTICE_LIKE.getOperation()+business;
|
|
|
|
+ break;
|
|
|
|
+ case "6":
|
|
|
|
+ //用户 +评论了你
|
|
|
|
+ message=byId.getShowName()+NoticeTypeInfo.NOTICE_COMMENT.getOperation();
|
|
|
|
+ break;
|
|
|
|
+ case "7":
|
|
|
|
+ //用户+收藏了你的 + 业务
|
|
|
|
+ message=byId.getShowName()+NoticeTypeInfo.NOTICE_COLLECTION.getOperation()+business;
|
|
|
|
+ break;
|
|
|
|
+ case "8":
|
|
|
|
+ //用户+浏览了你的 + 业务
|
|
|
|
+ message=byId.getShowName()+NoticeTypeInfo.NOTICE_BROWSE.getOperation()+business;
|
|
|
|
+ break;
|
|
|
|
+ case "9":
|
|
|
|
+ //用户 + 访问了你的主页
|
|
|
|
+ message=byId.getShowName()+NoticeTypeInfo.NOTICE_VISIT_HOME.getOperation();
|
|
|
|
+ break;
|
|
|
|
+ case "10":
|
|
|
|
+ //用户 +评论提到了你
|
|
|
|
+ message=byId.getShowName()+NoticeTypeInfo.NOTICE_COMMENT_MENTION.getOperation();
|
|
|
|
+ break;
|
|
|
|
+ case "11":
|
|
|
|
+ //用户 +评论提到了你
|
|
|
|
+ message=byId.getShowName()+NoticeTypeInfo.NOTICE_ARTICLE_MENTION.getOperation();
|
|
|
|
+ break;
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ lastMessage.setMessageContent(message);
|
|
|
|
+ }
|
|
|
|
|
|
}
|
|
}
|