瀏覽代碼

Merge branch 'feature/0803-im' of http://git.dayaedu.com/yonge/cooleshow

zouxuan 1 年之前
父節點
當前提交
587cf071e5

+ 1 - 1
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/dao/CourseScheduleStudentPaymentDao.java

@@ -86,6 +86,6 @@ public interface CourseScheduleStudentPaymentDao extends BaseMapper<CourseSchedu
     //查询报课学员
     List<CourseScheduleStudentVo> selectUser();
 
-    List<BasicUserInfoDto> queryNoJoinStu(@Param("scheduleId") String scheduleId);
+    List<BasicUserInfoDto> queryNoJoinStu(@Param("scheduleId") String scheduleId, @Param("studentIds") List<String> studentIds);
 }
 

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

@@ -618,7 +618,12 @@ public class ImNetworkRoomServiceImpl extends ServiceImpl<ImNetworkRoomDao, ImNe
 
     @Override
     public List<BasicUserInfoDto> queryNoJoinStu(String roomId) {
-        List<BasicUserInfoDto> userInfos = courseScheduleStudentPaymentService.getDao().queryNoJoinStu(roomId);
+        //获取在教室的学员列表
+        List<String> studentIds = imNetworkRoomMemberService.lambdaQuery().eq(ImNetworkRoomMember::getRoomId, roomId)
+                .eq(ImNetworkRoomMember::getRole, RoleEnum.RoleStudent.getValue()).list()
+                .stream().map(e -> imGroupService.analysisImUserId(e.getUserId())).collect(Collectors.toList());
+        //获取不在教室的学员列表
+        List<BasicUserInfoDto> userInfos = courseScheduleStudentPaymentService.getDao().queryNoJoinStu(roomId,studentIds);
         for (BasicUserInfoDto item : userInfos) {
             item.setUserId(imGroupService.getImUserId(item.getUserId(),ClientEnum.STUDENT.name()));
         }

+ 6 - 1
cooleshow-user/user-biz/src/main/resources/config/mybatis/CourseScheduleStudentPaymentMapper.xml

@@ -163,6 +163,11 @@
         FROM course_schedule_student_payment cssp
         LEFT JOIN sys_user su ON su.id_ = cssp.user_id_
         WHERE cssp.course_id_ = #{scheduleId}
-        AND NOT EXISTS (SELECT rm.user_id_ FROM im_network_room_member rm WHERE rm.room_id_ = #{scheduleId} AND rm.user_id_ = cssp.user_id_ AND rm.role_ = 3)
+        <if test="studentIds != null and studentIds.size > 0">
+            AND cssp.user_id_ NOT IN
+            <foreach collection="studentIds" item="studentId" open="(" close=")" separator=",">
+                #{studentId}
+            </foreach>
+        </if>
     </select>
 </mapper>