Browse Source

Merge branch 'master' into online1

yonge 5 years ago
parent
commit
5a3a3d0e95
45 changed files with 674 additions and 103 deletions
  1. 4 6
      mec-auth/mec-auth-server/src/main/java/com/ym/mec/auth/config/WebMvcConfig.java
  2. 8 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/dao/ClassGroupDao.java
  3. 7 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/dao/ClassGroupTeacherMapperDao.java
  4. 16 2
      mec-biz/src/main/java/com/ym/mec/biz/dal/dao/CourseScheduleTeacherSalaryDao.java
  5. 8 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/dao/CoursesGroupModifyLogDao.java
  6. 5 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/dao/StudentDao.java
  7. 7 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/dao/TeacherAttendanceDao.java
  8. 13 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/dao/TeacherDao.java
  9. 10 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/dto/PracticeGroupDto.java
  10. 27 6
      mec-biz/src/main/java/com/ym/mec/biz/dal/dto/TeacherMusicClassInfoDto.java
  11. 0 2
      mec-biz/src/main/java/com/ym/mec/biz/dal/entity/CourseSchedule.java
  12. 2 2
      mec-biz/src/main/java/com/ym/mec/biz/dal/entity/CourseScheduleModifyLog.java
  13. 1 1
      mec-biz/src/main/java/com/ym/mec/biz/dal/entity/CoursesGroup.java
  14. 79 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/entity/CoursesGroupModifyLog.java
  15. 1 1
      mec-biz/src/main/java/com/ym/mec/biz/dal/entity/MusicGroup.java
  16. 4 3
      mec-biz/src/main/java/com/ym/mec/biz/dal/entity/Teacher.java
  17. 36 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/enums/ProbationPeriodEnum.java
  18. 7 0
      mec-biz/src/main/java/com/ym/mec/biz/service/ClassGroupTeacherMapperService.java
  19. 26 0
      mec-biz/src/main/java/com/ym/mec/biz/service/CourseScheduleService.java
  20. 8 0
      mec-biz/src/main/java/com/ym/mec/biz/service/CoursesGroupModifyLogService.java
  21. 6 0
      mec-biz/src/main/java/com/ym/mec/biz/service/StudentService.java
  22. 6 0
      mec-biz/src/main/java/com/ym/mec/biz/service/TeacherService.java
  23. 6 0
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/ClassGroupTeacherMapperServiceImpl.java
  24. 105 18
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/CourseScheduleServiceImpl.java
  25. 22 0
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/CoursesGroupModifyLogServiceImpl.java
  26. 5 0
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/StudentServiceImpl.java
  27. 2 1
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/TeacherAttendanceServiceImpl.java
  28. 21 0
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/TeacherServiceImpl.java
  29. 0 1
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/VipGroupServiceImpl.java
  30. 12 7
      mec-biz/src/main/resources/config/mybatis/ClassGroupMapper.xml
  31. 6 0
      mec-biz/src/main/resources/config/mybatis/ClassGroupTeacherMapperMapper.xml
  32. 10 1
      mec-biz/src/main/resources/config/mybatis/CourseScheduleTeacherSalaryMapper.xml
  33. 70 0
      mec-biz/src/main/resources/config/mybatis/CoursesGroupModifyLogDao.xml
  34. 8 5
      mec-biz/src/main/resources/config/mybatis/PracticeGroupMapper.xml
  35. 24 24
      mec-biz/src/main/resources/config/mybatis/StudentExtracurricularExercisesSituationMapper.xml
  36. 3 0
      mec-biz/src/main/resources/config/mybatis/StudentMapper.xml
  37. 1 1
      mec-biz/src/main/resources/config/mybatis/StudentRepairMapper.xml
  38. 9 3
      mec-biz/src/main/resources/config/mybatis/TeacherAttendanceMapper.xml
  39. 10 0
      mec-biz/src/main/resources/config/mybatis/TeacherMapper.xml
  40. 1 1
      mec-gateway/mec-gateway-web/pom.xml
  41. 0 2
      mec-web/src/main/java/com/ym/mec/web/controller/ChargeTypeController.java
  42. 18 0
      mec-web/src/main/java/com/ym/mec/web/controller/CourseScheduleController.java
  43. 41 16
      mec-web/src/main/java/com/ym/mec/web/controller/ExportController.java
  44. 9 0
      mec-web/src/main/java/com/ym/mec/web/controller/StudentManageController.java
  45. 10 0
      mec-web/src/main/java/com/ym/mec/web/controller/TeacherController.java

+ 4 - 6
mec-auth/mec-auth-server/src/main/java/com/ym/mec/auth/config/WebMvcConfig.java

@@ -1,8 +1,7 @@
 package com.ym.mec.auth.config;
 package com.ym.mec.auth.config;
 
 
-import java.util.ArrayList;
-import java.util.List;
-
+import com.ym.mec.common.config.EnumConverterFactory;
+import com.ym.mec.common.config.LocalFastJsonHttpMessageConverter;
 import org.springframework.boot.autoconfigure.http.HttpMessageConverters;
 import org.springframework.boot.autoconfigure.http.HttpMessageConverters;
 import org.springframework.context.annotation.Bean;
 import org.springframework.context.annotation.Bean;
 import org.springframework.context.annotation.Configuration;
 import org.springframework.context.annotation.Configuration;
@@ -10,8 +9,8 @@ import org.springframework.format.FormatterRegistry;
 import org.springframework.http.MediaType;
 import org.springframework.http.MediaType;
 import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
 import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
 
 
-import com.ym.mec.common.config.EnumConverterFactory;
-import com.ym.mec.common.config.LocalFastJsonHttpMessageConverter;
+import java.util.ArrayList;
+import java.util.List;
 
 
 @Configuration
 @Configuration
 public class WebMvcConfig implements WebMvcConfigurer {
 public class WebMvcConfig implements WebMvcConfigurer {
@@ -32,5 +31,4 @@ public class WebMvcConfig implements WebMvcConfigurer {
         converter.setSupportedMediaTypes(fastMediaTypes);
         converter.setSupportedMediaTypes(fastMediaTypes);
         return new HttpMessageConverters(converter);
         return new HttpMessageConverters(converter);
     }
     }
-
 }
 }

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

@@ -724,4 +724,12 @@ public interface ClassGroupDao extends BaseDAO<Integer, ClassGroup> {
      * @return
      * @return
      */
      */
     List<HighClassGroupDto> findHighClassGroup(@Param("musicGroupId") String musicGroupId, @Param("classGroupIds") String classGroupIds);
     List<HighClassGroupDto> findHighClassGroup(@Param("musicGroupId") String musicGroupId, @Param("classGroupIds") String classGroupIds);
+
+    /**
+     * 获取班级列表
+     * @param practiceGroupId
+     * @param groupType
+     * @return
+     */
+    List<ClassGroup> queryClassGroups(@Param("practiceGroupId") String practiceGroupId, @Param("groupType") String groupType);
 }
 }

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

@@ -128,4 +128,11 @@ public interface ClassGroupTeacherMapperDao extends BaseDAO<Long, ClassGroupTeac
      * @return
      * @return
      */
      */
     List<ClassGroupTeacherMapper> findByClassGroupIdsAndType(@Param("classGroupIds") List<Integer> classGroupIds, @Param("teacherRole") String teacherRole);
     List<ClassGroupTeacherMapper> findByClassGroupIdsAndType(@Param("classGroupIds") List<Integer> classGroupIds, @Param("teacherRole") String teacherRole);
+
+    /**
+     * 批量修改班级关联的老师
+     * @param classGroupIds
+     * @param newTeacherId
+     */
+    void batchUpdateTeacherByClassId(@Param("classGroupIds") List<Integer> classGroupIds, @Param("oldTeacherId") Integer oldTeacherId, @Param("newTeacherId") Integer newTeacherId);
 }
 }

+ 16 - 2
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/CourseScheduleTeacherSalaryDao.java

@@ -62,7 +62,7 @@ public interface CourseScheduleTeacherSalaryDao extends BaseDAO<Long, CourseSche
 	 * @params [days:天数]
 	 * @params [days:天数]
 	 * @describe 获取多少天之前的未结算教师课酬记录(vip课)
 	 * @describe 获取多少天之前的未结算教师课酬记录(vip课)
 	 */
 	 */
-	List<CourseScheduleTeacherSalary> findSomeDayAgoTeacherCourseSalaryNoSettlement(@Param("startDate") String startDate, @Param("endDate") String endDate);
+	List<CourseScheduleTeacherSalary> findSomeDayAgoTeacherCourseSalaryNoSettlement(@Param("startDate") String startDate,@Param("endDate") String endDate);
 
 
 	List<CourseScheduleTeacherSalary> findTemp();
 	List<CourseScheduleTeacherSalary> findTemp();
 
 
@@ -73,7 +73,7 @@ public interface CourseScheduleTeacherSalaryDao extends BaseDAO<Long, CourseSche
 	 * @params [days:天数]
 	 * @params [days:天数]
 	 * @describe 获取多少天之前的未结算教师课酬记录(陪练课课)
 	 * @describe 获取多少天之前的未结算教师课酬记录(陪练课课)
 	 */
 	 */
-	List<CourseScheduleTeacherSalary> findTeacherCourseSalaryNoSettlement(@Param("startDate") String startDate, @Param("endDate") String endDate);
+	List<CourseScheduleTeacherSalary> findTeacherCourseSalaryNoSettlement(@Param("startDate") String startDate,@Param("endDate") String endDate);
 
 
 	/**
 	/**
 	 * 查询老师指定课程的课酬
 	 * 查询老师指定课程的课酬
@@ -477,4 +477,18 @@ public interface CourseScheduleTeacherSalaryDao extends BaseDAO<Long, CourseSche
 	 * @return
 	 * @return
 	 */
 	 */
 	int getHasTeacherSalaryCount(@Param("courseScheduleIds") List<Long> courseScheduleIds);
 	int getHasTeacherSalaryCount(@Param("courseScheduleIds") List<Long> courseScheduleIds);
+
+	/**
+	 * 根据助教主教获取教师列表
+	 * @param classGroupId
+	 * @return
+	 */
+    List<Integer> queryTeacherByTeaching(@Param("classGroupId") Integer classGroupId);
+
+	/**
+	 * 根据助教主教获取教师列表
+	 * @param classGroupId
+	 * @return
+	 */
+    Integer queryTeacherByBishop(@Param("classGroupId") Integer classGroupId);
 }
 }

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

@@ -0,0 +1,8 @@
+package com.ym.mec.biz.dal.dao;
+
+import com.ym.mec.biz.dal.entity.CoursesGroupModifyLog;
+import com.ym.mec.common.dal.BaseDAO;
+
+public interface CoursesGroupModifyLogDao extends BaseDAO<Long, CoursesGroupModifyLog> {
+
+}

+ 5 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/StudentDao.java

@@ -126,4 +126,9 @@ public interface StudentDao extends com.ym.mec.common.dal.BaseDAO<Integer, Stude
                                            @Param("studentIds") List<Integer> studentIds,
                                            @Param("studentIds") List<Integer> studentIds,
                                            @Param("serviceTag") Integer serviceTag);
                                            @Param("serviceTag") Integer serviceTag);
 
 
+    /**
+     * 修改学员的指导老师
+     * @param teacherId
+     */
+    void batchUpdateAdviser(@Param("teacherId") Integer teacherId, @Param("studentIds") String studentIds);
 }
 }

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

@@ -230,4 +230,11 @@ public interface TeacherAttendanceDao extends BaseDAO<Long, TeacherAttendance> {
 	 * @return
 	 * @return
 	 */
 	 */
 	int countTeacherAttendanceComplaints(Map<String, Object> params);
 	int countTeacherAttendanceComplaints(Map<String, Object> params);
+
+	/**
+	 * 删除老师考勤
+	 * @param courseScheduleIds
+	 * @param teacherId
+	 */
+	void deleteByCourseAndTeacherId(@Param("courseScheduleIds") Set<Long> courseScheduleIds, @Param("teacherId") Integer teacherId);
 }
 }

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

@@ -458,4 +458,17 @@ public interface TeacherDao extends BaseDAO<Integer, Teacher> {
      * @return
      * @return
      */
      */
     List<String> queryMusicLeaderIds(Integer teacherId);
     List<String> queryMusicLeaderIds(Integer teacherId);
+
+    /**
+     * 获取和当前指导老师关联的学员
+     * @return
+     */
+    List<BasicUserDto> queryStudent(Map<String, Object> params);
+
+    /**
+     * COUNT当前指导老师关联的学员
+     * @param params
+     * @return
+     */
+    int countStudent(Map<String, Object> params);
 }
 }

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

@@ -28,8 +28,18 @@ public class PracticeGroupDto extends PracticeGroup {
 
 
     private Integer evaluateStatus;
     private Integer evaluateStatus;
 
 
+    private Integer hasRestClass;
+
     private String educationalTeacherName;
     private String educationalTeacherName;
 
 
+    public Integer getHasRestClass() {
+        return hasRestClass;
+    }
+
+    public void setHasRestClass(Integer hasRestClass) {
+        this.hasRestClass = hasRestClass;
+    }
+
     public String getEducationalTeacherName() {
     public String getEducationalTeacherName() {
         return educationalTeacherName;
         return educationalTeacherName;
     }
     }

+ 27 - 6
mec-biz/src/main/java/com/ym/mec/biz/dal/dto/TeacherMusicClassInfoDto.java

@@ -1,13 +1,12 @@
 package com.ym.mec.biz.dal.dto;
 package com.ym.mec.biz.dal.dto;
 
 
+import com.ym.mec.biz.dal.enums.JobNatureEnum;
 import com.ym.mec.biz.dal.enums.JobTypeEnum;
 import com.ym.mec.biz.dal.enums.JobTypeEnum;
+import com.ym.mec.biz.dal.enums.MusicGroupStatusEnum;
 import io.swagger.annotations.ApiModelProperty;
 import io.swagger.annotations.ApiModelProperty;
 
 
 import java.util.List;
 import java.util.List;
 
 
-import com.ym.mec.biz.dal.enums.JobNatureEnum;
-import com.ym.mec.biz.dal.enums.MusicGroupStatusEnum;
-
 /**
 /**
  * 老师乐团课程信息
  * 老师乐团课程信息
  */
  */
@@ -31,7 +30,10 @@ public class TeacherMusicClassInfoDto {
     private String teacherRole;
     private String teacherRole;
 
 
     @ApiModelProperty(value = "执教班级名称", required = false)
     @ApiModelProperty(value = "执教班级名称", required = false)
-    private List<String> classGroupNames;
+    private String classGroupNames;
+
+    @ApiModelProperty(value = "执教班级编号", required = false)
+    private String classGroupIds;
 
 
     @ApiModelProperty(value = "教师乐团职务类型", required = false)
     @ApiModelProperty(value = "教师乐团职务类型", required = false)
     private JobTypeEnum jobType;
     private JobTypeEnum jobType;
@@ -42,6 +44,17 @@ public class TeacherMusicClassInfoDto {
     @ApiModelProperty(value = "出勤次数",required = false)
     @ApiModelProperty(value = "出勤次数",required = false)
     private Integer attendanceNum;
     private Integer attendanceNum;
 
 
+    @ApiModelProperty(value = "是否又剩余课时",required = false)
+    private Integer hasRestClass;
+
+    public Integer getHasRestClass() {
+        return hasRestClass;
+    }
+
+    public void setHasRestClass(Integer hasRestClass) {
+        this.hasRestClass = hasRestClass;
+    }
+
     public String getTeacherRole() {
     public String getTeacherRole() {
         return teacherRole;
         return teacherRole;
     }
     }
@@ -106,14 +119,22 @@ public class TeacherMusicClassInfoDto {
         this.teamTeacherId = teamTeacherId;
         this.teamTeacherId = teamTeacherId;
     }
     }
 
 
-    public List<String> getClassGroupNames() {
+    public String getClassGroupNames() {
         return classGroupNames;
         return classGroupNames;
     }
     }
 
 
-    public void setClassGroupNames(List<String> classGroupNames) {
+    public void setClassGroupNames(String classGroupNames) {
         this.classGroupNames = classGroupNames;
         this.classGroupNames = classGroupNames;
     }
     }
 
 
+    public String getClassGroupIds() {
+        return classGroupIds;
+    }
+
+    public void setClassGroupIds(String classGroupIds) {
+        this.classGroupIds = classGroupIds;
+    }
+
     public MusicGroupStatusEnum getStatus() {
     public MusicGroupStatusEnum getStatus() {
         return status;
         return status;
     }
     }

+ 0 - 2
mec-biz/src/main/java/com/ym/mec/biz/dal/entity/CourseSchedule.java

@@ -4,9 +4,7 @@ import com.fasterxml.jackson.annotation.JsonInclude;
 import com.ym.mec.auth.api.entity.SysUser;
 import com.ym.mec.auth.api.entity.SysUser;
 import com.ym.mec.biz.dal.enums.*;
 import com.ym.mec.biz.dal.enums.*;
 import com.ym.mec.common.enums.BaseEnum;
 import com.ym.mec.common.enums.BaseEnum;
-
 import io.swagger.annotations.ApiModelProperty;
 import io.swagger.annotations.ApiModelProperty;
-
 import org.apache.commons.lang3.StringUtils;
 import org.apache.commons.lang3.StringUtils;
 import org.apache.commons.lang3.builder.ToStringBuilder;
 import org.apache.commons.lang3.builder.ToStringBuilder;
 
 

+ 2 - 2
mec-biz/src/main/java/com/ym/mec/biz/dal/entity/CourseScheduleModifyLog.java

@@ -21,10 +21,10 @@ public class CourseScheduleModifyLog {
 	
 	
 	/**  */
 	/**  */
 	private String currentCourseSchedule;
 	private String currentCourseSchedule;
-	
+
 	/**  */
 	/**  */
 	private java.util.Date createTime;
 	private java.util.Date createTime;
-	
+
 	public void setId(Long id){
 	public void setId(Long id){
 		this.id = id;
 		this.id = id;
 	}
 	}

+ 1 - 1
mec-biz/src/main/java/com/ym/mec/biz/dal/entity/CoursesGroup.java

@@ -8,7 +8,7 @@ import java.math.BigDecimal;
 /**
 /**
  * 对应数据库表(courses_group):
  * 对应数据库表(courses_group):
  */
  */
-public class CoursesGroup {
+public class CoursesGroup{
 
 
 	/**  */
 	/**  */
 	private Long id;
 	private Long id;

+ 79 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/entity/CoursesGroupModifyLog.java

@@ -0,0 +1,79 @@
+package com.ym.mec.biz.dal.entity;
+
+import java.util.Date;
+
+/**
+ * 对应数据库表(courses_group_modify_log):
+ */
+public class CoursesGroupModifyLog{
+
+	private Long id;
+
+	private String groupId;
+
+	private Integer operatorId;
+
+	private String groupType;
+
+	private String previousGroup;
+
+	private String currentGroup;
+
+	private Date createTime;
+
+	public Long getId() {
+		return id;
+	}
+
+	public void setId(Long id) {
+		this.id = id;
+	}
+
+	public String getGroupId() {
+		return groupId;
+	}
+
+	public void setGroupId(String groupId) {
+		this.groupId = groupId;
+	}
+
+	public Integer getOperatorId() {
+		return operatorId;
+	}
+
+	public void setOperatorId(Integer operatorId) {
+		this.operatorId = operatorId;
+	}
+
+	public String getGroupType() {
+		return groupType;
+	}
+
+	public void setGroupType(String groupType) {
+		this.groupType = groupType;
+	}
+
+	public String getPreviousGroup() {
+		return previousGroup;
+	}
+
+	public void setPreviousGroup(String previousGroup) {
+		this.previousGroup = previousGroup;
+	}
+
+	public String getCurrentGroup() {
+		return currentGroup;
+	}
+
+	public void setCurrentGroup(String currentGroup) {
+		this.currentGroup = currentGroup;
+	}
+
+	public Date getCreateTime() {
+		return createTime;
+	}
+
+	public void setCreateTime(Date createTime) {
+		this.createTime = createTime;
+	}
+}

+ 1 - 1
mec-biz/src/main/java/com/ym/mec/biz/dal/entity/MusicGroup.java

@@ -15,7 +15,7 @@ import com.ym.mec.biz.dal.enums.YesOrNoEnum;
 /**
 /**
  * 对应数据库表(music_group):
  * 对应数据库表(music_group):
  */
  */
-public class MusicGroup{
+public class MusicGroup {
 
 
 	/**  */
 	/**  */
 	private String id;
 	private String id;

+ 4 - 3
mec-biz/src/main/java/com/ym/mec/biz/dal/entity/Teacher.java

@@ -3,6 +3,7 @@ package com.ym.mec.biz.dal.entity;
 import com.ym.mec.auth.api.entity.SysUser;
 import com.ym.mec.auth.api.entity.SysUser;
 import com.ym.mec.biz.dal.enums.JobNatureEnum;
 import com.ym.mec.biz.dal.enums.JobNatureEnum;
 import com.ym.mec.biz.dal.enums.JobTypeEnum;
 import com.ym.mec.biz.dal.enums.JobTypeEnum;
+import com.ym.mec.biz.dal.enums.ProbationPeriodEnum;
 import com.ym.mec.biz.dal.enums.YesOrNoEnum;
 import com.ym.mec.biz.dal.enums.YesOrNoEnum;
 import io.swagger.annotations.ApiModelProperty;
 import io.swagger.annotations.ApiModelProperty;
 import org.apache.commons.lang3.builder.ToStringBuilder;
 import org.apache.commons.lang3.builder.ToStringBuilder;
@@ -26,7 +27,7 @@ public class Teacher extends SysUser {
 
 
 	/** 是否试用期 */
 	/** 是否试用期 */
 	@ApiModelProperty(value = "是否试用期1是,0否", required = false)
 	@ApiModelProperty(value = "是否试用期1是,0否", required = false)
-	private YesOrNoEnum isProbationPeriod;
+	private ProbationPeriodEnum isProbationPeriod;
 
 
 	/** 学历 */
 	/** 学历 */
 	@ApiModelProperty(value = "学历", required = false)
 	@ApiModelProperty(value = "学历", required = false)
@@ -214,11 +215,11 @@ public class Teacher extends SysUser {
 		this.jobType = jobType;
 		this.jobType = jobType;
 	}
 	}
 
 
-	public YesOrNoEnum getIsProbationPeriod() {
+	public ProbationPeriodEnum getIsProbationPeriod() {
 		return isProbationPeriod;
 		return isProbationPeriod;
 	}
 	}
 
 
-	public void setIsProbationPeriod(YesOrNoEnum isProbationPeriod) {
+	public void setIsProbationPeriod(ProbationPeriodEnum isProbationPeriod) {
 		this.isProbationPeriod = isProbationPeriod;
 		this.isProbationPeriod = isProbationPeriod;
 	}
 	}
 
 

+ 36 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/enums/ProbationPeriodEnum.java

@@ -0,0 +1,36 @@
+package com.ym.mec.biz.dal.enums;
+
+import com.ym.mec.common.enums.BaseEnum;
+
+//人事状态(1-试用 0-正式,2离职)',
+public enum ProbationPeriodEnum implements BaseEnum<Integer, ProbationPeriodEnum> {
+    NORMAL(0,"正式"),
+    TRY(1,"试用"),
+    LEAVE(2,"离职");
+
+    private Integer code;
+
+    private String msg;
+
+    ProbationPeriodEnum(Integer code, String msg) {
+        this.code = code;
+        this.msg = msg;
+    }
+
+    public void setCode(Integer code) {
+        this.code = code;
+    }
+
+    public String getMsg() {
+        return msg;
+    }
+
+    public void setMsg(String msg) {
+        this.msg = msg;
+    }
+
+    @Override
+    public Integer getCode() {
+        return this.code;
+    }
+}

+ 7 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/ClassGroupTeacherMapperService.java

@@ -68,4 +68,11 @@ public interface ClassGroupTeacherMapperService extends BaseService<Long, ClassG
      * @param teacherId
      * @param teacherId
      */
      */
     void updateTeacher(String groupId, Integer teacherId,String groupType);
     void updateTeacher(String groupId, Integer teacherId,String groupType);
+
+    /**
+     * 批量修改班级关联的老师
+     * @param classGroupIds
+     * @param newTeacherId
+     */
+    void batchUpdateTeacherByClassId(List<Integer> classGroupIds, Integer oldTeacherId,Integer newTeacherId);
 }
 }

+ 26 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/CourseScheduleService.java

@@ -513,4 +513,30 @@ public interface CourseScheduleService extends BaseService<Long, CourseSchedule>
 	 * @param coursesExpireDate
 	 * @param coursesExpireDate
 	 */
 	 */
 	void updateCoursesExpireDate(String practiceGroupId, Date coursesExpireDate);
 	void updateCoursesExpireDate(String practiceGroupId, Date coursesExpireDate);
+
+	/**
+	 * 获取当前班级列表的所有未开始的课程
+	 * @param classGroupIds
+	 * @param teacherId
+	 * @param teacherRole
+	 * @return
+	 */
+	List<CourseSchedule> queryNoStartCourseByTeacherId(String classGroupIds, Integer teacherId, String teacherRole);
+
+	/**
+	 * 根据班级列表调整课程
+	 * @param classGroupIds
+	 * @param teacherId
+	 * @param targetTeacherId
+	 */
+	void classGroupTeacherAdjust(String classGroupIds, Integer teacherId, Integer targetTeacherId);
+
+	/**
+	 * 网管课批量调整
+	 * @param practiceGroupId
+	 * @param teacherId
+	 * @param subjectId
+	 * @param educationalTeacherId
+	 */
+	void batchPracticeGroupTeacherAdjust(String practiceGroupId, Integer teacherId, Integer subjectId, Integer educationalTeacherId,Integer oldTeacherId);
 }
 }

+ 8 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/CoursesGroupModifyLogService.java

@@ -0,0 +1,8 @@
+package com.ym.mec.biz.service;
+
+import com.ym.mec.biz.dal.entity.CoursesGroupModifyLog;
+import com.ym.mec.common.service.BaseService;
+
+public interface CoursesGroupModifyLogService extends BaseService<Long, CoursesGroupModifyLog> {
+
+}

+ 6 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/StudentService.java

@@ -27,4 +27,10 @@ public interface StudentService extends BaseService<Integer, Student> {
      * @return void
      * @return void
      */
      */
     void initTeacherId();
     void initTeacherId();
+
+    /**
+     * 修改学员的指导老师
+     * @param teacherId
+     */
+    void batchUpdateAdviser(Integer teacherId,String studentIds);
 }
 }

+ 6 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/TeacherService.java

@@ -6,6 +6,7 @@ import com.ym.mec.biz.dal.entity.Teacher;
 import com.ym.mec.biz.dal.page.*;
 import com.ym.mec.biz.dal.page.*;
 import com.ym.mec.common.entity.ImGroupModel;
 import com.ym.mec.common.entity.ImGroupModel;
 import com.ym.mec.common.page.PageInfo;
 import com.ym.mec.common.page.PageInfo;
+import com.ym.mec.common.page.QueryInfo;
 import com.ym.mec.common.service.BaseService;
 import com.ym.mec.common.service.BaseService;
 import org.apache.ibatis.annotations.Param;
 import org.apache.ibatis.annotations.Param;
 
 
@@ -180,4 +181,9 @@ public interface TeacherService extends BaseService<Integer, Teacher> {
      */
      */
 	boolean realNameAuthentication(Integer userId, String realName, String idcardNo, String idcardFrontImg, String idcardBackImg, String idcardHandImg);
 	boolean realNameAuthentication(Integer userId, String realName, String idcardNo, String idcardFrontImg, String idcardBackImg, String idcardHandImg);
 
 
+    /**
+     * 获取和当前指导老师关联的学员
+     * @return
+     */
+    PageInfo<BasicUserDto> queryStudent(QueryInfo queryInfo);
 }
 }

+ 6 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/impl/ClassGroupTeacherMapperServiceImpl.java

@@ -621,4 +621,10 @@ public class ClassGroupTeacherMapperServiceImpl extends BaseServiceImpl<Long, Cl
     public void updateTeacher(String groupId, Integer teacherId, String groupType) {
     public void updateTeacher(String groupId, Integer teacherId, String groupType) {
         classGroupTeacherMapperDao.updateTeacher(groupId, teacherId, groupType);
         classGroupTeacherMapperDao.updateTeacher(groupId, teacherId, groupType);
     }
     }
+
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public void batchUpdateTeacherByClassId(List<Integer> classGroupIds, Integer oldTeacherId, Integer newTeacherId) {
+        classGroupTeacherMapperDao.batchUpdateTeacherByClassId(classGroupIds,oldTeacherId,newTeacherId);
+    }
 }
 }

+ 105 - 18
mec-biz/src/main/java/com/ym/mec/biz/service/impl/CourseScheduleServiceImpl.java

@@ -23,14 +23,12 @@ import com.ym.mec.common.page.PageInfo;
 import com.ym.mec.common.page.QueryInfo;
 import com.ym.mec.common.page.QueryInfo;
 import com.ym.mec.common.service.impl.BaseServiceImpl;
 import com.ym.mec.common.service.impl.BaseServiceImpl;
 import com.ym.mec.im.ImFeignService;
 import com.ym.mec.im.ImFeignService;
-import com.ym.mec.jiari.JiaRiFeignService;
 import com.ym.mec.thirdparty.message.MessageSenderPluginContext.MessageSender;
 import com.ym.mec.thirdparty.message.MessageSenderPluginContext.MessageSender;
 import com.ym.mec.util.collection.ListUtil;
 import com.ym.mec.util.collection.ListUtil;
 import com.ym.mec.util.collection.MapUtil;
 import com.ym.mec.util.collection.MapUtil;
 import com.ym.mec.util.date.DateUtil;
 import com.ym.mec.util.date.DateUtil;
 import com.ym.mec.util.json.JsonUtil;
 import com.ym.mec.util.json.JsonUtil;
 import org.apache.commons.collections.ListUtils;
 import org.apache.commons.collections.ListUtils;
-import org.apache.commons.lang3.ArrayUtils;
 import org.apache.commons.lang3.StringUtils;
 import org.apache.commons.lang3.StringUtils;
 import org.slf4j.Logger;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.slf4j.LoggerFactory;
@@ -52,7 +50,6 @@ import java.util.stream.Stream;
 import static com.ym.mec.biz.dal.enums.GroupType.MUSIC;
 import static com.ym.mec.biz.dal.enums.GroupType.MUSIC;
 import static com.ym.mec.biz.dal.enums.GroupType.PRACTICE;
 import static com.ym.mec.biz.dal.enums.GroupType.PRACTICE;
 import static com.ym.mec.biz.dal.enums.PracticeGroupType.*;
 import static com.ym.mec.biz.dal.enums.PracticeGroupType.*;
-import static com.ym.mec.biz.dal.enums.SignInStatusEnum.*;
 
 
 @Service
 @Service
 public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSchedule> implements CourseScheduleService {
 public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSchedule> implements CourseScheduleService {
@@ -75,10 +72,8 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
     private StudentAttendanceDao studentAttendanceDao;
     private StudentAttendanceDao studentAttendanceDao;
     @Autowired
     @Autowired
     private ClassGroupStudentMapperDao classGroupStudentMapperDao;
     private ClassGroupStudentMapperDao classGroupStudentMapperDao;
-
     @Autowired
     @Autowired
     private TeacherDefaultPracticeGroupSalaryDao teacherDefaultPracticeGroupSalaryDao;
     private TeacherDefaultPracticeGroupSalaryDao teacherDefaultPracticeGroupSalaryDao;
-
     @Autowired
     @Autowired
     private SysMessageService sysMessageService;
     private SysMessageService sysMessageService;
     @Autowired
     @Autowired
@@ -112,8 +107,6 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
     @Autowired
     @Autowired
     private PracticeGroupDao practiceGroupDao;
     private PracticeGroupDao practiceGroupDao;
     @Autowired
     @Autowired
-    private JiaRiFeignService jiaRiFeignService;
-    @Autowired
     private VipGroupService vipGroupService;
     private VipGroupService vipGroupService;
     @Autowired
     @Autowired
     private MusicGroupService musicGroupService;
     private MusicGroupService musicGroupService;
@@ -123,10 +116,8 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
     private SchoolDao schoolDao;
     private SchoolDao schoolDao;
     @Autowired
     @Autowired
 	private ImFeignService imFeignService;
 	private ImFeignService imFeignService;
-
     @Autowired
     @Autowired
     private CourseHomeworkService courseHomeworkService;
     private CourseHomeworkService courseHomeworkService;
-
     @Autowired
     @Autowired
     private GroupDao groupDao;
     private GroupDao groupDao;
     @Autowired
     @Autowired
@@ -135,6 +126,8 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
 	private CourseScheduleReviewDao courseScheduleReviewDao;
 	private CourseScheduleReviewDao courseScheduleReviewDao;
     @Autowired
     @Autowired
 	private PracticeGroupService practiceGroupService;
 	private PracticeGroupService practiceGroupService;
+    @Autowired
+	private CoursesGroupModifyLogDao coursesGroupModifyLogDao;
 
 
     private final Logger LOGGER = LoggerFactory
     private final Logger LOGGER = LoggerFactory
             .getLogger(this.getClass());
             .getLogger(this.getClass());
@@ -2472,8 +2465,9 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
 
 
 			List<Integer> oldTeacherIdList = teacherAttendanceList.stream().map(TeacherAttendance::getTeacherId).distinct().collect(Collectors.toList());
 			List<Integer> oldTeacherIdList = teacherAttendanceList.stream().map(TeacherAttendance::getTeacherId).distinct().collect(Collectors.toList());
 
 
-			List<Integer> newTeacherIdList = newCourseSchedule.getTeachingTeacherIdList();
+			Set<Integer> newTeacherIdList = new HashSet(newCourseSchedule.getTeachingTeacherIdList());
 			newTeacherIdList.add(newCourseSchedule.getActualTeacherId());
 			newTeacherIdList.add(newCourseSchedule.getActualTeacherId());
+			List<Integer> integerArrayList = new ArrayList<>(newTeacherIdList);
 
 
 			if (newCourseSchedule.getStatus() != CourseStatusEnum.OVER) {
 			if (newCourseSchedule.getStatus() != CourseStatusEnum.OVER) {
 				// 清理原来考勤
 				// 清理原来考勤
@@ -2534,7 +2528,7 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
 			int newMinutes = DateUtil.minutesBetween(newCourseSchedule.getStartClassTime(), newCourseSchedule.getEndClassTime());
 			int newMinutes = DateUtil.minutesBetween(newCourseSchedule.getStartClassTime(), newCourseSchedule.getEndClassTime());
 
 
 			// 如果修改了老师、课程类型、课程时长、教学模式,需要修改课酬
 			// 如果修改了老师、课程类型、课程时长、教学模式,需要修改课酬
-			if (!ListUtil.isEquals(oldTeacherIdList, newTeacherIdList) || newCourseSchedule.getType() != oldCourseSchedule.getType()
+			if (!ListUtil.isEquals(oldTeacherIdList, integerArrayList) || newCourseSchedule.getType() != oldCourseSchedule.getType()
 					|| newCourseSchedule.getTeachMode() != oldCourseSchedule.getTeachMode() || oldMinutes != newMinutes) {
 					|| newCourseSchedule.getTeachMode() != oldCourseSchedule.getTeachMode() || oldMinutes != newMinutes) {
 
 
 				Map<Integer, Teacher> teacherMap = null;
 				Map<Integer, Teacher> teacherMap = null;
@@ -2542,11 +2536,11 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
 
 
 				if (newCourseSchedule.getGroupType() == GroupType.MUSIC) {
 				if (newCourseSchedule.getGroupType() == GroupType.MUSIC) {
 					// 所有教师列表
 					// 所有教师列表
-					List<Teacher> teachers = teacherDao.findByTeacherIds(newTeacherIdList);
+					List<Teacher> teachers = teacherDao.findByTeacherIds(integerArrayList);
 					teacherMap = teachers.stream().collect(Collectors.toMap(Teacher::getId, teacher -> teacher));
 					teacherMap = teachers.stream().collect(Collectors.toMap(Teacher::getId, teacher -> teacher));
 
 
 					// 所有老师默认乐团课酬
 					// 所有老师默认乐团课酬
-					List<TeacherDefaultMusicGroupSalary> teacherDefaultMusicGroupSalaries = teacherDefaultMusicGroupSalaryDao.findByTeacher(newTeacherIdList);
+					List<TeacherDefaultMusicGroupSalary> teacherDefaultMusicGroupSalaries = teacherDefaultMusicGroupSalaryDao.findByTeacher(integerArrayList);
 					for (TeacherDefaultMusicGroupSalary tdms : teacherDefaultMusicGroupSalaries) {
 					for (TeacherDefaultMusicGroupSalary tdms : teacherDefaultMusicGroupSalaries) {
 						Map<CourseScheduleType, TeacherDefaultMusicGroupSalary> map = musicGroupSalaryMap.get(tdms.getUserId());
 						Map<CourseScheduleType, TeacherDefaultMusicGroupSalary> map = musicGroupSalaryMap.get(tdms.getUserId());
 						if (map == null) {
 						if (map == null) {
@@ -2599,12 +2593,12 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
 						Map<CourseScheduleType, TeacherDefaultMusicGroupSalary> map = musicGroupSalaryMap.get(teacherId);
 						Map<CourseScheduleType, TeacherDefaultMusicGroupSalary> map = musicGroupSalaryMap.get(teacherId);
 
 
 						if (map == null) {
 						if (map == null) {
-							throw new BizException("老师[]没有设置默认课酬,请先设置", teacherId);
+							throw new BizException("老师{}没有设置默认课酬,请先设置", teacherId);
 						}
 						}
 
 
 						TeacherDefaultMusicGroupSalary tdms = map.get(newCourseSchedule.getType());
 						TeacherDefaultMusicGroupSalary tdms = map.get(newCourseSchedule.getType());
 						if (tdms == null) {
 						if (tdms == null) {
-							throw new BizException("老师[]没有设置默认课酬,请先设置", teacherId);
+							throw new BizException("老师{}没有设置默认课酬,请先设置", teacherId);
 						}
 						}
 
 
 						// 乐团结算方式
 						// 乐团结算方式
@@ -3764,6 +3758,11 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
         }
         }
 
 
         PracticeGroup practiceGroup = practiceGroupDao.get(Long.parseLong(oldCourseSchedule.getMusicGroupId()));
         PracticeGroup practiceGroup = practiceGroupDao.get(Long.parseLong(oldCourseSchedule.getMusicGroupId()));
+        CoursesGroupModifyLog coursesGroupModifyLog = new CoursesGroupModifyLog();
+        coursesGroupModifyLog.setGroupId(oldCourseSchedule.getMusicGroupId());
+        coursesGroupModifyLog.setGroupType(PRACTICE.getCode());
+        coursesGroupModifyLog.setOperatorId(user.getId());
+        coursesGroupModifyLog.setPreviousGroup(JSONObject.toJSONString(practiceGroup));
         String classDate = DateUtil.format(courseSchedule.getClassDate(), DateUtil.DEFAULT_PATTERN);
         String classDate = DateUtil.format(courseSchedule.getClassDate(), DateUtil.DEFAULT_PATTERN);
         String startClassTime = DateUtil.format(courseSchedule.getStartClassTime(), DateUtil.EXPANDED_TIME_FORMAT);
         String startClassTime = DateUtil.format(courseSchedule.getStartClassTime(), DateUtil.EXPANDED_TIME_FORMAT);
         Date startDateTime = DateUtil.stringToDate(classDate + " " + startClassTime, DateUtil.EXPANDED_DATE_TIME_FORMAT);
         Date startDateTime = DateUtil.stringToDate(classDate + " " + startClassTime, DateUtil.EXPANDED_DATE_TIME_FORMAT);
@@ -3828,6 +3827,8 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
 			practiceGroup.setCoursesExpireDate(courseScheduleDao.getLastTime(practiceGroup.getId(),PRACTICE.getCode()));
 			practiceGroup.setCoursesExpireDate(courseScheduleDao.getLastTime(practiceGroup.getId(),PRACTICE.getCode()));
 			practiceGroup.setUpdateTime(date);
 			practiceGroup.setUpdateTime(date);
 			practiceGroupDao.update(practiceGroup);
 			practiceGroupDao.update(practiceGroup);
+			coursesGroupModifyLog.setCurrentGroup(JSONObject.toJSONString(practiceGroup));
+			coursesGroupModifyLogDao.insert(coursesGroupModifyLog);
 		}
 		}
     }
     }
 
 
@@ -3923,6 +3924,11 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
             courseSchedules = courseSchedules.stream().filter(courseSchedule -> !courseSchedule.getActualTeacherId().equals(teacherId)).collect(Collectors.toList());
             courseSchedules = courseSchedules.stream().filter(courseSchedule -> !courseSchedule.getActualTeacherId().equals(teacherId)).collect(Collectors.toList());
         }
         }
 		PracticeGroup practiceGroup = practiceGroupDao.get(Long.valueOf(practiceGroupId));
 		PracticeGroup practiceGroup = practiceGroupDao.get(Long.valueOf(practiceGroupId));
+		CoursesGroupModifyLog coursesGroupModifyLog = new CoursesGroupModifyLog();
+		coursesGroupModifyLog.setGroupId(practiceGroupId);
+		coursesGroupModifyLog.setGroupType(PRACTICE.getCode());
+		coursesGroupModifyLog.setOperatorId(user.getId());
+		coursesGroupModifyLog.setPreviousGroup(JSONObject.toJSONString(practiceGroup));
 		ClassGroup classGroup = classGroupDao.findByMusicGroupAndType(practiceGroupId, PRACTICE.getCode());
 		ClassGroup classGroup = classGroupDao.findByMusicGroupAndType(practiceGroupId, PRACTICE.getCode());
         if(Objects.nonNull(educationalTeacherId)&&!educationalTeacherId.equals(practiceGroup.getEducationalTeacherId())){
         if(Objects.nonNull(educationalTeacherId)&&!educationalTeacherId.equals(practiceGroup.getEducationalTeacherId())){
 			if(Objects.nonNull(practiceGroup.getEducationalTeacherId())){
 			if(Objects.nonNull(practiceGroup.getEducationalTeacherId())){
@@ -3947,10 +3953,13 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
 			classGroupDao.update(classGroup);
 			classGroupDao.update(classGroup);
 			courseScheduleDao.updateCourseNameByGroup(practiceGroupId, PRACTICE,groupName);
 			courseScheduleDao.updateCourseNameByGroup(practiceGroupId, PRACTICE,groupName);
 		}
 		}
+		practiceGroup.setUserId(teacherId);
 		practiceGroupDao.update(practiceGroup);
 		practiceGroupDao.update(practiceGroup);
+		coursesGroupModifyLog.setCurrentGroup(JSONObject.toJSONString(practiceGroup));
+		coursesGroupModifyLogDao.insert(coursesGroupModifyLog);
         classGroupTeacherMapperService.updateTeacher(practiceGroupId,teacherId, PRACTICE.getCode());
         classGroupTeacherMapperService.updateTeacher(practiceGroupId,teacherId, PRACTICE.getCode());
         classGroupTeacherSalaryDao.updateTeacher(practiceGroupId,teacherId, PRACTICE.getCode());
         classGroupTeacherSalaryDao.updateTeacher(practiceGroupId,teacherId, PRACTICE.getCode());
-        practiceGroupDao.updateUserId(practiceGroupId,teacherId);
+//        practiceGroupDao.updateUserId(practiceGroupId,teacherId);
         if(courseSchedules == null || courseSchedules.size() == 0){
         if(courseSchedules == null || courseSchedules.size() == 0){
             return;
             return;
         }
         }
@@ -4201,6 +4210,10 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
 	@Override
 	@Override
 	@Transactional(rollbackFor = Exception.class)
 	@Transactional(rollbackFor = Exception.class)
 	public void updateCoursesExpireDate(String practiceGroupId, Date coursesExpireDate) {
 	public void updateCoursesExpireDate(String practiceGroupId, Date coursesExpireDate) {
+		SysUser user = sysUserFeignService.queryUserInfo();
+		if (null == user) {
+			throw new BizException("获取用户信息失败");
+		}
     	if(practiceGroupId == null || coursesExpireDate == null ){
     	if(practiceGroupId == null || coursesExpireDate == null ){
     		throw new BizException("参数校验失败");
     		throw new BizException("参数校验失败");
 		}
 		}
@@ -4211,7 +4224,6 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
 		if(practiceGroup.getCoursesStartDate().after(coursesExpireDate)){
 		if(practiceGroup.getCoursesStartDate().after(coursesExpireDate)){
 			throw new BizException("课程有效时间不能早于开始时间");
 			throw new BizException("课程有效时间不能早于开始时间");
 		}
 		}
-
 		if(Objects.nonNull(practiceGroup.getBuyMonths())){
 		if(Objects.nonNull(practiceGroup.getBuyMonths())){
 			LocalDate courseStartDay = LocalDateTime.ofInstant(practiceGroup.getCoursesStartDate().toInstant(), DateUtil.zoneId).toLocalDate();
 			LocalDate courseStartDay = LocalDateTime.ofInstant(practiceGroup.getCoursesStartDate().toInstant(), DateUtil.zoneId).toLocalDate();
 			LocalDate currentExpiredDay = courseStartDay.plusMonths(practiceGroup.getBuyMonths()).plusDays(-1);
 			LocalDate currentExpiredDay = courseStartDay.plusMonths(practiceGroup.getBuyMonths()).plusDays(-1);
@@ -4220,10 +4232,85 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
 				throw new BizException("课程结束时间不得早于,{}", DateUtil.dateToString(courseExpiredDateTemp, "yyyy年MM月dd日"));
 				throw new BizException("课程结束时间不得早于,{}", DateUtil.dateToString(courseExpiredDateTemp, "yyyy年MM月dd日"));
 			}
 			}
 		}
 		}
-
+		CoursesGroupModifyLog coursesGroupModifyLog = new CoursesGroupModifyLog();
+		coursesGroupModifyLog.setGroupId(practiceGroupId);
+		coursesGroupModifyLog.setGroupType(PRACTICE.getCode());
+		coursesGroupModifyLog.setOperatorId(user.getId());
+		coursesGroupModifyLog.setPreviousGroup(JSONObject.toJSONString(practiceGroup));
 		practiceGroup.setCoursesExpireDate(DateUtil.addSeconds(DateUtil.addDays(coursesExpireDate, 1),-1));
 		practiceGroup.setCoursesExpireDate(DateUtil.addSeconds(DateUtil.addDays(coursesExpireDate, 1),-1));
 		practiceGroup.setUpdateTime(new Date());
 		practiceGroup.setUpdateTime(new Date());
 		practiceGroupDao.update(practiceGroup);
 		practiceGroupDao.update(practiceGroup);
+		coursesGroupModifyLog.setCurrentGroup(JSONObject.toJSONString(practiceGroup));
+		coursesGroupModifyLogDao.insert(coursesGroupModifyLog);
+	}
+
+	@Override
+	public List<CourseSchedule> queryNoStartCourseByTeacherId(String classGroupIds, Integer teacherId, String teacherRole) {
+		return courseScheduleDao.queryNoStartCourseByTeacherId(classGroupIds,teacherId,teacherRole);
+	}
+
+	@Override
+	@Transactional(rollbackFor = Exception.class)
+	public void classGroupTeacherAdjust(String classGroupIds, Integer teacherId, Integer targetTeacherId) {
+		List<Integer> teachingTeacherIdList = new ArrayList<Integer>();
+		teachingTeacherIdList.add(targetTeacherId);
+		List<CourseSchedule> courseSchedules = this.queryNoStartCourseByTeacherId(classGroupIds,teacherId,"BISHOP");
+		//获取助教老师列表
+		if(courseSchedules.size() > 0){
+			courseSchedules.forEach(e->{
+				e.setTeachingTeacherIdList(courseScheduleTeacherSalaryDao.queryTeacherByTeaching(e.getClassGroupId()));
+				e.setActualTeacherId(targetTeacherId);
+			});
+			this.courseAdjust(courseSchedules);
+			//修改老师考勤
+			Set<Integer> collect1 = courseSchedules.stream().map(e -> e.getClassGroupId()).collect(Collectors.toSet());
+//			teacherAttendanceDao.deleteByCourseAndTeacherId(collect1,teacherId);
+			batchUpdateClassTeacher(new ArrayList<>(collect1),teacherId,targetTeacherId);
+		}
+		List<CourseSchedule> courseSchedules1 = this.queryNoStartCourseByTeacherId(classGroupIds, teacherId, "TEACHING");
+		if(courseSchedules1.size() > 0){
+			courseSchedules1.forEach(e->{
+				e.setActualTeacherId(courseScheduleTeacherSalaryDao.queryTeacherByBishop(e.getClassGroupId()));
+				e.setTeachingTeacherIdList(teachingTeacherIdList);
+			});
+			this.courseAdjust(courseSchedules1);
+			Set<Integer> collect1 = courseSchedules1.stream().map(e -> e.getClassGroupId()).collect(Collectors.toSet());
+////			teacherAttendanceDao.deleteByCourseAndTeacherId(collect1,teacherId);
+			batchUpdateClassTeacher(new ArrayList<>(collect1),teacherId,targetTeacherId);
+		}
+	}
+
+	@Override
+	@Transactional(rollbackFor = Exception.class)
+	public void batchPracticeGroupTeacherAdjust(String practiceGroupId, Integer teacherId, Integer subjectId, Integer educationalTeacherId,Integer oldTeacherId) {
+		String[] split = practiceGroupId.split(",");
+		for (int i = 0; i < split.length; i++) {
+			this.practiceGroupTeacherAdjust(split[i],teacherId,subjectId,educationalTeacherId);
+		}
+		List<ClassGroup> classGroups = classGroupDao.queryClassGroups(practiceGroupId,"PRACTICE");
+		if(classGroups.size() > 0){
+			List<Integer> collect = classGroups.stream().map(e -> e.getId()).collect(Collectors.toList());
+			batchUpdateClassTeacher(collect,oldTeacherId,teacherId);
+		}
+	}
+
+	@Transactional(rollbackFor = Exception.class)
+	public void batchUpdateClassTeacher(List<Integer> classGroupIds,Integer oldTeacherId,Integer newTeacherId){
+		//修改班级老师
+		List<ClassGroup> classGroupList = classGroupDao.findByClassGroupIds(classGroupIds);
+		classGroupList.forEach(e->{
+			e.setUserIds(newTeacherId.toString());
+		});
+		classGroupTeacherMapperService.batchUpdateTeacherByClassId(classGroupIds,oldTeacherId,newTeacherId);
+		//旧老师退群,新老师加群
+		if(classGroupList != null && classGroupIds.size() > 0){
+			ImGroupMember[] oldImGroupMembers = {new ImGroupMember(oldTeacherId.toString())};
+			ImGroupMember[] imGroupMembers = {new ImGroupMember(newTeacherId.toString())};
+			for (ClassGroup classGroup:classGroupList) {
+				imFeignService.groupQuit(new ImGroupModel(classGroup.getId().toString(), oldImGroupMembers, classGroup.getName()));
+				imFeignService.groupJoin(new ImGroupModel(classGroup.getId().toString(), imGroupMembers, classGroup.getName()));
+			}
+		}
 	}
 	}
 
 
 	@Override
 	@Override

+ 22 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/impl/CoursesGroupModifyLogServiceImpl.java

@@ -0,0 +1,22 @@
+package com.ym.mec.biz.service.impl;
+
+import com.ym.mec.biz.dal.dao.CoursesGroupModifyLogDao;
+import com.ym.mec.biz.dal.entity.CoursesGroupModifyLog;
+import com.ym.mec.biz.service.CoursesGroupModifyLogService;
+import com.ym.mec.common.dal.BaseDAO;
+import com.ym.mec.common.service.impl.BaseServiceImpl;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+@Service
+public class CoursesGroupModifyLogServiceImpl extends BaseServiceImpl<Long, CoursesGroupModifyLog>  implements CoursesGroupModifyLogService {
+	
+	@Autowired
+	private CoursesGroupModifyLogDao coursesGroupModifyLogDao;
+
+	@Override
+	public BaseDAO<Long, CoursesGroupModifyLog> getDAO() {
+		return coursesGroupModifyLogDao;
+	}
+
+}

+ 5 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/impl/StudentServiceImpl.java

@@ -162,4 +162,9 @@ public class StudentServiceImpl extends BaseServiceImpl<Integer, Student> implem
 		studentCoursesMap=null;
 		studentCoursesMap=null;
 		allStudentCourseInfo=null;
 		allStudentCourseInfo=null;
 	}
 	}
+
+	@Override
+	public void batchUpdateAdviser(Integer teacherId,String studentIds) {
+		studentDao.batchUpdateAdviser(teacherId,studentIds);
+	}
 }
 }

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

@@ -596,7 +596,8 @@ public class TeacherAttendanceServiceImpl extends BaseServiceImpl<Long, TeacherA
 	public void pushTeacherExceptionAttendanceTask() {
 	public void pushTeacherExceptionAttendanceTask() {
 		//获取前一天的日期
 		//获取前一天的日期
 		Date date = new Date();
 		Date date = new Date();
-		String format = DateUtil.format(DateUtil.addDays(date,-1), DateUtil.DEFAULT_PATTERN);
+//		String format = DateUtil.format(DateUtil.addDays(date,-1), DateUtil.DEFAULT_PATTERN);
+		String format = DateUtil.format(date, DateUtil.DEFAULT_PATTERN);
 		Set<Integer> teacherId = teacherAttendanceDao.queryTeacherExceptionAttendance(format);
 		Set<Integer> teacherId = teacherAttendanceDao.queryTeacherExceptionAttendance(format);
 		if(teacherId == null || teacherId.size() == 0){
 		if(teacherId == null || teacherId.size() == 0){
 			return;
 			return;

+ 21 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/impl/TeacherServiceImpl.java

@@ -18,6 +18,7 @@ import com.ym.mec.common.entity.ImResult;
 import com.ym.mec.common.entity.ImUserModel;
 import com.ym.mec.common.entity.ImUserModel;
 import com.ym.mec.common.exception.BizException;
 import com.ym.mec.common.exception.BizException;
 import com.ym.mec.common.page.PageInfo;
 import com.ym.mec.common.page.PageInfo;
+import com.ym.mec.common.page.QueryInfo;
 import com.ym.mec.common.service.impl.BaseServiceImpl;
 import com.ym.mec.common.service.impl.BaseServiceImpl;
 import com.ym.mec.im.ImFeignService;
 import com.ym.mec.im.ImFeignService;
 import com.ym.mec.util.collection.MapUtil;
 import com.ym.mec.util.collection.MapUtil;
@@ -557,4 +558,24 @@ public class TeacherServiceImpl extends BaseServiceImpl<Integer, Teacher>  imple
 		return true;
 		return true;
 	}
 	}
 
 
+	@Override
+	public PageInfo<BasicUserDto> queryStudent(QueryInfo queryInfo) {
+		PageInfo<BasicUserDto> pageInfo = new PageInfo<>(queryInfo.getPage(), queryInfo.getRows());
+		Map<String, Object> params = new HashMap<>();
+		MapUtil.populateMap(params, queryInfo);
+
+		List<BasicUserDto> dataList = null;
+		int count = teacherDao.countStudent(params);
+		if (count > 0) {
+			pageInfo.setTotal(count);
+			params.put("offset", pageInfo.getOffset());
+			dataList = teacherDao.queryStudent(params);
+		}
+		if (count == 0) {
+			dataList = new ArrayList<>();
+		}
+		pageInfo.setRows(dataList);
+		return pageInfo;
+	}
+
 }
 }

+ 0 - 1
mec-biz/src/main/java/com/ym/mec/biz/service/impl/VipGroupServiceImpl.java

@@ -24,7 +24,6 @@ import com.ym.mec.im.ImFeignService;
 import com.ym.mec.thirdparty.message.MessageSenderPluginContext;
 import com.ym.mec.thirdparty.message.MessageSenderPluginContext;
 import com.ym.mec.util.collection.MapUtil;
 import com.ym.mec.util.collection.MapUtil;
 import com.ym.mec.util.date.DateUtil;
 import com.ym.mec.util.date.DateUtil;
-
 import org.apache.commons.lang3.StringUtils;
 import org.apache.commons.lang3.StringUtils;
 import org.slf4j.Logger;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.slf4j.LoggerFactory;

+ 12 - 7
mec-biz/src/main/resources/config/mybatis/ClassGroupMapper.xml

@@ -253,25 +253,27 @@
         <result column="educational_teacher_id_" property="educationalTeacherId"/>
         <result column="educational_teacher_id_" property="educationalTeacherId"/>
         <result column="team_teacher_id_" property="teamTeacherId"/>
         <result column="team_teacher_id_" property="teamTeacherId"/>
         <result column="teacher_role_" property="teacherRole"/>
         <result column="teacher_role_" property="teacherRole"/>
+        <result column="class_group_name_" property="classGroupNames"/>
+        <result column="class_group_id_" property="classGroupIds"/>
+        <result column="hasRestClass" property="hasRestClass"/>
         <result column="status_" property="status" typeHandler="com.ym.mec.common.dal.CustomEnumTypeHandler"/>
         <result column="status_" property="status" typeHandler="com.ym.mec.common.dal.CustomEnumTypeHandler"/>
         <result column="job_type_" property="jobType" typeHandler="com.ym.mec.common.dal.CustomEnumTypeHandler"/>
         <result column="job_type_" property="jobType" typeHandler="com.ym.mec.common.dal.CustomEnumTypeHandler"/>
         <result column="job_nature_" property="jobNature" typeHandler="com.ym.mec.common.dal.CustomEnumTypeHandler"/>
         <result column="job_nature_" property="jobNature" typeHandler="com.ym.mec.common.dal.CustomEnumTypeHandler"/>
-        <collection property="classGroupNames" ofType="string">
-            <result column="class_group_name_"/>
-        </collection>
     </resultMap>
     </resultMap>
     <select id="queryGroupCourses" resultMap="getTeaCourseInfosMap">
     <select id="queryGroupCourses" resultMap="getTeaCourseInfosMap">
         SELECT mg.id_ music_group_id_,mg.name_ music_group_name_,
         SELECT mg.id_ music_group_id_,mg.name_ music_group_name_,
-        mg.team_teacher_id_,mg.educational_teacher_id_,cg.name_ class_group_name_,
-        mg.status_,t.job_type_,t.job_nature_,cgtm.teacher_role_
+        mg.team_teacher_id_,mg.educational_teacher_id_,GROUP_CONCAT(DISTINCT cg.name_) class_group_name_,GROUP_CONCAT(DISTINCT cg.id_) class_group_id_,
+        mg.status_,t.job_type_,t.job_nature_,cgtm.teacher_role_,CASE WHEN COUNT(cs.id_) > 0 THEN 1 ELSE 0 END hasRestClass
         FROM class_group_teacher_mapper cgtm
         FROM class_group_teacher_mapper cgtm
         LEFT JOIN music_group mg ON cgtm.music_group_id_ = mg.id_
         LEFT JOIN music_group mg ON cgtm.music_group_id_ = mg.id_
         LEFT JOIN class_group cg ON cg.id_ = cgtm.class_group_id_
         LEFT JOIN class_group cg ON cg.id_ = cgtm.class_group_id_
         LEFT JOIN teacher t ON t.id_ = cgtm.user_id_
         LEFT JOIN teacher t ON t.id_ = cgtm.user_id_
+        LEFT JOIN course_schedule cs ON (FIND_IN_SET(cs.class_group_id_,cg.id_) AND CONCAT(cs.class_date_,' ',cs.start_class_time_) > NOW())
         WHERE cgtm.user_id_ = #{search} AND cg.del_flag_ = 0 AND cg.group_type_ = 'MUSIC'
         WHERE cgtm.user_id_ = #{search} AND cg.del_flag_ = 0 AND cg.group_type_ = 'MUSIC'
         <if test="status != null">
         <if test="status != null">
             AND mg.status_ = #{status}
             AND mg.status_ = #{status}
         </if>
         </if>
+        GROUP BY cgtm.id_
         <include refid="global.limit"/>
         <include refid="global.limit"/>
     </select>
     </select>
 
 
@@ -623,7 +625,7 @@
         vg.id_,cg.id_
         vg.id_,cg.id_
     </select>
     </select>
     <select id="countGroupCourses" resultType="java.lang.Integer">
     <select id="countGroupCourses" resultType="java.lang.Integer">
-        SELECT COUNT(DISTINCT mg.id_)
+        SELECT COUNT(DISTINCT cgtm.id_)
         FROM class_group_teacher_mapper cgtm
         FROM class_group_teacher_mapper cgtm
         LEFT JOIN music_group mg ON cgtm.music_group_id_ = mg.id_
         LEFT JOIN music_group mg ON cgtm.music_group_id_ = mg.id_
         LEFT JOIN class_group cg ON cg.id_ = cgtm.class_group_id_
         LEFT JOIN class_group cg ON cg.id_ = cgtm.class_group_id_
@@ -1098,7 +1100,7 @@
         WHERE su.id_ IS NOT NULL
         WHERE su.id_ IS NOT NULL
     </select>
     </select>
     <select id="findByGroupAndType" resultMap="ClassGroup">
     <select id="findByGroupAndType" resultMap="ClassGroup">
-        SELECT * FROM class_group WHERE music_group_id_=#{groupId} AND group_type_=#{groupType}
+        SELECT * FROM class_group WHERE music_group_id_=#{groupId} AND group_type_=#{groupType} LIMIT 1
     </select>
     </select>
 
 
     <update id="batchUpdateStudentNumMinusOne" parameterType="java.util.List">
     <update id="batchUpdateStudentNumMinusOne" parameterType="java.util.List">
@@ -1295,4 +1297,7 @@
         </if>
         </if>
         AND type_ IN ('HIGH','HIGH_ONLINE') AND del_flag_ = '0'
         AND type_ IN ('HIGH','HIGH_ONLINE') AND del_flag_ = '0'
     </select>
     </select>
+    <select id="queryClassGroups" resultMap="ClassGroup">
+        SELECT cg.* FROM class_group cg WHERE cg.music_group_id_ = #{practiceGroupId} AND cg.group_type_ = #{groupType}
+    </select>
 </mapper>
 </mapper>

+ 6 - 0
mec-biz/src/main/resources/config/mybatis/ClassGroupTeacherMapperMapper.xml

@@ -83,6 +83,12 @@
         UPDATE class_group_teacher_mapper SET user_id_ = #{teacherId},update_time_ = NOW()
         UPDATE class_group_teacher_mapper SET user_id_ = #{teacherId},update_time_ = NOW()
         WHERE teacher_role_ = 'BISHOP' AND music_group_id_ = #{groupId} AND group_type_ = #{groupType}
         WHERE teacher_role_ = 'BISHOP' AND music_group_id_ = #{groupId} AND group_type_ = #{groupType}
     </update>
     </update>
+    <update id="batchUpdateTeacherByClassId">
+      UPDATE class_group_teacher_mapper SET user_id_ = #{newTeacherId},update_time_ = NOW() WHERE user_id_ = #{oldTeacherId} AND class_group_id_ IN
+        <foreach collection="classGroupIds" item="item" open="(" close=")" separator=",">
+            #{item}
+        </foreach>
+    </update>
 
 
     <!-- 根据主键删除一条记录 -->
     <!-- 根据主键删除一条记录 -->
     <delete id="delete">
     <delete id="delete">

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

@@ -632,7 +632,8 @@
 		CASE WHEN t.job_nature_ = 'PART_TIME' THEN '兼职' WHEN t.job_nature_ = 'FULL_TIME' THEN '全职' ELSE '零时工' END jobType,
 		CASE WHEN t.job_nature_ = 'PART_TIME' THEN '兼职' WHEN t.job_nature_ = 'FULL_TIME' THEN '全职' ELSE '零时工' END jobType,
 		CASE WHEN cs.type_ = 'SINGLE' THEN '单技课' WHEN cs.type_ = 'MIX' THEN '合奏课' WHEN cs.type_ = 'HIGH' THEN '小班课'  WHEN cs.type_ = 'VIP' THEN 'vip课'
 		CASE WHEN cs.type_ = 'SINGLE' THEN '单技课' WHEN cs.type_ = 'MIX' THEN '合奏课' WHEN cs.type_ = 'HIGH' THEN '小班课'  WHEN cs.type_ = 'VIP' THEN 'vip课'
 		WHEN cs.type_ = 'DEMO' THEN '试听课'  WHEN cs.type_ = 'COMPREHENSIVE' THEN '综合课'  WHEN cs.type_ = 'PRACTICE' THEN '练习课'  WHEN cs.type_ = 'ENLIGHTENMENT' THEN '启蒙课'
 		WHEN cs.type_ = 'DEMO' THEN '试听课'  WHEN cs.type_ = 'COMPREHENSIVE' THEN '综合课'  WHEN cs.type_ = 'PRACTICE' THEN '练习课'  WHEN cs.type_ = 'ENLIGHTENMENT' THEN '启蒙课'
-		WHEN cs.type_ = 'TRAINING_SINGLE' THEN '集训单技课'  WHEN cs.type_ = 'TRAINING_MIX' THEN '集训合奏课'  ELSE '课堂课' END courseScheduleType,
+		WHEN cs.type_ = 'TRAINING_SINGLE' THEN '集训单技课'  WHEN cs.type_ = 'TRAINING_MIX' THEN '集训合奏课' WHEN cs.type_ = 'CLASSROOM' THEN '课堂课'
+		WHEN cs.type_ = 'COMM' THEN '对外课程'  WHEN cs.type_ = 'HIGH_ONLINE' THEN '线上基础技能课'  ELSE '乐团网管课' END courseScheduleType,
 		cs.class_date_ classDate,cs.start_class_time_ courseScheduleStartTime,cs.end_class_time_ courseScheduleEndTime,
 		cs.class_date_ classDate,cs.start_class_time_ courseScheduleStartTime,cs.end_class_time_ courseScheduleEndTime,
 		ROUND((UNIX_TIMESTAMP(cs.end_class_time_)-UNIX_TIMESTAMP(cs.start_class_time_))/60) signCourseScheduleTime,
 		ROUND((UNIX_TIMESTAMP(cs.end_class_time_)-UNIX_TIMESTAMP(cs.start_class_time_))/60) signCourseScheduleTime,
 		ts.actual_salary_ price,CASE WHEN s.name_ IS NULL THEN '网络教室' ELSE s.name_ END address,
 		ts.actual_salary_ price,CASE WHEN s.name_ IS NULL THEN '网络教室' ELSE s.name_ END address,
@@ -959,4 +960,12 @@
 			#{courseScheduleId}
 			#{courseScheduleId}
 		</foreach>
 		</foreach>
 	</select>
 	</select>
+    <select id="queryTeacherByTeaching" resultType="java.lang.Integer">
+		SELECT DISTINCT cgtm.user_id_ FROM class_group_teacher_mapper cgtm
+		WHERE cgtm.class_group_id_ = #{classGroupId} AND cgtm.teacher_role_ = 'TEACHING' AND cgtm.group_type_ = 'MUSIC';
+	</select>
+    <select id="queryTeacherByBishop" resultType="java.lang.Integer">
+		SELECT DISTINCT cgtm.user_id_ FROM class_group_teacher_mapper cgtm
+		WHERE cgtm.class_group_id_ = #{classGroupId} AND cgtm.teacher_role_ = 'BISHOP' AND cgtm.group_type_ = 'MUSIC';
+	</select>
 </mapper>
 </mapper>

+ 70 - 0
mec-biz/src/main/resources/config/mybatis/CoursesGroupModifyLogDao.xml

@@ -0,0 +1,70 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<!--
+这个文件是自动生成的。
+不要修改此文件。所有改动将在下次重新自动生成时丢失。
+-->
+<mapper namespace="com.ym.mec.biz.dal.dao.CoursesGroupModifyLogDao">
+
+    <resultMap type="com.ym.mec.biz.dal.entity.CoursesGroupModifyLog" id="CoursesGroupModifyLog">
+        <result column="id_" property="id"/>
+        <result column="group_id_" property="groupId"/>
+        <result column="group_type_" property="groupType"/>
+        <result column="operator_id_" property="operatorId"/>
+        <result column="previous_group_" property="previousGroup"/>
+        <result column="current_group_" property="currentGroup"/>
+        <result column="create_time_" property="createTime"/>
+    </resultMap>
+
+    <!-- 根据主键查询一条记录 -->
+    <select id="get" resultMap="CoursesGroupModifyLog">
+		SELECT * FROM courses_group_modify_log WHERE id_ = #{id}
+	</select>
+
+    <!-- 全查询 -->
+    <select id="findAll" resultMap="CoursesGroupModifyLog">
+		SELECT * FROM courses_group_modify_log ORDER BY id_
+	</select>
+
+    <!-- 向数据库增加一条记录 -->
+    <insert id="insert" parameterType="com.ym.mec.biz.dal.entity.CoursesGroupModifyLog" useGeneratedKeys="true" keyColumn="id"
+            keyProperty="id">
+        INSERT INTO courses_group_modify_log (group_id_,group_type_,operator_id_,previous_group_,current_group_,create_time_)
+        VALUES(#{groupId},#{groupType},#{operatorId},#{previousGroup},#{currentGroup},now())
+    </insert>
+
+    <!-- 根据主键查询一条记录 -->
+    <update id="update" parameterType="com.ym.mec.biz.dal.entity.CoursesGroupModifyLog">
+        UPDATE courses_group_modify_log
+        <set>
+            <if test="groupId != null">
+                group_id_ = #{groupId},
+            </if>
+            <if test="groupType != null">
+                group_type_ = #{groupType},
+            </if>
+            <if test="operatorId != null">
+                operator_id_ = #{operatorId},
+            </if>
+            <if test="previousGroup != null">
+                previous_group_ = #{previousGroup},
+            </if>
+            <if test="currentGroup != null">
+                current_group_ = #{currentGroup},
+            </if>
+        </set>
+        WHERE id_ = #{id}
+    </update>
+
+    <!-- 根据主键删除一条记录 -->
+    <delete id="delete">
+	</delete>
+
+    <!-- 分页查询 -->
+    <select id="queryPage" resultMap="CoursesGroupModifyLog" parameterType="map">
+    </select>
+
+    <!-- 查询当前表的总记录数 -->
+    <select id="queryCount" resultType="int">
+	</select>
+</mapper>

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

@@ -54,6 +54,7 @@
         <result column="teacher_name_" property="teacherName"/>
         <result column="teacher_name_" property="teacherName"/>
         <result column="evaluate_id_" property="evaluateId"/>
         <result column="evaluate_id_" property="evaluateId"/>
         <result column="evaluate_status_" property="evaluateStatus"/>
         <result column="evaluate_status_" property="evaluateStatus"/>
+        <result column="hasRestClass" property="hasRestClass"/>
     </resultMap>
     </resultMap>
     <update id="updateUserId">
     <update id="updateUserId">
         UPDATE practice_group
         UPDATE practice_group
@@ -71,6 +72,9 @@
             <if test="memo!=null">
             <if test="memo!=null">
                 memo_=#{memo},
                 memo_=#{memo},
             </if>
             </if>
+            <if test="userId != null">
+                user_id_ = #{userId},
+            </if>
             <if test="name!=null">
             <if test="name!=null">
                 name_=#{name},
                 name_=#{name},
             </if>
             </if>
@@ -179,12 +183,14 @@
     </select>
     </select>
     <select id="findAllByOrgan" resultMap="PracticeGroupDto">
     <select id="findAllByOrgan" resultMap="PracticeGroupDto">
         SELECT pg.*,
         SELECT pg.*,
-        su.real_name_ teacher_name_
+        su.real_name_ teacher_name_,
+        CASE WHEN COUNT(cs.id_) > 0 THEN 1 ELSE 0 END hasRestClass
         FROM
         FROM
         practice_group pg
         practice_group pg
         LEFT JOIN sys_user su ON pg.user_id_ = su.id_
         LEFT JOIN sys_user su ON pg.user_id_ = su.id_
+        LEFT JOIN course_schedule cs ON (FIND_IN_SET(cs.music_group_id_,pg.id_) AND CONCAT(cs.class_date_,' ',cs.start_class_time_) > NOW() AND cs.group_type_ = 'PRACTICE')
         <include refid="practiceGroupQueryCondition"/>
         <include refid="practiceGroupQueryCondition"/>
-        ORDER BY pg.id_ DESC
+        GROUP BY pg.id_ ORDER BY pg.id_ DESC
         <include refid="global.limit"/>
         <include refid="global.limit"/>
     </select>
     </select>
     <select id="countPracticeGroupOverCourse" resultType="java.util.Map">
     <select id="countPracticeGroupOverCourse" resultType="java.util.Map">
@@ -266,9 +272,6 @@
             <if test="groupStatus != null and groupStatus != ''">
             <if test="groupStatus != null and groupStatus != ''">
                 AND pg.group_status_ = #{groupStatus}
                 AND pg.group_status_ = #{groupStatus}
             </if>
             </if>
-            <if test="groupStatus == null or groupStatus == ''">
-                AND pg.group_status_ IN ('NORMAL', 'FINISH')
-            </if>
             <if test="organId != null">
             <if test="organId != null">
                 AND FIND_IN_SET(pg.organ_id_,#{organId})
                 AND FIND_IN_SET(pg.organ_id_,#{organId})
             </if>
             </if>

+ 24 - 24
mec-biz/src/main/resources/config/mybatis/StudentExtracurricularExercisesSituationMapper.xml

@@ -194,42 +194,42 @@
 			</if>
 			</if>
 			<if test="submitStartDate==null or submitEndDate==null">
 			<if test="submitStartDate==null or submitEndDate==null">
 				<if test="exercisesReplyNumIsAchieve!=null and exercisesReplyNumIsAchieve==0">
 				<if test="exercisesReplyNumIsAchieve!=null and exercisesReplyNumIsAchieve==0">
-					SUM( exercises_reply_num_ ) &lt; SUM( expect_exercises_num_ ) and
+					SUM( exercises_reply_num_ ) &lt; SUM( actual_exercises_num_ ) and
 				</if>
 				</if>
 				<if test="exercisesReplyNumIsAchieve!=null and exercisesReplyNumIsAchieve==1">
 				<if test="exercisesReplyNumIsAchieve!=null and exercisesReplyNumIsAchieve==1">
-					SUM( exercises_reply_num_ ) &gt;= SUM( expect_exercises_num_ ) and
+					SUM( exercises_reply_num_ ) &gt;= SUM( actual_exercises_num_ ) and
 				</if>
 				</if>
 				<if test="exercisesMessageNumIsAchieve!=null and exercisesMessageNumIsAchieve==0">
 				<if test="exercisesMessageNumIsAchieve!=null and exercisesMessageNumIsAchieve==0">
-					SUM( exercises_message_num_ ) &lt; SUM( expect_exercises_num_ ) and
+					SUM( exercises_message_num_ ) &lt; SUM( exercises_reply_num_ ) and
 				</if>
 				</if>
 				<if test="exercisesMessageNumIsAchieve!=null and exercisesMessageNumIsAchieve==1">
 				<if test="exercisesMessageNumIsAchieve!=null and exercisesMessageNumIsAchieve==1">
-					SUM( exercises_message_num_ ) &gt;= SUM( expect_exercises_num_ ) and
+					SUM( exercises_message_num_ ) &gt;= SUM( exercises_reply_num_ ) and
 				</if>
 				</if>
 				<if test="exercisesMessageTimelyNumIsAchieve!=null and exercisesMessageTimelyNumIsAchieve==0">
 				<if test="exercisesMessageTimelyNumIsAchieve!=null and exercisesMessageTimelyNumIsAchieve==0">
-					SUM( exercises_message_timely_num_ ) &lt; SUM( expect_exercises_num_ ) and
+					SUM( exercises_message_timely_num_ ) &lt; SUM( exercises_message_num_ ) and
 				</if>
 				</if>
 				<if test="exercisesMessageTimelyNumIsAchieve!=null and exercisesMessageTimelyNumIsAchieve==1">
 				<if test="exercisesMessageTimelyNumIsAchieve!=null and exercisesMessageTimelyNumIsAchieve==1">
-					SUM( exercises_message_timely_num_ ) &gt;= SUM( expect_exercises_num_ ) and
+					SUM( exercises_message_timely_num_ ) &gt;= SUM( exercises_message_num_ ) and
 				</if>
 				</if>
 			</if>
 			</if>
 			<if test="submitStartDate!=null and submitEndDate!=null">
 			<if test="submitStartDate!=null and submitEndDate!=null">
 				<if test="exercisesReplyNumIsAchieve!=null and exercisesReplyNumIsAchieve==0">
 				<if test="exercisesReplyNumIsAchieve!=null and exercisesReplyNumIsAchieve==0">
-					SUM(IF(DATE_FORMAT(last_submit_time_, '%Y-%m-%d') BETWEEN #{submitStartDate} AND #{submitEndDate},exercises_reply_num_,0)) &lt; SUM( expect_exercises_num_ ) and
+					SUM(IF(DATE_FORMAT(last_submit_time_, '%Y-%m-%d') BETWEEN #{submitStartDate} AND #{submitEndDate},exercises_reply_num_,0)) &lt; SUM( actual_exercises_num_ ) and
 				</if>
 				</if>
 				<if test="exercisesReplyNumIsAchieve!=null and exercisesReplyNumIsAchieve==1">
 				<if test="exercisesReplyNumIsAchieve!=null and exercisesReplyNumIsAchieve==1">
-					SUM(IF(DATE_FORMAT(last_submit_time_, '%Y-%m-%d') BETWEEN #{submitStartDate} AND #{submitEndDate},exercises_reply_num_,0)) &gt;= SUM( expect_exercises_num_ ) and
+					SUM(IF(DATE_FORMAT(last_submit_time_, '%Y-%m-%d') BETWEEN #{submitStartDate} AND #{submitEndDate},exercises_reply_num_,0)) &gt;= SUM( actual_exercises_num_ ) and
 				</if>
 				</if>
 				<if test="exercisesMessageNumIsAchieve!=null and exercisesMessageNumIsAchieve==0">
 				<if test="exercisesMessageNumIsAchieve!=null and exercisesMessageNumIsAchieve==0">
-					SUM(IF(DATE_FORMAT(last_submit_time_, '%Y-%m-%d') BETWEEN #{submitStartDate} AND #{submitEndDate},exercises_message_num_,0)) &lt; SUM( expect_exercises_num_ ) and
+					SUM(IF(DATE_FORMAT(last_submit_time_, '%Y-%m-%d') BETWEEN #{submitStartDate} AND #{submitEndDate},exercises_message_num_,0)) &lt; SUM( exercises_reply_num_ ) and
 				</if>
 				</if>
 				<if test="exercisesMessageNumIsAchieve!=null and exercisesMessageNumIsAchieve==1">
 				<if test="exercisesMessageNumIsAchieve!=null and exercisesMessageNumIsAchieve==1">
-					SUM(IF(DATE_FORMAT(last_submit_time_, '%Y-%m-%d') BETWEEN #{submitStartDate} AND #{submitEndDate},exercises_message_num_,0)) &gt;= SUM( expect_exercises_num_ ) and
+					SUM(IF(DATE_FORMAT(last_submit_time_, '%Y-%m-%d') BETWEEN #{submitStartDate} AND #{submitEndDate},exercises_message_num_,0)) &gt;= SUM( exercises_reply_num_ ) and
 				</if>
 				</if>
 				<if test="exercisesMessageTimelyNumIsAchieve!=null and exercisesMessageTimelyNumIsAchieve==0">
 				<if test="exercisesMessageTimelyNumIsAchieve!=null and exercisesMessageTimelyNumIsAchieve==0">
-					SUM(IF(DATE_FORMAT(last_submit_time_, '%Y-%m-%d') BETWEEN #{submitStartDate} AND #{submitEndDate},exercises_message_timely_num_,0)) &lt; SUM( expect_exercises_num_ ) and
+					SUM(IF(DATE_FORMAT(last_submit_time_, '%Y-%m-%d') BETWEEN #{submitStartDate} AND #{submitEndDate},exercises_message_timely_num_,0)) &lt; SUM( exercises_message_num_ ) and
 				</if>
 				</if>
 				<if test="exercisesMessageTimelyNumIsAchieve!=null and exercisesMessageTimelyNumIsAchieve==1">
 				<if test="exercisesMessageTimelyNumIsAchieve!=null and exercisesMessageTimelyNumIsAchieve==1">
-					SUM(IF(DATE_FORMAT(last_submit_time_, '%Y-%m-%d') BETWEEN #{submitStartDate} AND #{submitEndDate},exercises_message_timely_num_,0)) &gt;= SUM( expect_exercises_num_ ) and
+					SUM(IF(DATE_FORMAT(last_submit_time_, '%Y-%m-%d') BETWEEN #{submitStartDate} AND #{submitEndDate},exercises_message_timely_num_,0)) &gt;= SUM( exercises_message_num_ ) and
 				</if>
 				</if>
 			</if>
 			</if>
 		</trim>
 		</trim>
@@ -283,42 +283,42 @@
 			</if>
 			</if>
 			<if test="submitStartDate==null or submitEndDate==null">
 			<if test="submitStartDate==null or submitEndDate==null">
 				<if test="exercisesReplyNumIsAchieve!=null and exercisesReplyNumIsAchieve==0">
 				<if test="exercisesReplyNumIsAchieve!=null and exercisesReplyNumIsAchieve==0">
-					SUM( exercises_reply_num_ ) &lt; SUM( expect_exercises_num_ ) and
+					SUM( exercises_reply_num_ ) &lt; SUM( actual_exercises_num_ ) and
 				</if>
 				</if>
 				<if test="exercisesReplyNumIsAchieve!=null and exercisesReplyNumIsAchieve==1">
 				<if test="exercisesReplyNumIsAchieve!=null and exercisesReplyNumIsAchieve==1">
-					SUM( exercises_reply_num_ ) &gt;= SUM( expect_exercises_num_ ) and
+					SUM( exercises_reply_num_ ) &gt;= SUM( actual_exercises_num_ ) and
 				</if>
 				</if>
 				<if test="exercisesMessageNumIsAchieve!=null and exercisesMessageNumIsAchieve==0">
 				<if test="exercisesMessageNumIsAchieve!=null and exercisesMessageNumIsAchieve==0">
-					SUM( exercises_message_num_ ) &lt; SUM( expect_exercises_num_ ) and
+					SUM( exercises_message_num_ ) &lt; SUM( exercises_reply_num_ ) and
 				</if>
 				</if>
 				<if test="exercisesMessageNumIsAchieve!=null and exercisesMessageNumIsAchieve==1">
 				<if test="exercisesMessageNumIsAchieve!=null and exercisesMessageNumIsAchieve==1">
-					SUM( exercises_message_num_ ) &gt;= SUM( expect_exercises_num_ ) and
+					SUM( exercises_message_num_ ) &gt;= SUM( exercises_reply_num_ ) and
 				</if>
 				</if>
 				<if test="exercisesMessageTimelyNumIsAchieve!=null and exercisesMessageTimelyNumIsAchieve==0">
 				<if test="exercisesMessageTimelyNumIsAchieve!=null and exercisesMessageTimelyNumIsAchieve==0">
-					SUM( exercises_message_timely_num_ ) &lt; SUM( expect_exercises_num_ ) and
+					SUM( exercises_message_timely_num_ ) &lt; SUM( exercises_message_num_ ) and
 				</if>
 				</if>
 				<if test="exercisesMessageTimelyNumIsAchieve!=null and exercisesMessageTimelyNumIsAchieve==1">
 				<if test="exercisesMessageTimelyNumIsAchieve!=null and exercisesMessageTimelyNumIsAchieve==1">
-					SUM( exercises_message_timely_num_ ) &gt;= SUM( expect_exercises_num_ ) and
+					SUM( exercises_message_timely_num_ ) &gt;= SUM( exercises_message_num_ ) and
 				</if>
 				</if>
 			</if>
 			</if>
 			<if test="submitStartDate!=null and submitEndDate!=null">
 			<if test="submitStartDate!=null and submitEndDate!=null">
 				<if test="exercisesReplyNumIsAchieve!=null and exercisesReplyNumIsAchieve==0">
 				<if test="exercisesReplyNumIsAchieve!=null and exercisesReplyNumIsAchieve==0">
-					SUM(IF(DATE_FORMAT(last_submit_time_, '%Y-%m-%d') BETWEEN #{submitStartDate} AND #{submitEndDate},exercises_reply_num_,0)) &lt; SUM( expect_exercises_num_ ) and
+					SUM(IF(DATE_FORMAT(last_submit_time_, '%Y-%m-%d') BETWEEN #{submitStartDate} AND #{submitEndDate},exercises_reply_num_,0)) &lt; SUM( actual_exercises_num_ ) and
 				</if>
 				</if>
 				<if test="exercisesReplyNumIsAchieve!=null and exercisesReplyNumIsAchieve==1">
 				<if test="exercisesReplyNumIsAchieve!=null and exercisesReplyNumIsAchieve==1">
-					SUM(IF(DATE_FORMAT(last_submit_time_, '%Y-%m-%d') BETWEEN #{submitStartDate} AND #{submitEndDate},exercises_reply_num_,0)) &gt;= SUM( expect_exercises_num_ ) and
+					SUM(IF(DATE_FORMAT(last_submit_time_, '%Y-%m-%d') BETWEEN #{submitStartDate} AND #{submitEndDate},exercises_reply_num_,0)) &gt;= SUM( actual_exercises_num_ ) and
 				</if>
 				</if>
 				<if test="exercisesMessageNumIsAchieve!=null and exercisesMessageNumIsAchieve==0">
 				<if test="exercisesMessageNumIsAchieve!=null and exercisesMessageNumIsAchieve==0">
-					SUM(IF(DATE_FORMAT(last_submit_time_, '%Y-%m-%d') BETWEEN #{submitStartDate} AND #{submitEndDate},exercises_message_num_,0)) &lt; SUM( expect_exercises_num_ ) and
+					SUM(IF(DATE_FORMAT(last_submit_time_, '%Y-%m-%d') BETWEEN #{submitStartDate} AND #{submitEndDate},exercises_message_num_,0)) &lt; SUM( exercises_reply_num_ ) and
 				</if>
 				</if>
 				<if test="exercisesMessageNumIsAchieve!=null and exercisesMessageNumIsAchieve==1">
 				<if test="exercisesMessageNumIsAchieve!=null and exercisesMessageNumIsAchieve==1">
-					SUM(IF(DATE_FORMAT(last_submit_time_, '%Y-%m-%d') BETWEEN #{submitStartDate} AND #{submitEndDate},exercises_message_num_,0)) &gt;= SUM( expect_exercises_num_ ) and
+					SUM(IF(DATE_FORMAT(last_submit_time_, '%Y-%m-%d') BETWEEN #{submitStartDate} AND #{submitEndDate},exercises_message_num_,0)) &gt;= SUM( exercises_reply_num_ ) and
 				</if>
 				</if>
 				<if test="exercisesMessageTimelyNumIsAchieve!=null and exercisesMessageTimelyNumIsAchieve==0">
 				<if test="exercisesMessageTimelyNumIsAchieve!=null and exercisesMessageTimelyNumIsAchieve==0">
-					SUM(IF(DATE_FORMAT(last_submit_time_, '%Y-%m-%d') BETWEEN #{submitStartDate} AND #{submitEndDate},exercises_message_timely_num_,0)) &lt; SUM( expect_exercises_num_ ) and
+					SUM(IF(DATE_FORMAT(last_submit_time_, '%Y-%m-%d') BETWEEN #{submitStartDate} AND #{submitEndDate},exercises_message_timely_num_,0)) &lt; SUM( exercises_message_num_ ) and
 				</if>
 				</if>
 				<if test="exercisesMessageTimelyNumIsAchieve!=null and exercisesMessageTimelyNumIsAchieve==1">
 				<if test="exercisesMessageTimelyNumIsAchieve!=null and exercisesMessageTimelyNumIsAchieve==1">
-					SUM(IF(DATE_FORMAT(last_submit_time_, '%Y-%m-%d') BETWEEN #{submitStartDate} AND #{submitEndDate},exercises_message_timely_num_,0)) &gt;= SUM( expect_exercises_num_ ) and
+					SUM(IF(DATE_FORMAT(last_submit_time_, '%Y-%m-%d') BETWEEN #{submitStartDate} AND #{submitEndDate},exercises_message_timely_num_,0)) &gt;= SUM( exercises_message_num_ ) and
 				</if>
 				</if>
 			</if>
 			</if>
 		</trim>
 		</trim>

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

@@ -210,6 +210,9 @@
             </foreach>
             </foreach>
         </if>
         </if>
     </update>
     </update>
+    <update id="batchUpdateAdviser">
+      UPDATE student s SET s.teacher_id_ = #{teacherId},s.update_time_ = NOW() WHERE FIND_IN_SET(s.user_id_,#{studentIds})
+    </update>
 
 
     <resultMap id="student4operating" type="com.ym.mec.biz.dal.dto.Student4operating">
     <resultMap id="student4operating" type="com.ym.mec.biz.dal.dto.Student4operating">
         <result column="organ_name_" property="organName"/>
         <result column="organ_name_" property="organName"/>

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

@@ -214,7 +214,7 @@
                su.gender_,
                su.gender_,
                mg.id_     music_group_id_,
                mg.id_     music_group_id_,
                mg.name_   music_group_name_,
                mg.name_   music_group_name_,
-               sr.subject_id_
+               sr.actual_subject_id_ subject_id_
         FROM sys_user su
         FROM sys_user su
                  LEFT JOIN student_registration sr ON sr.user_id_ = su.id_
                  LEFT JOIN student_registration sr ON sr.user_id_ = su.id_
                  LEFT JOIN music_group mg ON mg.id_ = sr.music_group_id_
                  LEFT JOIN music_group mg ON mg.id_ = sr.music_group_id_

+ 9 - 3
mec-biz/src/main/resources/config/mybatis/TeacherAttendanceMapper.xml

@@ -210,7 +210,7 @@
 
 
     <sql id="queryCondition">
     <sql id="queryCondition">
         <where>
         <where>
-            (cs.del_flag_ != 1 OR cs.del_flag_ IS NULL)
+            (cs.del_flag_ != 1 OR cs.del_flag_ IS NULL) AND cs.actual_teacher_id_ = ta.teacher_id_
             <if test="teacherId != null">
             <if test="teacherId != null">
                 AND cs.actual_teacher_id_ = #{teacherId}
                 AND cs.actual_teacher_id_ = #{teacherId}
             </if>
             </if>
@@ -459,7 +459,7 @@
     <select id="queryTeacherExceptionAttendance" resultType="java.lang.Integer">
     <select id="queryTeacherExceptionAttendance" resultType="java.lang.Integer">
         SELECT DISTINCT ta.teacher_id_ FROM teacher_attendance ta
         SELECT DISTINCT ta.teacher_id_ FROM teacher_attendance ta
         LEFT JOIN course_schedule cs ON cs.id_ = ta.course_schedule_id_
         LEFT JOIN course_schedule cs ON cs.id_ = ta.course_schedule_id_
-        WHERE cs.class_date_ = #{format} AND ta.teacher_id_ = cs.actual_teacher_id_
+        WHERE cs.class_date_ = #{format} AND ta.teacher_id_ = cs.actual_teacher_id_ AND CONCAT(cs.class_date_,' ',cs.end_class_time_) &lt; NOW()
         AND (ta.sign_in_status_ IS NULL OR ta.sign_in_status_ = 0 OR ta.sign_out_status_ IS NULL OR ta.sign_out_status_ = 0)
         AND (ta.sign_in_status_ IS NULL OR ta.sign_in_status_ = 0 OR ta.sign_out_status_ IS NULL OR ta.sign_out_status_ = 0)
     </select>
     </select>
     <resultMap id="TeacherAttendanceComplaintsDtoMap" type="com.ym.mec.biz.dal.dto.TeacherAttendanceComplaintsDto">
     <resultMap id="TeacherAttendanceComplaintsDtoMap" type="com.ym.mec.biz.dal.dto.TeacherAttendanceComplaintsDto">
@@ -500,7 +500,7 @@
         <where>
         <where>
             cs.actual_teacher_id_ = ta.teacher_id_ AND ta.is_complaints_ = 1
             cs.actual_teacher_id_ = ta.teacher_id_ AND ta.is_complaints_ = 1
             <if test="organId != null and organId != ''">
             <if test="organId != null and organId != ''">
-                AND t.organ_id_ = #{organId}
+                AND FIND_IN_SET(t.organ_id_, #{organId})
             </if>
             </if>
             <if test="complaintsTime != null and complaintsTime != ''">
             <if test="complaintsTime != null and complaintsTime != ''">
                 AND ta.complaints_time_ = #{complaintsTime}
                 AND ta.complaints_time_ = #{complaintsTime}
@@ -582,4 +582,10 @@
     <delete id="deleteByGroup">
     <delete id="deleteByGroup">
         DELETE FROM teacher_attendance WHERE music_group_id_=#{groupId} AND group_type_=#{groupType,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler}
         DELETE FROM teacher_attendance WHERE music_group_id_=#{groupId} AND group_type_=#{groupType,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler}
     </delete>
     </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>
 </mapper>

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

@@ -1098,4 +1098,14 @@
         WHERE cgtm.user_id_ = #{teacherId} AND cgtm.group_type_ = 'MUSIC' AND mg.status_ = 'PROGRESS'
         WHERE cgtm.user_id_ = #{teacherId} AND cgtm.group_type_ = 'MUSIC' AND mg.status_ = 'PROGRESS'
         GROUP BY mg.id_
         GROUP BY mg.id_
     </select>
     </select>
+    <select id="queryStudent" resultMap="com.ym.mec.biz.dal.dao.MusicGroupDao.BasicUserDto">
+        SELECT su.username_,s.user_id_,su.phone_ FROM student s
+        LEFT JOIN sys_user su ON s.user_id_ = su.id_
+        WHERE s.teacher_id_ = #{search}
+        <include refid="global.limit"/>
+    </select>
+    <select id="countStudent" resultType="java.lang.Integer">
+        SELECT COUNT(s.user_id_) FROM student s
+        WHERE s.teacher_id_ = #{search}
+    </select>
 </mapper>
 </mapper>

+ 1 - 1
mec-gateway/mec-gateway-web/pom.xml

@@ -55,7 +55,7 @@
 			<groupId>org.springframework.boot</groupId>
 			<groupId>org.springframework.boot</groupId>
 			<artifactId>spring-boot-starter-security</artifactId>
 			<artifactId>spring-boot-starter-security</artifactId>
 		</dependency>
 		</dependency>
-	</dependencies>
+    </dependencies>
 
 
 	<build>
 	<build>
 		<plugins>
 		<plugins>

+ 0 - 2
mec-web/src/main/java/com/ym/mec/web/controller/ChargeTypeController.java

@@ -4,11 +4,9 @@ import com.ym.mec.biz.dal.entity.ChargeType;
 import com.ym.mec.biz.service.ChargeTypeService;
 import com.ym.mec.biz.service.ChargeTypeService;
 import com.ym.mec.common.controller.BaseController;
 import com.ym.mec.common.controller.BaseController;
 import com.ym.mec.common.page.QueryInfo;
 import com.ym.mec.common.page.QueryInfo;
-
 import io.swagger.annotations.Api;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import io.swagger.annotations.ApiOperation;
 import io.swagger.annotations.ApiParam;
 import io.swagger.annotations.ApiParam;
-
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.security.access.prepost.PreAuthorize;
 import org.springframework.security.access.prepost.PreAuthorize;
 import org.springframework.web.bind.annotation.*;
 import org.springframework.web.bind.annotation.*;

+ 18 - 0
mec-web/src/main/java/com/ym/mec/web/controller/CourseScheduleController.java

@@ -28,6 +28,7 @@ import org.apache.commons.lang3.ArrayUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.http.MediaType;
 import org.springframework.http.MediaType;
 import org.springframework.security.access.prepost.PreAuthorize;
 import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.transaction.annotation.Transactional;
 import org.springframework.ui.ModelMap;
 import org.springframework.ui.ModelMap;
 import org.springframework.util.CollectionUtils;
 import org.springframework.util.CollectionUtils;
 import org.springframework.util.StringUtils;
 import org.springframework.util.StringUtils;
@@ -170,6 +171,14 @@ public class CourseScheduleController extends BaseController {
         return succeed();
         return succeed();
     }
     }
 
 
+    @ApiOperation(value = "根据班级列表调整课程")
+    @PreAuthorize("@pcs.hasPermissions('courseSchedule/classGroupTeacherAdjust','system')")
+    @PostMapping(value = "/classGroupTeacherAdjust")
+    public Object classGroupTeacherAdjust(String classGroupIds,Integer teacherId,Integer targetTeacherId){
+        scheduleService.classGroupTeacherAdjust(classGroupIds,teacherId,targetTeacherId);
+        return succeed();
+    }
+
     @ApiOperation(value = "课时调整-批量")
     @ApiOperation(value = "课时调整-批量")
     @PreAuthorize("@pcs.hasPermissions('courseSchedule/batchClassStartDateAdjust')")
     @PreAuthorize("@pcs.hasPermissions('courseSchedule/batchClassStartDateAdjust')")
     @PostMapping(value = "/batchClassStartDateAdjust")
     @PostMapping(value = "/batchClassStartDateAdjust")
@@ -357,6 +366,15 @@ public class CourseScheduleController extends BaseController {
         return succeed();
         return succeed();
     }
     }
 
 
+    @ApiOperation(value = "陪练课课程组老师批量调整")
+    @PostMapping("/batchPracticeGroupTeacherAdjust")
+    @PreAuthorize("@pcs.hasPermissions('courseSchedule/batchPracticeGroupTeacherAdjust')")
+    @Transactional(rollbackFor = Exception.class)
+    public Object batchPracticeGroupTeacherAdjust(String practiceGroupId, Integer teacherId, Integer subjectId, Integer educationalTeacherId,Integer oldTeacherId){
+        scheduleService.batchPracticeGroupTeacherAdjust(practiceGroupId,teacherId,subjectId,educationalTeacherId,oldTeacherId);
+        return succeed();
+    }
+
     @ApiOperation(value = "陪练课课程组有效期调整")
     @ApiOperation(value = "陪练课课程组有效期调整")
     @PostMapping("/updateCoursesExpireDate")
     @PostMapping("/updateCoursesExpireDate")
     @PreAuthorize("@pcs.hasPermissions('courseSchedule/updateCoursesExpireDate')")
     @PreAuthorize("@pcs.hasPermissions('courseSchedule/updateCoursesExpireDate')")

+ 41 - 16
mec-web/src/main/java/com/ym/mec/web/controller/ExportController.java

@@ -89,6 +89,7 @@ public class ExportController extends BaseController {
     @PostMapping("export/queryTeacherAttendances")
     @PostMapping("export/queryTeacherAttendances")
     @PreAuthorize("@pcs.hasPermissions('export/queryTeacherAttendances')")
     @PreAuthorize("@pcs.hasPermissions('export/queryTeacherAttendances')")
     public void exportTeacherAttendances(HttpServletResponse response, TeacherCloseQueryInfo queryInfo) throws IOException {
     public void exportTeacherAttendances(HttpServletResponse response, TeacherCloseQueryInfo queryInfo) throws IOException {
+        queryInfo.setPage(1);
         queryInfo.setRows(49999);
         queryInfo.setRows(49999);
         SysUser sysUser = sysUserFeignService.queryUserInfo();
         SysUser sysUser = sysUserFeignService.queryUserInfo();
         if (sysUser == null) {
         if (sysUser == null) {
@@ -138,6 +139,7 @@ public class ExportController extends BaseController {
     @PostMapping("export/teacherSalaryComplaints")
     @PostMapping("export/teacherSalaryComplaints")
     @PreAuthorize("@pcs.hasPermissions('export/teacherSalaryComplaints')")
     @PreAuthorize("@pcs.hasPermissions('export/teacherSalaryComplaints')")
     public void exportTeacherSalaryComplaints(HttpServletResponse response, TeacherSalaryModifyQueryInfo queryInfo) throws IOException {
     public void exportTeacherSalaryComplaints(HttpServletResponse response, TeacherSalaryModifyQueryInfo queryInfo) throws IOException {
+        queryInfo.setPage(1);
         queryInfo.setRows(49999);
         queryInfo.setRows(49999);
         List<TeacherSalaryComplaints> rows = teacherSalaryComplaintsService.queryPage(queryInfo).getRows();
         List<TeacherSalaryComplaints> rows = teacherSalaryComplaintsService.queryPage(queryInfo).getRows();
         OutputStream outputStream = response.getOutputStream();
         OutputStream outputStream = response.getOutputStream();
@@ -169,6 +171,7 @@ public class ExportController extends BaseController {
     @PostMapping("export/studentBuyPractice")
     @PostMapping("export/studentBuyPractice")
     @PreAuthorize("@pcs.hasPermissions('export/studentBuyPractice')")
     @PreAuthorize("@pcs.hasPermissions('export/studentBuyPractice')")
     public void studentBuyPractice(HttpServletResponse response, StudentBuyPracticeQueryInfo queryInfo) throws IOException {
     public void studentBuyPractice(HttpServletResponse response, StudentBuyPracticeQueryInfo queryInfo) throws IOException {
+        queryInfo.setPage(1);
         queryInfo.setRows(49999);
         queryInfo.setRows(49999);
         SysUser sysUser = sysUserFeignService.queryUserInfo();
         SysUser sysUser = sysUserFeignService.queryUserInfo();
         if (sysUser == null) {
         if (sysUser == null) {
@@ -217,6 +220,7 @@ public class ExportController extends BaseController {
     @PostMapping("export/tenantPaymentOrder")
     @PostMapping("export/tenantPaymentOrder")
     @PreAuthorize("@pcs.hasPermissions('export/tenantPaymentOrder')")
     @PreAuthorize("@pcs.hasPermissions('export/tenantPaymentOrder')")
     public void tenantPaymentOrder(HttpServletResponse response, TenantPaymentOrderQueryInfo queryInfo) throws IOException {
     public void tenantPaymentOrder(HttpServletResponse response, TenantPaymentOrderQueryInfo queryInfo) throws IOException {
+        queryInfo.setPage(1);
         queryInfo.setRows(49999);
         queryInfo.setRows(49999);
         SysUser sysUser = sysUserFeignService.queryUserInfo();
         SysUser sysUser = sysUserFeignService.queryUserInfo();
         if (sysUser == null) {
         if (sysUser == null) {
@@ -251,7 +255,8 @@ public class ExportController extends BaseController {
     @PostMapping("export/teacherSalary")
     @PostMapping("export/teacherSalary")
     @PreAuthorize("@pcs.hasPermissions('export/teacherSalary')")
     @PreAuthorize("@pcs.hasPermissions('export/teacherSalary')")
     public void teacherSalary(HttpServletResponse response, ExportTeacherSalaryQueryInfo queryInfo) throws IOException {
     public void teacherSalary(HttpServletResponse response, ExportTeacherSalaryQueryInfo queryInfo) throws IOException {
-        queryInfo.setRows(99999);
+        queryInfo.setPage(1);
+        queryInfo.setRows(49999);
         SysUser sysUser = sysUserFeignService.queryUserInfo();
         SysUser sysUser = sysUserFeignService.queryUserInfo();
         if (sysUser == null) {
         if (sysUser == null) {
             throw new BizException("用户信息获取失败");
             throw new BizException("用户信息获取失败");
@@ -292,7 +297,8 @@ public class ExportController extends BaseController {
     @PostMapping("export/teacherCourseReward")
     @PostMapping("export/teacherCourseReward")
     @PreAuthorize("@pcs.hasPermissions('export/teacherCourseReward')")
     @PreAuthorize("@pcs.hasPermissions('export/teacherCourseReward')")
     public void teacherCourseReward(HttpServletResponse response, TeacherCourseRewardQueryInfo queryInfo) throws IOException {
     public void teacherCourseReward(HttpServletResponse response, TeacherCourseRewardQueryInfo queryInfo) throws IOException {
-        queryInfo.setRows(99999);
+        queryInfo.setPage(1);
+        queryInfo.setRows(49999);
         SysUser sysUser = sysUserFeignService.queryUserInfo();
         SysUser sysUser = sysUserFeignService.queryUserInfo();
         if (sysUser == null) {
         if (sysUser == null) {
             throw new BizException("用户信息获取失败");
             throw new BizException("用户信息获取失败");
@@ -344,7 +350,8 @@ public class ExportController extends BaseController {
     @PostMapping("export/studentHasCourse")
     @PostMapping("export/studentHasCourse")
     @PreAuthorize("@pcs.hasPermissions('export/studentHasCourse')")
     @PreAuthorize("@pcs.hasPermissions('export/studentHasCourse')")
     public void studentHasCourse(HttpServletResponse response, StudentManageQueryInfo queryInfo) throws IOException {
     public void studentHasCourse(HttpServletResponse response, StudentManageQueryInfo queryInfo) throws IOException {
-        queryInfo.setRows(99999);
+        queryInfo.setPage(1);
+        queryInfo.setRows(49999);
         SysUser sysUser = sysUserFeignService.queryUserInfo();
         SysUser sysUser = sysUserFeignService.queryUserInfo();
         if (sysUser == null) {
         if (sysUser == null) {
             throw new BizException("用户信息获取失败");
             throw new BizException("用户信息获取失败");
@@ -397,7 +404,8 @@ public class ExportController extends BaseController {
     @PreAuthorize("@pcs.hasPermissions('export/practiceGroupList')")
     @PreAuthorize("@pcs.hasPermissions('export/practiceGroupList')")
     public void queryAll(HttpServletResponse response, PracticeGroupQueryInfo queryInfo) throws IOException {
     public void queryAll(HttpServletResponse response, PracticeGroupQueryInfo queryInfo) throws IOException {
         queryInfo.setIsExport(true);
         queryInfo.setIsExport(true);
-        queryInfo.setRows(999999999);
+        queryInfo.setPage(1);
+        queryInfo.setRows(49999);
         SysUser sysUser = sysUserFeignService.queryUserInfo();
         SysUser sysUser = sysUserFeignService.queryUserInfo();
         if (sysUser == null) {
         if (sysUser == null) {
             throw new BizException("用户信息获取失败");
             throw new BizException("用户信息获取失败");
@@ -450,7 +458,8 @@ public class ExportController extends BaseController {
     @GetMapping("export/vipGroupList")
     @GetMapping("export/vipGroupList")
     @PreAuthorize("@pcs.hasPermissions('export/vipGroupList')")
     @PreAuthorize("@pcs.hasPermissions('export/vipGroupList')")
     public void queryAll(HttpServletResponse response, VipGroupQueryInfo queryInfo) throws IOException {
     public void queryAll(HttpServletResponse response, VipGroupQueryInfo queryInfo) throws IOException {
-        queryInfo.setRows(999999999);
+        queryInfo.setPage(1);
+        queryInfo.setRows(49999);
         queryInfo.setIsExport(true);
         queryInfo.setIsExport(true);
         SysUser sysUser = sysUserFeignService.queryUserInfo();
         SysUser sysUser = sysUserFeignService.queryUserInfo();
         if (sysUser == null) {
         if (sysUser == null) {
@@ -505,7 +514,8 @@ public class ExportController extends BaseController {
     @GetMapping("export/superFindCourseSchedules")
     @GetMapping("export/superFindCourseSchedules")
     @PreAuthorize("@pcs.hasPermissions('export/superFindCourseSchedules')")
     @PreAuthorize("@pcs.hasPermissions('export/superFindCourseSchedules')")
     public void superFindCourseSchedules(EndCourseScheduleQueryInfo queryInfo, HttpServletResponse response) throws IOException {
     public void superFindCourseSchedules(EndCourseScheduleQueryInfo queryInfo, HttpServletResponse response) throws IOException {
-        queryInfo.setRows(999999999);
+        queryInfo.setPage(1);
+        queryInfo.setRows(49999);
         queryInfo.setIsExport(true);
         queryInfo.setIsExport(true);
         SysUser sysUser = sysUserFeignService.queryUserInfo();
         SysUser sysUser = sysUserFeignService.queryUserInfo();
         if (sysUser == null) {
         if (sysUser == null) {
@@ -555,7 +565,8 @@ public class ExportController extends BaseController {
     @GetMapping("export/sporadicChargeInfo")
     @GetMapping("export/sporadicChargeInfo")
     @PreAuthorize("@pcs.hasPermissions('export/sporadicChargeInfo')")
     @PreAuthorize("@pcs.hasPermissions('export/sporadicChargeInfo')")
     public void queryPage(SporadicChargeInfoQueryInfo queryInfo, HttpServletResponse response) throws IOException {
     public void queryPage(SporadicChargeInfoQueryInfo queryInfo, HttpServletResponse response) throws IOException {
-        queryInfo.setRows(999999999);
+        queryInfo.setPage(1);
+        queryInfo.setRows(49999);
         queryInfo.setIsExport(true);
         queryInfo.setIsExport(true);
         SysUser sysUser = sysUserFeignService.queryUserInfo();
         SysUser sysUser = sysUserFeignService.queryUserInfo();
         if (sysUser == null) {
         if (sysUser == null) {
@@ -668,6 +679,8 @@ public class ExportController extends BaseController {
     @PostMapping(value = "studentRegistration/queryStudentApplyDetailExport")
     @PostMapping(value = "studentRegistration/queryStudentApplyDetailExport")
     @PreAuthorize("@pcs.hasPermissions('studentRegistration/queryStudentApplyDetailExport')")
     @PreAuthorize("@pcs.hasPermissions('studentRegistration/queryStudentApplyDetailExport')")
     public void queryStudentApplyDetailExport(StudentRegistrationQueryInfo queryInfo, HttpServletResponse response) throws IOException {
     public void queryStudentApplyDetailExport(StudentRegistrationQueryInfo queryInfo, HttpServletResponse response) throws IOException {
+        queryInfo.setPage(1);
+        queryInfo.setRows(49999);
         queryInfo.setIsExport(true);
         queryInfo.setIsExport(true);
         List<StudentApplyDetailDto> studentApplyDetail = studentRegistrationService.queryStudentDetailPage(queryInfo).getRows();
         List<StudentApplyDetailDto> studentApplyDetail = studentRegistrationService.queryStudentDetailPage(queryInfo).getRows();
         OutputStream outputStream = response.getOutputStream();
         OutputStream outputStream = response.getOutputStream();
@@ -697,6 +710,8 @@ public class ExportController extends BaseController {
     @RequestMapping("courseScheduleTeacherSalary/export")
     @RequestMapping("courseScheduleTeacherSalary/export")
     @PreAuthorize("@pcs.hasPermissions('courseScheduleTeacherSalary/export')")
     @PreAuthorize("@pcs.hasPermissions('courseScheduleTeacherSalary/export')")
     public void export(CourseScheduleTeacherSalaryQueryInfo queryInfo, HttpServletResponse response) throws IOException {
     public void export(CourseScheduleTeacherSalaryQueryInfo queryInfo, HttpServletResponse response) throws IOException {
+        queryInfo.setPage(1);
+        queryInfo.setRows(49999);
         queryInfo.setIsExport(true);
         queryInfo.setIsExport(true);
         List<TeacherSalaryDto> teacherSalaries = courseScheduleTeacherSalaryService.querySalaries(queryInfo).getRows();
         List<TeacherSalaryDto> teacherSalaries = courseScheduleTeacherSalaryService.querySalaries(queryInfo).getRows();
         OutputStream outputStream = response.getOutputStream();
         OutputStream outputStream = response.getOutputStream();
@@ -735,7 +750,8 @@ public class ExportController extends BaseController {
                 queryInfo.setOrganId(employee.getOrganIdList());
                 queryInfo.setOrganId(employee.getOrganIdList());
             }
             }
         }
         }
-        queryInfo.setRows(999999999);
+        queryInfo.setPage(1);
+        queryInfo.setRows(49999);
         queryInfo.setIsExport(true);
         queryInfo.setIsExport(true);
         Map<String, Object> params = new HashMap<String, Object>();
         Map<String, Object> params = new HashMap<String, Object>();
         MapUtil.populateMap(params, queryInfo);
         MapUtil.populateMap(params, queryInfo);
@@ -826,6 +842,8 @@ public class ExportController extends BaseController {
                         row.setSporadicType("上门费");
                         row.setSporadicType("上门费");
                     } else if (row.getChargeType().equals(9)) {
                     } else if (row.getChargeType().equals(9)) {
                         row.setSporadicType("账户充值");
                         row.setSporadicType("账户充值");
+                    } else if (row.getChargeType().equals(10)) {
+                        row.setSporadicType("乐保服务");
                     }
                     }
                 }
                 }
                 School userSchool = musicGroupDao.findUserSchool(row.getUserId());
                 School userSchool = musicGroupDao.findUserSchool(row.getUserId());
@@ -888,7 +906,8 @@ public class ExportController extends BaseController {
     @PreAuthorize("@pcs.hasPermissions('export/musicGroupStudent')")
     @PreAuthorize("@pcs.hasPermissions('export/musicGroupStudent')")
     public void queryMusicGroupStudent(MusicGroupStudentQueryInfo queryInfo, HttpServletResponse response) throws IOException {
     public void queryMusicGroupStudent(MusicGroupStudentQueryInfo queryInfo, HttpServletResponse response) throws IOException {
         queryInfo.setIsExport(true);
         queryInfo.setIsExport(true);
-        queryInfo.setRows(99999);
+        queryInfo.setPage(1);
+        queryInfo.setRows(49999);
         PageInfo<MusicGroupStudentsDto> musicGroupStudentsDtoPageInfo = studentManageService.queryMusicGroupStudent(queryInfo);
         PageInfo<MusicGroupStudentsDto> musicGroupStudentsDtoPageInfo = studentManageService.queryMusicGroupStudent(queryInfo);
         OutputStream outputStream = response.getOutputStream();
         OutputStream outputStream = response.getOutputStream();
         try {
         try {
@@ -962,7 +981,8 @@ public class ExportController extends BaseController {
             queryInfo.setOrganId(employee.getOrganIdList());
             queryInfo.setOrganId(employee.getOrganIdList());
         }
         }
         queryInfo.setIsExport(1);
         queryInfo.setIsExport(1);
-        queryInfo.setRows(99999);
+        queryInfo.setPage(1);
+        queryInfo.setRows(49999);
         PageInfo<CourseReviewDto> practiceGroupReviews = courseReviewService.findPracticeGroupReviews(queryInfo);
         PageInfo<CourseReviewDto> practiceGroupReviews = courseReviewService.findPracticeGroupReviews(queryInfo);
         if (practiceGroupReviews.getTotal() <= 0) {
         if (practiceGroupReviews.getTotal() <= 0) {
             response.setStatus(500);
             response.setStatus(500);
@@ -1187,7 +1207,8 @@ public class ExportController extends BaseController {
     @GetMapping("export/extraExercisesReplys")
     @GetMapping("export/extraExercisesReplys")
     @PreAuthorize("@pcs.hasPermissions('export/extraExercisesReplys')")
     @PreAuthorize("@pcs.hasPermissions('export/extraExercisesReplys')")
     public void extraExercisesReplys(ExtraExercilseReplyQueryInfo queryInfo, HttpServletResponse response) throws IOException {
     public void extraExercisesReplys(ExtraExercilseReplyQueryInfo queryInfo, HttpServletResponse response) throws IOException {
-        queryInfo.setRows(999999999);
+        queryInfo.setPage(1);
+        queryInfo.setRows(49999);
         SysUser sysUser = sysUserFeignService.queryUserInfo();
         SysUser sysUser = sysUserFeignService.queryUserInfo();
         if (sysUser == null) {
         if (sysUser == null) {
             throw new BizException("用户信息获取失败");
             throw new BizException("用户信息获取失败");
@@ -1247,7 +1268,8 @@ public class ExportController extends BaseController {
     @GetMapping("export/exercisesSituations")
     @GetMapping("export/exercisesSituations")
     @PreAuthorize("@pcs.hasPermissions('export/exercisesSituations')")
     @PreAuthorize("@pcs.hasPermissions('export/exercisesSituations')")
     public void exercisesSituations(StudentExercisesSituationQueryInfo queryInfo, HttpServletResponse response) throws IOException {
     public void exercisesSituations(StudentExercisesSituationQueryInfo queryInfo, HttpServletResponse response) throws IOException {
-        queryInfo.setRows(999999999);
+        queryInfo.setPage(1);
+        queryInfo.setRows(49999);
         SysUser sysUser = sysUserFeignService.queryUserInfo();
         SysUser sysUser = sysUserFeignService.queryUserInfo();
         if (sysUser == null) {
         if (sysUser == null) {
             throw new BizException("用户信息获取失败");
             throw new BizException("用户信息获取失败");
@@ -1301,7 +1323,8 @@ public class ExportController extends BaseController {
     @GetMapping("export/isSettlementCourseSalarys")
     @GetMapping("export/isSettlementCourseSalarys")
     @PreAuthorize("@pcs.hasPermissions('export/isSettlementCourseSalarys')")
     @PreAuthorize("@pcs.hasPermissions('export/isSettlementCourseSalarys')")
     public void isSettlementCourseSalarys(CourseSalaryQueryInfo4Web queryInfo, HttpServletResponse response) throws IOException {
     public void isSettlementCourseSalarys(CourseSalaryQueryInfo4Web queryInfo, HttpServletResponse response) throws IOException {
-        queryInfo.setRows(999999999);
+        queryInfo.setPage(1);
+        queryInfo.setRows(49999);
         SysUser sysUser = sysUserFeignService.queryUserInfo();
         SysUser sysUser = sysUserFeignService.queryUserInfo();
         if (sysUser == null) {
         if (sysUser == null) {
             throw new BizException("用户信息获取失败");
             throw new BizException("用户信息获取失败");
@@ -1353,7 +1376,7 @@ public class ExportController extends BaseController {
         try {
         try {
             HSSFWorkbook workbook = POIUtil.exportExcel(
             HSSFWorkbook workbook = POIUtil.exportExcel(
                     new String[]{"分部", "课程组类型", "课程编号", "时间", "课程名称", "老师编号", "老师姓名", "签到时间", "签退时间",
                     new String[]{"分部", "课程组类型", "课程编号", "时间", "课程名称", "老师编号", "老师姓名", "签到时间", "签退时间",
-                            "实际收款", "应发课酬", "课酬扣款", "结算课酬", "状态", "备注"},
+                            "学员缴费", "应发课酬", "课酬扣款", "结算课酬", "状态", "备注"},
                     new String[]{"organName", "groupType.desc", "courseScheduleId", "startClassTime", "courseName", "teacherId", "teacherName",
                     new String[]{"organName", "groupType.desc", "courseScheduleId", "startClassTime", "courseName", "teacherId", "teacherName",
                             "signInStatusStr", "signOutStatusStr", "actualReceipts", "actualSalary", "reduceSalary", "finalSalary", "confirmStatus.desc", "memo"}, rows);
                             "signInStatusStr", "signOutStatusStr", "actualReceipts", "actualSalary", "reduceSalary", "finalSalary", "confirmStatus.desc", "memo"}, rows);
             response.setContentType("application/octet-stream");
             response.setContentType("application/octet-stream");
@@ -1379,7 +1402,8 @@ public class ExportController extends BaseController {
     @GetMapping("export/operatingStudents")
     @GetMapping("export/operatingStudents")
     @PreAuthorize("@pcs.hasPermissions('export/operatingStudents')")
     @PreAuthorize("@pcs.hasPermissions('export/operatingStudents')")
     public void operatingStudents(StudentOperatingQueryInfo queryInfo, HttpServletResponse response) {
     public void operatingStudents(StudentOperatingQueryInfo queryInfo, HttpServletResponse response) {
-        queryInfo.setRows(999999);
+        queryInfo.setPage(1);
+        queryInfo.setRows(49999);
         SysUser sysUser = sysUserFeignService.queryUserInfo();
         SysUser sysUser = sysUserFeignService.queryUserInfo();
         if (sysUser == null) {
         if (sysUser == null) {
             throw new BizException("用户信息获取失败");
             throw new BizException("用户信息获取失败");
@@ -1464,7 +1488,8 @@ public class ExportController extends BaseController {
             queryInfo.setOrganId(employee.getOrganIdList());
             queryInfo.setOrganId(employee.getOrganIdList());
         }
         }
         queryInfo.setIsExport(1);
         queryInfo.setIsExport(1);
-        queryInfo.setRows(99999);
+        queryInfo.setPage(1);
+        queryInfo.setRows(49999);
         PageInfo<CourseReviewDto> practiceGroupReviews = courseReviewService.getVipCourseReviews(queryInfo);
         PageInfo<CourseReviewDto> practiceGroupReviews = courseReviewService.getVipCourseReviews(queryInfo);
         if (practiceGroupReviews.getTotal() <= 0) {
         if (practiceGroupReviews.getTotal() <= 0) {
             response.setStatus(500);
             response.setStatus(500);

+ 9 - 0
mec-web/src/main/java/com/ym/mec/web/controller/StudentManageController.java

@@ -295,6 +295,7 @@ public class StudentManageController extends BaseController {
 
 
     @ApiOperation(value = "初始化教师编号")
     @ApiOperation(value = "初始化教师编号")
     @GetMapping("/initTeacherId")
     @GetMapping("/initTeacherId")
+    @PreAuthorize("@pcs.hasPermissions('studentManage/initTeacherId')")
     public HttpResponseResult initTeacherId(){
     public HttpResponseResult initTeacherId(){
         SysUser sysUser = sysUserFeignService.queryUserInfo();
         SysUser sysUser = sysUserFeignService.queryUserInfo();
         if (sysUser == null) {
         if (sysUser == null) {
@@ -303,4 +304,12 @@ public class StudentManageController extends BaseController {
         studentService.initTeacherId();
         studentService.initTeacherId();
         return succeed();
         return succeed();
     }
     }
+
+    @ApiOperation(value = "修改学员的指导老师")
+    @PostMapping("/batchUpdateAdviser")
+    @PreAuthorize("@pcs.hasPermissions('studentManage/batchUpdateAdviser')")
+    public Object batchUpdateAdviser(Integer teacherId,String studentIds){
+        studentService.batchUpdateAdviser(teacherId,studentIds);
+        return succeed();
+    }
 }
 }

+ 10 - 0
mec-web/src/main/java/com/ym/mec/web/controller/TeacherController.java

@@ -10,16 +10,19 @@ import com.ym.mec.biz.service.ClassGroupService;
 import com.ym.mec.biz.service.TeacherService;
 import com.ym.mec.biz.service.TeacherService;
 import com.ym.mec.common.controller.BaseController;
 import com.ym.mec.common.controller.BaseController;
 import com.ym.mec.common.entity.HttpResponseResult;
 import com.ym.mec.common.entity.HttpResponseResult;
+import com.ym.mec.common.page.QueryInfo;
 import io.swagger.annotations.*;
 import io.swagger.annotations.*;
 import org.apache.commons.lang3.StringUtils;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.security.access.prepost.PreAuthorize;
 import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.transaction.annotation.Transactional;
 import org.springframework.web.bind.annotation.GetMapping;
 import org.springframework.web.bind.annotation.GetMapping;
 import org.springframework.web.bind.annotation.PostMapping;
 import org.springframework.web.bind.annotation.PostMapping;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RestController;
 import org.springframework.web.bind.annotation.RestController;
 
 
 import java.util.Arrays;
 import java.util.Arrays;
+import java.util.Date;
 import java.util.List;
 import java.util.List;
 
 
 @RequestMapping("teacher")
 @RequestMapping("teacher")
@@ -221,4 +224,11 @@ public class TeacherController extends BaseController {
     public Object getCourseScheduleHomework(Integer courseScheduleId){
     public Object getCourseScheduleHomework(Integer courseScheduleId){
         return succeed(teacherService.getCourseScheduleHomework(courseScheduleId));
         return succeed(teacherService.getCourseScheduleHomework(courseScheduleId));
     }
     }
+
+    @ApiOperation(value = "获取老师指导的学员列表")
+    @GetMapping("/queryStudent")
+    @PreAuthorize("@pcs.hasPermissions('teacher/queryStudent')")
+    public Object queryStudent(QueryInfo queryInfo){
+        return succeed(teacherService.queryStudent(queryInfo));
+    }
 }
 }