|
@@ -168,6 +168,8 @@ public class CourseScheduleTeacherSalaryServiceImpl extends BaseServiceImpl<Long
|
|
|
|
|
|
int days = Integer.parseInt(sysConfigDao.findByParamName(SysConfigService.VIP_APPEAL_DAYS_RANGE).getParanValue());
|
|
|
|
|
|
+ BigDecimal percent = new BigDecimal(10);
|
|
|
+
|
|
|
//获取教师未结算课程记录
|
|
|
List<CourseScheduleTeacherSalary> someDayAgoTeacherCourseSalaryNoSettlement = courseScheduleTeacherSalaryDao.findSomeDayAgoTeacherCourseSalaryNoSettlement(days);
|
|
|
if (CollectionUtils.isEmpty(someDayAgoTeacherCourseSalaryNoSettlement)) {
|
|
@@ -227,7 +229,7 @@ public class CourseScheduleTeacherSalaryServiceImpl extends BaseServiceImpl<Long
|
|
|
}
|
|
|
//计算教师责任总占比
|
|
|
double teacherLiabilityRatioSum = courseStudentComplaints.stream().mapToDouble(courseScheduleComplaint -> Objects.isNull(courseScheduleComplaint.getTeacherLiabilityRatio()) ? 0 : courseScheduleComplaint.getTeacherLiabilityRatio()).sum();
|
|
|
- teacherLiabilityAllratio = new BigDecimal(teacherLiabilityRatioSum);
|
|
|
+ teacherLiabilityAllratio = new BigDecimal(teacherLiabilityRatioSum).divide(percent,CommonConstants.DECIMAL_PLACE,BigDecimal.ROUND_DOWN);
|
|
|
} else {
|
|
|
//如果没有投诉,则教师和学生的责任占比为0
|
|
|
teacherLiabilityAllratio = new BigDecimal(0);
|
|
@@ -256,7 +258,11 @@ public class CourseScheduleTeacherSalaryServiceImpl extends BaseServiceImpl<Long
|
|
|
teacherCashAccountDetail.setType(PlatformCashAccountDetailTypeEnum.WAGE);
|
|
|
teacherCashAccountDetail.setStatus(DealStatusEnum.SUCCESS);
|
|
|
teacherCashAccountDetail.setAmount(actualSalary);
|
|
|
- teacherCashAccountDetail.setBalance(teacherCashAccount.getBalance());
|
|
|
+ if(Objects.isNull(teacherCashAccount)){
|
|
|
+ teacherCashAccountDetail.setBalance(new BigDecimal(0));
|
|
|
+ }else{
|
|
|
+ teacherCashAccountDetail.setBalance(teacherCashAccount.getBalance());
|
|
|
+ }
|
|
|
teacherCashAccountDetail.setAttribute(courseScheduleTeacherSalary.getCourseScheduleId().toString());
|
|
|
|
|
|
userCashAccountDetails.add(teacherCashAccountDetail);
|
|
@@ -267,6 +273,8 @@ public class CourseScheduleTeacherSalaryServiceImpl extends BaseServiceImpl<Long
|
|
|
complainsGroupByStudent = courseStudentComplaints.stream().collect(Collectors.groupingBy(CourseScheduleComplaints::getUserId));
|
|
|
}
|
|
|
|
|
|
+ BigDecimal zero=new BigDecimal(0);
|
|
|
+
|
|
|
//计算学生当前课程应缴费用
|
|
|
for (CourseScheduleStudentPayment studentPayment : studentPaymentsWithCourse) {
|
|
|
//当前课程学生应缴费用
|
|
@@ -285,7 +293,7 @@ public class CourseScheduleTeacherSalaryServiceImpl extends BaseServiceImpl<Long
|
|
|
if (Objects.isNull(temp)) {
|
|
|
temp = 0.0;
|
|
|
}
|
|
|
- studentLiabilityRatio = new BigDecimal(temp);
|
|
|
+ studentLiabilityRatio = new BigDecimal(temp).divide(percent,CommonConstants.DECIMAL_PLACE,BigDecimal.ROUND_DOWN);
|
|
|
} else {
|
|
|
studentLiabilityRatio = new BigDecimal(0);
|
|
|
}
|
|
@@ -293,25 +301,28 @@ public class CourseScheduleTeacherSalaryServiceImpl extends BaseServiceImpl<Long
|
|
|
//当前课程学生应退费用
|
|
|
BigDecimal returnPrice = studentExpectPrice.multiply(studentLiabilityRatio);
|
|
|
//当前课程学生实际缴费
|
|
|
- BigDecimal actualPrice = expectSalary.subtract(returnPrice);
|
|
|
+ BigDecimal actualPrice = studentExpectPrice.subtract(returnPrice);
|
|
|
//更新学生结算信息
|
|
|
studentPayment.setActualPrice(actualPrice);
|
|
|
studentPayment.setSettlementTime(now);
|
|
|
courseScheduleStudentPaymentDao.update(studentPayment);
|
|
|
updateStudentPayments.add(studentPayment);
|
|
|
|
|
|
- //生成学生账户资金变动记录
|
|
|
- sysUserCashAccountService.updateBalance(studentPayment.getUserId(), returnPrice);
|
|
|
- SysUserCashAccount studentCashAccount = sysUserCashAccountService.get(studentPayment.getUserId().intValue());
|
|
|
- SysUserCashAccountDetail studentAccountDetail = new SysUserCashAccountDetail();
|
|
|
- studentAccountDetail.setUserId(studentPayment.getUserId());
|
|
|
- studentAccountDetail.setType(PlatformCashAccountDetailTypeEnum.REFUNDS);
|
|
|
- studentAccountDetail.setStatus(DealStatusEnum.SUCCESS);
|
|
|
- studentAccountDetail.setAmount(returnPrice);
|
|
|
- studentAccountDetail.setBalance(studentCashAccount.getBalance());
|
|
|
- studentAccountDetail.setAttribute(courseScheduleTeacherSalary.getCourseScheduleId().toString());
|
|
|
-
|
|
|
- userCashAccountDetails.add(studentAccountDetail);
|
|
|
+
|
|
|
+ if(returnPrice.compareTo(zero)!=0){
|
|
|
+ //生成学生账户资金变动记录
|
|
|
+ sysUserCashAccountService.updateBalance(studentPayment.getUserId(), returnPrice);
|
|
|
+ SysUserCashAccount studentCashAccount = sysUserCashAccountService.get(studentPayment.getUserId().intValue());
|
|
|
+ SysUserCashAccountDetail studentAccountDetail = new SysUserCashAccountDetail();
|
|
|
+ studentAccountDetail.setUserId(studentPayment.getUserId());
|
|
|
+ studentAccountDetail.setType(PlatformCashAccountDetailTypeEnum.REFUNDS);
|
|
|
+ studentAccountDetail.setStatus(DealStatusEnum.SUCCESS);
|
|
|
+ studentAccountDetail.setAmount(returnPrice);
|
|
|
+ studentAccountDetail.setBalance(studentCashAccount.getBalance());
|
|
|
+ studentAccountDetail.setAttribute(courseScheduleTeacherSalary.getCourseScheduleId().toString());
|
|
|
+
|
|
|
+ userCashAccountDetails.add(studentAccountDetail);
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
});
|
|
@@ -444,7 +455,10 @@ public class CourseScheduleTeacherSalaryServiceImpl extends BaseServiceImpl<Long
|
|
|
} else {
|
|
|
classTimeDuty = classTimeDuty.divide(new BigDecimal(30), CommonConstants.DECIMAL_PLACE, BigDecimal.ROUND_DOWN);
|
|
|
}
|
|
|
- BigDecimal teacherDefaultSalary = courseScheduleTeacherSalary.getTeacherRole().equals(TeachTypeEnum.BISHOP) ? teacherDefaultMusicGroupSalaryWithTeacherId.getMainTeacher30MinSalary() : teacherDefaultMusicGroupSalaryWithTeacherId.getAssistantTeacher30MinSalary();
|
|
|
+ BigDecimal teacherDefaultSalary = new BigDecimal(0);
|
|
|
+ if(Objects.nonNull(teacherDefaultMusicGroupSalaryWithTeacherId)){
|
|
|
+ teacherDefaultSalary = courseScheduleTeacherSalary.getTeacherRole().equals(TeachTypeEnum.BISHOP) ? teacherDefaultMusicGroupSalaryWithTeacherId.getMainTeacher30MinSalary() : teacherDefaultMusicGroupSalaryWithTeacherId.getAssistantTeacher30MinSalary();
|
|
|
+ }
|
|
|
teacherSalary = teacherDefaultSalary.multiply(classTimeDuty).setScale(2, BigDecimal.ROUND_HALF_UP);
|
|
|
} else if (settlementType.equals(SalarySettlementTypeEnum.GRADIENT_SALARY.getCode())) {
|
|
|
//课程时长与结算单位时长占比
|
|
@@ -456,7 +470,10 @@ public class CourseScheduleTeacherSalaryServiceImpl extends BaseServiceImpl<Long
|
|
|
} else {
|
|
|
classTimeDuty = classTimeDuty.divide(new BigDecimal(90), CommonConstants.DECIMAL_PLACE, BigDecimal.ROUND_DOWN);
|
|
|
}
|
|
|
- BigDecimal teacherDefaultSalary = courseScheduleTeacherSalary.getTeacherRole().equals(TeachTypeEnum.BISHOP) ? teacherDefaultMusicGroupSalaryWithTeacherId.getMainTeacher90MinSalary() : teacherDefaultMusicGroupSalaryWithTeacherId.getAssistantTeacher90MinSalary();
|
|
|
+ BigDecimal teacherDefaultSalary = new BigDecimal(0);
|
|
|
+ if(Objects.nonNull(teacherDefaultMusicGroupSalaryWithTeacherId)){
|
|
|
+ teacherDefaultSalary = courseScheduleTeacherSalary.getTeacherRole().equals(TeachTypeEnum.BISHOP) ? teacherDefaultMusicGroupSalaryWithTeacherId.getMainTeacher90MinSalary() : teacherDefaultMusicGroupSalaryWithTeacherId.getAssistantTeacher90MinSalary();
|
|
|
+ }
|
|
|
teacherSalary = teacherDefaultSalary.multiply(classTimeDuty).setScale(2, BigDecimal.ROUND_HALF_UP);
|
|
|
}
|
|
|
}else{
|