|
@@ -521,7 +521,8 @@ public class ActivityUserMapperServiceImpl extends BaseServiceImpl<Integer, Acti
|
|
|
vipGroupDao.insert(applyBaseInfo);
|
|
|
|
|
|
//校验排课资格,消耗排课资格(获取被使用的排课资格)
|
|
|
- CheckScheduleQualificationDto dto = new CheckScheduleQualificationDto(studentIdList, vipGroupCategory.getId(), applyBaseInfo.getSingleClassMinutes(), courseNum, applyBaseInfo.getId());
|
|
|
+ CheckScheduleQualificationDto dto = new CheckScheduleQualificationDto(studentIdList, vipGroupCategory.getId(),
|
|
|
+ applyBaseInfo.getSingleClassMinutes(), courseNum, applyBaseInfo.getId());
|
|
|
List<CourseScheduleStudentPayment> courseScheduleStudentPayments = this.checkScheduleQualification(dto);
|
|
|
|
|
|
List<VipGroupStudentCoursePrice> vscps = vipGroup.getVipGroupApplyBaseInfo().getVipGroupStudentCoursePrices();
|
|
@@ -614,6 +615,16 @@ public class ActivityUserMapperServiceImpl extends BaseServiceImpl<Integer, Acti
|
|
|
|
|
|
//创建老师单节课课酬信息
|
|
|
List<CourseScheduleTeacherSalary> courseScheduleTeacherSalaries = new ArrayList<>();
|
|
|
+ //如果是1V1的课程,需要处理老师课酬
|
|
|
+ Map<Integer, String> settlementMap = new HashMap<>();
|
|
|
+ if (vipGroupCategory.getStudentNum() == 1){
|
|
|
+ List<Integer> activityUserMapperIds = courseScheduleStudentPayments.stream().map(e -> e.getActivityUserMapperId()).collect(Collectors.toList());
|
|
|
+ if(CollectionUtils.isNotEmpty(activityUserMapperIds)){
|
|
|
+ List<ActivityUserMapperSettlementDto> activityUserMapperSettlementDtos = activityUserMapperDao.querySettlementByIds(activityUserMapperIds);
|
|
|
+ settlementMap = activityUserMapperSettlementDtos.stream().collect(Collectors.groupingBy(e -> e.getActivityId(),
|
|
|
+ Collectors.collectingAndThen(Collectors.toList(), v -> v.get(0).getSalarySettlementJson())));
|
|
|
+ }
|
|
|
+ }
|
|
|
//课程信息调整
|
|
|
for (CourseSchedule courseSchedule : courseSchedules) {
|
|
|
courseSchedule.setGroupType(GroupType.VIP);
|
|
@@ -641,9 +652,6 @@ public class ActivityUserMapperServiceImpl extends BaseServiceImpl<Integer, Acti
|
|
|
courseScheduleTeacherSalary.setActualSalary(null);
|
|
|
courseScheduleTeacherSalaries.add(courseScheduleTeacherSalary);
|
|
|
}
|
|
|
- if (courseScheduleTeacherSalaries.size() > 0) {
|
|
|
- courseScheduleTeacherSalaryService.batchInsert(courseScheduleTeacherSalaries);
|
|
|
- }
|
|
|
|
|
|
applyBaseInfo.setCourseSchedulesJson(JSON.toJSONString(vipGroup.getCourseSchedules()));
|
|
|
vipGroupDao.update(applyBaseInfo);
|
|
@@ -672,6 +680,32 @@ public class ActivityUserMapperServiceImpl extends BaseServiceImpl<Integer, Acti
|
|
|
userRoleMap.put(courseScheduleStudentPayment.getUserId(), null);
|
|
|
}
|
|
|
}
|
|
|
+ //处理老师课酬
|
|
|
+ if (courseScheduleTeacherSalaries.size() > 0) {
|
|
|
+ if(settlementMap.size() > 0){
|
|
|
+ Map<Long,CourseScheduleStudentPayment> courseActivityUserMap = courseScheduleStudentPayments.stream().collect(Collectors.groupingBy(CourseScheduleStudentPayment::getCourseScheduleId,
|
|
|
+ Collectors.collectingAndThen(Collectors.toList(),value->value.get(0))));
|
|
|
+ for (CourseScheduleTeacherSalary teacherSalary : courseScheduleTeacherSalaries) {
|
|
|
+ String s = settlementMap.get(courseActivityUserMap.get(teacherSalary.getCourseScheduleId()));
|
|
|
+ if (StringUtils.isEmpty(s)) {
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+ VipGroupSalarySettlementDto settlementDto = JSON.parseObject(s, VipGroupSalarySettlementDto.class);
|
|
|
+ CourseScheduleStudentPayment studentPayment = courseActivityUserMap.get(teacherSalary.getCourseScheduleId());
|
|
|
+ //判断是否使用的赠送的排课资格
|
|
|
+ VipGroupSalarySettlementTypeDto vipOfflineSalarySettlement;
|
|
|
+ if(studentPayment.getGiveFlag()){
|
|
|
+ vipOfflineSalarySettlement = settlementDto.getGiveVipOfflineSalarySettlement();
|
|
|
+ }else {
|
|
|
+ vipOfflineSalarySettlement = settlementDto.getOfflineSalarySettlement();
|
|
|
+ }
|
|
|
+ if(Objects.nonNull(vipOfflineSalarySettlement) && vipOfflineSalarySettlement.getSalarySettlementType() == SalarySettlementTypeEnum.FIXED_SALARY){
|
|
|
+ teacherSalary.setExpectSalary(vipOfflineSalarySettlement.getSettlementValue());
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ courseScheduleTeacherSalaryService.batchInsert(courseScheduleTeacherSalaries);
|
|
|
+ }
|
|
|
|
|
|
if (courseScheduleStudentPayments.size() > 0) {
|
|
|
List<CourseScheduleStudentPayment> payments = courseScheduleStudentPayments.stream().filter(e -> e.getCalenderId() != null).collect(Collectors.toList());
|
|
@@ -755,6 +789,19 @@ public class ActivityUserMapperServiceImpl extends BaseServiceImpl<Integer, Acti
|
|
|
courseScheduleStudentPayments.add(courseScheduleStudentPayment);
|
|
|
}
|
|
|
}
|
|
|
+ private void getFreeStudentPayment(Integer userId,
|
|
|
+ Integer courseNum,
|
|
|
+ List<CourseScheduleStudentPayment> courseScheduleStudentPayments,
|
|
|
+ ActivityUserMapper activityUserMapper){
|
|
|
+ for (Integer i = 0; i < courseNum; i++) {
|
|
|
+ CourseScheduleStudentPayment courseScheduleStudentPayment = new CourseScheduleStudentPayment();
|
|
|
+ courseScheduleStudentPayment.setUserId(userId);
|
|
|
+ courseScheduleStudentPayment.setActivityUserMapperId(activityUserMapper.getId());
|
|
|
+ courseScheduleStudentPayment.setCalenderId(activityUserMapper.getCalenderId());
|
|
|
+ courseScheduleStudentPayment.setGiveFlag(true);
|
|
|
+ courseScheduleStudentPayments.add(courseScheduleStudentPayment);
|
|
|
+ }
|
|
|
+ }
|
|
|
|
|
|
@Override
|
|
|
public List<CourseScheduleStudentPayment> use(CheckScheduleQualificationDto dto) {
|
|
@@ -824,10 +871,10 @@ public class ActivityUserMapperServiceImpl extends BaseServiceImpl<Integer, Acti
|
|
|
if(num <= subCourseNum){
|
|
|
activityUserMapper.setSubGiveCourseNum(0);
|
|
|
subCourseNum = subCourseNum - num;
|
|
|
- this.getStudentPayment(integer,num,BigDecimal.ZERO,courseScheduleStudentPayments,activityUserMapper);
|
|
|
+ this.getFreeStudentPayment(integer,num,courseScheduleStudentPayments,activityUserMapper);
|
|
|
}else {
|
|
|
activityUserMapper.setSubGiveCourseNum(num - subCourseNum);
|
|
|
- this.getStudentPayment(integer,subCourseNum,BigDecimal.ZERO,courseScheduleStudentPayments,activityUserMapper);
|
|
|
+ this.getFreeStudentPayment(integer,subCourseNum,courseScheduleStudentPayments,activityUserMapper);
|
|
|
continue one;
|
|
|
}
|
|
|
}
|