liujc 2 anos atrás
pai
commit
cdd636c3fb

+ 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_