zouxuan 5 năm trước cách đây
mục cha
commit
cf42fc16a4

+ 7 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/StudentRegistrationDao.java

@@ -311,4 +311,11 @@ public interface StudentRegistrationDao extends BaseDAO<Long, StudentRegistratio
      * @return
      */
     StudentRegistration findStudentByMusicGroupIdAndUserId(@Param("musicGroupId") String musicGroupId, @Param("userId") Integer userId);
+
+    /**
+     * 获取学员所在乐团
+     * @param studentId
+     * @return
+     */
+    List<String> queryStudentMusicGroup(Integer studentId);
 }

+ 8 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/TeacherDao.java

@@ -9,6 +9,7 @@ import org.apache.ibatis.annotations.Param;
 import java.math.BigDecimal;
 import java.util.List;
 import java.util.Map;
+import java.util.Set;
 
 public interface TeacherDao extends BaseDAO<Integer, Teacher> {
 
@@ -289,4 +290,11 @@ public interface TeacherDao extends BaseDAO<Integer, Teacher> {
      * @return
      */
     SysUser getUser(int userId);
+
+    /**
+     * 获取教师基本信息
+     * @param teacherId
+     * @return
+     */
+    List<BasicUserDto> queryTeacherBaseInfo(@Param("teacherId")Set<Integer> teacherId);
 }

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

@@ -1083,7 +1083,23 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
 
     @Override
     public List<BasicUserDto> findTeachersByStuId(Integer studentId) {
-        return musicGroupDao.findTeachersByStuId(studentId);
+        List<BasicUserDto> teachersByStuId = musicGroupDao.findTeachersByStuId(studentId);
+        //获取学员所在乐团列表
+        List<String> musicGroupIds = studentRegistrationDao.queryStudentMusicGroup(studentId);
+        if(musicGroupIds != null && musicGroupIds.size() > 0){
+            Set<Integer> teacherId = new HashSet<>();
+            List<MusicGroup> musicGroups = musicGroupDao.queryListByIds(StringUtils.join(musicGroupIds, ","));
+            musicGroups.forEach(e->{
+                teacherId.add(e.getDirectorUserId());
+                teacherId.add(e.getOperatorUserId());
+                teacherId.add(e.getEducationalTeacherId());
+                teacherId.add(e.getTeamTeacherId());
+            });
+            Set<Integer> collect = teachersByStuId.stream().map(e -> e.getUserId()).collect(Collectors.toSet());
+            teacherId.addAll(collect);
+            return teacherDao.queryTeacherBaseInfo(teacherId);
+        }
+        return teachersByStuId;
     }
 
     @Override

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

@@ -300,7 +300,7 @@
 		LEFT JOIN class_group cg ON mg.id_ = cg.music_group_id_
 		LEFT JOIN class_group_teacher_mapper cgtm ON cg.id_ = cgtm.class_group_id_
 		WHERE (cgtm.user_id_ = #{userId} OR mg.team_teacher_id_ = #{userId} OR mg.educational_teacher_id_ = #{userId}
-		 OR director_user_id_ = #{userId})
+		 OR director_user_id_ = #{userId}) AND mg.status_ IN ('APPLY','PAY','PREPARE','PROGRESS')
 		<if test="search != null and search != ''">
 			AND mg.name_ LIKE CONCAT('%',#{search},'%')
 		</if>

+ 4 - 0
mec-biz/src/main/resources/config/mybatis/StudentRegistrationMapper.xml

@@ -599,4 +599,8 @@
         LEFT JOIN cooperation_organ co ON mg.cooperation_organ_id_ = co.id_
         WHERE sr.music_group_id_ = #{musicGroupId} AND sr.user_id_ = #{userId} AND sr.music_group_status_ != 'QUIT' LIMIT 1
     </select>
+    <select id="queryStudentMusicGroup" resultType="java.lang.String">
+        SELECT DISTINCT sr.music_group_id_ FROM student_registration sr
+        WHERE sr.user_id_ = #{studentId} AND sr.music_group_status_ != 'QUIT'
+    </select>
 </mapper>

+ 16 - 0
mec-biz/src/main/resources/config/mybatis/TeacherMapper.xml

@@ -752,4 +752,20 @@
         FROM sys_user su
         WHERE su.id_ = #{id} LIMIT 1
     </select>
+    <select id="queryTeacherBaseInfo"  resultMap="com.ym.mec.biz.dal.dao.MusicGroupDao.BasicUserDto">
+        SELECT
+        su.real_name_ username_,
+        su.id_ user_id_,
+        su.avatar_ head_url_,
+        gender_,
+        GROUP_CONCAT(s.name_) subject_name_
+        FROM sys_user su
+        LEFT JOIN teacher t ON su.id_ = t.id_
+        LEFT JOIN `subject` s ON FIND_IN_SET(s.id_,t.subject_id_)
+        WHERE su.id_ IN
+        <foreach collection="teacherId" item="userId" open="(" close=")" separator=",">
+            #{userId}
+        </foreach>
+        GROUP BY su.id_
+    </select>
 </mapper>