|
@@ -23,14 +23,12 @@ import com.ym.mec.common.page.PageInfo;
|
|
import com.ym.mec.common.page.QueryInfo;
|
|
import com.ym.mec.common.page.QueryInfo;
|
|
import com.ym.mec.common.service.impl.BaseServiceImpl;
|
|
import com.ym.mec.common.service.impl.BaseServiceImpl;
|
|
import com.ym.mec.im.ImFeignService;
|
|
import com.ym.mec.im.ImFeignService;
|
|
-import com.ym.mec.jiari.JiaRiFeignService;
|
|
|
|
import com.ym.mec.thirdparty.message.MessageSenderPluginContext.MessageSender;
|
|
import com.ym.mec.thirdparty.message.MessageSenderPluginContext.MessageSender;
|
|
import com.ym.mec.util.collection.ListUtil;
|
|
import com.ym.mec.util.collection.ListUtil;
|
|
import com.ym.mec.util.collection.MapUtil;
|
|
import com.ym.mec.util.collection.MapUtil;
|
|
import com.ym.mec.util.date.DateUtil;
|
|
import com.ym.mec.util.date.DateUtil;
|
|
import com.ym.mec.util.json.JsonUtil;
|
|
import com.ym.mec.util.json.JsonUtil;
|
|
import org.apache.commons.collections.ListUtils;
|
|
import org.apache.commons.collections.ListUtils;
|
|
-import org.apache.commons.lang3.ArrayUtils;
|
|
|
|
import org.apache.commons.lang3.StringUtils;
|
|
import org.apache.commons.lang3.StringUtils;
|
|
import org.slf4j.Logger;
|
|
import org.slf4j.Logger;
|
|
import org.slf4j.LoggerFactory;
|
|
import org.slf4j.LoggerFactory;
|
|
@@ -49,10 +47,8 @@ import java.util.*;
|
|
import java.util.stream.Collectors;
|
|
import java.util.stream.Collectors;
|
|
import java.util.stream.Stream;
|
|
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.GroupType.*;
|
|
import static com.ym.mec.biz.dal.enums.PracticeGroupType.*;
|
|
import static com.ym.mec.biz.dal.enums.PracticeGroupType.*;
|
|
-import static com.ym.mec.biz.dal.enums.SignInStatusEnum.*;
|
|
|
|
|
|
|
|
@Service
|
|
@Service
|
|
public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSchedule> implements CourseScheduleService {
|
|
public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSchedule> implements CourseScheduleService {
|
|
@@ -75,10 +71,8 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
|
|
private StudentAttendanceDao studentAttendanceDao;
|
|
private StudentAttendanceDao studentAttendanceDao;
|
|
@Autowired
|
|
@Autowired
|
|
private ClassGroupStudentMapperDao classGroupStudentMapperDao;
|
|
private ClassGroupStudentMapperDao classGroupStudentMapperDao;
|
|
-
|
|
|
|
@Autowired
|
|
@Autowired
|
|
private TeacherDefaultPracticeGroupSalaryDao teacherDefaultPracticeGroupSalaryDao;
|
|
private TeacherDefaultPracticeGroupSalaryDao teacherDefaultPracticeGroupSalaryDao;
|
|
-
|
|
|
|
@Autowired
|
|
@Autowired
|
|
private SysMessageService sysMessageService;
|
|
private SysMessageService sysMessageService;
|
|
@Autowired
|
|
@Autowired
|
|
@@ -112,8 +106,6 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
|
|
@Autowired
|
|
@Autowired
|
|
private PracticeGroupDao practiceGroupDao;
|
|
private PracticeGroupDao practiceGroupDao;
|
|
@Autowired
|
|
@Autowired
|
|
- private JiaRiFeignService jiaRiFeignService;
|
|
|
|
- @Autowired
|
|
|
|
private VipGroupService vipGroupService;
|
|
private VipGroupService vipGroupService;
|
|
@Autowired
|
|
@Autowired
|
|
private MusicGroupService musicGroupService;
|
|
private MusicGroupService musicGroupService;
|
|
@@ -123,10 +115,8 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
|
|
private SchoolDao schoolDao;
|
|
private SchoolDao schoolDao;
|
|
@Autowired
|
|
@Autowired
|
|
private ImFeignService imFeignService;
|
|
private ImFeignService imFeignService;
|
|
-
|
|
|
|
@Autowired
|
|
@Autowired
|
|
private CourseHomeworkService courseHomeworkService;
|
|
private CourseHomeworkService courseHomeworkService;
|
|
-
|
|
|
|
@Autowired
|
|
@Autowired
|
|
private GroupDao groupDao;
|
|
private GroupDao groupDao;
|
|
@Autowired
|
|
@Autowired
|
|
@@ -135,6 +125,8 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
|
|
private CourseScheduleReviewDao courseScheduleReviewDao;
|
|
private CourseScheduleReviewDao courseScheduleReviewDao;
|
|
@Autowired
|
|
@Autowired
|
|
private PracticeGroupService practiceGroupService;
|
|
private PracticeGroupService practiceGroupService;
|
|
|
|
+ @Autowired
|
|
|
|
+ private CoursesGroupModifyLogDao coursesGroupModifyLogDao;
|
|
|
|
|
|
private final Logger LOGGER = LoggerFactory
|
|
private final Logger LOGGER = LoggerFactory
|
|
.getLogger(this.getClass());
|
|
.getLogger(this.getClass());
|
|
@@ -1912,7 +1904,7 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
|
|
throw new BizException("排课起始时间不能小于当前时间");
|
|
throw new BizException("排课起始时间不能小于当前时间");
|
|
}
|
|
}
|
|
|
|
|
|
- boolean needSchoolId = Objects.nonNull(vipGroupCourseAdjustInfo.getTeachMode()) && vipGroupCourseAdjustInfo.getTeachMode().equals(TeachModeEnum.OFFLINE) && Objects.isNull(vipGroupCourseAdjustInfo.getTeachMode());
|
|
|
|
|
|
+ boolean needSchoolId = Objects.nonNull(vipGroupCourseAdjustInfo.getTeachMode()) && vipGroupCourseAdjustInfo.getTeachMode().equals(TeachModeEnum.OFFLINE) && Objects.isNull(vipGroupCourseAdjustInfo.getSchoolId());
|
|
if (needSchoolId) {
|
|
if (needSchoolId) {
|
|
throw new BizException("请设置教学点");
|
|
throw new BizException("请设置教学点");
|
|
}
|
|
}
|
|
@@ -2039,8 +2031,9 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
|
|
courseSchedules.get(courseStartDates.size() - 1).setEndClassTime(courseEndTime);
|
|
courseSchedules.get(courseStartDates.size() - 1).setEndClassTime(courseEndTime);
|
|
if (Objects.nonNull(vipGroupCourseAdjustInfo.getTeachMode())) {
|
|
if (Objects.nonNull(vipGroupCourseAdjustInfo.getTeachMode())) {
|
|
if(courseSchedules.get(courseStartDates.size() - 1).getTeachMode().equals(TeachModeEnum.ONLINE)
|
|
if(courseSchedules.get(courseStartDates.size() - 1).getTeachMode().equals(TeachModeEnum.ONLINE)
|
|
- &&vipGroupCourseAdjustInfo.getTeachMode().equals(TeachModeEnum.OFFLINE)){
|
|
|
|
- throw new BizException("暂不支持线上课程转为线下课");
|
|
|
|
|
|
+ &&vipGroupCourseAdjustInfo.getTeachMode().equals(TeachModeEnum.OFFLINE)
|
|
|
|
+ &&Objects.isNull(vipGroupCourseAdjustInfo.getSchoolId())){
|
|
|
|
+ throw new BizException("请选择教学点");
|
|
}
|
|
}
|
|
courseSchedules.get(courseStartDates.size() - 1).setTeachMode(vipGroupCourseAdjustInfo.getTeachMode());
|
|
courseSchedules.get(courseStartDates.size() - 1).setTeachMode(vipGroupCourseAdjustInfo.getTeachMode());
|
|
if (vipGroupCourseAdjustInfo.getTeachMode().equals(TeachModeEnum.OFFLINE)) {
|
|
if (vipGroupCourseAdjustInfo.getTeachMode().equals(TeachModeEnum.OFFLINE)) {
|
|
@@ -2082,12 +2075,34 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
+ if(groupType == VIP){
|
|
|
|
+ VipGroup vipGroup = vipGroupDao.get(vipGroupCourseAdjustInfo.getVipGroupId().longValue());
|
|
|
|
+
|
|
|
|
+ BigDecimal teacherSalary=BigDecimal.ZERO;
|
|
|
|
+
|
|
|
|
+ ClassGroupTeacherSalary classGroupTeacherSalary = classGroupTeacherSalaryDao.findByVipGoupAndTeacher(vipGroupCourseAdjustInfo.getVipGroupId().intValue(), courseSchedules.get(0).getActualTeacherId());
|
|
|
|
+
|
|
|
|
+ if(Objects.nonNull(classGroupTeacherSalary)){
|
|
|
|
+ teacherSalary=vipGroupCourseAdjustInfo.getTeachMode().equals(TeachModeEnum.OFFLINE)?classGroupTeacherSalary.getSalary():classGroupTeacherSalary.getOnlineClassesSalary();
|
|
|
|
+ }
|
|
|
|
+ if(Objects.isNull(teacherSalary)||teacherSalary.compareTo(BigDecimal.ZERO)<=0){
|
|
|
|
+ TeacherDefaultVipGroupSalary tdvs = teacherDefaultVipGroupSalaryDao.findByTeacherAndCategory(courseSchedules.get(0).getActualTeacherId(),vipGroup.getVipGroupCategoryId());
|
|
|
|
+ if (tdvs == null||Objects.isNull(tdvs.getOfflineClassesSalary())) {
|
|
|
|
+ throw new BizException("老师[]没有设置默认课酬,请先设置", courseSchedules.get(0).getActualTeacherId());
|
|
|
|
+ }
|
|
|
|
+ teacherSalary=tdvs.getOfflineClassesSalary();
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ courseScheduleTeacherSalaryDao.batchUpdateCourseSalarys(courseScheduleIds, teacherSalary);
|
|
|
|
+
|
|
|
|
+ }
|
|
|
|
+
|
|
courseScheduleDao.batchUpdate(courseSchedules);
|
|
courseScheduleDao.batchUpdate(courseSchedules);
|
|
classGroupService.updateClassGroupInfo(classGroup.getId());
|
|
classGroupService.updateClassGroupInfo(classGroup.getId());
|
|
if(vipGroupCourseAdjustInfo.getCourseCreateStartTime().after(now)){
|
|
if(vipGroupCourseAdjustInfo.getCourseCreateStartTime().after(now)){
|
|
teacherAttendanceDao.batchCleanCourseTeacherSignInfo(courseScheduleIds);
|
|
teacherAttendanceDao.batchCleanCourseTeacherSignInfo(courseScheduleIds);
|
|
}
|
|
}
|
|
- // 删除作业
|
|
|
|
|
|
+ //删除作业
|
|
courseHomeworkService.delHomwworkByCourseScheduleId(courseScheduleIds);
|
|
courseHomeworkService.delHomwworkByCourseScheduleId(courseScheduleIds);
|
|
//删除评论
|
|
//删除评论
|
|
courseScheduleReviewDao.delByCourseScheduleIds(courseScheduleIds);
|
|
courseScheduleReviewDao.delByCourseScheduleIds(courseScheduleIds);
|
|
@@ -2368,10 +2383,10 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
|
|
newCourseSchedule.setTeachMode(oldCourseSchedule.getTeachMode());
|
|
newCourseSchedule.setTeachMode(oldCourseSchedule.getTeachMode());
|
|
}
|
|
}
|
|
|
|
|
|
- if (newCourseSchedule.getGroupType() == GroupType.VIP) {
|
|
|
|
- if (newCourseSchedule.getTeachMode() != oldCourseSchedule.getTeachMode() && newCourseSchedule.getTeachMode() == TeachModeEnum.OFFLINE) {
|
|
|
|
- throw new BizException("不允许将线上课调整为线下课");
|
|
|
|
- }
|
|
|
|
|
|
+ if (newCourseSchedule.getTeachMode() != oldCourseSchedule.getTeachMode()
|
|
|
|
+ && newCourseSchedule.getTeachMode() == TeachModeEnum.OFFLINE
|
|
|
|
+ && Objects.isNull(newCourseSchedule.getSchoolId())) {
|
|
|
|
+ throw new BizException("请设置教学点");
|
|
}
|
|
}
|
|
|
|
|
|
if (Objects.isNull(newCourseSchedule.getSchoolId())) {
|
|
if (Objects.isNull(newCourseSchedule.getSchoolId())) {
|
|
@@ -2471,9 +2486,9 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
|
|
List<TeacherAttendance> teacherAttendanceList = teacherAttendanceMap.get(courseScheduleId);
|
|
List<TeacherAttendance> teacherAttendanceList = teacherAttendanceMap.get(courseScheduleId);
|
|
|
|
|
|
List<Integer> oldTeacherIdList = teacherAttendanceList.stream().map(TeacherAttendance::getTeacherId).distinct().collect(Collectors.toList());
|
|
List<Integer> oldTeacherIdList = teacherAttendanceList.stream().map(TeacherAttendance::getTeacherId).distinct().collect(Collectors.toList());
|
|
-
|
|
|
|
- List<Integer> newTeacherIdList = newCourseSchedule.getTeachingTeacherIdList();
|
|
|
|
- newTeacherIdList.add(newCourseSchedule.getActualTeacherId());
|
|
|
|
|
|
+ List<Integer> newTeacherIdList = new ArrayList<>();
|
|
|
|
+ newTeacherIdList.addAll(newCourseSchedule.getTeachingTeacherIdList());
|
|
|
|
+ newTeacherIdList.add(newCourseSchedule.getActualTeacherId());
|
|
|
|
|
|
if (newCourseSchedule.getStatus() != CourseStatusEnum.OVER) {
|
|
if (newCourseSchedule.getStatus() != CourseStatusEnum.OVER) {
|
|
// 清理原来考勤
|
|
// 清理原来考勤
|
|
@@ -2561,7 +2576,7 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
|
|
}
|
|
}
|
|
|
|
|
|
// 所有老师默认vip课酬
|
|
// 所有老师默认vip课酬
|
|
- /*List<TeacherDefaultVipGroupSalary> teacherDefaultVipGroupSalaries = teacherDefaultVipGroupSalaryDao.queryByUserIdList(newTeacherIdList);
|
|
|
|
|
|
+ List<TeacherDefaultVipGroupSalary> teacherDefaultVipGroupSalaries = teacherDefaultVipGroupSalaryDao.queryByUserIdList(newTeacherIdList);
|
|
Map<Integer, Map<Integer, TeacherDefaultVipGroupSalary>> vipGroupSalaryMap = new HashMap<Integer, Map<Integer, TeacherDefaultVipGroupSalary>>();
|
|
Map<Integer, Map<Integer, TeacherDefaultVipGroupSalary>> vipGroupSalaryMap = new HashMap<Integer, Map<Integer, TeacherDefaultVipGroupSalary>>();
|
|
for (TeacherDefaultVipGroupSalary tdvs : teacherDefaultVipGroupSalaries) {
|
|
for (TeacherDefaultVipGroupSalary tdvs : teacherDefaultVipGroupSalaries) {
|
|
Map<Integer, TeacherDefaultVipGroupSalary> map = vipGroupSalaryMap.get(tdvs.getUserId());
|
|
Map<Integer, TeacherDefaultVipGroupSalary> map = vipGroupSalaryMap.get(tdvs.getUserId());
|
|
@@ -2572,7 +2587,7 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
|
|
vipGroupSalaryMap.put(tdvs.getUserId(), map);
|
|
vipGroupSalaryMap.put(tdvs.getUserId(), map);
|
|
}
|
|
}
|
|
|
|
|
|
- VipGroup vipGroup = vipGroupDao.findByCourseSchedule(courseScheduleId);*/
|
|
|
|
|
|
+ VipGroup vipGroup = vipGroupDao.findByCourseSchedule(courseScheduleId);
|
|
|
|
|
|
// 删除课酬
|
|
// 删除课酬
|
|
List<Long> courseScheduleIdList = new ArrayList<Long>();
|
|
List<Long> courseScheduleIdList = new ArrayList<Long>();
|
|
@@ -2599,12 +2614,12 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
|
|
Map<CourseScheduleType, TeacherDefaultMusicGroupSalary> map = musicGroupSalaryMap.get(teacherId);
|
|
Map<CourseScheduleType, TeacherDefaultMusicGroupSalary> map = musicGroupSalaryMap.get(teacherId);
|
|
|
|
|
|
if (map == null) {
|
|
if (map == null) {
|
|
- throw new BizException("老师[]没有设置默认课酬,请先设置", teacherId);
|
|
|
|
|
|
+ throw new BizException("老师{}没有设置默认课酬,请先设置", teacherId);
|
|
}
|
|
}
|
|
|
|
|
|
TeacherDefaultMusicGroupSalary tdms = map.get(newCourseSchedule.getType());
|
|
TeacherDefaultMusicGroupSalary tdms = map.get(newCourseSchedule.getType());
|
|
if (tdms == null) {
|
|
if (tdms == null) {
|
|
- throw new BizException("老师[]没有设置默认课酬,请先设置", teacherId);
|
|
|
|
|
|
+ throw new BizException("老师{}没有设置默认课酬,请先设置", teacherId);
|
|
}
|
|
}
|
|
|
|
|
|
// 乐团结算方式
|
|
// 乐团结算方式
|
|
@@ -2677,31 +2692,31 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
|
|
}
|
|
}
|
|
|
|
|
|
} else if (newCourseSchedule.getGroupType() == GroupType.VIP) {
|
|
} else if (newCourseSchedule.getGroupType() == GroupType.VIP) {
|
|
- /*Map<Integer, TeacherDefaultVipGroupSalary> map = vipGroupSalaryMap.get(teacherId);
|
|
|
|
|
|
+ Map<Integer, TeacherDefaultVipGroupSalary> map = vipGroupSalaryMap.get(teacherId);
|
|
if (map == null) {
|
|
if (map == null) {
|
|
throw new BizException("老师[]没有设置默认课酬,请先设置", teacherId);
|
|
throw new BizException("老师[]没有设置默认课酬,请先设置", teacherId);
|
|
}
|
|
}
|
|
if (vipGroup == null) {
|
|
if (vipGroup == null) {
|
|
throw new BizException("课程[{}]记录存在异常,请联系管理员", courseScheduleId);
|
|
throw new BizException("课程[{}]记录存在异常,请联系管理员", courseScheduleId);
|
|
}
|
|
}
|
|
- TeacherDefaultVipGroupSalary tdvs = map.get(vipGroup.getVipGroupCategoryId());
|
|
|
|
- if (tdvs == null) {
|
|
|
|
- throw new BizException("老师[]没有设置默认课酬,请先设置", teacherId);
|
|
|
|
|
|
+
|
|
|
|
+ BigDecimal teacherSalary=BigDecimal.ZERO;
|
|
|
|
+
|
|
|
|
+ ClassGroupTeacherSalary classGroupTeacherSalary = classGroupTeacherSalaryDao.findByVipGoupAndTeacher(vipGroup.getId().intValue(), teacherId);
|
|
|
|
+
|
|
|
|
+ if(Objects.nonNull(classGroupTeacherSalary)){
|
|
|
|
+ teacherSalary=newCourseSchedule.getTeachMode() == TeachModeEnum.OFFLINE?classGroupTeacherSalary.getSalary():classGroupTeacherSalary.getOnlineClassesSalary();
|
|
}
|
|
}
|
|
- if (newCourseSchedule.getTeachMode() == TeachModeEnum.OFFLINE) {
|
|
|
|
- ts.setExpectSalary(tdvs.getOfflineClassesSalary());
|
|
|
|
- } else {
|
|
|
|
- ts.setExpectSalary(tdvs.getOnlineClassesSalary());
|
|
|
|
- }*/
|
|
|
|
-
|
|
|
|
- ts.setExpectSalary(new BigDecimal(0));
|
|
|
|
- Map<Integer, CourseScheduleTeacherSalary> tsMap = courseScheduleTeacherSalaryMap.get(courseScheduleId);
|
|
|
|
- if(tsMap != null){
|
|
|
|
- CourseScheduleTeacherSalary oldTS = tsMap.get(teacherId);
|
|
|
|
- if(oldTS != null){
|
|
|
|
- ts.setExpectSalary(oldTS.getExpectSalary());
|
|
|
|
|
|
+ if(Objects.isNull(teacherSalary)||teacherSalary.compareTo(BigDecimal.ZERO)<=0){
|
|
|
|
+ TeacherDefaultVipGroupSalary tdvs = teacherDefaultVipGroupSalaryDao.findByTeacherAndCategory(teacherId,vipGroup.getVipGroupCategoryId());
|
|
|
|
+ if (tdvs == null||Objects.isNull(tdvs.getOfflineClassesSalary())) {
|
|
|
|
+ throw new BizException("老师[]没有设置默认课酬,请先设置", teacherId);
|
|
}
|
|
}
|
|
|
|
+ teacherSalary=tdvs.getOfflineClassesSalary();
|
|
}
|
|
}
|
|
|
|
+
|
|
|
|
+ ts.setExpectSalary(teacherSalary);
|
|
|
|
+
|
|
} else if (newCourseSchedule.getGroupType() == PRACTICE) {
|
|
} else if (newCourseSchedule.getGroupType() == PRACTICE) {
|
|
List<TeacherDefaultPracticeGroupSalary> teacherDefaultPracticeGroupSalaryList = teacherDefaultPracticeGroupSalaryDao
|
|
List<TeacherDefaultPracticeGroupSalary> teacherDefaultPracticeGroupSalaryList = teacherDefaultPracticeGroupSalaryDao
|
|
.queryByUserId(teacherId);
|
|
.queryByUserId(teacherId);
|
|
@@ -3764,6 +3779,11 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
|
|
}
|
|
}
|
|
|
|
|
|
PracticeGroup practiceGroup = practiceGroupDao.get(Long.parseLong(oldCourseSchedule.getMusicGroupId()));
|
|
PracticeGroup practiceGroup = practiceGroupDao.get(Long.parseLong(oldCourseSchedule.getMusicGroupId()));
|
|
|
|
+ CoursesGroupModifyLog coursesGroupModifyLog = new CoursesGroupModifyLog();
|
|
|
|
+ coursesGroupModifyLog.setGroupId(oldCourseSchedule.getMusicGroupId());
|
|
|
|
+ coursesGroupModifyLog.setGroupType(PRACTICE.getCode());
|
|
|
|
+ coursesGroupModifyLog.setOperatorId(user.getId());
|
|
|
|
+ coursesGroupModifyLog.setPreviousGroup(JSONObject.toJSONString(practiceGroup));
|
|
String classDate = DateUtil.format(courseSchedule.getClassDate(), DateUtil.DEFAULT_PATTERN);
|
|
String classDate = DateUtil.format(courseSchedule.getClassDate(), DateUtil.DEFAULT_PATTERN);
|
|
String startClassTime = DateUtil.format(courseSchedule.getStartClassTime(), DateUtil.EXPANDED_TIME_FORMAT);
|
|
String startClassTime = DateUtil.format(courseSchedule.getStartClassTime(), DateUtil.EXPANDED_TIME_FORMAT);
|
|
Date startDateTime = DateUtil.stringToDate(classDate + " " + startClassTime, DateUtil.EXPANDED_DATE_TIME_FORMAT);
|
|
Date startDateTime = DateUtil.stringToDate(classDate + " " + startClassTime, DateUtil.EXPANDED_DATE_TIME_FORMAT);
|
|
@@ -3828,6 +3848,8 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
|
|
practiceGroup.setCoursesExpireDate(courseScheduleDao.getLastTime(practiceGroup.getId(),PRACTICE.getCode()));
|
|
practiceGroup.setCoursesExpireDate(courseScheduleDao.getLastTime(practiceGroup.getId(),PRACTICE.getCode()));
|
|
practiceGroup.setUpdateTime(date);
|
|
practiceGroup.setUpdateTime(date);
|
|
practiceGroupDao.update(practiceGroup);
|
|
practiceGroupDao.update(practiceGroup);
|
|
|
|
+ coursesGroupModifyLog.setCurrentGroup(JSONObject.toJSONString(practiceGroup));
|
|
|
|
+ coursesGroupModifyLogDao.insert(coursesGroupModifyLog);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
@@ -3874,7 +3896,7 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
|
|
|
|
|
|
PracticeGroup practiceGroup = practiceGroupDao.get(Long.valueOf(oldCourseSchedule.getMusicGroupId()));
|
|
PracticeGroup practiceGroup = practiceGroupDao.get(Long.valueOf(oldCourseSchedule.getMusicGroupId()));
|
|
if(practiceGroup.getType() != TRIAL){
|
|
if(practiceGroup.getType() != TRIAL){
|
|
- if(practiceGroup.getType() == FREE){
|
|
|
|
|
|
+ if(practiceGroup.getType() != FREE){
|
|
List<TeacherDefaultPracticeGroupSalary> teacherDefaultPracticeGroupSalaries = teacherDefaultPracticeGroupSalaryDao.queryByUserId(teacherId);
|
|
List<TeacherDefaultPracticeGroupSalary> teacherDefaultPracticeGroupSalaries = teacherDefaultPracticeGroupSalaryDao.queryByUserId(teacherId);
|
|
if(teacherDefaultPracticeGroupSalaries == null || teacherDefaultPracticeGroupSalaries.size() == 0){
|
|
if(teacherDefaultPracticeGroupSalaries == null || teacherDefaultPracticeGroupSalaries.size() == 0){
|
|
throw new BizException("请设置老师默认课酬");
|
|
throw new BizException("请设置老师默认课酬");
|
|
@@ -3923,6 +3945,11 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
|
|
courseSchedules = courseSchedules.stream().filter(courseSchedule -> !courseSchedule.getActualTeacherId().equals(teacherId)).collect(Collectors.toList());
|
|
courseSchedules = courseSchedules.stream().filter(courseSchedule -> !courseSchedule.getActualTeacherId().equals(teacherId)).collect(Collectors.toList());
|
|
}
|
|
}
|
|
PracticeGroup practiceGroup = practiceGroupDao.get(Long.valueOf(practiceGroupId));
|
|
PracticeGroup practiceGroup = practiceGroupDao.get(Long.valueOf(practiceGroupId));
|
|
|
|
+ CoursesGroupModifyLog coursesGroupModifyLog = new CoursesGroupModifyLog();
|
|
|
|
+ coursesGroupModifyLog.setGroupId(practiceGroupId);
|
|
|
|
+ coursesGroupModifyLog.setGroupType(PRACTICE.getCode());
|
|
|
|
+ coursesGroupModifyLog.setOperatorId(user.getId());
|
|
|
|
+ coursesGroupModifyLog.setPreviousGroup(JSONObject.toJSONString(practiceGroup));
|
|
ClassGroup classGroup = classGroupDao.findByMusicGroupAndType(practiceGroupId, PRACTICE.getCode());
|
|
ClassGroup classGroup = classGroupDao.findByMusicGroupAndType(practiceGroupId, PRACTICE.getCode());
|
|
if(Objects.nonNull(educationalTeacherId)&&!educationalTeacherId.equals(practiceGroup.getEducationalTeacherId())){
|
|
if(Objects.nonNull(educationalTeacherId)&&!educationalTeacherId.equals(practiceGroup.getEducationalTeacherId())){
|
|
if(Objects.nonNull(practiceGroup.getEducationalTeacherId())){
|
|
if(Objects.nonNull(practiceGroup.getEducationalTeacherId())){
|
|
@@ -3947,10 +3974,13 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
|
|
classGroupDao.update(classGroup);
|
|
classGroupDao.update(classGroup);
|
|
courseScheduleDao.updateCourseNameByGroup(practiceGroupId, PRACTICE,groupName);
|
|
courseScheduleDao.updateCourseNameByGroup(practiceGroupId, PRACTICE,groupName);
|
|
}
|
|
}
|
|
|
|
+ practiceGroup.setUserId(teacherId);
|
|
practiceGroupDao.update(practiceGroup);
|
|
practiceGroupDao.update(practiceGroup);
|
|
|
|
+ coursesGroupModifyLog.setCurrentGroup(JSONObject.toJSONString(practiceGroup));
|
|
|
|
+ coursesGroupModifyLogDao.insert(coursesGroupModifyLog);
|
|
classGroupTeacherMapperService.updateTeacher(practiceGroupId,teacherId, PRACTICE.getCode());
|
|
classGroupTeacherMapperService.updateTeacher(practiceGroupId,teacherId, PRACTICE.getCode());
|
|
classGroupTeacherSalaryDao.updateTeacher(practiceGroupId,teacherId, PRACTICE.getCode());
|
|
classGroupTeacherSalaryDao.updateTeacher(practiceGroupId,teacherId, PRACTICE.getCode());
|
|
- practiceGroupDao.updateUserId(practiceGroupId,teacherId);
|
|
|
|
|
|
+// practiceGroupDao.updateUserId(practiceGroupId,teacherId);
|
|
if(courseSchedules == null || courseSchedules.size() == 0){
|
|
if(courseSchedules == null || courseSchedules.size() == 0){
|
|
return;
|
|
return;
|
|
}
|
|
}
|
|
@@ -4201,6 +4231,10 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
|
|
@Override
|
|
@Override
|
|
@Transactional(rollbackFor = Exception.class)
|
|
@Transactional(rollbackFor = Exception.class)
|
|
public void updateCoursesExpireDate(String practiceGroupId, Date coursesExpireDate) {
|
|
public void updateCoursesExpireDate(String practiceGroupId, Date coursesExpireDate) {
|
|
|
|
+ SysUser user = sysUserFeignService.queryUserInfo();
|
|
|
|
+ if (null == user) {
|
|
|
|
+ throw new BizException("获取用户信息失败");
|
|
|
|
+ }
|
|
if(practiceGroupId == null || coursesExpireDate == null ){
|
|
if(practiceGroupId == null || coursesExpireDate == null ){
|
|
throw new BizException("参数校验失败");
|
|
throw new BizException("参数校验失败");
|
|
}
|
|
}
|
|
@@ -4211,7 +4245,6 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
|
|
if(practiceGroup.getCoursesStartDate().after(coursesExpireDate)){
|
|
if(practiceGroup.getCoursesStartDate().after(coursesExpireDate)){
|
|
throw new BizException("课程有效时间不能早于开始时间");
|
|
throw new BizException("课程有效时间不能早于开始时间");
|
|
}
|
|
}
|
|
-
|
|
|
|
if(Objects.nonNull(practiceGroup.getBuyMonths())){
|
|
if(Objects.nonNull(practiceGroup.getBuyMonths())){
|
|
LocalDate courseStartDay = LocalDateTime.ofInstant(practiceGroup.getCoursesStartDate().toInstant(), DateUtil.zoneId).toLocalDate();
|
|
LocalDate courseStartDay = LocalDateTime.ofInstant(practiceGroup.getCoursesStartDate().toInstant(), DateUtil.zoneId).toLocalDate();
|
|
LocalDate currentExpiredDay = courseStartDay.plusMonths(practiceGroup.getBuyMonths()).plusDays(-1);
|
|
LocalDate currentExpiredDay = courseStartDay.plusMonths(practiceGroup.getBuyMonths()).plusDays(-1);
|
|
@@ -4220,10 +4253,85 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
|
|
throw new BizException("课程结束时间不得早于,{}", DateUtil.dateToString(courseExpiredDateTemp, "yyyy年MM月dd日"));
|
|
throw new BizException("课程结束时间不得早于,{}", DateUtil.dateToString(courseExpiredDateTemp, "yyyy年MM月dd日"));
|
|
}
|
|
}
|
|
}
|
|
}
|
|
-
|
|
|
|
|
|
+ CoursesGroupModifyLog coursesGroupModifyLog = new CoursesGroupModifyLog();
|
|
|
|
+ coursesGroupModifyLog.setGroupId(practiceGroupId);
|
|
|
|
+ coursesGroupModifyLog.setGroupType(PRACTICE.getCode());
|
|
|
|
+ coursesGroupModifyLog.setOperatorId(user.getId());
|
|
|
|
+ coursesGroupModifyLog.setPreviousGroup(JSONObject.toJSONString(practiceGroup));
|
|
practiceGroup.setCoursesExpireDate(DateUtil.addSeconds(DateUtil.addDays(coursesExpireDate, 1),-1));
|
|
practiceGroup.setCoursesExpireDate(DateUtil.addSeconds(DateUtil.addDays(coursesExpireDate, 1),-1));
|
|
practiceGroup.setUpdateTime(new Date());
|
|
practiceGroup.setUpdateTime(new Date());
|
|
practiceGroupDao.update(practiceGroup);
|
|
practiceGroupDao.update(practiceGroup);
|
|
|
|
+ coursesGroupModifyLog.setCurrentGroup(JSONObject.toJSONString(practiceGroup));
|
|
|
|
+ coursesGroupModifyLogDao.insert(coursesGroupModifyLog);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ @Override
|
|
|
|
+ public List<CourseSchedule> queryNoStartCourseByTeacherId(String classGroupIds, Integer teacherId, String teacherRole) {
|
|
|
|
+ return courseScheduleDao.queryNoStartCourseByTeacherId(classGroupIds,teacherId,teacherRole);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ @Override
|
|
|
|
+ @Transactional(rollbackFor = Exception.class)
|
|
|
|
+ public void classGroupTeacherAdjust(String classGroupIds, Integer teacherId, Integer targetTeacherId) {
|
|
|
|
+ List<Integer> teachingTeacherIdList = new ArrayList<Integer>();
|
|
|
|
+ teachingTeacherIdList.add(targetTeacherId);
|
|
|
|
+ List<CourseSchedule> courseSchedules = this.queryNoStartCourseByTeacherId(classGroupIds,teacherId,"BISHOP");
|
|
|
|
+ //获取助教老师列表
|
|
|
|
+ if(courseSchedules.size() > 0){
|
|
|
|
+ courseSchedules.forEach(e->{
|
|
|
|
+ e.setTeachingTeacherIdList(courseScheduleTeacherSalaryDao.queryTeacherByTeaching(e.getClassGroupId()));
|
|
|
|
+ e.setActualTeacherId(targetTeacherId);
|
|
|
|
+ });
|
|
|
|
+ this.courseAdjust(courseSchedules);
|
|
|
|
+ //修改老师考勤
|
|
|
|
+ Set<Integer> collect1 = courseSchedules.stream().map(e -> e.getClassGroupId()).collect(Collectors.toSet());
|
|
|
|
+// teacherAttendanceDao.deleteByCourseAndTeacherId(collect1,teacherId);
|
|
|
|
+ batchUpdateClassTeacher(new ArrayList<>(collect1),teacherId,targetTeacherId);
|
|
|
|
+ }
|
|
|
|
+ List<CourseSchedule> courseSchedules1 = this.queryNoStartCourseByTeacherId(classGroupIds, teacherId, "TEACHING");
|
|
|
|
+ if(courseSchedules1.size() > 0){
|
|
|
|
+ courseSchedules1.forEach(e->{
|
|
|
|
+ e.setActualTeacherId(courseScheduleTeacherSalaryDao.queryTeacherByBishop(e.getClassGroupId()));
|
|
|
|
+ e.setTeachingTeacherIdList(teachingTeacherIdList);
|
|
|
|
+ });
|
|
|
|
+ this.courseAdjust(courseSchedules1);
|
|
|
|
+ Set<Integer> collect1 = courseSchedules1.stream().map(e -> e.getClassGroupId()).collect(Collectors.toSet());
|
|
|
|
+//// teacherAttendanceDao.deleteByCourseAndTeacherId(collect1,teacherId);
|
|
|
|
+ batchUpdateClassTeacher(new ArrayList<>(collect1),teacherId,targetTeacherId);
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ @Override
|
|
|
|
+ @Transactional(rollbackFor = Exception.class)
|
|
|
|
+ public void batchPracticeGroupTeacherAdjust(String practiceGroupId, Integer teacherId, Integer subjectId, Integer educationalTeacherId,Integer oldTeacherId) {
|
|
|
|
+ String[] split = practiceGroupId.split(",");
|
|
|
|
+ for (int i = 0; i < split.length; i++) {
|
|
|
|
+ this.practiceGroupTeacherAdjust(split[i],teacherId,subjectId,educationalTeacherId);
|
|
|
|
+ }
|
|
|
|
+ List<ClassGroup> classGroups = classGroupDao.queryClassGroups(practiceGroupId,"PRACTICE");
|
|
|
|
+ if(classGroups.size() > 0){
|
|
|
|
+ List<Integer> collect = classGroups.stream().map(e -> e.getId()).collect(Collectors.toList());
|
|
|
|
+ batchUpdateClassTeacher(collect,oldTeacherId,teacherId);
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ @Transactional(rollbackFor = Exception.class)
|
|
|
|
+ public void batchUpdateClassTeacher(List<Integer> classGroupIds,Integer oldTeacherId,Integer newTeacherId){
|
|
|
|
+ //修改班级老师
|
|
|
|
+ List<ClassGroup> classGroupList = classGroupDao.findByClassGroupIds(classGroupIds);
|
|
|
|
+ classGroupList.forEach(e->{
|
|
|
|
+ e.setUserIds(newTeacherId.toString());
|
|
|
|
+ });
|
|
|
|
+ classGroupTeacherMapperService.batchUpdateTeacherByClassId(classGroupIds,oldTeacherId,newTeacherId);
|
|
|
|
+ //旧老师退群,新老师加群
|
|
|
|
+ if(classGroupList != null && classGroupIds.size() > 0){
|
|
|
|
+ ImGroupMember[] oldImGroupMembers = {new ImGroupMember(oldTeacherId.toString())};
|
|
|
|
+ ImGroupMember[] imGroupMembers = {new ImGroupMember(newTeacherId.toString())};
|
|
|
|
+ for (ClassGroup classGroup:classGroupList) {
|
|
|
|
+ imFeignService.groupQuit(new ImGroupModel(classGroup.getId().toString(), oldImGroupMembers, classGroup.getName()));
|
|
|
|
+ imFeignService.groupJoin(new ImGroupModel(classGroup.getId().toString(), imGroupMembers, classGroup.getName()));
|
|
|
|
+ }
|
|
|
|
+ }
|
|
}
|
|
}
|
|
|
|
|
|
@Override
|
|
@Override
|