zouxuan 5 years ago
parent
commit
cb60f2403a
23 changed files with 388 additions and 44 deletions
  1. 8 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/dao/ClassGroupDao.java
  2. 7 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/dao/ClassGroupTeacherMapperDao.java
  3. 8 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/dao/CoursesGroupModifyLogDao.java
  4. 4 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/entity/BaseCoursesGroup.java
  5. 1 1
      mec-biz/src/main/java/com/ym/mec/biz/dal/entity/CoursesGroup.java
  6. 79 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/entity/CoursesGroupModifyLog.java
  7. 1 1
      mec-biz/src/main/java/com/ym/mec/biz/dal/entity/DemoGroup.java
  8. 1 1
      mec-biz/src/main/java/com/ym/mec/biz/dal/entity/MusicGroup.java
  9. 1 1
      mec-biz/src/main/java/com/ym/mec/biz/dal/entity/PracticeGroup.java
  10. 4 3
      mec-biz/src/main/java/com/ym/mec/biz/dal/entity/Teacher.java
  11. 1 1
      mec-biz/src/main/java/com/ym/mec/biz/dal/entity/VipGroup.java
  12. 36 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/enums/ProbationPeriodEnum.java
  13. 7 0
      mec-biz/src/main/java/com/ym/mec/biz/service/ClassGroupTeacherMapperService.java
  14. 17 0
      mec-biz/src/main/java/com/ym/mec/biz/service/CourseScheduleService.java
  15. 8 0
      mec-biz/src/main/java/com/ym/mec/biz/service/CoursesGroupModifyLogService.java
  16. 6 0
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/ClassGroupTeacherMapperServiceImpl.java
  17. 86 10
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/CourseScheduleServiceImpl.java
  18. 22 0
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/CoursesGroupModifyLogServiceImpl.java
  19. 0 1
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/VipGroupServiceImpl.java
  20. 4 1
      mec-biz/src/main/resources/config/mybatis/ClassGroupMapper.xml
  21. 6 0
      mec-biz/src/main/resources/config/mybatis/ClassGroupTeacherMapperMapper.xml
  22. 70 0
      mec-biz/src/main/resources/config/mybatis/CoursesGroupModifyLogDao.xml
  23. 11 24
      mec-web/src/main/java/com/ym/mec/web/controller/CourseScheduleController.java

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

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

+ 4 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/entity/BaseCoursesGroup.java

@@ -0,0 +1,4 @@
+package com.ym.mec.biz.dal.entity;
+
+public class BaseCoursesGroup {
+}

+ 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 extends BaseCoursesGroup{
 
 	/**  */
 	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/DemoGroup.java

@@ -8,7 +8,7 @@ import java.math.BigDecimal;
 /**
  * 对应数据库表(demo_group):
  */
-public class DemoGroup {
+public class DemoGroup extends BaseCoursesGroup{
 
 	/**  */
 	@ApiModelProperty(value = "试听课编号",required = false)

+ 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 extends BaseCoursesGroup{
 
 	/**  */
 	private String id;

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

@@ -9,7 +9,7 @@ import java.util.Date;
 /**
  * 对应数据库表(practice_group):
  */
-public class PracticeGroup {
+public class PracticeGroup extends BaseCoursesGroup{
 
 	/**  */
 	private Long 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;
 	}
 

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

@@ -12,7 +12,7 @@ import java.util.Date;
 /**
  * 对应数据库表(vip_group):
  */
-public class VipGroup {
+public class VipGroup extends BaseCoursesGroup{
 
 	/**  */
 	private Long id;

+ 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
      */
     void updateTeacher(String groupId, Integer teacherId,String groupType);
+
+    /**
+     * 批量修改班级关联的老师
+     * @param classGroupIds
+     * @param newTeacherId
+     */
+    void batchUpdateTeacherByClassId(@Param("classGroupIds") List<Integer> classGroupIds, @Param("newTeacherId") Integer newTeacherId);
 }

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

@@ -522,4 +522,21 @@ public interface CourseScheduleService extends BaseService<Long, CourseSchedule>
 	 * @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/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);
+    }
 }

+ 86 - 10
mec-biz/src/main/java/com/ym/mec/biz/service/impl/CourseScheduleServiceImpl.java

@@ -23,7 +23,6 @@ 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;
@@ -73,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
@@ -110,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;
@@ -121,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
@@ -133,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());
@@ -3762,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);
@@ -3826,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);
 		}
     }
 
@@ -3921,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())){
@@ -3945,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;
         }
@@ -4199,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("参数校验失败");
 		}
@@ -4209,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);
@@ -4218,10 +4231,16 @@ 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
@@ -4230,6 +4249,63 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
 	}
 
 	@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
 	public Object teacherCourseHeadInfo(Long courseScheduleId) {
 		SysUser user = sysUserFeignService.queryUserInfo();
 		if (null == user) {

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

+ 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.util.collection.MapUtil;
 import com.ym.mec.util.date.DateUtil;
-
 import org.apache.commons.lang3.StringUtils;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;

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

@@ -1100,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">
@@ -1297,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">

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

+ 11 - 24
mec-web/src/main/java/com/ym/mec/web/controller/CourseScheduleController.java

@@ -175,22 +175,7 @@ public class CourseScheduleController extends BaseController {
     @PreAuthorize("@pcs.hasPermissions('courseSchedule/classGroupTeacherAdjust','system')")
     @PostMapping(value = "/classGroupTeacherAdjust")
     public Object classGroupTeacherAdjust(String classGroupIds,Integer teacherId,Integer targetTeacherId){
-        List<CourseSchedule> courseSchedules = scheduleService.queryNoStartCourseByTeacherId(classGroupIds,teacherId,"BISHOP");
-        if(courseSchedules.size() > 0){
-            courseSchedules.forEach(e->{
-                e.setActualTeacherId(targetTeacherId);
-            });
-            scheduleService.courseAdjust(courseSchedules);
-        }
-        List<CourseSchedule> courseSchedules1 = scheduleService.queryNoStartCourseByTeacherId(classGroupIds, teacherId, "TEACHING");
-        if(courseSchedules1.size() > 0){
-            List<Integer> teachingTeacherIdList = new ArrayList<Integer>();
-            teachingTeacherIdList.add(targetTeacherId);
-            courseSchedules.forEach(e->{
-                e.setTeachingTeacherIdList(teachingTeacherIdList);
-            });
-            scheduleService.courseAdjust(courseSchedules1);
-        }
+        scheduleService.classGroupTeacherAdjust(classGroupIds,teacherId,targetTeacherId);
         return succeed();
     }
 
@@ -376,15 +361,17 @@ public class CourseScheduleController extends BaseController {
     @ApiOperation(value = "陪练课课程组老师调整")
     @PostMapping("/practiceGroupTeacherAdjust")
     @PreAuthorize("@pcs.hasPermissions('courseSchedule/practiceGroupTeacherAdjust')")
-    @Transactional(rollbackFor = Exception.class)
     public Object practiceGroupTeacherAdjust(String practiceGroupId, Integer teacherId, Integer subjectId, Integer educationalTeacherId){
-        if(StringUtils.isEmpty(practiceGroupId)){
-            throw new BizException("参数校验失败");
-        }
-        String[] split = practiceGroupId.split(",");
-        for (int i = 0; i < split.length; i++) {
-            scheduleService.practiceGroupTeacherAdjust(split[i],teacherId,subjectId, educationalTeacherId);
-        }
+        scheduleService.practiceGroupTeacherAdjust(practiceGroupId,teacherId,subjectId, educationalTeacherId);
+        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();
     }