Browse Source

Merge remote-tracking branch 'origin/master'

Joburgess 4 years ago
parent
commit
2ecdd4a7b7

+ 1 - 1
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/CourseScheduleTeacherSalaryDao.java

@@ -489,7 +489,7 @@ public interface CourseScheduleTeacherSalaryDao extends BaseDAO<Long, CourseSche
 	 * @param classGroupId
 	 * @return
 	 */
-    List<Integer> queryTeacherByTeaching(@Param("classGroupId") Integer classGroupId);
+    List<Integer> queryTeacherByTeaching(@Param("classGroupId") Integer classGroupId,@Param("teacherRole") String teacherRole);
 
 	/**
 	 * 根据助教主教获取教师列表

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

@@ -4987,7 +4987,7 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
 		//获取助教老师列表
 		if(courseSchedules.size() > 0){
 			courseSchedules.forEach(e->{
-				e.setTeachingTeacherIdList(courseScheduleTeacherSalaryDao.queryTeacherByTeaching(e.getClassGroupId()));
+				e.setTeachingTeacherIdList(courseScheduleTeacherSalaryDao.queryTeacherByTeaching(e.getClassGroupId(),"TEACHING"));
 				e.setActualTeacherId(targetTeacherId);
 			});
 			this.courseAdjust(courseSchedules);

+ 17 - 4
mec-biz/src/main/java/com/ym/mec/biz/service/impl/ImUserFriendServiceImpl.java

@@ -19,8 +19,7 @@ import com.ym.mec.common.exception.BizException;
 import com.ym.mec.common.service.impl.BaseServiceImpl;
 import org.springframework.transaction.annotation.Transactional;
 
-import static com.ym.mec.biz.dal.enums.GroupType.MUSIC;
-import static com.ym.mec.biz.dal.enums.GroupType.VIP;
+import static com.ym.mec.biz.dal.enums.GroupType.*;
 
 @Service
 public class ImUserFriendServiceImpl extends BaseServiceImpl<Long, ImUserFriend> implements ImUserFriendService {
@@ -38,6 +37,8 @@ public class ImUserFriendServiceImpl extends BaseServiceImpl<Long, ImUserFriend>
 	@Autowired
 	private VipGroupDao vipGroupDao;
 	@Autowired
+	private PracticeGroupDao practiceGroupDao;
+	@Autowired
 	private TeacherDao teacherDao;
 	@Autowired
 	private CourseScheduleTeacherSalaryDao courseScheduleTeacherSalaryDao;
@@ -141,8 +142,8 @@ public class ImUserFriendServiceImpl extends BaseServiceImpl<Long, ImUserFriend>
 		//获取班级关联的老师
 		List<ClassGroupTeacherMapper> classGroupTeacherMappers = classGroupTeacherMapperDao.findByClassGroup(classGroupId);
 		teacherIds.addAll(classGroupTeacherMappers.stream().map(e->e.getUserId()).collect(Collectors.toSet()));
-		//学员关联的课程上的主教老师
-		teacherIds.add(courseScheduleTeacherSalaryDao.queryTeacherByBishop(classGroupId));
+		//学员关联的课程上的老师
+		teacherIds.addAll(courseScheduleTeacherSalaryDao.queryTeacherByTeaching(classGroupId,null));
 		teacherIds.addAll(studentIds);
 
 		MusicGroup musicGroup = new MusicGroup();
@@ -164,6 +165,10 @@ public class ImUserFriendServiceImpl extends BaseServiceImpl<Long, ImUserFriend>
 			VipGroup vipGroup = vipGroupDao.get(Long.parseLong(classGroup.getMusicGroupId()));
 			teacherIds.add(vipGroup.getEducationalTeacherId());
 			educations.add(vipGroup.getEducationalTeacherId());
+		}else if(groupType == PRACTICE){
+			PracticeGroup practiceGroup = practiceGroupDao.get(Long.parseLong(classGroup.getMusicGroupId()));
+			teacherIds.add(practiceGroup.getEducationalTeacherId());
+			educations.add(practiceGroup.getEducationalTeacherId());
 		}
 		educations.removeAll(Collections.singleton(null));
 		teacherIds.removeAll(Collections.singleton(null));
@@ -256,6 +261,10 @@ public class ImUserFriendServiceImpl extends BaseServiceImpl<Long, ImUserFriend>
 			VipGroup vipGroup = vipGroupDao.get(Long.parseLong(classGroup.getMusicGroupId()));
 			studentIds.add(vipGroup.getEducationalTeacherId());
 			educations.add(vipGroup.getEducationalTeacherId());
+		}else if(groupType == PRACTICE){
+			PracticeGroup practiceGroup = practiceGroupDao.get(Long.parseLong(classGroup.getMusicGroupId()));
+			studentIds.add(practiceGroup.getEducationalTeacherId());
+			educations.add(practiceGroup.getEducationalTeacherId());
 		}
 		educations.removeAll(Collections.singleton(null));
 		studentIds.removeAll(Collections.singleton(null));
@@ -383,6 +392,10 @@ public class ImUserFriendServiceImpl extends BaseServiceImpl<Long, ImUserFriend>
 			VipGroup vipGroup = vipGroupDao.get(Long.parseLong(courseSchedule.getMusicGroupId()));
 			educations.add(vipGroup.getEducationalTeacherId());
 			studentIds.add(vipGroup.getEducationalTeacherId());
+		}else if(groupType == PRACTICE){
+			PracticeGroup practiceGroup = practiceGroupDao.get(Long.parseLong(courseSchedule.getMusicGroupId()));
+			studentIds.add(practiceGroup.getEducationalTeacherId());
+			educations.add(practiceGroup.getEducationalTeacherId());
 		}
 		educations.removeAll(Collections.singleton(null));
 		studentIds.removeAll(Collections.singleton(null));

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

@@ -1012,7 +1012,9 @@
     <select id="queryTeacherByTeaching" resultType="java.lang.Integer">
 		SELECT DISTINCT cgtm.user_id_ FROM class_group_teacher_mapper cgtm
 		WHERE cgtm.class_group_id_ = #{classGroupId}
-		  AND cgtm.teacher_role_ = 'TEACHING'
+		<if test="teacherRole != null">
+			AND cgtm.teacher_role_ = #{teacherRole}
+		</if>
 	</select>
     <select id="queryTeacherByBishop" resultType="java.lang.Integer">
 		SELECT DISTINCT cgtm.user_id_ FROM class_group_teacher_mapper cgtm

+ 44 - 8
mec-im/src/main/java/com/ym/service/Impl/RoomServiceImpl.java

@@ -255,6 +255,29 @@ public class RoomServiceImpl implements RoomService {
         return roomResult;
     }
 
+    public RoomMember saveRoomMember(String roomId,String userId){
+        SysUser sysUser = sysUserFeignService.queryUserById(Integer.parseInt(userId));
+
+        Teacher teacher = teacherDao.get(Integer.parseInt(userId));
+        CourseSchedule courseSchedule = courseScheduleDao.get(Long.parseLong(roomId));
+
+        Date curTime = DateTimeUtils.currentUTC();
+
+        RoleEnum roleEnum;
+        RoomMember member = roomMemberDao.findByRidAndUid(roomId, userId);
+        String userName;
+        if (member == null) {
+            if(teacher != null && teacher.getId().equals(courseSchedule.getActualTeacherId())){
+                roleEnum = RoleTeacher;
+                userName = sysUser.getRealName();
+            }else {
+                roleEnum = RoleStudent;
+                userName = sysUser.getUsername();
+            }
+            member = saveRoomMember(userId, sysUser.getAvatar(), userName, roomId, roleEnum.getValue(), curTime);
+        }
+        return member;
+    }
 
 
     @Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class,isolation = Isolation.READ_COMMITTED)
@@ -274,7 +297,7 @@ public class RoomServiceImpl implements RoomService {
     public void joinRoomSuccess(String roomId,String userId,String deviceNum) throws Exception {
         RoomMember roomMember = roomMemberDao.findByRidAndUid(roomId, userId);
         if(roomMember == null){
-            return ;
+            roomMember = saveRoomMember(roomId,userId);
         }
         String joinSuccessKey = "joinRoomSuccess"+ roomId + userId;
         if(redisTemplate.hasKey(joinSuccessKey)){
@@ -411,20 +434,33 @@ public class RoomServiceImpl implements RoomService {
     @Override
     public void leaveRoomSuccess(String roomId,String userId,String deviceNum) throws Exception {
         RoomMember roomMember = roomMemberDao.findByRidAndUid(roomId, userId);
-        if(roomMember == null){
-            return ;
-        }
         String leaveSuccessKey = "leaveRoomSuccess"+ roomId + userId;
         Integer firstCourseId = Integer.parseInt(roomId.substring(1));
         if(redisTemplate.hasKey(leaveSuccessKey)){
             redisTemplate.delete(leaveSuccessKey);
-            //如果设备号不为空,更新设备号
-            RoleEnum roleEnum = RoleEnum.getEnumByValue(roomMember.getRole());
-            if(roleEnum == RoleTeacher && StringUtils.isNotEmpty(deviceNum)){
-                teacherAttendanceService.addTeacherAttendanceSignOut(firstCourseId.longValue(),Integer.parseInt(userId),deviceNum);
+            if (StringUtils.isNotEmpty(deviceNum)){
+                //如果设备号不为空,更新设备号
+                RoleEnum roleEnum;
+                if(roomMember == null){
+                    Teacher teacher = teacherDao.get(Integer.parseInt(userId));
+                    CourseSchedule courseSchedule = courseScheduleDao.get(Long.parseLong(roomId));
+                    if(teacher != null && teacher.getId().equals(courseSchedule.getActualTeacherId())){
+                        roleEnum = RoleTeacher;
+                    }else {
+                        roleEnum = RoleStudent;
+                    }
+                }else {
+                    roleEnum = RoleEnum.getEnumByValue(roomMember.getRole());
+                }
+                if(roleEnum == RoleTeacher){
+                    teacherAttendanceService.addTeacherAttendanceSignOut(firstCourseId.longValue(),Integer.parseInt(userId),deviceNum);
+                }
             }
             return;
         }
+        if(roomMember == null){
+            return ;
+        }
         String joinSuccessKey = "joinRoomSuccess"+ roomId + userId;
         if(redisTemplate.hasKey(joinSuccessKey)){
             redisTemplate.delete(joinSuccessKey);