Prechádzať zdrojové kódy

Merge remote-tracking branch 'origin/dev' into dev

zhangwei 1 mesiac pred
rodič
commit
9a2ffb4c22

+ 4 - 2
application-webadmin/src/main/java/com/tourism/webadmin/app/website/controller/LoginToWebsiteController.java

@@ -324,8 +324,7 @@ public class LoginToWebsiteController {
             tourUser = tourUserService.saveNew(tourUser);
         }
 
-        //生成系统关注互动会话
-        tourMemberService.createUserMember(tourUser.getUserId().toString());
+
 
         // 生成token
         JSONObject jsonObject = this.buildTourLoginDataAndLogin(tourUser);
@@ -392,6 +391,9 @@ public class LoginToWebsiteController {
             return ResponseResult.error(ErrorCodeEnum.MOBILE_EXIST);
         }
         loginToWebsiteService.saveRegisterUserInfo(tourUserRegisterDto);
+
+        //生成系统关注互动会话
+        tourMemberService.createUserMember(tourUserRegisterDto.getUserId().toString());
         return ResponseResult.success();
 
     }

+ 16 - 21
application-webadmin/src/main/java/com/tourism/webadmin/app/website/controller/TourGroupController.java

@@ -5,6 +5,8 @@ import cn.dev33.satoken.annotation.SaIgnore;
 import cn.hutool.core.util.ObjectUtil;
 import cn.hutool.extra.qrcode.QrCodeUtil;
 import cn.hutool.extra.qrcode.QrConfig;
+import cn.hutool.json.JSONObject;
+import cn.hutool.json.JSONUtil;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.github.pagehelper.PageHelper;
@@ -223,12 +225,6 @@ public class TourGroupController {
         if (tourImGroupVo.getBannedStatus()== IsTrue.FALSE) tourImGroupVo.setCodeShowStatus(2);
         //群是否被解散
         if (tourImGroup.getDataState() == -1) tourImGroupVo.setCodeShowStatus(3);
-
-        //如果是系统消息 单独处理
-        if (groupId.equals(SystemDefault.SYSTEM_USERID_OR_GROUPID) || groupId.equals(SystemDefault.FOCUS_USERID_OR_GROUPID) || groupId.equals(SystemDefault.INTERACT_USERID_OR_GROUPID)){
-
-        }
-
         //群成员列表
         TourImMember tourImMember = new TourImMember();
         tourImMember.setGroupId(tourImGroup.getId());
@@ -262,7 +258,6 @@ public class TourGroupController {
         }
         tourImGroupVo.setMemberList(vos);
 
-
         //如果我的id在群成员中,则设置标记
         //true 未加入 false已加入
         boolean b = tourImMemberList.stream().filter(member -> member.getUserId().equals(userId)).findFirst().isEmpty();
@@ -282,9 +277,9 @@ public class TourGroupController {
                 .eq(TourImMessage::getGroupId, groupId)
                 .eq(TourImMessage::getIsTop, 1));
         if (list!=null &&list.size()==1) {
-            tourImGroupVo.setGroupNotice(list.get(0));
+            tourImGroupVo.setGroupNotice(list.get(0).getMessageContent());
         }else {
-            tourImGroupVo.setGroupNotice(new TourImMessage());
+            tourImGroupVo.setGroupNotice("暂无公告");
         }
         return ResponseResult.success(tourImGroupVo);
     }
@@ -392,18 +387,18 @@ public class TourGroupController {
                 .select(TourImMember::getGroupId,TourImMember::getUserId));
         List<TourImMemberVo> tourImMemberVos = MyModelUtil.copyCollectionTo(memberList, TourImMemberVo.class);
         //群成员头像填充
-//        List<String>  memberIds = tourImMemberVos.stream().map(TourImMemberVo::getUserId).toList();
-//        //查询用户信息
-//        List<TourUser> tourUserList = tourUserService.list(new LambdaQueryWrapper<TourUser>()
-//                .in(TourUser::getUserId, memberIds));
-//        tourImMemberVos.forEach(member -> {
-//            //填充头像
-//            tourUserList.stream().forEach(user -> {
-//                if (user.getUserId().toString().equals(member.getUserId())&&user.getHeadImageUrl()!=null){
-//                    member.setHeadImageUrl(user.getHeadImageUrl());
-//                }
-//            });
-//        });
+        List<String>  memberIds = tourImMemberVos.stream().map(TourImMemberVo::getUserId).toList();
+        //查询用户信息
+        List<TourUser> tourUserList = tourUserService.list(new LambdaQueryWrapper<TourUser>()
+                .in(TourUser::getUserId, memberIds));
+        tourImMemberVos.forEach(member -> {
+            //填充头像
+            tourUserList.stream().forEach(user -> {
+                if (user.getUserId().toString().equals(member.getUserId())&&user.getHeadImageUrl()!=null){
+                    member.setHeadImageUrl(user.getHeadImageUrl());
+                }
+            });
+        });
 
         //群申请
         List<TourImGroupInvitation> invitationList = tourImGroupInvitationService.list(new LambdaQueryWrapper<TourImGroupInvitation>()

+ 13 - 11
application-webadmin/src/main/java/com/tourism/webadmin/app/website/controller/TourMessageController.java

@@ -52,6 +52,8 @@ import java.io.IOException;
 import java.util.*;
 import java.util.stream.Collectors;
 
+import static cn.dev33.satoken.log.SaLogForConsole.info;
+
 /**
  *聊天群聊消息操作
  * @author 大春
@@ -315,21 +317,21 @@ public class TourMessageController {
         if (noticeType==NoticeType.NOTICE_FOCUS){
             this.attentionStatus(userIds);
         }
-        messageVo.forEach(info -> {
-            FocusDTO bean = JSON.parseObject(info.getMessageContent(), FocusDTO.class);
+        for (int i = 0; i < messageVo.size(); i++) {
+            TourImMessageVo tour = messageVo.get(i);
+            FocusDTO bean = JSON.parseObject(String.valueOf(tour), FocusDTO.class);
             if (userId.toString().equals(bean.getGetUserId())){
-                info.setFocusStatus(bean.getAttentionStatus());
+                tour.setFocusStatus(bean.getAttentionStatus());
             }
-            String messageContent = info.getMessageContent();
-            info.setMessagePO(JSON.parseObject(messageContent));
-        });
-
+            String messageContent = tour.getMessageContent();
+            tour.setMessagePO(JSON.parseObject(messageContent));
+        }
         pageData.setTotalCount(Long.valueOf(messageList.size()));
         return ResponseResult.success(pageData);
     }
 
 
-    public Map<Long, Long> attentionStatus(List<Long> userIds) {
+    public List<Long> attentionStatus(List<Long> userIds) {
         //用户id
         Long myId = TokenData.takeFromRequest().getUserId();
         // 我的粉丝列表  attentionId = currentUserId
@@ -350,7 +352,7 @@ public class TourMessageController {
                 .collect(Collectors.toSet());
         // 关注状态填充
 
-        HashMap<Long, Long> map = new HashMap<>();
+        ArrayList<Long> longs = new ArrayList<>();
         userIds.forEach(userId->{
             Long status = null;
             if (userId.toString().equals(myId.toString())){
@@ -364,10 +366,10 @@ public class TourMessageController {
             } else {
                 status =MyAttentionStatus.UN_FOCUS;  // 未关注
             }
-            map.put(userId,status);
+            longs.add(status);
         });
 
-        return map;
+        return longs;
     }
 
 

+ 2 - 1
application-webadmin/src/main/java/com/tourism/webadmin/app/website/controller/TourWebFansController.java

@@ -669,10 +669,11 @@ public class TourWebFansController {
             );
             //通过map 重新匹配 匹配到了把粉丝数据塞入进去
             List<TourFansVo> tourFansVoList = tourFansVos.stream().map(item -> {
-                Optional<Map<String, Object>> first = maps.stream().filter(i -> i.get("attention_id").equals(item.getAttentionIdDictMap().get("id"))).findFirst();
+                Optional<Map<String, Object>> first = maps.stream().filter(i -> i.get("attention_id").toString().equals(item.getCreateUserId().toString())).findFirst();
                 if (first.isPresent()) {
                     Map<String, Object> stringObjectMap = first.get();
                     item.getAttentionIdDictMap().put("fansNum", stringObjectMap.get("num"));
+                    item.setFansNum(stringObjectMap.get("num").toString());
                 }
                 return item;
             }).collect(Collectors.toList());

+ 5 - 3
application-webadmin/src/main/java/com/tourism/webadmin/app/website/service/impl/TourMemberImpl.java

@@ -187,11 +187,11 @@ public class TourMemberImpl extends ServiceImpl<TourImMemberMapper, TourImMember
         }
         //排序  1 系统 2 关注 3 互动 .....
         List<MainMemberVo> sort = sort(list);
-        userMainMemberVo.setList(sort);
         //处理前三个固定群聊的最后一条消息
         this.delLastSysMessage(sort);
         //处理三个固定群聊未读消息数量
         this.delUnreadMessageCount(sort);
+        userMainMemberVo.setList(sort);
         return userMainMemberVo;
     }
 
@@ -624,14 +624,16 @@ public class TourMemberImpl extends ServiceImpl<TourImMemberMapper, TourImMember
 
         //所有未读消息数量
         List<TourImMessage> tourImMessages = tourImMessageService.getBaseMapper().selectList(query);
-        if(ObjectUtil.isEmpty(tourImMessages)) return;
 
         //群聊ID ->转消息List
         Map<Long, List<TourImMessage>> map = tourImMessages.stream().collect(Collectors.groupingBy(TourImMessage::getGroupId));
         int i=1;
         for (MainMemberVo mainMemberVo : list) {
             List<TourImMessage> tourImMessages1 = map.get(Long.valueOf(mainMemberVo.getGroupId()));
-            mainMemberVo.setUnreadMessageCount(tourImMessages1==null? 0:tourImMessages1.size());
+            mainMemberVo.setUnreadMessageCount(tourImMessages1==null? 0:tourImMessages1.size() );
+            if ( mainMemberVo.getUnreadMessageCount()==0){
+                mainMemberVo.setLastMessage(null);
+            }
             i++;
             if(i>3) break;
         }

+ 3 - 1
application-webadmin/src/main/java/com/tourism/webadmin/back/vo/TourImGroupVo.java

@@ -171,9 +171,11 @@ public class TourImGroupVo extends BaseVo {
      * 群公告
      */
     @Schema(description = "群公告")
-    private TourImMessage groupNotice;
+    private String groupNotice;
 
     @TableField(exist = false)
     private List<TourUser> userList;
 
+
+
 }