Просмотр исходного кода

1、乐团课新增排课教师课酬计算逻辑调整
2、陪练课配置
3、陪练课接口

Joburgess 5 лет назад
Родитель
Сommit
5c67ffe78b

+ 1 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/enums/ClassGroupTypeEnum.java

@@ -11,6 +11,7 @@ public enum ClassGroupTypeEnum implements BaseEnum<String, ClassGroupTypeEnum> {
 	HIGH("HIGH", "提高班"),
 	VIP("VIP", "vip课"),
 	DEMO("DEMO", "试听课"),
+	PRACTICE("PRACTICE", "陪练课"),
 	SNAP("SNAP", "临时班级");
 
 	private String code;

+ 138 - 6
mec-biz/src/main/java/com/ym/mec/biz/service/impl/PracticeGroupServiceImpl.java

@@ -1,19 +1,20 @@
 package com.ym.mec.biz.service.impl;
 
-import com.ym.mec.biz.dal.dao.PracticeGroupDao;
-import com.ym.mec.biz.dal.dao.SubjectDao;
-import com.ym.mec.biz.dal.entity.PracticeGroup;
-import com.ym.mec.biz.dal.entity.Subject;
-import com.ym.mec.biz.dal.entity.SysConfig;
+import com.ym.mec.biz.dal.dao.*;
+import com.ym.mec.biz.dal.entity.*;
+import com.ym.mec.biz.dal.enums.*;
 import com.ym.mec.biz.service.PracticeGroupService;
 import com.ym.mec.biz.service.SysConfigService;
+import com.ym.mec.biz.service.TeacherService;
 import com.ym.mec.common.dal.BaseDAO;
 import com.ym.mec.common.exception.BizException;
 import com.ym.mec.common.service.impl.BaseServiceImpl;
 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;
 
+import java.math.BigDecimal;
 import java.util.*;
 
 @Service
@@ -25,6 +26,24 @@ public class PracticeGroupServiceImpl extends BaseServiceImpl<Long, PracticeGrou
 	private SysConfigService sysConfigService;
 	@Autowired
 	private SubjectDao subjectDao;
+	@Autowired
+    private TeacherService teacherService;
+	@Autowired
+    private EmployeeDao employeeDao;
+	@Autowired
+    private ClassGroupDao classGroupDao;
+	@Autowired
+    private ClassGroupTeacherMapperDao classGroupTeacherMapperDao;
+	@Autowired
+    private ClassGroupTeacherSalaryDao classGroupTeacherSalaryDao;
+	@Autowired
+    private CourseScheduleDao courseScheduleDao;
+	@Autowired
+    private CourseScheduleTeacherSalaryDao courseScheduleTeacherSalaryDao;
+	@Autowired
+    private CourseScheduleStudentPaymentDao courseScheduleStudentPaymentDao;
+	@Autowired
+    private TeacherAttendanceDao teacherAttendanceDao;
 
 	@Override
 	public BaseDAO<Long, PracticeGroup> getDAO() {
@@ -58,6 +77,7 @@ public class PracticeGroupServiceImpl extends BaseServiceImpl<Long, PracticeGrou
 		if(Objects.nonNull(practiceCourseMinutesConfig)){
 			practiceCourseMinutes=practiceCourseMinutesConfig.getParanValue(Integer.class);
 		}
+        SysConfig practiceCourseSalaryConfig = sysConfigService.findByParamName(SysConfigService.PRACTICE_COURSE_SALARY);
 		Date now=new Date();
 		Date nextWeekMonday = DateUtil.getNextWeekMonday(now);
 		Date nextWeekFriday = DateUtil.getNextWeekDay(now,11);
@@ -67,6 +87,118 @@ public class PracticeGroupServiceImpl extends BaseServiceImpl<Long, PracticeGrou
 			throw new BizException("预约时间超过范围");
 		}
 		practiceGroup.setCoursesExpireDate(DateUtil.addMinutes(practiceGroup.getCoursesStartDate(),practiceCourseMinutes));
-		return null;
+		Integer teacherId = searchTeacherId(practiceGroup.getUserId(),practiceGroup.getSubjectId(),practiceGroup.getCoursesStartDate(),practiceGroup.getCoursesExpireDate());
+        if(Objects.isNull(teacherId)){
+            throw new BizException("教师指派错误");
+        }
+		Teacher teacher = teacherService.getDetail(teacherId);
+        Employee employee = employeeDao.get(teacherId);
+        if(StringUtils.isEmpty(employee.getOrganIdList()) || employee.getOrganIdList().contains(",")){
+            practiceGroup.setOrganId(teacher.getTeacherOrganId());
+        }else {
+            practiceGroup.setOrganId(Integer.parseInt(employee.getOrganIdList()));
+        }
+        Subject subject=subjectDao.get(practiceGroup.getSubjectId());
+        if(Objects.isNull(subject)){
+            throw new BizException("声部不存在");
+        }
+        practiceGroup.setName(subject.getName()+"•陪练课");
+        practiceGroup.setSingleClassMinutes(practiceCourseMinutes);
+        practiceGroupDao.insert(practiceGroup);
+
+        //创建班级信息
+        ClassGroup classGroup=new ClassGroup();
+        classGroup.setSubjectIdList(practiceGroup.getSubjectId().toString());
+        classGroup.setExpectStudentNum(1);
+        classGroup.setName(practiceGroup.getName());
+        classGroup.setTotalClassTimes(1);
+        classGroup.setType(ClassGroupTypeEnum.PRACTICE);
+        classGroup.setDelFlag(0);
+        classGroup.setGroupType(GroupType.PRACTICE);
+        classGroup.setMusicGroupId(practiceGroup.getId().toString());
+        classGroup.setCreateTime(now);
+        classGroup.setUpdateTime(now);
+        classGroupDao.insert(classGroup);
+
+        //创建班级老师关联记录
+        ClassGroupTeacherMapper classGroupTeacherMapper=new ClassGroupTeacherMapper();
+        classGroupTeacherMapper.setMusicGroupId(practiceGroup.getId().toString());
+        classGroupTeacherMapper.setClassGroupId(classGroup.getId());
+        classGroupTeacherMapper.setTeacherRole(TeachTypeEnum.BISHOP);
+        classGroupTeacherMapper.setUserId(teacherId);
+        classGroupTeacherMapper.setGroupType(GroupType.PRACTICE);
+        classGroupTeacherMapper.setCreateTime(now);
+        classGroupTeacherMapper.setUpdateTime(now);
+        classGroupTeacherMapperDao.insert(classGroupTeacherMapper);
+
+        //创建班级与老师课酬记录
+        ClassGroupTeacherSalary classGroupTeacherSalary=new ClassGroupTeacherSalary();
+        classGroupTeacherSalary.setMusicGroupId(practiceGroup.getId().toString());
+        classGroupTeacherSalary.setClassGroupId(classGroup.getId());
+        classGroupTeacherSalary.setTeacherRole(TeachTypeEnum.BISHOP);
+        classGroupTeacherSalary.setUserId(teacherId);
+        classGroupTeacherSalary.setSalary(new BigDecimal(practiceCourseSalaryConfig.getParanValue(Integer.class)));
+        classGroupTeacherSalary.setOnlineClassesSalary(new BigDecimal(practiceCourseSalaryConfig.getParanValue(Integer.class)));
+        classGroupTeacherSalary.setGroupType(GroupType.PRACTICE);
+        classGroupTeacherSalary.setCreateTime(now);
+        classGroupTeacherSalary.setUpdateTime(now);
+        classGroupTeacherSalaryDao.insert(classGroupTeacherSalary);
+
+        //课表
+        CourseSchedule courseSchedule = new CourseSchedule();
+        courseSchedule.setMusicGroupId(practiceGroup.getId().toString());
+        courseSchedule.setClassGroupId(classGroup.getId());
+        courseSchedule.setStatus(CourseStatusEnum.NOT_START);
+        courseSchedule.setClassDate(practiceGroup.getCoursesStartDate());
+        courseSchedule.setStartClassTime(practiceGroup.getCoursesStartDate());
+        courseSchedule.setEndClassTime(practiceGroup.getCoursesExpireDate());
+        courseSchedule.setTeacherId(teacherId);
+        courseSchedule.setActualTeacherId(teacherId);
+        courseSchedule.setCreateTime(now);
+        courseSchedule.setUpdateTime(now);
+        courseSchedule.setTeachMode(TeachModeEnum.ONLINE);
+        courseSchedule.setType(CourseSchedule.CourseScheduleType.PRACTICE);
+        courseSchedule.setGroupType(GroupType.PRACTICE);
+        courseSchedule.setName(practiceGroup.getName());
+        courseScheduleDao.insert(courseSchedule);
+
+        //课程与老师薪水表
+        CourseScheduleTeacherSalary courseScheduleTeacherSalary = new CourseScheduleTeacherSalary();
+        courseScheduleTeacherSalary.setCourseScheduleId(courseSchedule.getId());
+        courseScheduleTeacherSalary.setGroupType(GroupType.PRACTICE);
+        courseScheduleTeacherSalary.setMusicGroupId(practiceGroup.getId().toString());
+        courseScheduleTeacherSalary.setTeacherRole(classGroupTeacherMapper.getTeacherRole());
+        courseScheduleTeacherSalary.setUserId(teacherId);
+        courseScheduleTeacherSalary.setExpectSalary(new BigDecimal(practiceCourseSalaryConfig.getParanValue()));
+        courseScheduleTeacherSalary.setCreateTime(now);
+        courseScheduleTeacherSalary.setUpdateTime(now);
+        courseScheduleTeacherSalary.setClassGroupId(classGroup.getId());
+        courseScheduleTeacherSalaryDao.insert(courseScheduleTeacherSalary);
+
+        //学生缴费记录
+        CourseScheduleStudentPayment courseScheduleStudentPayment = new CourseScheduleStudentPayment();
+        courseScheduleStudentPayment.setGroupType(GroupType.PRACTICE);
+        courseScheduleStudentPayment.setMusicGroupId(practiceGroup.getId().toString());
+        courseScheduleStudentPayment.setCourseScheduleId(courseSchedule.getId());
+        courseScheduleStudentPayment.setUserId(practiceGroup.getUserId());
+        courseScheduleStudentPayment.setExpectPrice(BigDecimal.ZERO);
+        courseScheduleStudentPayment.setClassGroupId(classGroup.getId());
+        courseScheduleStudentPayment.setCreateTime(now);
+        courseScheduleStudentPayment.setUpdateTime(now);
+        courseScheduleStudentPaymentDao.insert(courseScheduleStudentPayment);
+
+        //教师签到记录
+        TeacherAttendance teacherAttendance = new TeacherAttendance();
+        teacherAttendance.setMusicGroupId(practiceGroup.getId().toString());
+        teacherAttendance.setTeacherId(teacherId);
+        teacherAttendance.setClassGroupId(classGroup.getId());
+        teacherAttendance.setGroupType(GroupType.PRACTICE);
+        teacherAttendance.setCourseScheduleId(courseSchedule.getId());
+        teacherAttendance.setCreateTime(now);
+        teacherAttendanceDao.insert(teacherAttendance);
+
+        Map result=new HashMap();
+        result.put("teacherName",teacher.getRealName());
+        return result;
 	}
 }