Browse Source

修改聊天逻辑

liujc 1 year ago
parent
commit
d0c0641145

+ 68 - 51
.idea/httpRequests/http-requests-log.http

@@ -1,3 +1,71 @@
+POST http://127.0.0.1:8005/open/school/staffSave
+Content-Type: application/json
+coopId: 19
+tenantId: 1
+Content-Length: 129
+Connection: Keep-Alive
+User-Agent: Apache-HttpClient/4.5.14 (Java/17.0.6)
+Accept-Encoding: br,deflate,gzip,x-gzip
+
+{
+  "schoolId": 3,
+  "userType": "ORCHESTRA_LEADER",
+  "username": "测试113",
+  "mobile": "19900990114",
+  "smsCode" : 666666
+}
+
+<> 2023-05-29T183339.200.json
+
+###
+
+GET http://127.0.0.1:8005/imGroup/queryGroupMemberList?imGroupId=62
+Content-Type: application/json
+Authorization: bearer 9e3a8ca3-b369-485a-aae0-5cdf17d46e61
+Connection: Keep-Alive
+User-Agent: Apache-HttpClient/4.5.14 (Java/17.0.6)
+Accept-Encoding: br,deflate,gzip,x-gzip
+
+<> 2023-05-29T182845.200.json
+
+###
+
+POST http://127.0.0.1:8005/coursePatrolEvaluation/pageStat
+Authorization: bearer 9e3a8ca3-b369-485a-aae0-5cdf17d46e61
+Content-Type: application/json
+coopId: 12
+Content-Length: 58
+Connection: Keep-Alive
+User-Agent: Apache-HttpClient/4.5.14 (Java/17.0.6)
+Accept-Encoding: br,deflate,gzip,x-gzip
+
+{
+  "startTime": "2023-01-01",
+  "endTime": "2024-04-04"
+}
+
+<> 2023-05-29T182738.200.json
+
+###
+
+POST http://127.0.0.1:8005/coursePatrolEvaluation/pageStat
+Authorization: bearer 703c9711-ca6d-45c3-9583-34d7b9d86705
+Content-Type: application/json
+coopId: 12
+Content-Length: 58
+Connection: Keep-Alive
+User-Agent: Apache-HttpClient/4.5.14 (Java/17.0.6)
+Accept-Encoding: br,deflate,gzip,x-gzip
+
+{
+  "startTime": "2023-01-01",
+  "endTime": "2024-04-04"
+}
+
+<> 2023-05-29T182713.200.json
+
+###
+
 GET http://127.0.0.1:8005/schoolStaff/cooperation
 Authorization: bearer 66862b1d-938b-467e-b7c9-65f77f0e7347
 tenantId: 1
@@ -561,54 +629,3 @@ Accept-Encoding: br,deflate,gzip,x-gzip
 
 ###
 
-POST http://127.0.0.1:8005/imLiveBroadcastRoomMember/queryRoomMember
-Content-Type: application/json
-Authorization: bearer 70c30cec-f77c-4871-beaa-ce4b5224bf3e
-Content-Length: 59
-Proxy-Connection: Keep-Alive
-User-Agent: Apache-HttpClient/4.5.14 (Java/17.0.6)
-Accept-Encoding: br,deflate,gzip,x-gzip
-
-{"rows":10,"page":1,"roomUid":"LIVE-2248475-1683777517444"}
-
-<> 2023-05-12T184412.200.json
-
-###
-
-POST http://127.0.0.1:8005/imLiveBroadcastRoomMember/queryRoomMember
-Content-Type: application/json
-Authorization: bearer 70c30cec-f77c-4871-beaa-ce4b5224bf3e
-Content-Length: 59
-Proxy-Connection: Keep-Alive
-User-Agent: Apache-HttpClient/4.5.14 (Java/17.0.6)
-Accept-Encoding: br,deflate,gzip,x-gzip
-
-{"rows":10,"page":1,"roomUid":"LIVE-2248475-1683777517444"}
-
-<> 2023-05-12T183529.200.json
-
-###
-
-POST http://127.0.0.1:8005/imLiveBroadcastRoomMember/queryRoomMember
-Content-Type: application/json
-Authorization: bearer 70c30cec-f77c-4871-beaa-ce4b5224bf3e
-Content-Length: 59
-Proxy-Connection: Keep-Alive
-User-Agent: Apache-HttpClient/4.5.14 (Java/17.0.6)
-Accept-Encoding: br,deflate,gzip,x-gzip
-
-{"rows":10,"page":1,"roomUid":"LIVE-2248475-1683777517444"}
-
-<> 2023-05-12T183456.200.json
-
-###
-
-GET http://127.0.0.1:9001/open/liveBroadcastRoom/visitorRoomInfo?roomUid=LIVE-2248475-1683777517444&userId=10001
-Proxy-Connection: Keep-Alive
-User-Agent: Apache-HttpClient/4.5.14 (Java/17.0.6)
-Accept-Encoding: br,deflate,gzip,x-gzip
-
-<> 2023-05-11T204659.200.json
-
-###
-

+ 1 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/impl/ImGroupServiceImpl.java

@@ -187,6 +187,7 @@ public class ImGroupServiceImpl extends BaseServiceImpl<String, ImGroup> impleme
 
         for (ImGroupMemberDto imGroupMemberDto : imGroupMemberDtos) {
             imGroupMemberDto.setType(EFriendRoleType.getByName(imGroupMemberDto.getRoleType()).name());
+            imGroupMemberDto.getUser().setUsername(imGroupMemberDto.getGroupNickname());
         }
         return imGroupMemberDtos;
     }

+ 65 - 43
mec-biz/src/main/java/com/ym/mec/biz/service/impl/ImUserFriendServiceImpl.java

@@ -4,6 +4,7 @@ import java.util.*;
 import java.util.stream.Collectors;
 
 import com.google.common.collect.Lists;
+import com.google.common.collect.Sets;
 import com.ym.mec.biz.dal.dao.*;
 import com.ym.mec.biz.dal.entity.*;
 import com.ym.mec.biz.dal.enums.EFriendRoleType;
@@ -195,6 +196,17 @@ public class ImUserFriendServiceImpl extends BaseServiceImpl<Long, ImUserFriend>
         });
 
 
+        if(imUserFriends.size() > 0){
+            batchInsert(imUserFriends);
+        }
+        //更新用户朋友昵称是空的历史数据(线上没有发现这种问题)
+        imUserFriendDao.updateNullNickName();
+//		},executor);
+//		executor.shutdown();
+    }
+
+    private SchoolStaff getSchoolOrchestraLeaderByMusicGroupId(String musicGroupId){
+
         MusicGroup musicGroup = musicGroupDao.get(musicGroupId);
         // 更新学校端乐团主管的群好友列表
         if (musicGroup != null && musicGroup.getCooperationOrganId() != null) {
@@ -202,50 +214,10 @@ public class ImUserFriendServiceImpl extends BaseServiceImpl<Long, ImUserFriend>
             List<SchoolStaff> schoolStaffs = schoolStaffMapper.getByCoopIdAndType(musicGroup.getCooperationOrganId(), ESchoolStaffType.ORCHESTRA_LEADER);
 
             if (CollectionUtils.isNotEmpty(schoolStaffs)) {
-                SchoolStaff schoolStaff = schoolStaffs.get(0);
-                // 群组ID集合
-                List<String> imGroupIds = new ArrayList<>();
-//                imGroupIds.add(musicGroupId);
-                if (CollectionUtils.isNotEmpty(classGroups)) {
-                    imGroupIds.addAll(classGroups.stream().map(o -> o.getId().toString()).collect(Collectors.toList()));
-
-                    // 获取乐团群的人员列表
-                    List<ImGroupMember> memberList = imGroupMemberDao.getByGroupId(imGroupIds);
-                    if (CollectionUtils.isNotEmpty(memberList)) {
-                        Long staffUserId = schoolStaff.getUserId();
-                        // 设置角色
-                        memberList = memberList.stream().map(o -> {
-                            if (StringUtils.isBlank(o.getRoleType())) {
-                                o.setRoleType(EFriendRoleType.STUDENT.name());
-                            } else {
-                                o.setRoleType(EFriendRoleType.getByName(o.getRoleType()).name());
-                            }
-                            return o;
-                        }).collect(Collectors.toList());
-
-                        // ID toMap roleType
-                        Map<Integer, String> roleTypeMap = memberList.stream().collect(Collectors.toMap(ImGroupMember::getUserId, ImGroupMember::getRoleType, (k1, k2) -> k2));
-
-
-                        Set<Integer> userIds = memberList.stream().map(ImGroupMember::getUserId)
-                                .collect(Collectors.toSet());
-                        userFriends(imUserFriends, musicGroup, staffUserId, userIds, roleTypeMap);
-                    }
-                }
+                return schoolStaffs.get(0);
             }
-            // 更新学校端好友列表
-            imUserFriends.addAll(schoolStaffFriend(musicGroup.getCooperationOrganId()));
-
-        }
-
-
-        if(imUserFriends.size() > 0){
-            batchInsert(imUserFriends);
         }
-        //更新用户朋友昵称是空的历史数据(线上没有发现这种问题)
-        imUserFriendDao.updateNullNickName();
-//		},executor);
-//		executor.shutdown();
+        return null;
     }
 
     @Override
@@ -273,18 +245,23 @@ public class ImUserFriendServiceImpl extends BaseServiceImpl<Long, ImUserFriend>
     public List<ImUserFriend> saveImUserFriends(Set<Integer> studentIds,Set<Integer> teacherIds,GroupType groupType,String musicGroupId){
         List<ImUserFriend> imUserFriends = new ArrayList<>();
         Set<Integer> educationIds = new HashSet<>();
+        Set<Integer> schoolStaffIds = new HashSet<>();
+        SchoolStaff schoolStaff = null;
         Integer repairUserId = null;
         String repairUserName = null;
+        Integer musicGroupLeader = null;
         MusicGroup musicGroup = new MusicGroup();
         //获取当前学员声部
         Map<Integer,String> studentSubjectName = new HashMap<>();
         Map<Integer, String> teacherSubjectNameMap = new HashMap<>();
+        Map<Integer, String> schoolStaffRealNameMap = new HashMap<>();
         if(teacherIds.size() > 0){
             teacherSubjectNameMap = MapUtil.convertIntegerMap(teacherDao.querySubjectNameByIdList(new ArrayList<>(teacherIds)));
         }
         if(groupType == MUSIC){
             //学员关联乐团管理人员通讯录
             musicGroup = musicGroupDao.get(musicGroupId);
+            musicGroupLeader= musicGroup.getDirectorUserId();
             educationIds.add(musicGroup.getDirectorUserId());
             educationIds.add(musicGroup.getEducationalTeacherId());
             educationIds.add(musicGroup.getTeamTeacherId());
@@ -295,6 +272,12 @@ public class ImUserFriendServiceImpl extends BaseServiceImpl<Long, ImUserFriend>
             if(studentIds.size() > 0){
                 studentSubjectName = MapUtil.convertMybatisMap(studentRegistrationDao.getStudentSubjectNameByStuIds(musicGroup.getId(),studentIds));
             }
+
+            //学校乐团领队关联 乐团管理人员、教务、学员
+            schoolStaff = getSchoolOrchestraLeaderByMusicGroupId(musicGroupId);
+            if (schoolStaff != null) {
+                schoolStaffIds.add(schoolStaff.getUserId().intValue());
+            }
         }else if(groupType == VIP){
             VipGroup vipGroup = vipGroupDao.get(Long.parseLong(musicGroupId));
             educationIds.add(vipGroup.getEducationalTeacherId());
@@ -317,12 +300,18 @@ public class ImUserFriendServiceImpl extends BaseServiceImpl<Long, ImUserFriend>
         if(educationIds.size() > 0){
             educationRealNameMap = MapUtil.convertMybatisMap(teacherDao.queryUserNameByIdList(new ArrayList<>(educationIds)));
         }
+        if (schoolStaffIds.size() > 0) {
+             schoolStaffRealNameMap = MapUtil.convertMybatisMap(teacherDao.queryUserNameByIdList(new ArrayList<>(schoolStaffIds)));
+
+        }
         //老师关联教务、学员
         for (Integer teacherId : teacherIds) {
             //老师关联学员
             this.addImUserFriend(studentIds,studentSubjectName,usernameMap,musicGroup.getName(),teacherId,imUserFriends);
             //老师关联教务
             this.addImUserFriend(educationIds,null,educationRealNameMap,null,teacherId,imUserFriends);
+            //老师关联学校乐团领队
+            this.addImUserFriend(schoolStaffIds,null,schoolStaffRealNameMap,null,teacherId,imUserFriends);
         }
         //教务关联的老师、学员
         for (Integer educationId : educationIds) {
@@ -330,6 +319,8 @@ public class ImUserFriendServiceImpl extends BaseServiceImpl<Long, ImUserFriend>
             this.addImUserFriend(studentIds,studentSubjectName,usernameMap,musicGroup.getName(),educationId,imUserFriends);
             //教务关联老师
             this.addImUserFriend(teacherIds,teacherSubjectNameMap,teacherRealNameMap,musicGroup.getName(),educationId,imUserFriends);
+            //老师关联学校乐团领队
+            this.addImUserFriend(schoolStaffIds,null,schoolStaffRealNameMap,null,educationId,imUserFriends);
         }
         //学员关联的老师、教务、维修技师
         for (Integer studentId : studentIds) {
@@ -337,9 +328,11 @@ public class ImUserFriendServiceImpl extends BaseServiceImpl<Long, ImUserFriend>
             this.addImUserFriend(teacherIds,teacherSubjectNameMap,teacherRealNameMap,musicGroup.getName(),studentId,imUserFriends);
             //学员关联的教务
             this.addImUserFriend(educationIds,null,educationRealNameMap,null,studentId,imUserFriends);
+            //老师关联学校乐团领队
+            this.addImUserFriend(schoolStaffIds,null,schoolStaffRealNameMap,null,studentId,imUserFriends);
             //学员关联维修技师
             if(repairUserId != null){
-                if(repairUserId == studentId){
+                if(repairUserId.equals(studentId)){
                     continue;
                 }
                 ImUserFriend imUserFriend = new ImUserFriend();
@@ -351,6 +344,29 @@ public class ImUserFriendServiceImpl extends BaseServiceImpl<Long, ImUserFriend>
                 imUserFriends.add(imUserFriend);
             }
         }
+
+        if(schoolStaff != null){
+            //学校乐团领队关联乐团管理人员
+            this.addImUserFriend(teacherIds,teacherSubjectNameMap,teacherRealNameMap,musicGroup.getName()
+                    ,schoolStaff.getId().intValue(),imUserFriends,EFriendRoleType.ORCHESTRA_TEACHER.name());
+            //学校乐团领队关联教务
+            this.addImUserFriend(Sets.newHashSet(musicGroupLeader),null,educationRealNameMap,null
+                    ,schoolStaff.getId().intValue(),imUserFriends,EFriendRoleType.ORCHESTRA_MANAGER.name());
+            //学校乐团领队关联学员
+            this.addImUserFriend(studentIds,studentSubjectName,usernameMap,musicGroup.getName()
+                    ,schoolStaff.getId().intValue(),imUserFriends,EFriendRoleType.STUDENT.name());
+            //学员关联维修技师
+            if(repairUserId != null){
+                ImUserFriend imUserFriend = new ImUserFriend();
+                imUserFriend.setUserId(schoolStaff.getUserId().intValue());
+                imUserFriend.setFriendId(repairUserId);
+                imUserFriend.setFriendNickname(repairUserName);
+                imUserFriend.setMemo(musicGroup.getName());
+                imUserFriend.setTags("维修技师");
+                imUserFriend.setRoleType(EFriendRoleType.MAINTENANCE_TECHNICIAN.name());
+                imUserFriends.add(imUserFriend);
+            }
+        }
         //维修技师关联学员
         if(repairUserId != null){
             this.addImUserFriend(studentIds,studentSubjectName,usernameMap,musicGroup.getName(),repairUserId,imUserFriends);
@@ -446,8 +462,13 @@ public class ImUserFriendServiceImpl extends BaseServiceImpl<Long, ImUserFriend>
 
     }
 
+
     public void addImUserFriend(Set<Integer> friendUserIds,Map<Integer,String> tagsMap,
                                 Map<Integer,String> nameMap,String memo,Integer userId,List<ImUserFriend> imUserFriends){
+        addImUserFriend(friendUserIds,tagsMap,nameMap,memo,userId,imUserFriends,"");
+    }
+    public void addImUserFriend(Set<Integer> friendUserIds,Map<Integer,String> tagsMap,
+                                Map<Integer,String> nameMap,String memo,Integer userId,List<ImUserFriend> imUserFriends,String roleType){
         if(friendUserIds != null && friendUserIds.size() > 0){
             for (Integer friendId : friendUserIds) {
                 if(userId == friendId){
@@ -458,6 +479,7 @@ public class ImUserFriendServiceImpl extends BaseServiceImpl<Long, ImUserFriend>
                 imUserFriend.setFriendId(friendId);
                 imUserFriend.setFriendNickname(nameMap.get(friendId));
                 imUserFriend.setMemo(memo);
+                imUserFriend.setRoleType(roleType);
                 if(tagsMap != null){
                     imUserFriend.setTags(tagsMap.get(friendId));
                 }

+ 3 - 3
mec-biz/src/main/resources/config/mybatis/CoursePatrolEvaluationMapper.xml

@@ -81,9 +81,9 @@
         select
             cs.class_date_ as `date`
             ,count(distinct cs.id_) as `totalCount`
-            ,sum(distinct if(cs.type_ = 'SINGLE',1,0)) as  singleCourseCount
-            ,sum(distinct if(cs.type_ = 'MIX',1,0)) as minCourseCount
-            ,sum(distinct if(cpe.id_ is not null,1,0)) as patrolCount
+            ,sum( if(cs.type_ = 'SINGLE',1,0)) as  singleCourseCount
+            ,sum( if(cs.type_ = 'MIX',1,0)) as minCourseCount
+            ,sum( if(cpe.id_ is not null,1,0)) as patrolCount
         from
             course_schedule cs
             left join music_group mg on mg.id_ = cs.music_group_id_