|
@@ -11,6 +11,7 @@ import com.ym.mec.biz.dal.entity.*;
|
|
import com.ym.mec.biz.dal.enums.*;
|
|
import com.ym.mec.biz.dal.enums.*;
|
|
import com.ym.mec.biz.dal.page.PracticeGroupQueryInfo;
|
|
import com.ym.mec.biz.dal.page.PracticeGroupQueryInfo;
|
|
import com.ym.mec.biz.service.*;
|
|
import com.ym.mec.biz.service.*;
|
|
|
|
+import com.ym.mec.common.constant.CommonConstants;
|
|
import com.ym.mec.common.controller.BaseController;
|
|
import com.ym.mec.common.controller.BaseController;
|
|
import com.ym.mec.common.dal.BaseDAO;
|
|
import com.ym.mec.common.dal.BaseDAO;
|
|
import com.ym.mec.common.entity.HttpResponseResult;
|
|
import com.ym.mec.common.entity.HttpResponseResult;
|
|
@@ -105,6 +106,8 @@ public class PracticeGroupServiceImpl extends BaseServiceImpl<Long, PracticeGrou
|
|
private GroupClassService groupService;
|
|
private GroupClassService groupService;
|
|
@Autowired
|
|
@Autowired
|
|
private PracticeGroupSellPriceDao practiceGroupSellPriceDao;
|
|
private PracticeGroupSellPriceDao practiceGroupSellPriceDao;
|
|
|
|
+ @Autowired
|
|
|
|
+ private TeacherDefaultPracticeGroupSalaryDao teacherDefaultPracticeGroupSalaryDao;
|
|
|
|
|
|
private static Map<Integer, Map<Integer, List<Integer>>> schoolSubjectTeachersMap;
|
|
private static Map<Integer, Map<Integer, List<Integer>>> schoolSubjectTeachersMap;
|
|
|
|
|
|
@@ -2537,7 +2540,10 @@ public class PracticeGroupServiceImpl extends BaseServiceImpl<Long, PracticeGrou
|
|
Date now=new Date();
|
|
Date now=new Date();
|
|
LocalDate courseStartDay=LocalDate.now();
|
|
LocalDate courseStartDay=LocalDate.now();
|
|
if(practiceGroupBuyParams.isRenew()){
|
|
if(practiceGroupBuyParams.isRenew()){
|
|
- PracticeGroup userLatestPracticeGroup = practiceGroupDao.findUserPracticeGroup(practiceGroupBuyParams.getUserId(),practiceGroupBuyParams.getGroupId());
|
|
|
|
|
|
+ if(Objects.isNull(practiceGroupBuyParams.getGroupId())){
|
|
|
|
+ return BaseController.failed(HttpStatus.EXPECTATION_FAILED, "请选择续费的课程");
|
|
|
|
+ }
|
|
|
|
+ PracticeGroup userLatestPracticeGroup = practiceGroupDao.findUserPracticeGroup(practiceGroupBuyParams.getStudentId(),practiceGroupBuyParams.getGroupId());
|
|
if(Objects.nonNull(userLatestPracticeGroup)){
|
|
if(Objects.nonNull(userLatestPracticeGroup)){
|
|
LocalDate lastExpiredDay=LocalDateTime.ofInstant(userLatestPracticeGroup.getCoursesExpireDate().toInstant(),DateUtil.zoneId).toLocalDate();
|
|
LocalDate lastExpiredDay=LocalDateTime.ofInstant(userLatestPracticeGroup.getCoursesExpireDate().toInstant(),DateUtil.zoneId).toLocalDate();
|
|
if(Objects.nonNull(lastExpiredDay)&&lastExpiredDay.compareTo(courseStartDay)>=0){
|
|
if(Objects.nonNull(lastExpiredDay)&&lastExpiredDay.compareTo(courseStartDay)>=0){
|
|
@@ -2683,6 +2689,12 @@ public class PracticeGroupServiceImpl extends BaseServiceImpl<Long, PracticeGrou
|
|
courseSchedule.setIsLock(1);
|
|
courseSchedule.setIsLock(1);
|
|
}
|
|
}
|
|
courseScheduleDao.batchAddCourseSchedules(practiceCourses);
|
|
courseScheduleDao.batchAddCourseSchedules(practiceCourses);
|
|
|
|
+ TeacherDefaultPracticeGroupSalary teacherDefaultPracticeGroupSalary = teacherDefaultPracticeGroupSalaryDao.findByTeacherAndCourseMinutes(practiceGroupBuyParams.getUserId(),practiceCourseMinutes);
|
|
|
|
+ BigDecimal teacherDefaultSalary=new BigDecimal(practiceCourseSalaryConfig.getParanValue());
|
|
|
|
+ if(Objects.nonNull(teacherDefaultPracticeGroupSalary)){
|
|
|
|
+ teacherDefaultSalary=teacherDefaultPracticeGroupSalary.getMainTeacherSalary();
|
|
|
|
+ }
|
|
|
|
+ BigDecimal studentSingleCourseCost=amount.divide(new BigDecimal(practiceCourses.size()),CommonConstants.DECIMAL_PLACE, BigDecimal.ROUND_DOWN);
|
|
for (CourseSchedule courseSchedule : practiceCourses) {
|
|
for (CourseSchedule courseSchedule : practiceCourses) {
|
|
//课程与老师薪水表
|
|
//课程与老师薪水表
|
|
CourseScheduleTeacherSalary courseScheduleTeacherSalary = new CourseScheduleTeacherSalary();
|
|
CourseScheduleTeacherSalary courseScheduleTeacherSalary = new CourseScheduleTeacherSalary();
|
|
@@ -2691,7 +2703,7 @@ public class PracticeGroupServiceImpl extends BaseServiceImpl<Long, PracticeGrou
|
|
courseScheduleTeacherSalary.setMusicGroupId(practiceGroupBuyParams.getId().toString());
|
|
courseScheduleTeacherSalary.setMusicGroupId(practiceGroupBuyParams.getId().toString());
|
|
courseScheduleTeacherSalary.setTeacherRole(classGroupTeacherMapper.getTeacherRole());
|
|
courseScheduleTeacherSalary.setTeacherRole(classGroupTeacherMapper.getTeacherRole());
|
|
courseScheduleTeacherSalary.setUserId(practiceGroupBuyParams.getUserId());
|
|
courseScheduleTeacherSalary.setUserId(practiceGroupBuyParams.getUserId());
|
|
- courseScheduleTeacherSalary.setExpectSalary(new BigDecimal(practiceCourseSalaryConfig.getParanValue()));
|
|
|
|
|
|
+ courseScheduleTeacherSalary.setExpectSalary(teacherDefaultSalary);
|
|
courseScheduleTeacherSalary.setCreateTime(now);
|
|
courseScheduleTeacherSalary.setCreateTime(now);
|
|
courseScheduleTeacherSalary.setUpdateTime(now);
|
|
courseScheduleTeacherSalary.setUpdateTime(now);
|
|
courseScheduleTeacherSalary.setClassGroupId(classGroup.getId());
|
|
courseScheduleTeacherSalary.setClassGroupId(classGroup.getId());
|
|
@@ -2703,7 +2715,7 @@ public class PracticeGroupServiceImpl extends BaseServiceImpl<Long, PracticeGrou
|
|
courseScheduleStudentPayment.setMusicGroupId(practiceGroupBuyParams.getId().toString());
|
|
courseScheduleStudentPayment.setMusicGroupId(practiceGroupBuyParams.getId().toString());
|
|
courseScheduleStudentPayment.setCourseScheduleId(courseSchedule.getId());
|
|
courseScheduleStudentPayment.setCourseScheduleId(courseSchedule.getId());
|
|
courseScheduleStudentPayment.setUserId(practiceGroupBuyParams.getStudentId());
|
|
courseScheduleStudentPayment.setUserId(practiceGroupBuyParams.getStudentId());
|
|
- courseScheduleStudentPayment.setExpectPrice(BigDecimal.ZERO);
|
|
|
|
|
|
+ courseScheduleStudentPayment.setExpectPrice(studentSingleCourseCost);
|
|
courseScheduleStudentPayment.setClassGroupId(classGroup.getId());
|
|
courseScheduleStudentPayment.setClassGroupId(classGroup.getId());
|
|
courseScheduleStudentPayment.setCreateTime(now);
|
|
courseScheduleStudentPayment.setCreateTime(now);
|
|
courseScheduleStudentPayment.setUpdateTime(now);
|
|
courseScheduleStudentPayment.setUpdateTime(now);
|
|
@@ -2720,13 +2732,24 @@ public class PracticeGroupServiceImpl extends BaseServiceImpl<Long, PracticeGrou
|
|
teacherAttendances.add(teacherAttendance);
|
|
teacherAttendances.add(teacherAttendance);
|
|
}
|
|
}
|
|
courseScheduleTeacherSalaryDao.batchInsert(courseScheduleTeacherSalaries);
|
|
courseScheduleTeacherSalaryDao.batchInsert(courseScheduleTeacherSalaries);
|
|
|
|
+ courseScheduleStudentPaymentDao.batchInsert(courseScheduleStudentPayments);
|
|
teacherAttendanceDao.batchInsert(teacherAttendances);
|
|
teacherAttendanceDao.batchInsert(teacherAttendances);
|
|
|
|
|
|
try {
|
|
try {
|
|
courseScheduleService.checkNewCourseSchedules(practiceCourses,false);
|
|
courseScheduleService.checkNewCourseSchedules(practiceCourses,false);
|
|
} catch (Exception e) {
|
|
} catch (Exception e) {
|
|
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
|
|
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
|
|
- return BaseController.failed(HttpStatus.FOUND, e.getMessage());
|
|
|
|
|
|
+ String errMessage=new String();
|
|
|
|
+ if(e.getMessage().indexOf("主教冲突")!=-1){
|
|
|
|
+ errMessage="抱歉啦,当前所选时段组合,「" + teacher.getRealName() + "」老师已被预约,请重新选择时段或更换老师后重试。";
|
|
|
|
+ }else{
|
|
|
|
+ String courseName=e.getMessage().substring(e.getMessage().indexOf(")-")+2);
|
|
|
|
+ courseName = courseName.substring(0,courseName.indexOf("("));
|
|
|
|
+ errMessage="抱歉啦,当前所选时段组合,与您现有课程「";
|
|
|
|
+ errMessage+=courseName;
|
|
|
|
+ errMessage+="」时段冲突,请选择其他时段重试。";
|
|
|
|
+ }
|
|
|
|
+ return BaseController.failed(HttpStatus.FOUND, errMessage);
|
|
}
|
|
}
|
|
|
|
|
|
StudentPaymentOrder studentPaymentOrder=new StudentPaymentOrder();
|
|
StudentPaymentOrder studentPaymentOrder=new StudentPaymentOrder();
|