|
@@ -1,5 +1,6 @@
|
|
|
package com.ym.mec.biz.service.impl;
|
|
|
|
|
|
+import com.alibaba.fastjson.JSON;
|
|
|
import com.alibaba.fastjson.JSONObject;
|
|
|
import com.ym.mec.auth.api.client.SysUserFeignService;
|
|
|
import com.ym.mec.auth.api.entity.SysUser;
|
|
@@ -24,6 +25,7 @@ import com.ym.mec.jiari.JiaRiFeignService;
|
|
|
import com.ym.mec.util.collection.MapUtil;
|
|
|
import com.ym.mec.util.date.DateConvertor;
|
|
|
import com.ym.mec.util.date.DateUtil;
|
|
|
+
|
|
|
import org.apache.commons.lang3.StringUtils;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.stereotype.Service;
|
|
@@ -124,6 +126,98 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
+ public PageInfo<ClassGroup> queryPage(ClassGroupQueryInfo queryInfo) {
|
|
|
+ PageInfo<ClassGroup> pageInfo = new PageInfo<ClassGroup>(queryInfo.getPage(), queryInfo.getRows());
|
|
|
+ Map<String, Object> params = new HashMap<String, Object>();
|
|
|
+ MapUtil.populateMap(params, queryInfo);
|
|
|
+
|
|
|
+ List<ClassGroup> dataList = new ArrayList<ClassGroup>();
|
|
|
+ int count = this.findCount(params);
|
|
|
+ if (count > 0) {
|
|
|
+ pageInfo.setTotal(count);
|
|
|
+ params.put("offset", pageInfo.getOffset());
|
|
|
+ dataList = this.getDAO().queryPage(params);
|
|
|
+ }
|
|
|
+ for (ClassGroup cg : dataList) {
|
|
|
+ cg.setTeacherMapperList(classGroupTeacherMapperDao.findClassGroupTeachers(cg.getId() + ""));
|
|
|
+ cg.setCourseScheduleList(courseScheduleDao.findCoursesByClassGroupId(cg.getId(), null));
|
|
|
+ }
|
|
|
+ pageInfo.setRows(dataList);
|
|
|
+ return pageInfo;
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ @Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class)
|
|
|
+ public boolean create(ClassGroup classGroup) {
|
|
|
+
|
|
|
+ if(classGroup.getType() == null){
|
|
|
+ throw new BizException("班级类型不能为空");
|
|
|
+ }
|
|
|
+ if(classGroup.getGroupType() == null){
|
|
|
+ throw new BizException("课程组类型不能为空");
|
|
|
+ }
|
|
|
+ String userIds = classGroup.getUserIds();
|
|
|
+
|
|
|
+ Set<String> userIdStrSet = new HashSet<String>();
|
|
|
+
|
|
|
+ if(StringUtils.isNotBlank(userIds)){
|
|
|
+ userIdStrSet = new HashSet<>(Arrays.asList(userIds.split(",")));
|
|
|
+ }
|
|
|
+
|
|
|
+ Date date = new Date();
|
|
|
+ classGroup.setCreateTime(date);
|
|
|
+ classGroup.setUpdateTime(date);
|
|
|
+ classGroup.setStudentNum(userIdStrSet.size());
|
|
|
+ //创建班级
|
|
|
+ insert(classGroup);
|
|
|
+
|
|
|
+ //设置班级上的老师
|
|
|
+ List<ClassGroupTeacherMapper> teacherMapperList = classGroup.getTeacherMapperList();
|
|
|
+ for(ClassGroupTeacherMapper tm : teacherMapperList){
|
|
|
+ tm.setClassGroupId(classGroup.getId());
|
|
|
+ tm.setMusicGroupId(classGroup.getMusicGroupId());
|
|
|
+ tm.setGroupType(classGroup.getGroupType());
|
|
|
+ tm.setCreateTime(date);
|
|
|
+ tm.setUpdateTime(date);
|
|
|
+ }
|
|
|
+
|
|
|
+ if(teacherMapperList.size() > 0){
|
|
|
+ classGroupTeacherMapperDao.classGroupTeachersInsert(teacherMapperList);
|
|
|
+ }
|
|
|
+
|
|
|
+ //2、插入班级学生关联关系
|
|
|
+ List<Integer> userIdList = new ArrayList<>();
|
|
|
+ List<ClassGroupStudentMapper> classGroupStudentList = new ArrayList<>();
|
|
|
+ for (String userId : userIdStrSet) {
|
|
|
+ ClassGroupStudentMapper classGroupStudentMapper = new ClassGroupStudentMapper();
|
|
|
+ classGroupStudentMapper.setMusicGroupId(classGroup.getMusicGroupId());
|
|
|
+ classGroupStudentMapper.setClassGroupId(classGroup.getId());
|
|
|
+ classGroupStudentMapper.setUserId(Integer.parseInt(userId));
|
|
|
+ classGroupStudentMapper.setCreateTime(date);
|
|
|
+ classGroupStudentMapper.setStatus(ClassGroupStudentStatusEnum.NORMAL);
|
|
|
+ classGroupStudentMapper.setGroupType(GroupType.MUSIC);
|
|
|
+ classGroupStudentList.add(classGroupStudentMapper);
|
|
|
+
|
|
|
+ StudentRegistration studentRegistration = new StudentRegistration();
|
|
|
+ studentRegistration.setClassGroupId(classGroup.getId());
|
|
|
+ studentRegistration.setUserId(Integer.parseInt(userId));
|
|
|
+ studentRegistration.setMusicGroupId(classGroup.getMusicGroupId());
|
|
|
+ studentRegistrationDao.updateByUserIdAndMusicGroupId(studentRegistration);
|
|
|
+
|
|
|
+ userIdList.add(Integer.parseInt(userId));
|
|
|
+ }
|
|
|
+ if (classGroupStudentList.size() > 0) {
|
|
|
+ classGroupStudentMapperDao.classGroupStudentsInsert(classGroupStudentList);
|
|
|
+ }
|
|
|
+
|
|
|
+ // 加入IM群组
|
|
|
+ if (userIdList.size() > 0) {
|
|
|
+ addImGroup(classGroup, userIdList);
|
|
|
+ }
|
|
|
+ return true;
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
public List<ClassGroup> findClassGroup4Teacher(Integer teacherId) {
|
|
|
return classGroupDao.findClassGroup4Teacher(teacherId);
|
|
|
}
|
|
@@ -358,19 +452,17 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
|
|
|
|
|
|
String courseScheduleName = subjectList.stream().map(subject -> subject.getName()).collect(Collectors.joining("/"));
|
|
|
|
|
|
- Map<String, Integer> holidayDays = new HashMap<>();
|
|
|
- Map<Integer, Map<String, Integer>> holiday = new HashMap<>();
|
|
|
+ Set<String> holidayDays = new HashSet<>();
|
|
|
+
|
|
|
if (highClassGroup.getHoliday()) {
|
|
|
- holiday = jiaRiFeignService.query(now.getYear());
|
|
|
- holidayDays = holiday.get(now.getYear());
|
|
|
+ SysConfig holidaySetting = sysConfigService.findByParamName(SysConfigService.HOLIDAY_SETTING);
|
|
|
+ if(Objects.nonNull(holidaySetting)&&StringUtils.isNotBlank(holidaySetting.getParanValue())){
|
|
|
+ holidayDays = new HashSet<>(JSON.parseArray(holidaySetting.getParanValue(), String.class));
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
WhileNode: while (highClassGroup.getCourseTimes() > times) {
|
|
|
- if (highClassGroup.getHoliday() && !holiday.containsKey(now.getYear())) {
|
|
|
- holiday = jiaRiFeignService.query(now.getYear());
|
|
|
- holidayDays = holiday.get(now.getYear());
|
|
|
- }
|
|
|
- if (highClassGroup.getHoliday() && holidayDays.containsKey(now.format(DateTimeFormatter.ofPattern("MMdd")))) {
|
|
|
+ if (highClassGroup.getHoliday() && holidayDays.contains(now.format(DateTimeFormatter.ofPattern("yyyy-MM-dd")))) {
|
|
|
now = now.plusDays(1);
|
|
|
continue;
|
|
|
}
|
|
@@ -1109,7 +1201,7 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
- public TeacherClassHeadInfo findTeacherClassGroupInfo(Long classGroupId) {
|
|
|
+ public TeacherClassHeadInfo findTeacherClassGroupInfo(Integer classGroupId) {
|
|
|
if (Objects.isNull(classGroupId)) {
|
|
|
throw new BizException("请指定班级");
|
|
|
}
|
|
@@ -1346,21 +1438,19 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
|
|
|
BigDecimal expectPrice = new BigDecimal("0");
|
|
|
int times = 0;
|
|
|
|
|
|
- Map<String, Integer> holidayDays = new HashMap<>();
|
|
|
- Map<Integer, Map<String, Integer>> holiday = new HashMap<>();
|
|
|
+ Set<String> holidayDays = new HashSet<>();
|
|
|
+
|
|
|
if (classGroup4MixDto.getHoliday()) {
|
|
|
- holiday = jiaRiFeignService.query(now.getYear());
|
|
|
- holidayDays = holiday.get(now.getYear());
|
|
|
+ SysConfig holidaySetting = sysConfigService.findByParamName(SysConfigService.HOLIDAY_SETTING);
|
|
|
+ if(Objects.nonNull(holidaySetting)&&StringUtils.isNotBlank(holidaySetting.getParanValue())){
|
|
|
+ holidayDays = new HashSet<>(JSON.parseArray(holidaySetting.getParanValue(), String.class));
|
|
|
+ }
|
|
|
}
|
|
|
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
|
|
|
|
|
|
WhileNode:
|
|
|
while (true) {
|
|
|
- if(classGroup4MixDto.getHoliday() && !holiday.containsKey(now.getYear())){
|
|
|
- holiday = jiaRiFeignService.query(now.getYear());
|
|
|
- holidayDays = holiday.get(now.getYear());
|
|
|
- }
|
|
|
- if (classGroup4MixDto.getHoliday() && holidayDays.containsKey(now.format(DateTimeFormatter.ofPattern("MMdd")))) {
|
|
|
+ if (classGroup4MixDto.getHoliday() && holidayDays.contains(now.format(DateTimeFormatter.ofPattern("yyyy-MM-dd")))) {
|
|
|
now = now.plusDays(1);
|
|
|
continue;
|
|
|
}
|
|
@@ -1446,22 +1536,25 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
|
|
|
baseSalary = classGroupTeacherMapper.getTeacherRole().equals(TeachTypeEnum.BISHOP) ? teacherDefaultMusicGroupSalary.getMainTeacher90MinSalary() : teacherDefaultMusicGroupSalary.getAssistantTeacher90MinSalary();
|
|
|
}
|
|
|
|
|
|
+ salary = baseSalary.multiply(classTimeDuty).setScale(2, BigDecimal.ROUND_HALF_UP);
|
|
|
+
|
|
|
+
|
|
|
//课堂课课酬
|
|
|
- if (musicGroup.isClassroomLessons()) {
|
|
|
- //课程时长与结算单位时长占比
|
|
|
- classTimeDuty = new BigDecimal(classCourseDuration).divide(new BigDecimal(40), CommonConstants.DECIMAL_PLACE, BigDecimal.ROUND_DOWN);
|
|
|
- baseSalary = classGroupTeacherMapper.getTeacherRole().equals(TeachTypeEnum.BISHOP) ? teacherDefaultMusicGroupSalary.getMainTeacher30MinSalary() : teacherDefaultMusicGroupSalary.getAssistantTeacher30MinSalary();
|
|
|
+ if (classGroup4MixDto.getCourseType().equals(CourseSchedule.CourseScheduleType.CLASSROOM)) {
|
|
|
+ salary = classGroupTeacherMapper.getTeacherRole().equals(TeachTypeEnum.BISHOP) ? teacherDefaultMusicGroupSalary.getMainTeacher30MinSalary() : teacherDefaultMusicGroupSalary.getAssistantTeacher30MinSalary();
|
|
|
}
|
|
|
//基础技能提高课
|
|
|
if (classGroup4MixDto.getCourseType().equals(CourseSchedule.CourseScheduleType.HIGH)) {
|
|
|
- //课程时长与结算单位时长占比
|
|
|
- classTimeDuty = new BigDecimal(classCourseDuration).divide(new BigDecimal(45), CommonConstants.DECIMAL_PLACE, BigDecimal.ROUND_DOWN);
|
|
|
- baseSalary = classGroupTeacherMapper.getTeacherRole().equals(TeachTypeEnum.BISHOP) ? teacherDefaultMusicGroupSalary.getMainTeacher30MinSalary() : teacherDefaultMusicGroupSalary.getAssistantTeacher30MinSalary();
|
|
|
+ salary = classGroupTeacherMapper.getTeacherRole().equals(TeachTypeEnum.BISHOP) ? teacherDefaultMusicGroupSalary.getMainTeacher30MinSalary() : teacherDefaultMusicGroupSalary.getAssistantTeacher30MinSalary();
|
|
|
if (settlementType.equals(SalarySettlementTypeEnum.GRADIENT_SALARY)) {
|
|
|
- baseSalary = classGroupTeacherMapper.getTeacherRole().equals(TeachTypeEnum.BISHOP) ? teacherDefaultMusicGroupSalary.getMainTeacher90MinSalary() : teacherDefaultMusicGroupSalary.getAssistantTeacher90MinSalary();
|
|
|
+ salary = classGroupTeacherMapper.getTeacherRole().equals(TeachTypeEnum.BISHOP) ? teacherDefaultMusicGroupSalary.getMainTeacher90MinSalary() : teacherDefaultMusicGroupSalary.getAssistantTeacher90MinSalary();
|
|
|
}
|
|
|
}
|
|
|
- salary = baseSalary.multiply(classTimeDuty).setScale(2, BigDecimal.ROUND_HALF_UP);
|
|
|
+ //线上小班课
|
|
|
+ if(classGroup4MixDto.getCourseType().equals(CourseSchedule.CourseScheduleType.HIGH_ONLINE)){
|
|
|
+ Integer studentNum = classGroupStudentMapperDao.countClassGroupNormalStudentNum(classGroupTeacherMapper.getClassGroupId());
|
|
|
+ salary = JSON.parseObject(teacherDefaultMusicGroupSalary.getSalaryRuleJson()).getBigDecimal(studentNum.toString());
|
|
|
+ }
|
|
|
|
|
|
CourseScheduleTeacherSalary courseScheduleTeacherSalary = new CourseScheduleTeacherSalary();
|
|
|
courseScheduleTeacherSalary.setCourseScheduleId(courseSchedule.getId());
|
|
@@ -1637,21 +1730,18 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
|
|
|
List<CourseSchedule> courseScheduleList = new ArrayList<>();
|
|
|
|
|
|
int times = 0;
|
|
|
- Map<String, Integer> holidayDays = new HashMap<>();
|
|
|
- Map<Integer, Map<String, Integer>> holiday = new HashMap<>();
|
|
|
+ Set<String> holidayDays = new HashSet<>();
|
|
|
if (classGroup4MixDto.getHoliday()) {
|
|
|
- holiday = jiaRiFeignService.query(now.getYear());
|
|
|
- holidayDays = holiday.get(now.getYear());
|
|
|
+ SysConfig holidaySetting = sysConfigService.findByParamName(SysConfigService.HOLIDAY_SETTING);
|
|
|
+ if(Objects.nonNull(holidaySetting)&&StringUtils.isNotBlank(holidaySetting.getParanValue())){
|
|
|
+ holidayDays = new HashSet<>(JSON.parseArray(holidaySetting.getParanValue(), String.class));
|
|
|
+ }
|
|
|
}
|
|
|
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
|
|
|
|
|
|
WhileNode:
|
|
|
while (true) {
|
|
|
- if(classGroup4MixDto.getHoliday() && !holiday.containsKey(now.getYear())){
|
|
|
- holiday = jiaRiFeignService.query(now.getYear());
|
|
|
- holidayDays = holiday.get(now.getYear());
|
|
|
- }
|
|
|
- if (classGroup4MixDto.getHoliday() && holidayDays.containsKey(now.format(DateTimeFormatter.ofPattern("MMdd")))) {
|
|
|
+ if (classGroup4MixDto.getHoliday() && holidayDays.contains(now.format(DateTimeFormatter.ofPattern("yyyy-MM-dd")))) {
|
|
|
now = now.plusDays(1);
|
|
|
continue;
|
|
|
}
|
|
@@ -1727,21 +1817,7 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
|
|
|
classTimeDuty = new BigDecimal(classCourseDuration).divide(new BigDecimal(90), CommonConstants.DECIMAL_PLACE, BigDecimal.ROUND_DOWN);
|
|
|
baseSalary = classGroupTeacherMapper.getTeacherRole().equals(TeachTypeEnum.BISHOP) ? teacherDefaultMusicGroupSalary.getMainTeacher90MinSalary() : teacherDefaultMusicGroupSalary.getAssistantTeacher90MinSalary();
|
|
|
}
|
|
|
- //课堂课课酬
|
|
|
- if (musicGroup.isClassroomLessons()) {
|
|
|
- //课程时长与结算单位时长占比
|
|
|
- classTimeDuty = new BigDecimal(classCourseDuration).divide(new BigDecimal(40), CommonConstants.DECIMAL_PLACE, BigDecimal.ROUND_DOWN);
|
|
|
- baseSalary = classGroupTeacherMapper.getTeacherRole().equals(TeachTypeEnum.BISHOP) ? teacherDefaultMusicGroupSalary.getMainTeacher30MinSalary() : teacherDefaultMusicGroupSalary.getAssistantTeacher30MinSalary();
|
|
|
- }
|
|
|
- //基础技能提高课
|
|
|
- if (classGroup4MixDto.getCourseType().equals(CourseSchedule.CourseScheduleType.HIGH)) {
|
|
|
- //课程时长与结算单位时长占比
|
|
|
- classTimeDuty = new BigDecimal(classCourseDuration).divide(new BigDecimal(45), CommonConstants.DECIMAL_PLACE, BigDecimal.ROUND_DOWN);
|
|
|
- baseSalary = classGroupTeacherMapper.getTeacherRole().equals(TeachTypeEnum.BISHOP) ? teacherDefaultMusicGroupSalary.getMainTeacher30MinSalary() : teacherDefaultMusicGroupSalary.getAssistantTeacher30MinSalary();
|
|
|
- if (settlementType.equals(SalarySettlementTypeEnum.GRADIENT_SALARY)) {
|
|
|
- baseSalary = classGroupTeacherMapper.getTeacherRole().equals(TeachTypeEnum.BISHOP) ? teacherDefaultMusicGroupSalary.getMainTeacher90MinSalary() : teacherDefaultMusicGroupSalary.getAssistantTeacher90MinSalary();
|
|
|
- }
|
|
|
- }
|
|
|
+
|
|
|
salary = baseSalary.multiply(classTimeDuty).setScale(2, BigDecimal.ROUND_HALF_UP);
|
|
|
|
|
|
for (CourseScheduleTeacherSalary teacherSalary : allTeacherSalarys) {
|
|
@@ -1753,6 +1829,23 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+ //课堂课课酬
|
|
|
+ if (classGroup4MixDto.getCourseType().equals(CourseSchedule.CourseScheduleType.CLASSROOM)) {
|
|
|
+ salary = classGroupTeacherMapper.getTeacherRole().equals(TeachTypeEnum.BISHOP) ? teacherDefaultMusicGroupSalary.getMainTeacher30MinSalary() : teacherDefaultMusicGroupSalary.getAssistantTeacher30MinSalary();
|
|
|
+ }
|
|
|
+ //基础技能提高课
|
|
|
+ if (classGroup4MixDto.getCourseType().equals(CourseSchedule.CourseScheduleType.HIGH)) {
|
|
|
+ salary = classGroupTeacherMapper.getTeacherRole().equals(TeachTypeEnum.BISHOP) ? teacherDefaultMusicGroupSalary.getMainTeacher30MinSalary() : teacherDefaultMusicGroupSalary.getAssistantTeacher30MinSalary();
|
|
|
+ if (settlementType.equals(SalarySettlementTypeEnum.GRADIENT_SALARY)) {
|
|
|
+ salary = classGroupTeacherMapper.getTeacherRole().equals(TeachTypeEnum.BISHOP) ? teacherDefaultMusicGroupSalary.getMainTeacher90MinSalary() : teacherDefaultMusicGroupSalary.getAssistantTeacher90MinSalary();
|
|
|
+ }
|
|
|
+ }
|
|
|
+ //线上小班课
|
|
|
+ if(classGroup4MixDto.getCourseType().equals(CourseSchedule.CourseScheduleType.HIGH_ONLINE)){
|
|
|
+ Integer studentNum = classGroupStudentMapperDao.countClassGroupNormalStudentNum(classGroupTeacherMapper.getClassGroupId());
|
|
|
+ salary = JSON.parseObject(teacherDefaultMusicGroupSalary.getSalaryRuleJson()).getBigDecimal(studentNum.toString());
|
|
|
+ }
|
|
|
+
|
|
|
CourseScheduleTeacherSalary courseScheduleTeacherSalary = new CourseScheduleTeacherSalary();
|
|
|
courseScheduleTeacherSalary.setCourseScheduleId(courseSchedule.getId());
|
|
|
courseScheduleTeacherSalary.setGroupType(courseSchedule.getGroupType());
|
|
@@ -1904,21 +1997,18 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
|
|
|
|
|
|
BigDecimal expectPrice = new BigDecimal("0");
|
|
|
int times = 0;
|
|
|
- Map<String, Integer> holidayDays = new HashMap<>();
|
|
|
- Map<Integer, Map<String, Integer>> holiday = new HashMap<>();
|
|
|
+ Set<String> holidayDays = new HashSet<>();
|
|
|
if (classGroup4MixDto.getHoliday()) {
|
|
|
- holiday = jiaRiFeignService.query(now.getYear());
|
|
|
- holidayDays = holiday.get(now.getYear());
|
|
|
+ SysConfig holidaySetting = sysConfigService.findByParamName(SysConfigService.HOLIDAY_SETTING);
|
|
|
+ if(Objects.nonNull(holidaySetting)&&StringUtils.isNotBlank(holidaySetting.getParanValue())){
|
|
|
+ holidayDays = new HashSet<>(JSON.parseArray(holidaySetting.getParanValue(), String.class));
|
|
|
+ }
|
|
|
}
|
|
|
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
|
|
|
|
|
|
WhileNode:
|
|
|
while (true) {
|
|
|
- if(classGroup4MixDto.getHoliday() && !holiday.containsKey(now.getYear())){
|
|
|
- holiday = jiaRiFeignService.query(now.getYear());
|
|
|
- holidayDays = holiday.get(now.getYear());
|
|
|
- }
|
|
|
- if (classGroup4MixDto.getHoliday() && holidayDays.containsKey(now.format(DateTimeFormatter.ofPattern("MMdd")))) {
|
|
|
+ if (classGroup4MixDto.getHoliday() && holidayDays.contains(now.format(DateTimeFormatter.ofPattern("yyyy-MM-dd")))) {
|
|
|
now = now.plusDays(1);
|
|
|
continue;
|
|
|
}
|
|
@@ -1998,23 +2088,25 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
|
|
|
classTimeDuty = new BigDecimal(classCourseDuration).divide(new BigDecimal(90), CommonConstants.DECIMAL_PLACE, BigDecimal.ROUND_DOWN);
|
|
|
baseSalary = classGroupTeacherMapper.getTeacherRole().equals(TeachTypeEnum.BISHOP) ? teacherDefaultMusicGroupSalary.getMainTeacher90MinSalary() : teacherDefaultMusicGroupSalary.getAssistantTeacher90MinSalary();
|
|
|
}
|
|
|
+
|
|
|
+ salary = baseSalary.multiply(classTimeDuty).setScale(2, BigDecimal.ROUND_HALF_UP);
|
|
|
+
|
|
|
//课堂课课酬
|
|
|
- if (musicGroup.isClassroomLessons()) {
|
|
|
- //课程时长与结算单位时长占比
|
|
|
- classTimeDuty = new BigDecimal(classCourseDuration).divide(new BigDecimal(40), CommonConstants.DECIMAL_PLACE, BigDecimal.ROUND_DOWN);
|
|
|
- baseSalary = classGroupTeacherMapper.getTeacherRole().equals(TeachTypeEnum.BISHOP) ? teacherDefaultMusicGroupSalary.getMainTeacher30MinSalary() : teacherDefaultMusicGroupSalary.getAssistantTeacher30MinSalary();
|
|
|
+ if (classGroup4MixDto.getCourseType().equals(CourseSchedule.CourseScheduleType.CLASSROOM)) {
|
|
|
+ salary = classGroupTeacherMapper.getTeacherRole().equals(TeachTypeEnum.BISHOP) ? teacherDefaultMusicGroupSalary.getMainTeacher30MinSalary() : teacherDefaultMusicGroupSalary.getAssistantTeacher30MinSalary();
|
|
|
}
|
|
|
//基础技能提高课
|
|
|
if (classGroup4MixDto.getCourseType().equals(CourseSchedule.CourseScheduleType.HIGH)) {
|
|
|
- //课程时长与结算单位时长占比
|
|
|
- classTimeDuty = new BigDecimal(classCourseDuration).divide(new BigDecimal(45), CommonConstants.DECIMAL_PLACE, BigDecimal.ROUND_DOWN);
|
|
|
- baseSalary = classGroupTeacherMapper.getTeacherRole().equals(TeachTypeEnum.BISHOP) ? teacherDefaultMusicGroupSalary.getMainTeacher30MinSalary() : teacherDefaultMusicGroupSalary.getAssistantTeacher30MinSalary();
|
|
|
+ salary = classGroupTeacherMapper.getTeacherRole().equals(TeachTypeEnum.BISHOP) ? teacherDefaultMusicGroupSalary.getMainTeacher30MinSalary() : teacherDefaultMusicGroupSalary.getAssistantTeacher30MinSalary();
|
|
|
if (settlementType.equals(SalarySettlementTypeEnum.GRADIENT_SALARY)) {
|
|
|
- baseSalary = classGroupTeacherMapper.getTeacherRole().equals(TeachTypeEnum.BISHOP) ? teacherDefaultMusicGroupSalary.getMainTeacher90MinSalary() : teacherDefaultMusicGroupSalary.getAssistantTeacher90MinSalary();
|
|
|
+ salary = classGroupTeacherMapper.getTeacherRole().equals(TeachTypeEnum.BISHOP) ? teacherDefaultMusicGroupSalary.getMainTeacher90MinSalary() : teacherDefaultMusicGroupSalary.getAssistantTeacher90MinSalary();
|
|
|
}
|
|
|
}
|
|
|
-
|
|
|
- salary = baseSalary.multiply(classTimeDuty).setScale(2, BigDecimal.ROUND_HALF_UP);
|
|
|
+ //线上小班课
|
|
|
+ if(classGroup4MixDto.getCourseType().equals(CourseSchedule.CourseScheduleType.HIGH_ONLINE)){
|
|
|
+ Integer studentNum = classGroupStudentMapperDao.countClassGroupNormalStudentNum(classGroupTeacherMapper.getClassGroupId());
|
|
|
+ salary = JSON.parseObject(teacherDefaultMusicGroupSalary.getSalaryRuleJson()).getBigDecimal(studentNum.toString());
|
|
|
+ }
|
|
|
|
|
|
CourseScheduleTeacherSalary courseScheduleTeacherSalary = new CourseScheduleTeacherSalary();
|
|
|
courseScheduleTeacherSalary.setCourseScheduleId(courseSchedule.getId());
|
|
@@ -2268,18 +2360,20 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
|
|
|
List<String> subjects = subjectService.findBySubIds(highClassGroup.getSubjectIdList());
|
|
|
highClassGroup.setSubjectName(subjects.stream().collect(Collectors.joining(",")));
|
|
|
|
|
|
- ClassGroupTeacherMapper bishopTeacher = classGroupTeacherMapperDao.findByClassGroupAndRole(highClassGroup.getId().longValue(), TeachTypeEnum.BISHOP);
|
|
|
+ ClassGroupTeacherMapper bishopTeacher = classGroupTeacherMapperDao.findByClassGroupAndRole(highClassGroup.getId(), TeachTypeEnum.BISHOP);
|
|
|
highClassGroup.setTeacherName(bishopTeacher.getUserName());
|
|
|
highClassGroup.setUserId(bishopTeacher.getUserId());
|
|
|
CourseSchedule courseSchedule = courseScheduleDao.findOneCourseScheduleByClassGroupId(highClassGroup.getId());
|
|
|
- highClassGroup.setStartClassTime(DateUtil.format(courseSchedule.getStartClassTime(), "HH:mm"));
|
|
|
- highClassGroup.setEndClassTime(DateUtil.format(courseSchedule.getEndClassTime(), "HH:mm"));
|
|
|
-
|
|
|
- Calendar calendar = Calendar.getInstance();
|
|
|
- calendar.setTime(courseSchedule.getClassDate());
|
|
|
- Integer dayOfWeek = calendar.get(Calendar.DAY_OF_WEEK) - 1;
|
|
|
- dayOfWeek = dayOfWeek.equals(0) ? 7 : dayOfWeek;
|
|
|
- highClassGroup.setDayOfWeek(dayOfWeek);
|
|
|
+ if (courseSchedule != null) {
|
|
|
+ highClassGroup.setStartClassTime(DateUtil.format(courseSchedule.getStartClassTime(), "HH:mm"));
|
|
|
+ highClassGroup.setEndClassTime(DateUtil.format(courseSchedule.getEndClassTime(), "HH:mm"));
|
|
|
+
|
|
|
+ Calendar calendar = Calendar.getInstance();
|
|
|
+ calendar.setTime(courseSchedule.getClassDate());
|
|
|
+ Integer dayOfWeek = calendar.get(Calendar.DAY_OF_WEEK) - 1;
|
|
|
+ dayOfWeek = dayOfWeek.equals(0) ? 7 : dayOfWeek;
|
|
|
+ highClassGroup.setDayOfWeek(dayOfWeek);
|
|
|
+ }
|
|
|
}
|
|
|
return highClassGroupList;
|
|
|
}
|