Jelajahi Sumber

Merge remote-tracking branch 'origin/master'

Joburgess 5 tahun lalu
induk
melakukan
82a0a7fa8f
51 mengubah file dengan 649 tambahan dan 68 penghapusan
  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. 9 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/dao/CourseScheduleDao.java
  5. 3 3
      mec-biz/src/main/java/com/ym/mec/biz/dal/dao/CourseScheduleTeacherSalaryDao.java
  6. 8 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/dao/CoursesGroupModifyLogDao.java
  7. 5 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/dao/StudentDao.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. 2 1
      mec-biz/src/main/java/com/ym/mec/biz/dal/enums/SporadicChargeTypeEnum.java
  19. 7 0
      mec-biz/src/main/java/com/ym/mec/biz/service/ClassGroupService.java
  20. 7 0
      mec-biz/src/main/java/com/ym/mec/biz/service/ClassGroupTeacherMapperService.java
  21. 26 0
      mec-biz/src/main/java/com/ym/mec/biz/service/CourseScheduleService.java
  22. 8 0
      mec-biz/src/main/java/com/ym/mec/biz/service/CoursesGroupModifyLogService.java
  23. 6 0
      mec-biz/src/main/java/com/ym/mec/biz/service/StudentService.java
  24. 6 0
      mec-biz/src/main/java/com/ym/mec/biz/service/TeacherService.java
  25. 1 1
      mec-biz/src/main/java/com/ym/mec/biz/service/VipGroupService.java
  26. 44 0
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/ClassGroupServiceImpl.java
  27. 6 0
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/ClassGroupTeacherMapperServiceImpl.java
  28. 1 1
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/CourseReviewServiceImpl.java
  29. 93 14
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/CourseScheduleServiceImpl.java
  30. 13 6
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/CourseScheduleTeacherSalaryServiceImpl.java
  31. 22 0
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/CoursesGroupModifyLogServiceImpl.java
  32. 7 1
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/StudentCourseHomeworkServiceImpl.java
  33. 5 0
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/StudentServiceImpl.java
  34. 21 0
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/TeacherServiceImpl.java
  35. 1 2
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/VipGroupServiceImpl.java
  36. 11 6
      mec-biz/src/main/resources/config/mybatis/ClassGroupMapper.xml
  37. 6 0
      mec-biz/src/main/resources/config/mybatis/ClassGroupTeacherMapperMapper.xml
  38. 6 0
      mec-biz/src/main/resources/config/mybatis/CourseScheduleMapper.xml
  39. 1 0
      mec-biz/src/main/resources/config/mybatis/CourseScheduleReviewMapper.xml
  40. 5 5
      mec-biz/src/main/resources/config/mybatis/CourseScheduleTeacherSalaryMapper.xml
  41. 70 0
      mec-biz/src/main/resources/config/mybatis/CoursesGroupModifyLogDao.xml
  42. 5 2
      mec-biz/src/main/resources/config/mybatis/PracticeGroupMapper.xml
  43. 3 0
      mec-biz/src/main/resources/config/mybatis/StudentMapper.xml
  44. 10 0
      mec-biz/src/main/resources/config/mybatis/TeacherMapper.xml
  45. 0 2
      mec-web/src/main/java/com/ym/mec/web/controller/ChargeTypeController.java
  46. 18 0
      mec-web/src/main/java/com/ym/mec/web/controller/CourseScheduleController.java
  47. 1 1
      mec-web/src/main/java/com/ym/mec/web/controller/CourseScheduleTeacherSalaryController.java
  48. 1 1
      mec-web/src/main/java/com/ym/mec/web/controller/ExportController.java
  49. 9 0
      mec-web/src/main/java/com/ym/mec/web/controller/StudentManageController.java
  50. 10 0
      mec-web/src/main/java/com/ym/mec/web/controller/TeacherController.java
  51. 0 1
      mec-web/src/main/java/com/ym/mec/web/controller/education/EduCourseReviewController.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;
 
-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.context.annotation.Bean;
 import org.springframework.context.annotation.Configuration;
@@ -10,8 +9,8 @@ import org.springframework.format.FormatterRegistry;
 import org.springframework.http.MediaType;
 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
 public class WebMvcConfig implements WebMvcConfigurer {
@@ -32,5 +31,4 @@ public class WebMvcConfig implements WebMvcConfigurer {
         converter.setSupportedMediaTypes(fastMediaTypes);
         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
      */
     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
      */
     List<ClassGroupTeacherMapper> findByClassGroupIdsAndType(@Param("classGroupIds") List<Integer> classGroupIds, @Param("teacherRole") String teacherRole);
+
+    /**
+     * 批量修改班级关联的老师
+     * @param classGroupIds
+     * @param newTeacherId
+     */
+    void batchUpdateTeacherByClassId(@Param("classGroupIds") List<Integer> classGroupIds, @Param("newTeacherId") Integer newTeacherId);
 }

+ 9 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/CourseScheduleDao.java

@@ -1521,4 +1521,13 @@ public interface CourseScheduleDao extends BaseDAO<Long, CourseSchedule> {
      * @param courseScheduleId
      */
     void resetStudentNum(@Param("courseScheduleId") List<Long> courseScheduleId);
+
+    /**
+     * 获取当前班级列表的所有未开始的课程
+     * @param classGroupIds
+     * @param teacherId
+     * @param teacherRole
+     * @return
+     */
+    List<CourseSchedule> queryNoStartCourseByTeacherId(@Param("classGroupIds") String classGroupIds, @Param("teacherId") Integer teacherId, @Param("teacherRole") String teacherRole);
 }

+ 3 - 3
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:天数]
 	 * @describe 获取多少天之前的未结算教师课酬记录(vip课)
 	 */
-	List<CourseScheduleTeacherSalary> findSomeDayAgoTeacherCourseSalaryNoSettlement(@Param("days") Integer days);
+	List<CourseScheduleTeacherSalary> findSomeDayAgoTeacherCourseSalaryNoSettlement(@Param("startDate") String startDate,@Param("endDate") String endDate);
 
 	List<CourseScheduleTeacherSalary> findTemp();
 
@@ -73,7 +73,7 @@ public interface CourseScheduleTeacherSalaryDao extends BaseDAO<Long, CourseSche
 	 * @params [days:天数]
 	 * @describe 获取多少天之前的未结算教师课酬记录(陪练课课)
 	 */
-	List<CourseScheduleTeacherSalary> findTeacherCourseSalaryNoSettlement(@Param("days") Integer days,@Param("groupType") String groupType);
+	List<CourseScheduleTeacherSalary> findTeacherCourseSalaryNoSettlement(@Param("startDate") String startDate,@Param("endDate") String endDate);
 
 	/**
 	 * 查询老师指定课程的课酬
@@ -358,7 +358,7 @@ public interface CourseScheduleTeacherSalaryDao extends BaseDAO<Long, CourseSche
 	 * @param endDate
 	 * @return
 	 */
-	List<TeacherVipSalaryDto> queryOnlineCourseByGroupType(@Param("startDate") Date startDate, @Param("endDate") Date endDate);
+	List<TeacherVipSalaryDto> queryOnlineCourseByGroupType(@Param("startDate") String startDate, @Param("endDate") String endDate);
 	/**
 	 * 该用户是不是这个群组的老师
 	 * @param groupId

+ 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("serviceTag") Integer serviceTag);
 
+    /**
+     * 修改学员的指导老师
+     * @param teacherId
+     */
+    void batchUpdateAdviser(@Param("teacherId") Integer teacherId, @Param("studentIds") String studentIds);
 }

+ 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
      */
     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 hasRestClass;
+
     private String educationalTeacherName;
 
+    public Integer getHasRestClass() {
+        return hasRestClass;
+    }
+
+    public void setHasRestClass(Integer hasRestClass) {
+        this.hasRestClass = hasRestClass;
+    }
+
     public String getEducationalTeacherName() {
         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;
 
+import com.ym.mec.biz.dal.enums.JobNatureEnum;
 import com.ym.mec.biz.dal.enums.JobTypeEnum;
+import com.ym.mec.biz.dal.enums.MusicGroupStatusEnum;
 import io.swagger.annotations.ApiModelProperty;
 
 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;
 
     @ApiModelProperty(value = "执教班级名称", required = false)
-    private List<String> classGroupNames;
+    private String classGroupNames;
+
+    @ApiModelProperty(value = "执教班级编号", required = false)
+    private String classGroupIds;
 
     @ApiModelProperty(value = "教师乐团职务类型", required = false)
     private JobTypeEnum jobType;
@@ -42,6 +44,17 @@ public class TeacherMusicClassInfoDto {
     @ApiModelProperty(value = "出勤次数",required = false)
     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() {
         return teacherRole;
     }
@@ -106,14 +119,22 @@ public class TeacherMusicClassInfoDto {
         this.teamTeacherId = teamTeacherId;
     }
 
-    public List<String> getClassGroupNames() {
+    public String getClassGroupNames() {
         return classGroupNames;
     }
 
-    public void setClassGroupNames(List<String> classGroupNames) {
+    public void setClassGroupNames(String classGroupNames) {
         this.classGroupNames = classGroupNames;
     }
 
+    public String getClassGroupIds() {
+        return classGroupIds;
+    }
+
+    public void setClassGroupIds(String classGroupIds) {
+        this.classGroupIds = classGroupIds;
+    }
+
     public MusicGroupStatusEnum getStatus() {
         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.biz.dal.enums.*;
 import com.ym.mec.common.enums.BaseEnum;
-
 import io.swagger.annotations.ApiModelProperty;
-
 import org.apache.commons.lang3.StringUtils;
 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 java.util.Date createTime;
-	
+
 	public void setId(Long 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):
  */
-public class CoursesGroup {
+public class CoursesGroup{
 
 	/**  */
 	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):
  */
-public class MusicGroup{
+public class MusicGroup {
 
 	/**  */
 	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.biz.dal.enums.JobNatureEnum;
 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 io.swagger.annotations.ApiModelProperty;
 import org.apache.commons.lang3.builder.ToStringBuilder;
@@ -26,7 +27,7 @@ public class Teacher extends SysUser {
 
 	/** 是否试用期 */
 	@ApiModelProperty(value = "是否试用期1是,0否", required = false)
-	private YesOrNoEnum isProbationPeriod;
+	private ProbationPeriodEnum isProbationPeriod;
 
 	/** 学历 */
 	@ApiModelProperty(value = "学历", required = false)
@@ -214,11 +215,11 @@ public class Teacher extends SysUser {
 		this.jobType = jobType;
 	}
 
-	public YesOrNoEnum getIsProbationPeriod() {
+	public ProbationPeriodEnum getIsProbationPeriod() {
 		return isProbationPeriod;
 	}
 
-	public void setIsProbationPeriod(YesOrNoEnum isProbationPeriod) {
+	public void setIsProbationPeriod(ProbationPeriodEnum 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;
+    }
+}

+ 2 - 1
mec-biz/src/main/java/com/ym/mec/biz/dal/enums/SporadicChargeTypeEnum.java

@@ -11,7 +11,8 @@ public enum SporadicChargeTypeEnum implements BaseEnum<Integer, SporadicChargeTy
     LUCKY_BAG_ACTIVE(6,"福袋活动"),
     VISITING_FEE(7,"上门费"),
     VIP_BUY(8,"VIP课购买"),
-    RECHARGE(9,"账户余额");
+    RECHARGE(9,"账户余额"),
+    MUSIC_UPKEEP(10,"乐保服务");
 
     private Integer code;
 

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

@@ -429,4 +429,11 @@ public interface ClassGroupService extends BaseService<Integer, ClassGroup> {
      * @param groupName
      */
     void updateGroupName(Integer groupId, String groupName);
+
+    /**
+     * @params @param courseId:课程编号
+     * @return com.ym.mec.biz.dal.dto.TeacherClassHeadInfo
+     * @describe 获取班级信息
+     */
+    TeacherClassHeadInfo findTeacherClassGroupInfoByCourseId(Integer courseId);
 }

+ 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
      */
     void updateTeacher(String groupId, Integer teacherId,String groupType);
+
+    /**
+     * 批量修改班级关联的老师
+     * @param classGroupIds
+     * @param newTeacherId
+     */
+    void batchUpdateTeacherByClassId(@Param("classGroupIds") List<Integer> classGroupIds, @Param("newTeacherId") 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
 	 */
 	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
      */
     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.common.entity.ImGroupModel;
 import com.ym.mec.common.page.PageInfo;
+import com.ym.mec.common.page.QueryInfo;
 import com.ym.mec.common.service.BaseService;
 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);
 
+    /**
+     * 获取和当前指导老师关联的学员
+     * @return
+     */
+    PageInfo<BasicUserDto> queryStudent(QueryInfo queryInfo);
 }

+ 1 - 1
mec-biz/src/main/java/com/ym/mec/biz/service/VipGroupService.java

@@ -418,5 +418,5 @@ public interface VipGroupService extends BaseService<Long, VipGroup> {
      * @param endDate
      * @return
      */
-    void updateHistoryTeacherSalaryOfOnline(Date startDate, Date endDate);
+    void updateHistoryTeacherSalaryOfOnline(String startDate, String endDate);
 }

+ 44 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/impl/ClassGroupServiceImpl.java

@@ -2932,6 +2932,50 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
         classGroupDao.updateGroupName(groupId, groupName);
     }
 
+    @Override
+    public TeacherClassHeadInfo findTeacherClassGroupInfoByCourseId(Integer courseId) {
+        CourseSchedule courseSchedule = courseScheduleDao.get(courseId.longValue());
+        Integer classGroupId = courseSchedule.getClassGroupId();
+
+        ClassGroup classGroup = classGroupDao.get(classGroupId);
+
+        if (Objects.isNull(classGroup)) {
+            throw new BizException("未找到该班级");
+        }
+
+        String subjectNames = subjectDao.findNames(classGroup.getSubjectIdList());
+
+        TeacherClassHeadInfo teacherClassHeadInfo = new TeacherClassHeadInfo();
+        teacherClassHeadInfo.setStudentNum(classGroupStudentMapperDao.countClassGroupStudentNum(classGroup.getId()));
+        teacherClassHeadInfo.setCurrentClassTimes(courseScheduleDao.countCurrentTimes(classGroup.getId(), new Date()));
+        teacherClassHeadInfo.setTotalClassTimes(courseScheduleDao.countClassGroupCourses(classGroup.getId()));
+        if (subjectNames != null && !subjectNames.isEmpty()) {
+            teacherClassHeadInfo.setSubjectNames(subjectNames);
+        }
+        ClassGroupTeacherMapper bishopTeacher = classGroupTeacherMapperDao.findByClassGroupAndRole(classGroupId, TeachTypeEnum.BISHOP);
+        if (Objects.nonNull(bishopTeacher)) {
+            teacherClassHeadInfo.setBishopTeacherId(bishopTeacher.getId());
+            teacherClassHeadInfo.setBishopTeacher(bishopTeacher.getUserName());
+        }
+
+        String name = classGroupTeacherMapperDao.queryTeachingNames(classGroupId);
+        teacherClassHeadInfo.setTeachingTeacher(name);
+
+        if (classGroup.getType() == ClassGroupTypeEnum.VIP) {
+            String[] studentNums = classGroupStudentMapperDao.findCourseStudentName(courseId);
+            teacherClassHeadInfo.setStudentNames(StringUtils.join(studentNums, ","));
+        }
+        if (classGroup.getType() == ClassGroupTypeEnum.PRACTICE) {
+            String[] studentNums = classGroupStudentMapperDao.findCourseStudentName(courseId);
+            teacherClassHeadInfo.setStudentNames(StringUtils.join(studentNums, ","));
+        }
+        if (classGroup.getType() == ClassGroupTypeEnum.COMM) {
+            String[] studentNums = classGroupStudentMapperDao.findCourseStudentName(courseId);
+            teacherClassHeadInfo.setStudentNames(StringUtils.join(studentNums, ","));
+        }
+        return teacherClassHeadInfo;
+    }
+
 
     @Override
     public ClassGroup findGroupById(Integer groupId) {

+ 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) {
         classGroupTeacherMapperDao.updateTeacher(groupId, teacherId, groupType);
     }
+
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public void batchUpdateTeacherByClassId(List<Integer> classGroupIds, Integer newTeacherId) {
+        classGroupTeacherMapperDao.batchUpdateTeacherByClassId(classGroupIds,newTeacherId);
+    }
 }

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

@@ -303,7 +303,7 @@ public class CourseReviewServiceImpl extends BaseServiceImpl<Integer, CourseSche
     public TeacherClassHeadInfo getCourseInfoHead(Integer id) {
         CourseSchedule courseSchedule = courseScheduleDao.get(id.longValue());
         ClassGroup classGroup = classGroupService.get(courseSchedule.getClassGroupId());
-        TeacherClassHeadInfo teacherClassGroupInfo = classGroupService.findTeacherClassGroupInfo(courseSchedule.getClassGroupId());
+        TeacherClassHeadInfo teacherClassGroupInfo = classGroupService.findTeacherClassGroupInfoByCourseId(id);
         teacherClassGroupInfo.setClassDate(DateUtil.dateToString(courseSchedule.getClassDate(), "yyyy年MM月dd日"));
         teacherClassGroupInfo.setStartClassTime(DateUtil.dateToString(courseSchedule.getStartClassTime(), "HH:mm"));
         teacherClassGroupInfo.setEndClassTime(DateUtil.dateToString(courseSchedule.getEndClassTime(), "HH:mm"));

+ 93 - 14
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.service.impl.BaseServiceImpl;
 import com.ym.mec.im.ImFeignService;
-import com.ym.mec.jiari.JiaRiFeignService;
 import com.ym.mec.thirdparty.message.MessageSenderPluginContext.MessageSender;
 import com.ym.mec.util.collection.ListUtil;
 import com.ym.mec.util.collection.MapUtil;
 import com.ym.mec.util.date.DateUtil;
 import com.ym.mec.util.json.JsonUtil;
 import org.apache.commons.collections.ListUtils;
-import org.apache.commons.lang3.ArrayUtils;
 import org.apache.commons.lang3.StringUtils;
 import org.slf4j.Logger;
 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.PRACTICE;
 import static com.ym.mec.biz.dal.enums.PracticeGroupType.*;
-import static com.ym.mec.biz.dal.enums.SignInStatusEnum.*;
 
 @Service
 public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSchedule> implements CourseScheduleService {
@@ -75,10 +72,8 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
     private StudentAttendanceDao studentAttendanceDao;
     @Autowired
     private ClassGroupStudentMapperDao classGroupStudentMapperDao;
-
     @Autowired
     private TeacherDefaultPracticeGroupSalaryDao teacherDefaultPracticeGroupSalaryDao;
-
     @Autowired
     private SysMessageService sysMessageService;
     @Autowired
@@ -112,8 +107,6 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
     @Autowired
     private PracticeGroupDao practiceGroupDao;
     @Autowired
-    private JiaRiFeignService jiaRiFeignService;
-    @Autowired
     private VipGroupService vipGroupService;
     @Autowired
     private MusicGroupService musicGroupService;
@@ -123,10 +116,8 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
     private SchoolDao schoolDao;
     @Autowired
 	private ImFeignService imFeignService;
-
     @Autowired
     private CourseHomeworkService courseHomeworkService;
-
     @Autowired
     private GroupDao groupDao;
     @Autowired
@@ -135,6 +126,8 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
 	private CourseScheduleReviewDao courseScheduleReviewDao;
     @Autowired
 	private PracticeGroupService practiceGroupService;
+    @Autowired
+	private CoursesGroupModifyLogDao coursesGroupModifyLogDao;
 
     private final Logger LOGGER = LoggerFactory
             .getLogger(this.getClass());
@@ -2599,12 +2592,12 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
 						Map<CourseScheduleType, TeacherDefaultMusicGroupSalary> map = musicGroupSalaryMap.get(teacherId);
 
 						if (map == null) {
-							throw new BizException("老师[]没有设置默认课酬,请先设置", teacherId);
+							throw new BizException("老师{}没有设置默认课酬,请先设置", teacherId);
 						}
 
 						TeacherDefaultMusicGroupSalary tdms = map.get(newCourseSchedule.getType());
 						if (tdms == null) {
-							throw new BizException("老师[]没有设置默认课酬,请先设置", teacherId);
+							throw new BizException("老师{}没有设置默认课酬,请先设置", teacherId);
 						}
 
 						// 乐团结算方式
@@ -3764,6 +3757,11 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
         }
 
         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 startClassTime = DateUtil.format(courseSchedule.getStartClassTime(), DateUtil.EXPANDED_TIME_FORMAT);
         Date startDateTime = DateUtil.stringToDate(classDate + " " + startClassTime, DateUtil.EXPANDED_DATE_TIME_FORMAT);
@@ -3828,6 +3826,8 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
 			practiceGroup.setCoursesExpireDate(courseScheduleDao.getLastTime(practiceGroup.getId(),PRACTICE.getCode()));
 			practiceGroup.setUpdateTime(date);
 			practiceGroupDao.update(practiceGroup);
+			coursesGroupModifyLog.setCurrentGroup(JSONObject.toJSONString(practiceGroup));
+			coursesGroupModifyLogDao.insert(coursesGroupModifyLog);
 		}
     }
 
@@ -3923,6 +3923,11 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
             courseSchedules = courseSchedules.stream().filter(courseSchedule -> !courseSchedule.getActualTeacherId().equals(teacherId)).collect(Collectors.toList());
         }
 		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());
         if(Objects.nonNull(educationalTeacherId)&&!educationalTeacherId.equals(practiceGroup.getEducationalTeacherId())){
 			if(Objects.nonNull(practiceGroup.getEducationalTeacherId())){
@@ -3947,10 +3952,13 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
 			classGroupDao.update(classGroup);
 			courseScheduleDao.updateCourseNameByGroup(practiceGroupId, PRACTICE,groupName);
 		}
+		practiceGroup.setUserId(teacherId);
 		practiceGroupDao.update(practiceGroup);
+		coursesGroupModifyLog.setCurrentGroup(JSONObject.toJSONString(practiceGroup));
+		coursesGroupModifyLogDao.insert(coursesGroupModifyLog);
         classGroupTeacherMapperService.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){
             return;
         }
@@ -4201,6 +4209,10 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
 	@Override
 	@Transactional(rollbackFor = Exception.class)
 	public void updateCoursesExpireDate(String practiceGroupId, Date coursesExpireDate) {
+		SysUser user = sysUserFeignService.queryUserInfo();
+		if (null == user) {
+			throw new BizException("获取用户信息失败");
+		}
     	if(practiceGroupId == null || coursesExpireDate == null ){
     		throw new BizException("参数校验失败");
 		}
@@ -4211,7 +4223,6 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
 		if(practiceGroup.getCoursesStartDate().after(coursesExpireDate)){
 			throw new BizException("课程有效时间不能早于开始时间");
 		}
-
 		if(Objects.nonNull(practiceGroup.getBuyMonths())){
 			LocalDate courseStartDay = LocalDateTime.ofInstant(practiceGroup.getCoursesStartDate().toInstant(), DateUtil.zoneId).toLocalDate();
 			LocalDate currentExpiredDay = courseStartDay.plusMonths(practiceGroup.getBuyMonths()).plusDays(-1);
@@ -4220,10 +4231,78 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
 				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.setUpdateTime(new Date());
 		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<CourseSchedule> courseSchedules = this.queryNoStartCourseByTeacherId(classGroupIds,teacherId,"BISHOP");
+		if(courseSchedules.size() > 0){
+			courseSchedules.forEach(e->{
+				e.setActualTeacherId(targetTeacherId);
+			});
+			this.courseAdjust(courseSchedules);
+			//修改关联班级老师
+			List<Integer> collect = courseSchedules.stream().map(e -> e.getClassGroupId()).collect(Collectors.toList());
+			batchUpdateClassTeacher(collect,teacherId,targetTeacherId);
+		}
+		List<CourseSchedule> courseSchedules1 = this.queryNoStartCourseByTeacherId(classGroupIds, teacherId, "TEACHING");
+		if(courseSchedules1.size() > 0){
+			List<Integer> teachingTeacherIdList = new ArrayList<Integer>();
+			teachingTeacherIdList.add(targetTeacherId);
+			courseSchedules.forEach(e->{
+				e.setTeachingTeacherIdList(teachingTeacherIdList);
+			});
+			this.courseAdjust(courseSchedules1);
+		}
+	}
+
+	@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,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

+ 13 - 6
mec-biz/src/main/java/com/ym/mec/biz/service/impl/CourseScheduleTeacherSalaryServiceImpl.java

@@ -203,10 +203,13 @@ public class CourseScheduleTeacherSalaryServiceImpl extends BaseServiceImpl<Long
     @Transactional(rollbackFor = Exception.class)
     public void practiceTeacherSalarySettlement() {
 //        int days = Integer.parseInt(sysConfigDao.findByParamName(SysConfigService.VIP_APPEAL_DAYS_RANGE).getParanValue());
-        int days = 0;
+//        int days = 0;
         //获取教师未结算课程记录
         Date now = new Date();
-        List<CourseScheduleTeacherSalary> someDayAgoTeacherCourseSalaryNoSettlement = courseScheduleTeacherSalaryDao.findTeacherCourseSalaryNoSettlement(days,GroupType.PRACTICE.getCode());
+        Date date = DateUtil.addMonths(now, -1);
+        String startDate = DateUtil.format(DateUtil.getFirstDayOfMonth(date),DateUtil.DEFAULT_PATTERN);
+        String endDate = DateUtil.format(DateUtil.getLastDayOfMonth(date),DateUtil.DEFAULT_PATTERN);
+        List<CourseScheduleTeacherSalary> someDayAgoTeacherCourseSalaryNoSettlement = courseScheduleTeacherSalaryDao.findTeacherCourseSalaryNoSettlement(startDate,endDate);
         if (!CollectionUtils.isEmpty(someDayAgoTeacherCourseSalaryNoSettlement)) {
             someDayAgoTeacherCourseSalaryNoSettlement.forEach(courseScheduleTeacherSalary -> {
                 courseScheduleTeacherSalary.setActualSalary(courseScheduleTeacherSalary.getTeacherActualSalary());
@@ -284,16 +287,20 @@ public class CourseScheduleTeacherSalaryServiceImpl extends BaseServiceImpl<Long
     @Transactional(rollbackFor = Exception.class)
     public void teacherSalarySettlement() {
 //        int days = Integer.parseInt(sysConfigDao.findByParamName(SysConfigService.VIP_APPEAL_DAYS_RANGE).getParanValue());
-        int days = 0;
+//        int days = 0;
         BigDecimal percent = new BigDecimal(10);
-
+        Date now = new Date();
+        Date date = DateUtil.addMonths(now, -1);
+        String startDate = DateUtil.format(DateUtil.getFirstDayOfMonth(date),DateUtil.DEFAULT_PATTERN);
+        String endDate = DateUtil.format(DateUtil.getLastDayOfMonth(date),DateUtil.DEFAULT_PATTERN);
         //获取教师未结算课程记录
-        List<CourseScheduleTeacherSalary> someDayAgoTeacherCourseSalaryNoSettlement = courseScheduleTeacherSalaryDao.findSomeDayAgoTeacherCourseSalaryNoSettlement(days);
+        List<CourseScheduleTeacherSalary> someDayAgoTeacherCourseSalaryNoSettlement = courseScheduleTeacherSalaryDao.findSomeDayAgoTeacherCourseSalaryNoSettlement(startDate,endDate);
         if (CollectionUtils.isEmpty(someDayAgoTeacherCourseSalaryNoSettlement)) {
             LOGGER.info("未获取到未结算课酬记录!");
             return;
         }
-        Date now = new Date();
+
+        vipGroupService.updateHistoryTeacherSalaryOfOnline(startDate, endDate);
         //获取未结算课程编号列表
         List<Long> courseScheduleIds = someDayAgoTeacherCourseSalaryNoSettlement.stream().map(CourseScheduleTeacherSalary::getCourseScheduleId).collect(Collectors.toList());
 

+ 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;
+	}
+
+}

+ 7 - 1
mec-biz/src/main/java/com/ym/mec/biz/service/impl/StudentCourseHomeworkServiceImpl.java

@@ -34,6 +34,7 @@ import java.time.LocalDate;
 import java.time.LocalDateTime;
 import java.util.*;
 import java.util.stream.Collectors;
+import com.ym.mec.biz.dal.entity.CourseSchedule.CourseScheduleType;
 
 @Service
 public class StudentCourseHomeworkServiceImpl extends BaseServiceImpl<Long, StudentCourseHomework> implements StudentCourseHomeworkService {
@@ -126,7 +127,12 @@ public class StudentCourseHomeworkServiceImpl extends BaseServiceImpl<Long, Stud
 
 //        CourseHomework temp = courseHomeworkService.get(courseHomework.getId());
 //        if (temp.getExpectNum().equals(courseHomework.getCompletedNum())) {
-        CourseScheduleReview review = courseScheduleReviewDao.findByCourseScheduleAndStudent(bean.getCourseScheduleId(), bean.getUserId());
+        Integer userId = bean.getUserId();
+        if(courseSchedule.getType().equals(CourseScheduleType.VIP)){
+            userId = null;
+        }
+
+        CourseScheduleReview review = courseScheduleReviewDao.findByCourseScheduleAndStudent(bean.getCourseScheduleId(), userId);
         if (Objects.nonNull(review)) {
             review.setHandHomework(YesOrNoEnum.YES.getCode());
             courseScheduleReviewDao.update(review);

+ 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;
 		allStudentCourseInfo=null;
 	}
+
+	@Override
+	public void batchUpdateAdviser(Integer teacherId,String studentIds) {
+		studentDao.batchUpdateAdviser(teacherId,studentIds);
+	}
 }

+ 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.exception.BizException;
 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.im.ImFeignService;
 import com.ym.mec.util.collection.MapUtil;
@@ -557,4 +558,24 @@ public class TeacherServiceImpl extends BaseServiceImpl<Integer, Teacher>  imple
 		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;
+	}
+
 }

+ 1 - 2
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.util.collection.MapUtil;
 import com.ym.mec.util.date.DateUtil;
-
 import org.apache.commons.lang3.StringUtils;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -2876,7 +2875,7 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
 
 	@Override
 	@Async
-	public void updateHistoryTeacherSalaryOfOnline(Date startDate, Date endDate) {
+	public void updateHistoryTeacherSalaryOfOnline(String startDate, String endDate) {
 		// 查询所有含有线上课的课程组,线上课节数,实付金额
 		List<VipCourseStudentInfoDto> list = vipGroupDao.queryVipCourseStudentInfo();
 		Map<String, VipCourseStudentInfoDto> map = list.stream().collect(Collectors.toMap(VipCourseStudentInfoDto::getMusicGroupId, e -> e));

+ 11 - 6
mec-biz/src/main/resources/config/mybatis/ClassGroupMapper.xml

@@ -253,25 +253,27 @@
         <result column="educational_teacher_id_" property="educationalTeacherId"/>
         <result column="team_teacher_id_" property="teamTeacherId"/>
         <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="job_type_" property="jobType" 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>
     <select id="queryGroupCourses" resultMap="getTeaCourseInfosMap">
         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
         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 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'
         <if test="status != null">
             AND mg.status_ = #{status}
         </if>
+        GROUP BY cgtm.id_
         <include refid="global.limit"/>
     </select>
 
@@ -1098,7 +1100,7 @@
         WHERE su.id_ IS NOT NULL
     </select>
     <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>
 
     <update id="batchUpdateStudentNumMinusOne" parameterType="java.util.List">
@@ -1295,4 +1297,7 @@
         </if>
         AND type_ IN ('HIGH','HIGH_ONLINE') AND del_flag_ = '0'
     </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>

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

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

@@ -3106,5 +3106,11 @@
         GROUP BY
         cssp.user_id_
     </select>
+    <select id="queryNoStartCourseByTeacherId" resultMap="CourseSchedule">
+        SELECT cs.* FROM course_schedule cs
+        LEFT JOIN course_schedule_teacher_salary csts ON csts.course_schedule_id_ = cs.id_
+        WHERE FIND_IN_SET(cs.class_group_id_,#{classGroupIds}) AND csts.teacher_role_ = #{teacherRole}
+        AND csts.user_id_ = #{teacherId} AND CONCAT(cs.class_date_,' ',cs.start_class_time_) > NOW() AND cs.del_flag_ = 0
+    </select>
 
 </mapper>

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

@@ -320,6 +320,7 @@
         LEFT JOIN course_schedule cs on cs.id_ = csr.course_schedule_id_
         LEFT JOIN sys_user su ON cs.actual_teacher_id_ = su.id_
         <include refid="practiceGroupReviews4EduQueryCondition"/>
+        ORDER BY cs.class_date_ DESC
         <include refid="global.limit"/>
     </select>
 

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

@@ -273,8 +273,8 @@
 		LEFT JOIN vip_group vg ON vg.id_ = cs.music_group_id_
 		LEFT JOIN teacher_attendance ta ON ta.course_schedule_id_ = cs.id_
 		WHERE 1=1
-		<if test="days!=null">
-			AND cs.class_date_ &lt;= DATE_FORMAT(DATE_ADD( NOW( ), INTERVAL - #{days} DAY ),'%Y-%m-%d')
+		<if test="startDate != null">
+			AND cs.class_date_ BETWEEN #{startDate} AND #{endDate}
 		</if>
 		AND cs.group_type_ = 'VIP' AND vg.organ_id_ != 41
 		AND csts.settlement_time_ IS NULL
@@ -303,10 +303,10 @@
 		LEFT JOIN course_schedule cs ON cs.id_ = csts.course_schedule_id_
 		LEFT JOIN teacher_attendance ta ON ta.course_schedule_id_ = cs.id_
 		WHERE ta.id_ IS NOT NULL
-		<if test="days!=null">
-			AND cs.class_date_ &lt;= DATE_FORMAT(DATE_ADD( NOW( ), INTERVAL - #{days} DAY ),'%Y-%m-%d')
+		<if test="startDate != null">
+			AND cs.class_date_ BETWEEN #{startDate} AND #{endDate}
 		</if>
-		AND cs.type_ = #{groupType}
+		AND cs.type_ = 'PRACTICE'
 		AND csts.settlement_time_ IS NULL
 		AND (cs.del_flag_ IS NULL OR cs.del_flag_=0)
     </select>

+ 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>

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

@@ -54,6 +54,7 @@
         <result column="teacher_name_" property="teacherName"/>
         <result column="evaluate_id_" property="evaluateId"/>
         <result column="evaluate_status_" property="evaluateStatus"/>
+        <result column="hasRestClass" property="hasRestClass"/>
     </resultMap>
     <update id="updateUserId">
         UPDATE practice_group
@@ -179,12 +180,14 @@
     </select>
     <select id="findAllByOrgan" resultMap="PracticeGroupDto">
         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
         practice_group pg
         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"/>
-        ORDER BY pg.id_ DESC
+        GROUP BY pg.id_ ORDER BY pg.id_ DESC
         <include refid="global.limit"/>
     </select>
     <select id="countPracticeGroupOverCourse" resultType="java.util.Map">

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

@@ -210,6 +210,9 @@
             </foreach>
         </if>
     </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">
         <result column="organ_name_" property="organName"/>

+ 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'
         GROUP BY mg.id_
     </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>

+ 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.common.controller.BaseController;
 import com.ym.mec.common.page.QueryInfo;
-
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import io.swagger.annotations.ApiParam;
-
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.security.access.prepost.PreAuthorize;
 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.http.MediaType;
 import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.transaction.annotation.Transactional;
 import org.springframework.ui.ModelMap;
 import org.springframework.util.CollectionUtils;
 import org.springframework.util.StringUtils;
@@ -170,6 +171,14 @@ public class CourseScheduleController extends BaseController {
         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 = "课时调整-批量")
     @PreAuthorize("@pcs.hasPermissions('courseSchedule/batchClassStartDateAdjust')")
     @PostMapping(value = "/batchClassStartDateAdjust")
@@ -357,6 +366,15 @@ public class CourseScheduleController extends BaseController {
         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 = "陪练课课程组有效期调整")
     @PostMapping("/updateCoursesExpireDate")
     @PreAuthorize("@pcs.hasPermissions('courseSchedule/updateCoursesExpireDate')")

+ 1 - 1
mec-web/src/main/java/com/ym/mec/web/controller/CourseScheduleTeacherSalaryController.java

@@ -47,7 +47,7 @@ public class CourseScheduleTeacherSalaryController extends BaseController {
     }
     
     @GetMapping("/updateHistoryTeacherSalaryOfOnline")
-    public Object updateHistoryTeacherSalaryOfOnline(Date startDate, Date endDate) {
+    public Object updateHistoryTeacherSalaryOfOnline(String startDate, String endDate) {
     	vipGroupService.updateHistoryTeacherSalaryOfOnline(startDate, endDate);
         return succeed();
     }

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

@@ -1353,7 +1353,7 @@ public class ExportController extends BaseController {
         try {
             HSSFWorkbook workbook = POIUtil.exportExcel(
                     new String[]{"分部", "课程组类型", "课程编号", "时间", "课程名称", "老师编号", "老师姓名", "签到时间", "签退时间",
-                            "实际收款", "应发课酬", "课酬扣款", "结算课酬", "状态", "备注"},
+                            "学员缴费", "应发课酬", "课酬扣款", "结算课酬", "状态", "备注"},
                     new String[]{"organName", "groupType.desc", "courseScheduleId", "startClassTime", "courseName", "teacherId", "teacherName",
                             "signInStatusStr", "signOutStatusStr", "actualReceipts", "actualSalary", "reduceSalary", "finalSalary", "confirmStatus.desc", "memo"}, rows);
             response.setContentType("application/octet-stream");

+ 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 = "初始化教师编号")
     @GetMapping("/initTeacherId")
+    @PreAuthorize("@pcs.hasPermissions('studentManage/initTeacherId')")
     public HttpResponseResult initTeacherId(){
         SysUser sysUser = sysUserFeignService.queryUserInfo();
         if (sysUser == null) {
@@ -303,4 +304,12 @@ public class StudentManageController extends BaseController {
         studentService.initTeacherId();
         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.common.controller.BaseController;
 import com.ym.mec.common.entity.HttpResponseResult;
+import com.ym.mec.common.page.QueryInfo;
 import io.swagger.annotations.*;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 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.PostMapping;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RestController;
 
 import java.util.Arrays;
+import java.util.Date;
 import java.util.List;
 
 @RequestMapping("teacher")
@@ -221,4 +224,11 @@ public class TeacherController extends BaseController {
     public Object getCourseScheduleHomework(Integer 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));
+    }
 }

+ 0 - 1
mec-web/src/main/java/com/ym/mec/web/controller/education/EduCourseReviewController.java

@@ -58,7 +58,6 @@ public class EduCourseReviewController extends BaseController {
         if (sysUser == null) {
             return failed("用户信息获取失败");
         }
-        courseScheduleReview.setEducationalTeacherId(sysUser.getId());
         return succeed(courseReviewService.updateReview(courseScheduleReview));
     }