zouxuan 5 jaren geleden
bovenliggende
commit
bf0e31fb15

+ 10 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/ClassGroupDao.java

@@ -2,6 +2,7 @@ package com.ym.mec.biz.dal.dao;
 
 import com.ym.mec.biz.dal.dto.*;
 import com.ym.mec.biz.dal.entity.ClassGroup;
+import com.ym.mec.biz.dal.entity.CoursesGroup;
 import com.ym.mec.biz.dal.enums.ClassGroupTypeEnum;
 import com.ym.mec.biz.dal.enums.GroupType;
 import com.ym.mec.biz.dal.enums.YesOrNoEnum;
@@ -125,6 +126,15 @@ public interface ClassGroupDao extends BaseDAO<Integer, ClassGroup> {
     List<ImGroupModel> queryUserVipGroups(@Param("userId") Integer userId, @Param("search") String search);
 
     /**
+     * 获取学员所在对外群组信息
+     *
+     * @param userId
+     * @param search
+     * @return
+     */
+    List<ImGroupModel> queryUserCommGroups(@Param("userId") Integer userId, @Param("search") String search);
+
+    /**
      * 获取vip课的学生名称列表
      *
      * @param vipIds

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

@@ -392,6 +392,19 @@ public interface TeacherDao extends BaseDAO<Integer, Teacher> {
     List<BasicUserDto> findCloseCourseStudentIds(@Param("teacherId") Integer teacherId,@Param("search") String search);
 
     /**
+     * 获取相关vip教务的学员编号
+     * @param teacherId
+     * @return
+     */
+    List<BasicUserDto> findVipEducationalStudentId(@Param("teacherId") Integer teacherId,@Param("search") String search);
+    /**
+     * 获取相关陪练教务的学员编号
+     * @param teacherId
+     * @return
+     */
+    List<BasicUserDto> findPracticeEducationalStudentId(@Param("teacherId") Integer teacherId,@Param("search") String search);
+
+    /**
      * 获取学员相关的陪练课教务老师
      * @param userId
      * @return

+ 41 - 7
mec-biz/src/main/java/com/ym/mec/biz/service/impl/ClassGroupServiceImpl.java

@@ -38,6 +38,9 @@ import java.time.format.DateTimeFormatter;
 import java.util.*;
 import java.util.stream.Collectors;
 
+import static com.ym.mec.biz.dal.enums.GroupType.PRACTICE;
+import static com.ym.mec.biz.dal.enums.GroupType.VIP;
+
 @Service
 public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup> implements ClassGroupService {
 
@@ -52,6 +55,10 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
     @Autowired
     private MusicGroupDao musicGroupDao;
     @Autowired
+    private PracticeGroupDao practiceGroupDao;
+    @Autowired
+    private CoursesGroupDao coursesGroupDao;
+    @Autowired
     private MusicGroupBuildLogDao musicGroupBuildLogDao;
     @Autowired
     private ClassGroupRelationService classGroupRelationService;
@@ -599,8 +606,8 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
         //获取学员的乐团列表详情
         List<CourseListDto> musicCourse = classGroupDao.queryStudentMusicGroupCourses(StringUtils.join(musicGroupIds, ","), userId);
 
-        if(!CollectionUtils.isEmpty(typeGroupMap.get(GroupType.PRACTICE))){
-            musicGroupIds=typeGroupMap.get(GroupType.PRACTICE).stream().map(Group::getId).collect(Collectors.toList());
+        if(!CollectionUtils.isEmpty(typeGroupMap.get(PRACTICE))){
+            musicGroupIds=typeGroupMap.get(PRACTICE).stream().map(Group::getId).collect(Collectors.toList());
         }else{
             musicGroupIds=null;
         }
@@ -706,6 +713,7 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
     public List<ImGroupModel> queryUserGroups(Integer userId, String search) {
         List<ImGroupModel> imGroupModels = classGroupDao.queryUserMusicGroups(userId, search);
         imGroupModels.addAll(classGroupDao.queryUserVipGroups(userId, search));
+        imGroupModels.addAll(classGroupDao.queryUserCommGroups(userId, search));
         if (imGroupModels != null && imGroupModels.size() > 0) {
 //            Set<String> classGroupIds = imGroupModels.stream().map(e -> e.getId()).collect(Collectors.toSet());
             //获取班级老师总数map
@@ -725,6 +733,9 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
         if (students == null) {
             students = new ArrayList<>();
         }
+        ClassGroup classGroup = classGroupDao.get(groupId);
+        GroupType groupType = classGroup.getGroupType();
+        String musicGroupId = classGroup.getMusicGroupId();
         //获取当前群关联的乐团
         MusicGroup musicGroup = musicGroupDao.findByClassId(groupId);
         Set<Integer> teacherIds = new HashSet<>();
@@ -735,10 +746,27 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
         }
         //获取相关老师
         teacherIds.addAll(classGroupDao.findGroupTeacher(groupId));
-
+        //获取网管课课程教务老师
+        PracticeGroup practiceGroup = null;
+        VipGroup vipGroup = null;
+        switch (groupType){
+            case PRACTICE:
+                practiceGroup = practiceGroupDao.get(Long.parseLong(musicGroupId));
+                teacherIds.add(practiceGroup.getEducationalTeacherId());
+                break;
+            case COMM:
+//                CoursesGroup coursesGroup = coursesGroupDao.get(groupId.longValue());
+//                teacherIds.add(coursesGroup.getEducationalTeacherId());
+                break;
+            case VIP:
+                vipGroup = vipGroupDao.get(Long.parseLong(musicGroupId));
+                teacherIds.add(vipGroup.getEducationalTeacherId());
+                break;
+        }
+        teacherIds.removeAll(Collections.singleton(null));
         if(teacherIds.size() > 0){
             List<ImUserModel> userModels = teacherDao.queryTeacherImModel(teacherIds);
-            userModels.forEach(e->{
+            for (ImUserModel e : userModels) {
                 if(musicGroup != null){
                     if(musicGroup.getTeamTeacherId() != null && Integer.parseInt(e.getId()) == musicGroup.getTeamTeacherId()){
                         e.setTitle("运营主管");
@@ -749,10 +777,16 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
                     }else if(courseScheduleTeacherSalaryDao.isTeacher(groupId,Integer.parseInt(e.getId()))){
                         e.setTitle("指导老师");
                     }
-                }else if(courseScheduleTeacherSalaryDao.isTeacher(groupId,Integer.parseInt(e.getId()))){
-                    e.setTitle("指导老师");
+                }else{
+                    if(groupType == PRACTICE && practiceGroup.getEducationalTeacherId() != null &&  Integer.parseInt(e.getId()) == practiceGroup.getEducationalTeacherId()){
+                        e.setTitle("教务老师");
+                    }else if(groupType == VIP && vipGroup.getEducationalTeacherId() != null &&  Integer.parseInt(e.getId()) == vipGroup.getEducationalTeacherId()){
+                        e.setTitle("教务老师");
+                    }else if(courseScheduleTeacherSalaryDao.isTeacher(groupId,Integer.parseInt(e.getId()))){
+                        e.setTitle("指导老师");
+                    }
                 }
-            });
+            };
             students.addAll(userModels);
         }
         return students;

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

@@ -1108,9 +1108,9 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
         //获取陪练课,vip课代课老师关联
         teacherIds.addAll(teacherDao.findCloseCourseTeacherIds(studentId));
         //获取陪练课课程教务老师
-//        teacherIds.addAll(teacherDao.findPracticeEducationalTeacherId(studentId));
+        teacherIds.addAll(teacherDao.findPracticeEducationalTeacherId(studentId));
         //获取VIP课程教务老师
-//        teacherIds.addAll(teacherDao.findVipEducationalTeacherId(studentId));
+        teacherIds.addAll(teacherDao.findVipEducationalTeacherId(studentId));
         if(teacherIds.size() > 0){
         	return teacherDao.queryTeacherBaseInfo(teacherIds,search);
         }

+ 9 - 4
mec-biz/src/main/java/com/ym/mec/biz/service/impl/TeacherServiceImpl.java

@@ -189,6 +189,10 @@ public class TeacherServiceImpl extends BaseServiceImpl<Integer, Teacher>  imple
 		}
 		//获取课程关联的学生列表
 		teachers.addAll(teacherDao.findCloseCourseStudentIds(teacherId, search));
+		//获取相关vip陪练教务的学员编号
+		teachers.addAll(teacherDao.findVipEducationalStudentId(teacherId,search));
+		teachers.addAll(teacherDao.findPracticeEducationalStudentId(teacherId,search));
+
 		return teachers.stream().distinct().collect(Collectors.toList());
 	}
 
@@ -360,11 +364,12 @@ public class TeacherServiceImpl extends BaseServiceImpl<Integer, Teacher>  imple
 
 	@Override
 	public List<BasicUserDto> queryEducationIpa(Integer userId, String search) {
-		List<BasicUserDto> basicUserDtos = queryGroupStudents(userId, search);
+//		List<BasicUserDto> basicUserDtos = queryGroupStudents(userId, search);
 		//获取当前管理人员所在分部,所有老师,以及没有乐团的学生
-		List<BasicUserDto> userDtos = teacherDao.queryEducationIpa(userId, search);
-		userDtos.addAll(basicUserDtos);
-		return userDtos.stream().distinct().collect(Collectors.toList());
+//		List<BasicUserDto> userDtos = teacherDao.queryEducationIpa(userId, search);
+//		userDtos.addAll(basicUserDtos);
+//		return userDtos.stream().distinct().collect(Collectors.toList());
+		return queryGroupStudents(userId, search);
 	}
 
 	@Override

+ 19 - 4
mec-biz/src/main/resources/config/mybatis/ClassGroupMapper.xml

@@ -271,10 +271,9 @@
         SELECT cg.id_,cg.name_,cg.student_num_,cg.img_,mg.name_ group_name_
         FROM class_group_student_mapper cgsm
         LEFT JOIN class_group cg ON cgsm.class_group_id_ = cg.id_
-        LEFT JOIN music_group mg ON mg.id_ = cg.music_group_id_ AND cg.group_type_ = 'MUSIC'
-        LEFT JOIN vip_group vg ON vg.id_ = cg.music_group_id_ AND cg.group_type_ = 'VIP'
+        LEFT JOIN music_group mg ON mg.id_ = cg.music_group_id_
         <where>
-            cg.del_flag_ = 0 AND cgsm.status_ != 'QUIT' AND (mg.status_ = 'PROGRESS' OR vg.group_status_ = 2)
+            cg.del_flag_ = 0 AND cgsm.status_ != 'QUIT' AND mg.status_ = 'PROGRESS' AND cgsm.group_type_ = 'MUSIC'
             <if test="userId != null">
                 AND cgsm.user_id_ = #{userId}
             </if>
@@ -291,7 +290,23 @@
         LEFT JOIN class_group cg ON cgsm.class_group_id_ = cg.id_
         LEFT JOIN vip_group vg ON vg.id_ = cg.music_group_id_
         <where>
-            cg.del_flag_ = 0 AND cgsm.status_ != 'QUIT' AND vg.group_status_ = 4
+            cg.del_flag_ = 0 AND cgsm.status_ != 'QUIT' AND vg.group_status_ = 4 AND cgsm.group_type_ = 'VIP'
+            <if test="userId != null">
+                AND cgsm.user_id_ = #{userId}
+            </if>
+            <if test="search != null and search != ''">
+                AND cg.name_ LIKE CONCAT('%',#{search},'%')
+            </if>
+        </where>
+        GROUP BY cg.id_
+    </select>
+    <select id="queryUserCommGroups" resultMap="imGroupModel">
+        SELECT cg.id_,cg.name_,cg.student_num_,cg.img_
+        FROM class_group_student_mapper cgsm
+        LEFT JOIN class_group cg ON cgsm.class_group_id_ = cg.id_
+        LEFT JOIN courses_group vg ON vg.id_ = cg.music_group_id_
+        <where>
+            cg.del_flag_ = 0 AND cgsm.status_ != 'QUIT' AND vg.status_ = 'NORMAL' AND cgsm.group_type_ = 'COMM'
             <if test="userId != null">
                 AND cgsm.user_id_ = #{userId}
             </if>

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

@@ -898,6 +898,23 @@
         </if>
         GROUP BY su.id_
     </select>
+
+    <select id="findVipEducationalStudentId" resultMap="com.ym.mec.biz.dal.dao.MusicGroupDao.BasicUserDto">
+        SELECT su.username_,su.id_ user_id_,su.avatar_ head_url_,su.gender_,NULL subject_name_,su.user_type_
+        FROM vip_group vg
+        LEFT JOIN course_schedule_student_payment cssp ON cssp.music_group_id_ = vg.id_
+        LEFT JOIN sys_user su ON su.id_ = cssp.user_id_
+        WHERE cssp.group_type_ = 'VIP' AND vg.educational_teacher_id_ = #{teacherId}
+        GROUP BY su.id_
+    </select>
+    <select id="findPracticeEducationalStudentId" resultMap="com.ym.mec.biz.dal.dao.MusicGroupDao.BasicUserDto">
+        SELECT su.username_,su.id_ user_id_,su.avatar_ head_url_,su.gender_,NULL subject_name_,su.user_type_
+        FROM practice_group pg
+        LEFT JOIN course_schedule_student_payment cssp ON cssp.music_group_id_ = pg.id_
+        LEFT JOIN sys_user su ON su.id_ = cssp.user_id_
+        WHERE cssp.group_type_ = 'PRACTICE' AND pg.educational_teacher_id_ = #{teacherId}
+        GROUP BY su.id_
+    </select>
     <select id="findPracticeEducationalTeacherId" resultType="java.lang.Integer">
         SELECT DISTINCT pg.educational_teacher_id_ FROM class_group_student_mapper cgsm
         LEFT JOIN class_group_teacher_mapper cgtm ON cgsm.class_group_id_ = cgtm.class_group_id_