zouxuan 5 年之前
父节点
当前提交
c7eef28ec7

+ 10 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dto/BasicUserDto.java

@@ -6,10 +6,20 @@ public class BasicUserDto {
 
     private String name;
 
+    private String subjectName;
+
     private String headUrl;
 
     private Integer gender;
 
+    public String getSubjectName() {
+        return subjectName;
+    }
+
+    public void setSubjectName(String subjectName) {
+        this.subjectName = subjectName;
+    }
+
     public Integer getUserId() {
         return userId;
     }

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

@@ -174,6 +174,7 @@
 	</select>
 
 	<resultMap type="com.ym.mec.biz.dal.dto.BasicUserDto" id="BasicUserDto">
+		<result column="subject_name_" property="subjectName" />
 		<result column="username_" property="name" />
 		<result column="user_id_" property="userId" />
 		<result column="head_url_" property="headUrl" />
@@ -181,12 +182,22 @@
 	</resultMap>
 
 	<select id="findTeachersByStuId" resultMap="BasicUserDto">
-		SELECT username_,id_ user_id_,avatar_ head_url_,gender_ FROM sys_user
-		WHERE id_ IN (SELECT DISTINCT(su.id_) FROM class_group_student_mapper cgsp
-		LEFT JOIN class_group cg ON cgsp.class_group_id_ = cg.id_
-		LEFT JOIN class_group_teacher_mapper cgtm ON cg.id_ = cgtm.class_group_id_
-		LEFT JOIN sys_user su ON cgtm.user_id_ = su.id_
-		WHERE cgsp.user_id_ = #{studentId})
+		SELECT DISTINCT
+			su.username_,
+			su.id_ user_id_,
+			su.avatar_ head_url_,
+			gender_,
+			GROUP_CONCAT(s.name_) subject_name_
+		  FROM
+			class_group_student_mapper cgsp
+			LEFT JOIN class_group cg ON cgsp.class_group_id_ = cg.id_
+			LEFT JOIN class_group_teacher_mapper cgtm ON cg.id_ = cgtm.class_group_id_
+			LEFT JOIN sys_user su ON cgtm.user_id_ = su.id_
+			LEFT JOIN teacher t ON su.id_ = t.id_
+			LEFT JOIN `subject` s ON FIND_IN_SET(s.id_,t.subject_id_)
+		  WHERE
+			cgsp.user_id_ = #{studentId}
+		  GROUP BY su.id_
 	</select>
 
     <select id="queryUserGroups" resultMap="com.ym.mec.biz.dal.dao.ClassGroupDao.imGroupModel">

+ 2 - 2
mec-biz/src/main/resources/config/mybatis/SubjectMapper.xml

@@ -120,8 +120,8 @@
         LEFT JOIN `subject` s ON mgsp.subject_id_ = s.id_
         WHERE mgsp.music_group_id_ =
     </select>
-    <select id="findBySubIds" resultType="java.lang.String">
-        SELECT name_ FROM `subject` IN (#{subIds}) WHERE del_flag_ = 0
+    <select id="findBySubIds" resultType="string">
+        SELECT name_ FROM `subject` WHERE del_flag_ = 0 AND FIND_IN_SET (id_,#{subIds})
     </select>
 
     <select id="findTeacherSubjects" resultMap="Subject">