|
@@ -3874,7 +3874,7 @@ public class PracticeGroupServiceImpl extends BaseServiceImpl<Long, PracticeGrou
|
|
|
PracticeGroupSellPrice practiceGroupSellPrice = practiceGroupSellPriceDao.get(practiceGroup.getOrganId());
|
|
|
BigDecimal singleClassMinutesPrice = practiceGroupSellPrice.getSingleClassMinutesPrice();
|
|
|
//实际支付金额,去除优惠券
|
|
|
- BigDecimal actualPrice = order.getExpectAmount().subtract(order.getCouponRemitFee());
|
|
|
+ BigDecimal actualPrice = order.getExpectAmount();
|
|
|
BigDecimal divide = actualPrice.divide(new BigDecimal(courseSchedules.size()), ROUND_DOWN);
|
|
|
BigDecimal firstAmount = actualPrice.subtract(divide.multiply(new BigDecimal(courseSchedules.size()))).add(divide);
|
|
|
|
|
@@ -4034,7 +4034,7 @@ public class PracticeGroupServiceImpl extends BaseServiceImpl<Long, PracticeGrou
|
|
|
activityUserMapper.setPracticeFlag(1);
|
|
|
}
|
|
|
if(activity.isPayToBalance()){
|
|
|
- boolean appendCourseBalance = sysUserCashAccountService.appendCourseBalance(userId, studentPaymentOrder.getExpectAmount().subtract(studentPaymentOrder.getCouponRemitFee()), PlatformCashAccountDetailTypeEnum.RECHARGE, "通用营销活动购买");
|
|
|
+ boolean appendCourseBalance = sysUserCashAccountService.appendCourseBalance(userId, studentPaymentOrder.getExpectAmount(), PlatformCashAccountDetailTypeEnum.RECHARGE, "通用营销活动购买");
|
|
|
if (!appendCourseBalance) {
|
|
|
throw new BizException("增加用户课程余额失败");
|
|
|
}
|
|
@@ -5087,7 +5087,7 @@ public class PracticeGroupServiceImpl extends BaseServiceImpl<Long, PracticeGrou
|
|
|
if(activity.isPayToBalance() && !giveFlag){
|
|
|
ActivityUserMapper activityUserMapper = activityUserMappers.get(0);
|
|
|
StudentPaymentOrder order = studentPaymentOrderDao.get(activityUserMapper.getPaymentOrderId());
|
|
|
- sysUserCashAccountService.appendCourseBalance(studentId,order.getExpectAmount().subtract(order.getCouponRemitFee()).negate(),PlatformCashAccountDetailTypeEnum.PAY_FEE,"活动排课消耗课程余额");
|
|
|
+ sysUserCashAccountService.appendCourseBalance(studentId,order.getExpectAmount().negate(),PlatformCashAccountDetailTypeEnum.PAY_FEE,"活动排课消耗课程余额");
|
|
|
}
|
|
|
|
|
|
//创建班级信息
|
|
@@ -5183,9 +5183,16 @@ public class PracticeGroupServiceImpl extends BaseServiceImpl<Long, PracticeGrou
|
|
|
TeacherDefaultPracticeGroupSalary teacherDefaultPracticeGroupSalary = teacherDefaultPracticeGroupSalaryDao.findByTeacherAndCourseMinutes(applyBaseInfo.getUserId(),practiceCourseMinutes);
|
|
|
|
|
|
//生成学生单课缴费信息
|
|
|
+ Map<Integer, List<ActivityUserMapper>> collect = activityUserMappers.stream().collect(Collectors.groupingBy(ActivityUserMapper::getUserId));
|
|
|
for (ClassGroupStudentMapper classGroupStudent : classGroupStudents) {
|
|
|
List<CourseScheduleStudentPayment> courseScheduleStudentPayments=new ArrayList<>();
|
|
|
- for (CourseSchedule courseSchedule : courseSchedules) {
|
|
|
+ //实际支付金额,去除优惠券
|
|
|
+ ActivityUserMapper activityUserMapper = collect.get(classGroupStudent.getUserId()).get(0);
|
|
|
+ BigDecimal totalAmount = activityUserMapper.getActualPrice();
|
|
|
+ BigDecimal singleAmount = totalAmount.divide(new BigDecimal(courseSchedules.size()), ROUND_DOWN);
|
|
|
+ BigDecimal firstSingleAmount = totalAmount.subtract(singleAmount.multiply(new BigDecimal(courseSchedules.size()))).add(singleAmount);
|
|
|
+ for (int i = 0; i < courseSchedules.size(); i++) {
|
|
|
+ CourseSchedule courseSchedule = courseSchedules.get(i);
|
|
|
CourseScheduleStudentPayment courseScheduleStudentPayment = new CourseScheduleStudentPayment();
|
|
|
courseScheduleStudentPayment.setUserId(classGroupStudent.getUserId());
|
|
|
courseScheduleStudentPayment.setGroupType(courseSchedule.getGroupType());
|
|
@@ -5196,7 +5203,11 @@ public class PracticeGroupServiceImpl extends BaseServiceImpl<Long, PracticeGrou
|
|
|
courseScheduleStudentPayment.setExpectPrice(BigDecimal.ZERO);
|
|
|
courseScheduleStudentPayment.setOriginalPrice(BigDecimal.ZERO);
|
|
|
}else {
|
|
|
- courseScheduleStudentPayment.setExpectPrice(teacherDefaultPracticeGroupSalary.getMainTeacherSalary());
|
|
|
+ if(i == 1){
|
|
|
+ courseScheduleStudentPayment.setExpectPrice(firstSingleAmount);
|
|
|
+ }else {
|
|
|
+ courseScheduleStudentPayment.setExpectPrice(singleAmount);
|
|
|
+ }
|
|
|
courseScheduleStudentPayment.setOriginalPrice(teacherDefaultPracticeGroupSalary.getMainTeacherSalary());
|
|
|
}
|
|
|
courseScheduleStudentPayment.setActualPrice(courseScheduleStudentPayment.getExpectPrice());
|