|
@@ -195,6 +195,8 @@ public class ImUserFriendServiceImpl extends BaseServiceImpl<Long, ImUserFriend>
|
|
|
imUserFriends.addAll(saveImUserFriends(studentIds,teacherIds,groupType,musicGroupId));
|
|
|
});
|
|
|
|
|
|
+ setSchoolStaffImFriend(musicGroupId, imUserFriends);
|
|
|
+
|
|
|
|
|
|
if(imUserFriends.size() > 0){
|
|
|
batchInsert(imUserFriends);
|
|
@@ -205,6 +207,61 @@ public class ImUserFriendServiceImpl extends BaseServiceImpl<Long, ImUserFriend>
|
|
|
// executor.shutdown();
|
|
|
}
|
|
|
|
|
|
+ private void setSchoolStaffImFriend(String musicGroupId, List<ImUserFriend> imUserFriends) {
|
|
|
+ // 更新
|
|
|
+ MusicGroup musicGroup = musicGroupDao.get(musicGroupId);
|
|
|
+
|
|
|
+ if (musicGroup != null) {
|
|
|
+ Map<Integer,String> studentSubjectName = new HashMap<>();
|
|
|
+ //获取乐团关联的学员列表
|
|
|
+ Set<Integer> studentIds = new HashSet<>(studentRegistrationDao.queryNormalUserList(musicGroupId));
|
|
|
+ if(studentIds.size() > 0){
|
|
|
+ studentSubjectName = MapUtil.convertMybatisMap(studentRegistrationDao.getStudentSubjectNameByStuIds(musicGroup.getId(),studentIds));
|
|
|
+ }
|
|
|
+ Map<Integer, String> usernameMap = new HashMap<>();
|
|
|
+ if(studentIds.size() > 0){
|
|
|
+ usernameMap = MapUtil.convertMybatisMap(teacherDao.queryUserNameByIdList(new ArrayList<>(studentIds)));
|
|
|
+ }
|
|
|
+ Set<Integer> educationIds = new HashSet<>();
|
|
|
+ educationIds.add(musicGroup.getTeamTeacherId());
|
|
|
+
|
|
|
+ //学校乐团领队关联 乐团管理人员、教务、学员
|
|
|
+
|
|
|
+ Set<Integer> schoolStaffIds = new HashSet<>();
|
|
|
+ SchoolStaff schoolStaff = getSchoolOrchestraLeaderByMusicGroupId(musicGroupId);
|
|
|
+ if (schoolStaff != null) {
|
|
|
+ schoolStaffIds.add(schoolStaff.getUserId().intValue());
|
|
|
+ }
|
|
|
+ Map<Integer, String> schoolStaffRealNameMap = new HashMap<>();
|
|
|
+ if (schoolStaffIds.size() > 0) {
|
|
|
+ schoolStaffRealNameMap = MapUtil.convertMybatisMap(teacherDao.queryUserNameByIdList(new ArrayList<>(schoolStaffIds)));
|
|
|
+ }
|
|
|
+ Map<Integer, String> educationRealNameMap;
|
|
|
+ educationRealNameMap = MapUtil.convertMybatisMap(teacherDao.queryUserNameByIdList(new ArrayList<>(educationIds)));
|
|
|
+ //学校乐团领队关联教务
|
|
|
+ for (Integer schoolStaffId : schoolStaffIds) {
|
|
|
+ this.addImUserFriend(educationIds,null,educationRealNameMap,null
|
|
|
+ ,schoolStaffId, imUserFriends,EFriendRoleType.ORCHESTRA_MANAGER.name());
|
|
|
+ //学校乐团领队关联学员
|
|
|
+ this.addImUserFriend(studentIds,studentSubjectName,usernameMap,musicGroup.getName()
|
|
|
+ ,schoolStaffId, imUserFriends,EFriendRoleType.STUDENT.name());
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ //教务关联的老师、学员
|
|
|
+ for (Integer educationId : educationIds) {
|
|
|
+ //老师关联学校乐团领队
|
|
|
+ this.addImUserFriend(schoolStaffIds,null,schoolStaffRealNameMap,null,educationId, imUserFriends);
|
|
|
+ }
|
|
|
+ //学员关联的老师、教务、维修技师
|
|
|
+ for (Integer studentId : studentIds) {
|
|
|
+ //老师关联学校乐团领队
|
|
|
+ this.addImUserFriend(schoolStaffIds,null,schoolStaffRealNameMap,null,studentId, imUserFriends);
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
private SchoolStaff getSchoolOrchestraLeaderByMusicGroupId(String musicGroupId){
|
|
|
|
|
|
MusicGroup musicGroup = musicGroupDao.get(musicGroupId);
|
|
@@ -245,11 +302,8 @@ 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<>();
|
|
@@ -261,7 +315,6 @@ public class ImUserFriendServiceImpl extends BaseServiceImpl<Long, ImUserFriend>
|
|
|
if(groupType == MUSIC){
|
|
|
//学员关联乐团管理人员通讯录
|
|
|
musicGroup = musicGroupDao.get(musicGroupId);
|
|
|
- musicGroupLeader= musicGroup.getDirectorUserId();
|
|
|
educationIds.add(musicGroup.getDirectorUserId());
|
|
|
educationIds.add(musicGroup.getEducationalTeacherId());
|
|
|
educationIds.add(musicGroup.getTeamTeacherId());
|
|
@@ -273,11 +326,6 @@ public class ImUserFriendServiceImpl extends BaseServiceImpl<Long, ImUserFriend>
|
|
|
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());
|
|
@@ -300,6 +348,14 @@ public class ImUserFriendServiceImpl extends BaseServiceImpl<Long, ImUserFriend>
|
|
|
if(educationIds.size() > 0){
|
|
|
educationRealNameMap = MapUtil.convertMybatisMap(teacherDao.queryUserNameByIdList(new ArrayList<>(educationIds)));
|
|
|
}
|
|
|
+
|
|
|
+ //学校乐团领队关联 乐团管理人员、教务、学员
|
|
|
+
|
|
|
+ Set<Integer> schoolStaffIds = new HashSet<>();
|
|
|
+ SchoolStaff schoolStaff = getSchoolOrchestraLeaderByMusicGroupId(musicGroupId);
|
|
|
+ if (schoolStaff != null) {
|
|
|
+ schoolStaffIds.add(schoolStaff.getUserId().intValue());
|
|
|
+ }
|
|
|
if (schoolStaffIds.size() > 0) {
|
|
|
schoolStaffRealNameMap = MapUtil.convertMybatisMap(teacherDao.queryUserNameByIdList(new ArrayList<>(schoolStaffIds)));
|
|
|
|
|
@@ -319,8 +375,6 @@ 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) {
|
|
@@ -328,8 +382,6 @@ 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.equals(studentId)){
|
|
@@ -348,24 +400,7 @@ public class ImUserFriendServiceImpl extends BaseServiceImpl<Long, 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);
|
|
|
- }
|
|
|
+ ,schoolStaff.getUserId().intValue(),imUserFriends,EFriendRoleType.ORCHESTRA_TEACHER.name());
|
|
|
}
|
|
|
//维修技师关联学员
|
|
|
if(repairUserId != null){
|