浏览代码

Merge remote-tracking branch 'origin/master'

Joburgess 4 年之前
父节点
当前提交
1eb7a0189d

+ 2 - 1
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/CourseScheduleComplaintsDao.java

@@ -5,6 +5,7 @@ import com.ym.mec.biz.dal.entity.CourseScheduleComplaints;
 import com.ym.mec.common.dal.BaseDAO;
 import org.apache.ibatis.annotations.Param;
 
+import java.util.Collection;
 import java.util.List;
 
 public interface CourseScheduleComplaintsDao extends BaseDAO<Long, CourseScheduleComplaints> {
@@ -67,7 +68,7 @@ public interface CourseScheduleComplaintsDao extends BaseDAO<Long, CourseSchedul
      * 删除申述
      * @param courseScheduleIds
      */
-    void delByCourseScheduleIds(@Param("courseScheduleIds") List<Long> courseScheduleIds);
+    void delByCourseScheduleIds(@Param("courseScheduleIds") Collection<Long> courseScheduleIds);
 
     /**
      * 获取课程用户的评价

+ 33 - 22
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/StudentDao.java

@@ -49,74 +49,77 @@ public interface StudentDao extends com.ym.mec.common.dal.BaseDAO<Integer, Stude
      * @param teacherIds
      * @return
      */
-    List<Map<Integer,Integer>> getTeacherOperatingStudentsNum(@Param("teacherIds") String teacherIds);
+    List<Map<Integer, Integer>> getTeacherOperatingStudentsNum(@Param("teacherIds") String teacherIds);
 
     List<String> getStudentNames(@Param("studentIds") List<Integer> studentIds);
 
     List<SimpleUserDto> getStudentsWithOrgan(Map<String, Object> params);
+
     int countStudentsWithOrgan(Map<String, Object> params);
 
     /**
      * 根据类型批量获取老师转化
+     *
      * @param teacherIds
      * @param groupType
      * @return
      */
-    List<Map<Integer,Integer>> getBuyNums(@Param("teacherIds") String teacherIds, @Param("groupType") GroupType groupType);
+    List<Map<Integer, Integer>> getBuyNums(@Param("teacherIds") String teacherIds, @Param("groupType") GroupType groupType);
 
-     /**
+    /**
      * 根据同事存在vip和网管的转化
+     *
      * @param teacherIds
      * @return
      */
-    List<Map<Integer,Integer>> getPracticeAndVipNums(@Param("teacherIds") String teacherIds);
+    List<Map<Integer, Integer>> getPracticeAndVipNums(@Param("teacherIds") String teacherIds);
 
     /**
+     * @return java.util.List<com.ym.mec.biz.dal.entity.Student>
      * @describe 获取服务学员列表
      * @author Joburgess
      * @date 2020.04.29
-     * @return java.util.List<com.ym.mec.biz.dal.entity.Student>
      */
 
     List<Student> getServiceStudents();
 
     /**
+     * @return java.util.List<java.lang.Integer>
      * @describe 获取被服务学员id列表
      * @author Joburgess
      * @date 2020.06.04
-     * @return java.util.List<java.lang.Integer>
      */
     List<Integer> getServeStudentIds();
 
     List<StudentServeCourseDto> getServeStudentCourseStartTimes(@Param("monday") String monday);
 
     /**
+     * @param monday:
+     * @return java.util.List<com.ym.mec.biz.dal.dto.StudentServeDto>
      * @describe 查询被服务学员信息
      * @author Joburgess
      * @date 2020.05.27
-     * @param monday:
-     * @return java.util.List<com.ym.mec.biz.dal.dto.StudentServeDto>
      */
     List<StudentServeDto> getBeServiceStudents(@Param("monday") String monday,
-                                               @Param("courseExpireDate")Date courseExpireDate);
+                                               @Param("courseExpireDate") Date courseExpireDate);
 
 
     List<StudentServeDto> getBeServiceStudentsInfoWithStudents(@Param("monday") String monday,
-                                               @Param("courseExpireDate")Date courseExpireDate,
-                                               @Param("studentIds") List<Integer> studentIds);
+                                                               @Param("courseExpireDate") Date courseExpireDate,
+                                                               @Param("studentIds") List<Integer> studentIds);
 
     List<StudentServeDto> getBeServiceStudentsInfoWithStudentsForHistory(@Param("monday") String monday,
-                                                               @Param("courseExpireDate")Date courseExpireDate,
-                                                               @Param("studentIds") List<Integer> studentIds);
+                                                                         @Param("courseExpireDate") Date courseExpireDate,
+                                                                         @Param("studentIds") List<Integer> studentIds);
 
     /**
+     * @param studentId:    学生编号
+     * @param serviceTag:   服务指标
+     * @param operatingTag: 运营指标
+     * @return int
      * @describe 更新指定学员的服务指标或运营指标
      * @author Joburgess
      * @date 2020.05.28
-     * @param studentId: 学生编号
-     * @param serviceTag: 服务指标
-     * @param operatingTag: 运营指标
-     * @return int
      */
     int updateStudentServiceOrOperatingTag(@Param("studentId") Integer studentId,
                                            @Param("studentIds") List<Integer> studentIds,
@@ -124,20 +127,28 @@ public interface StudentDao extends com.ym.mec.common.dal.BaseDAO<Integer, Stude
                                            @Param("operatingTag") Integer operatingTag);
 
     /**
+     * @param studentId:  学生编号
+     * @param serviceTag: 服务指标
+     * @return int
      * @describe 更新指定学员的服务指标
      * @author Joburgess
      * @date 2020.05.28
-     * @param studentId: 学生编号
-     * @param serviceTag: 服务指标
-     * @return int
      */
     int updateStudentServiceTag(@Param("studentId") Integer studentId,
-                                           @Param("studentIds") List<Integer> studentIds,
-                                           @Param("serviceTag") Integer serviceTag);
+                                @Param("studentIds") List<Integer> studentIds,
+                                @Param("serviceTag") Integer serviceTag);
 
     /**
      * 修改学员的指导老师
+     *
      * @param teacherId
      */
     void batchUpdateAdviser(@Param("teacherId") Integer teacherId, @Param("studentIds") String studentIds);
+
+    /**
+     * 获取学生的老师
+     * @param studentIds
+     * @return
+     */
+    List<Student> getStudentTeacher(@Param("studentIds") List<Integer> studentIds);
 }

+ 13 - 11
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/TeacherAttendanceDao.java

@@ -6,10 +6,7 @@ import com.ym.mec.biz.dal.enums.GroupType;
 import com.ym.mec.common.dal.BaseDAO;
 import org.apache.ibatis.annotations.Param;
 
-import java.util.Date;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
+import java.util.*;
 
 public interface TeacherAttendanceDao extends BaseDAO<Long, TeacherAttendance> {
 
@@ -186,6 +183,18 @@ public interface TeacherAttendanceDao extends BaseDAO<Long, TeacherAttendance> {
     void batchUpdateTeacher(@Param("courseScheduleIds") Set<Long> courseScheduleIds, @Param("teacherId") Integer teacherId);
 
 	/**
+	 * 清除考勤申述
+	 * @param courseScheduleIds
+	 */
+    void clearAttendanceComplaints(@Param("courseScheduleIds") Collection<Long> courseScheduleIds);
+
+	/**
+	 * 清除考勤申述
+	 * @param courseScheduleId
+	 */
+    void clearAttendanceComplaint(@Param("courseScheduleId") Long courseScheduleId);
+
+	/**
 	 * @describe 根据团体删除班级
 	 * @author Joburgess
 	 * @date 2020/2/17
@@ -232,13 +241,6 @@ public interface TeacherAttendanceDao extends BaseDAO<Long, TeacherAttendance> {
 	int countTeacherAttendanceComplaints(Map<String, Object> params);
 
 	/**
-	 * 删除老师考勤
-	 * @param courseScheduleIds
-	 * @param teacherId
-	 */
-	void deleteByCourseAndTeacherId(@Param("courseScheduleIds") Set<Long> courseScheduleIds, @Param("teacherId") Integer teacherId);
-
-	/**
 	 * 获取上课时间
 	 * @param courseScheduleId
 	 * @return

+ 10 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/entity/Student.java

@@ -30,6 +30,8 @@ public class Student {
 	/**  */
 	private java.util.Date updateTime;
 
+	private String teacherName;
+
 	public Student(Integer userId, String subjectIdList) {
 		this.userId = userId;
 		this.subjectIdList = subjectIdList;
@@ -118,4 +120,12 @@ public class Student {
 	public String toString() {
 		return ToStringBuilder.reflectionToString(this);
 	}
+
+	public String getTeacherName() {
+		return teacherName;
+	}
+
+	public void setTeacherName(String teacherName) {
+		this.teacherName = teacherName;
+	}
 }

+ 32 - 1
mec-biz/src/main/java/com/ym/mec/biz/service/impl/CourseScheduleServiceImpl.java

@@ -28,7 +28,6 @@ import com.ym.mec.util.collection.ListUtil;
 import com.ym.mec.util.collection.MapUtil;
 import com.ym.mec.util.date.DateUtil;
 import com.ym.mec.util.json.JsonUtil;
-
 import org.apache.commons.collections.ListUtils;
 import org.apache.commons.lang3.StringUtils;
 import org.slf4j.Logger;
@@ -2133,6 +2132,8 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
 		courseScheduleReviewDao.delByCourseScheduleIds(courseScheduleIds);
 		//删除申述
 		courseScheduleComplaintsDao.delByCourseScheduleIds(courseScheduleIds);
+		//清除考勤申述
+		teacherAttendanceDao.clearAttendanceComplaints(courseScheduleIds);
 //        vipGroupService.checkVipCourseIsInScore(vipGroupCourseAdjustInfo.getVipGroupId().longValue());
 //        courseScheduleStudentPaymentService.updateVipGiveCourse(vipGroup.getId());
         if(scheduleModifyLogs.size() == courseSchedules.size()){
@@ -2754,6 +2755,9 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
 				}
 			}
 
+			//删除申述
+			courseScheduleComplaintsDao.delByCourseScheduleIds(courseScheduleIds);
+
 			// 调整日志
 			CourseScheduleModifyLog courseScheduleModifyLog = new CourseScheduleModifyLog();
 			courseScheduleModifyLog.setCourseScheduleId(courseScheduleId);
@@ -2896,6 +2900,10 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
             if (newCourseSchedule.getStartClassTime().after(now)){
                 teacherAttendanceDao.cleanCourseTeacherSignInfo(newCourseSchedule.getId());
                 needCreateStudentPaymentCourses.add(oldCourseSchedule);
+                //删除申述
+                courseScheduleComplaintsDao.delByCourseScheduleId(newCourseSchedule.getId());
+                //清除考勤申述
+                teacherAttendanceDao.clearAttendanceComplaint(newCourseSchedule.getId());
             }
 
             boolean courseTimeIsChange = false;
@@ -2907,6 +2915,10 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
 
             if(newCourseSchedule.getStartClassTime().after(oldCourseSchedule.getStartClassTime())){
                 teacherAttendanceDao.cleanCourseTeacherSignInfo(newCourseSchedule.getId());
+                //删除申述
+                courseScheduleComplaintsDao.delByCourseScheduleId(newCourseSchedule.getId());
+                //清除考勤申述
+                teacherAttendanceDao.clearAttendanceComplaint(newCourseSchedule.getId());
             }
 
             oldCourseSchedule.setClassDate(newCourseSchedule.getClassDate());
@@ -3826,6 +3838,9 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
         oldCourseSchedule.setUpdateTime(date);
 
         if(DateUtil.minutesBetween(endDateTime,date) > 0){
+        	if(oldCourseSchedule.getStatus() == CourseStatusEnum.OVER){
+        		throw new BizException("调整失败:已结束的课程无法调整至已结束");
+			}
             oldCourseSchedule.setStatus(CourseStatusEnum.OVER);
         }else if(DateUtil.minutesBetween(date,startDateTime) > 0){
             oldCourseSchedule.setStatus(CourseStatusEnum.NOT_START);
@@ -3858,6 +3873,8 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
 		courseScheduleReviewDao.delByCourseScheduleId(courseScheduleId);
 		//删除申述
 		courseScheduleComplaintsDao.delByCourseScheduleId(courseScheduleId);
+		//清除考勤申述
+		teacherAttendanceDao.clearAttendanceComplaint(courseScheduleId);
         courseScheduleDao.update(oldCourseSchedule);
         courseScheduleModifyLogDao.insert(scheduleModifyLog);
 		if(practiceGroup.getType() == TRIAL){
@@ -3933,6 +3950,12 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
 			}
 		}
         teacherAttendanceDao.batchUpdateTeacher(courseScheduleIds,teacherId);
+		//删除申述
+		courseScheduleComplaintsDao.delByCourseScheduleId(courseScheduleId);
+		//删除申述
+		courseScheduleComplaintsDao.delByCourseScheduleIds(courseScheduleIds);
+		//清除考勤申述
+		teacherAttendanceDao.clearAttendanceComplaints(courseScheduleIds);
         courseScheduleModifyLogDao.insert(scheduleModifyLog);
 
         Map<Integer, String> map = new HashMap<>(2);
@@ -4045,6 +4068,10 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
 			}
 		}
         teacherAttendanceDao.batchUpdateTeacher(courseScheduleIds,teacherId);
+		//删除申述
+		courseScheduleComplaintsDao.delByCourseScheduleIds(courseScheduleIds);
+		//清除考勤申述
+		teacherAttendanceDao.clearAttendanceComplaints(courseScheduleIds);
         courseScheduleModifyLogDao.batchInsert(scheduleModifyLogs);
 
         if (teacherIdMap != null && teacherIdMap.size() > 0) {
@@ -4078,6 +4105,10 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
 		}
         teacherAttendanceDao.batchCleanCourseTeacherSignInfo(courseScheduleId);
         studentAttendanceDao.deleteByCourseSchedules(courseScheduleId);
+		//删除申述
+		courseScheduleComplaintsDao.delByCourseScheduleIds(courseScheduleId);
+		//清除考勤申述
+		teacherAttendanceDao.clearAttendanceComplaints(courseScheduleId);
         //重置学生人数
 		courseScheduleDao.resetStudentNum(courseScheduleId);
     }

+ 5 - 5
mec-biz/src/main/resources/config/mybatis/EmployeeMapper.xml

@@ -150,8 +150,8 @@
 
     <update id="updateEducationTeacherId">
         UPDATE music_group SET educational_teacher_id_ = #{targetUserId} WHERE educational_teacher_id_ = #{currentUserId} AND status_ != 'CANCELED';
-        UPDATE vip_group SET educational_teacher_id_ = #{targetUserId} WHERE educational_teacher_id_ = #{currentUserId} AND group_status_ IN (0,1,5,2,6);
-        UPDATE practice_group SET educational_teacher_id_ = #{targetUserId} WHERE educational_teacher_id_ = #{currentUserId} AND group_status_ NOT IN ('FINISH');
+        UPDATE vip_group SET educational_teacher_id_ = #{targetUserId} WHERE educational_teacher_id_ = #{currentUserId} AND group_status_ IN (0,1,5,2,6,4);
+        UPDATE practice_group SET educational_teacher_id_ = #{targetUserId} WHERE educational_teacher_id_ = #{currentUserId} AND group_status_ != 'CANCEL';
     </update>
 
     <!-- 根据主键删除一条记录 -->
@@ -260,7 +260,7 @@
             LEFT JOIN sys_user_role sur ON su.id_ = sur.user_id_
             LEFT JOIN employee e ON e.user_id_ = su.id_
         WHERE
-            FIND_IN_SET(sur.role_id_, #{roleIds})
+            su.lock_flag_ = 0 AND su.del_flag_ = 0 AND FIND_IN_SET(sur.role_id_, #{roleIds})
             <if test="organIds!=null and organIds!=''">
                 AND INTE_ARRAY(e.organ_id_list_,#{organIds})
             </if>
@@ -275,11 +275,11 @@
     </select>
     <select id="hasCourseGroupRelation" resultType="java.lang.Integer">
         SELECT SUM(a.num) FROM
-        (SELECT COUNT(vg.id_) num FROM vip_group vg WHERE vg.educational_teacher_id_  = #{employeeId} AND vg.group_status_ IN (0,1,5,2,6)
+        (SELECT COUNT(vg.id_) num FROM vip_group vg WHERE vg.educational_teacher_id_  = #{employeeId} AND vg.group_status_ IN (0,1,5,2,6,4)
         UNION ALL
         SELECT COUNT(mg.id_) num FROM music_group mg WHERE mg.educational_teacher_id_ = #{employeeId} AND mg.status_ != 'CANCELED'
         UNION ALL
-        SELECT COUNT(pg.id_) num FROM practice_group pg WHERE pg.educational_teacher_id_ = #{employeeId} AND pg.group_status_ NOT IN ('FINISH'))a
+        SELECT COUNT(pg.id_) num FROM practice_group pg WHERE pg.educational_teacher_id_ = #{employeeId} AND pg.group_status_ != 'CANCEL')a
     </select>
     <select id="hasCourseSchedule" resultType="java.lang.Integer">
         SELECT COUNT(DISTINCT cs.id_)

+ 10 - 0
mec-biz/src/main/resources/config/mybatis/StudentMapper.xml

@@ -13,6 +13,7 @@
         <result column="operating_tag_" property="operatingTag"/>
         <result column="operating_temp_tag_" property="operatingTempTag"/>
         <result column="teacher_id_" property="teacherId"/>
+        <result column="teacher_name_" property="teacherName"/>
         <result column="create_time_" property="createTime"/>
         <result column="update_time_" property="updateTime"/>
     </resultMap>
@@ -510,4 +511,13 @@
                 AND (su.username_ LIKE CONCAT('%', #{search}, '%') OR su.phone_ LIKE CONCAT('%', #{search}, '%'))
             </if>
     </select>
+
+    <select id="getStudentTeacher" resultMap="Student">
+        SELECT s.user_id_,t.real_name_ teacher_name_ FROM student s
+        LEFT JOIN sys_user t ON t.id_ = s.teacher_id_
+        WHERE s.user_id_ IN
+        <foreach collection="studentIds" item="id" open="(" close=")" separator=",">
+            #{id}
+        </foreach>
+    </select>
 </mapper>

+ 13 - 6
mec-biz/src/main/resources/config/mybatis/TeacherAttendanceMapper.xml

@@ -577,6 +577,19 @@
         SET sign_out_status_ = NULL,sign_out_time_= NULL
     	WHERE course_schedule_id_=#{courseId}
     </update>
+    <update id="clearAttendanceComplaints">
+        UPDATE teacher_attendance
+        SET is_complaints_ = 0,complaints_status_ = NULL,complaints_content_ = NULL,dispose_content_ = NULL,operator_ = NULL,complaints_time_ = NULL
+        WHERE course_schedule_id_ IN
+        <foreach collection="courseScheduleIds" item="courseScheduleId" open="(" close=")" separator=",">
+            #{courseScheduleId}
+        </foreach>
+    </update>
+    <update id="clearAttendanceComplaint">
+        UPDATE teacher_attendance
+        SET is_complaints_ = 0,complaints_status_ = NULL,complaints_content_ = NULL,dispose_content_ = NULL,operator_ = NULL,complaints_time_ = NULL
+        WHERE course_schedule_id_ = #{courseScheduleId}
+    </update>
 
     <delete id="deleteByMusicGroupId" parameterType="map" >
 		DELETE ta FROM teacher_attendance ta LEFT JOIN course_schedule cs ON ta.course_schedule_id_ = cs.id_
@@ -589,10 +602,4 @@
     <delete id="deleteByGroup">
         DELETE FROM teacher_attendance WHERE music_group_id_=#{groupId} AND group_type_=#{groupType,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler}
     </delete>
-    <delete id="deleteByCourseAndTeacherId">
-        DELETE FROM teacher_attendance WHERE teacher_id_ = #{teacherId} AND course_schedule_id_ IN
-        <foreach collection="courseScheduleIds" item="courseScheduleId" open="(" close=")" separator=",">
-            #{courseScheduleId}
-        </foreach>
-    </delete>
 </mapper>

+ 1 - 1
mec-im/src/main/java/com/ym/config/ResourceServerConfig.java

@@ -10,6 +10,6 @@ import org.springframework.security.oauth2.config.annotation.web.configuration.R
 public class ResourceServerConfig extends ResourceServerConfigurerAdapter {
     @Override
     public void configure(HttpSecurity http) throws Exception {
-        http.authorizeRequests().antMatchers("/v2/api-docs","/user/register","/group/join","/group/create","/room/leave","/room/statusSync","/group/batchDismiss","/private/send").permitAll().anyRequest().authenticated().and().csrf().disable();
+        http.authorizeRequests().antMatchers("/v2/api-docs","/user/register","/group/join","/group/create","/room/leave","/room/statusSync","/room/statusImMsg","/group/batchDismiss","/private/send").permitAll().anyRequest().authenticated().and().csrf().disable();
     }
 }

+ 5 - 0
mec-im/src/main/java/com/ym/controller/RoomController.java

@@ -79,6 +79,11 @@ public class RoomController{
         return new BaseResponse<>(result);
     }
 
+    @RequestMapping(value = "/statusImMsg")
+    public void statusImMsg(@RequestBody String body) throws Exception {
+        System.out.println("");
+    }
+
     @RequestMapping(value = "/downgrade", method = RequestMethod.POST)
     public Object downRole(@RequestBody ReqChangeUserRoleData data)
             throws ApiException, Exception {

+ 11 - 6
mec-web/src/main/java/com/ym/mec/web/controller/EmployeeController.java

@@ -152,16 +152,21 @@ public class EmployeeController extends BaseController {
 
     @ApiOperation(value = "获取教务人员")
     @GetMapping("/findEducationUsers")
-    public HttpResponseResult findEducationUsers(){
-        SysUser sysUser = sysUserFeignService.queryUserInfo();
-        String organIds=new String();
-        if (sysUser == null) {
-            return failed("用户信息获取失败");
+    public HttpResponseResult findEducationUsers(Integer userId){
+        SysUser sysUser;
+        if(userId == null){
+            sysUser = sysUserFeignService.queryUserInfo();
+            if (sysUser == null) {
+                return failed("用户信息获取失败");
+            }
+        }else {
+            sysUser = sysUserFeignService.queryUserById(userId);
         }
+        String organIds = new String();
         if (!sysUser.getIsSuperAdmin()) {
             Employee employee = employeeService.get(sysUser.getId());
             if (StringUtils.isEmpty(organIds)) {
-                organIds=employee.getOrganIdList();
+                organIds = employee.getOrganIdList();
             }
         }
         return succeed(employeeService.findByRole("4,5",organIds));

+ 15 - 0
mec-web/src/main/java/com/ym/mec/web/controller/ExportController.java

@@ -96,6 +96,8 @@ public class ExportController extends BaseController {
     private StudentPaymentRouteOrderDao studentPaymentRouteOrderDao;
     @Autowired
     private StudentPaymentOrderDao studentPaymentOrderDao;
+    @Autowired
+    private StudentDao studentDao;
 
     @Autowired
     private TeacherService teacherService;
@@ -2156,9 +2158,11 @@ public class ExportController extends BaseController {
         }
         List<Long> vipGroupIds = orders.stream().filter(e -> e.getGroupType().equals(GroupType.VIP)).map(OrderByTypeExportDto::getMusicGroupId).collect(Collectors.toList());
         List<Long> practiceGroupIds = orders.stream().filter(e -> e.getGroupType().equals(GroupType.PRACTICE)).map(OrderByTypeExportDto::getMusicGroupId).collect(Collectors.toList());
+        List<Integer> studentIds = orders.stream().filter(e -> e.getGroupType().equals(GroupType.SPORADIC)).map(OrderByTypeExportDto::getStudentId).collect(Collectors.toList());
 
         List<VipBuyResultDto> vipGroupTeachers = new ArrayList<>();
         List<PracticeCourseDto> practiceGroupsTeacher = new ArrayList<>();
+        List<Student> studentTeachers = new ArrayList<>();
         if (vipGroupIds.size() > 0) {
             vipGroupTeachers = vipGroupDao.getGroupTeachers(vipGroupIds);
         }
@@ -2166,18 +2170,29 @@ public class ExportController extends BaseController {
         if (practiceGroupIds.size() > 0) {
             practiceGroupsTeacher = practiceGroupDao.getPracticeGroupByIds(practiceGroupIds);
         }
+        if(studentIds.size() > 0){
+            studentTeachers = studentDao.getStudentTeacher(studentIds);
+        }
 
         for (OrderByTypeExportDto order : orders) {
             for (VipBuyResultDto vipGroupTeacher : vipGroupTeachers) {
                 if (order.getGroupType().equals(GroupType.VIP) && order.getMusicGroupId().equals(vipGroupTeacher.getVipGroupId().longValue())) {
                     order.setTeacherName(vipGroupTeacher.getTeacherName());
                     order.setEduTeacherName(vipGroupTeacher.getEduTeacherName());
+                    break;
                 }
             }
             for (PracticeCourseDto practiceCourseDto : practiceGroupsTeacher) {
                 if (order.getGroupType().equals(GroupType.PRACTICE) && order.getMusicGroupId().equals(practiceCourseDto.getId())) {
                     order.setTeacherName(practiceCourseDto.getTeacherName());
                     order.setEduTeacherName(practiceCourseDto.getEduTeacherName());
+                    break;
+                }
+            }
+            for (Student studentTeacher : studentTeachers) {
+                if (order.getGroupType().equals(GroupType.SPORADIC) && studentTeacher.getUserId().equals(order.getStudentId())) {
+                    order.setTeacherName(studentTeacher.getTeacherName());
+                    break;
                 }
             }