Eric 2 лет назад
Родитель
Сommit
168eea9d12

+ 8 - 0
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/ImNetworkRoomMemberServiceImpl.java

@@ -5,6 +5,7 @@ import com.yonge.cooleshow.auth.api.entity.SysUser;
 import com.yonge.cooleshow.biz.dal.dao.ImNetworkRoomMemberDao;
 import com.yonge.cooleshow.biz.dal.dto.BasicUserInfo;
 import com.yonge.cooleshow.biz.dal.entity.ImNetworkRoomMember;
+import com.yonge.cooleshow.biz.dal.enums.ClientEnum;
 import com.yonge.cooleshow.biz.dal.enums.UserRoleEnum;
 import com.yonge.cooleshow.biz.dal.service.ImNetworkRoomMemberService;
 import org.springframework.stereotype.Service;
@@ -13,6 +14,7 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.transaction.annotation.Transactional;
 
+import java.text.MessageFormat;
 import java.util.Date;
 import java.util.Objects;
 
@@ -50,6 +52,12 @@ public class ImNetworkRoomMemberServiceImpl extends ServiceImpl<ImNetworkRoomMem
             roomMember.setAvatar(sysUser.getAvatar());
             roomMember.setCourseScheduleId(Long.parseLong(roomId));
             baseMapper.insert(roomMember);
+
+            String imUserId = String.valueOf(sysUser.getUserId());
+            if (UserRoleEnum.STUDENT == userRole) {
+                imUserId = MessageFormat.format("{0}:{1}", imUserId, ClientEnum.STUDENT.name());
+            }
+            roomMember.setImUserId(imUserId);
         }
         return roomMember;
     }

+ 4 - 1
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/ImNetworkRoomServiceImpl.java

@@ -105,6 +105,9 @@ public class ImNetworkRoomServiceImpl extends ServiceImpl<ImNetworkRoomDao, ImNe
         joinRoomResult.setSurplusTime(DateUtil.secondsBetween(now, courseSchedule.getEndTime()));
         //获取房间所有成员
         List<ImNetworkRoomMember> roomMemberList = imNetworkRoomMemberService.getDao().queryByRoomId(roomId);
+        for (ImNetworkRoomMember item : roomMemberList) {
+            item.setImUserId(MessageFormat.format("{0}:{1}", String.valueOf(item.getUserId()), ClientEnum.STUDENT.name()));
+        }
         joinRoomResult.setRoomMemberList(roomMemberList);
         //如果是老师,重置节拍器数据
         if(userRole == UserRoleEnum.TEACHER){
@@ -183,7 +186,7 @@ public class ImNetworkRoomServiceImpl extends ServiceImpl<ImNetworkRoomDao, ImNe
         //获取伴奏信息
         ImNetworkRoomMusicSheetDownloadData musicSheetDownloadData = courseScheduleStudentPaymentService.getMemberExamSong(Long.parseLong(roomMember.getRoomId()), roomMember.getUserId());
         msg.setExamSongSwitch(musicSheetDownloadData.getEnable());
-        imHelper.publishMessage(roomMember.getUserId().toString(), roomMember.getRoomId(), msg);
+        imHelper.publishMessage(roomMember.getImUserId(), roomMember.getRoomId(), msg);
     }
 
     @Override