|
@@ -2018,19 +2018,22 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
|
|
|
//退云教练费用
|
|
|
if (cloudTeacherAmount != null) {
|
|
|
Date nowDate = new Date();
|
|
|
- CloudTeacherOrder studentCloudTeacherOrder = cloudTeacherOrderService.getStudentCloudTeacherOrder(userId, musicGroupId);
|
|
|
- if (cloudTeacherAmount.compareTo(BigDecimal.ZERO) > 0) {
|
|
|
- if (studentCloudTeacherOrder == null || (studentCloudTeacherOrder.getEndTime() != null && studentCloudTeacherOrder.getEndTime().compareTo(nowDate) <= 0)) {
|
|
|
- throw new BizException("学生云教练已过有效期,不能退费");
|
|
|
+ List<CloudTeacherOrder> cloudTeacherOrders = cloudTeacherOrderService.getStudentCloudTeacherOrder(userId, musicGroupId);
|
|
|
+ if(cloudTeacherOrders.size() > 0){
|
|
|
+ List<CloudTeacherOrder> quitCloudTeacherOrders = new ArrayList<>();
|
|
|
+ BigDecimal orderAmount = BigDecimal.ZERO;
|
|
|
+ for (CloudTeacherOrder cloudTeacherOrder : cloudTeacherOrders) {
|
|
|
+ if (cloudTeacherOrder.getEndTime() == null || cloudTeacherOrder.getEndTime().compareTo(nowDate) > 0) {
|
|
|
+ quitCloudTeacherOrders.add(cloudTeacherOrder);
|
|
|
+ orderAmount = orderAmount.add(cloudTeacherOrder.getAmount());
|
|
|
+ }
|
|
|
}
|
|
|
- if (cloudTeacherAmount.compareTo(studentCloudTeacherOrder.getAmount()) > 0) {
|
|
|
+ if (cloudTeacherAmount.compareTo(orderAmount) > 0) {
|
|
|
throw new BizException("云教练退费金额不能大于原始订单金额");
|
|
|
}
|
|
|
+ cloudTeacherOrderService.quitCloudTeacherOrders(quitCloudTeacherOrders, cloudTeacherAmount);
|
|
|
}
|
|
|
amount = amount.add(cloudTeacherAmount);
|
|
|
- if (cloudTeacherAmount.compareTo(BigDecimal.ZERO) > 0 && studentCloudTeacherOrder != null) {
|
|
|
- cloudTeacherOrderService.quitCloudTeacherOrder(studentCloudTeacherOrder, cloudTeacherAmount);
|
|
|
- }
|
|
|
//清除学员云教练
|
|
|
studentService.cleanMember(userId);
|
|
|
}
|
|
@@ -2265,19 +2268,22 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
|
|
|
//退云教练费用
|
|
|
if (cloudTeacherAmount != null) {
|
|
|
Date nowDate = new Date();
|
|
|
- CloudTeacherOrder studentCloudTeacherOrder = cloudTeacherOrderService.getStudentCloudTeacherOrder(userId, musicGroupId);
|
|
|
- if (cloudTeacherAmount.compareTo(BigDecimal.ZERO) > 0) {
|
|
|
- if (studentCloudTeacherOrder == null || (studentCloudTeacherOrder.getEndTime() != null && studentCloudTeacherOrder.getEndTime().compareTo(nowDate) <= 0)) {
|
|
|
- throw new BizException("学生云教练已过有效期,不能退费");
|
|
|
+ List<CloudTeacherOrder> cloudTeacherOrders = cloudTeacherOrderService.getStudentCloudTeacherOrder(userId, musicGroupId);
|
|
|
+ if(cloudTeacherOrders.size() > 0){
|
|
|
+ List<CloudTeacherOrder> quitCloudTeacherOrders = new ArrayList<>();
|
|
|
+ BigDecimal orderAmount = BigDecimal.ZERO;
|
|
|
+ for (CloudTeacherOrder cloudTeacherOrder : cloudTeacherOrders) {
|
|
|
+ if (cloudTeacherOrder.getEndTime() == null || cloudTeacherOrder.getEndTime().compareTo(nowDate) > 0) {
|
|
|
+ quitCloudTeacherOrders.add(cloudTeacherOrder);
|
|
|
+ orderAmount = orderAmount.add(cloudTeacherOrder.getAmount());
|
|
|
+ }
|
|
|
}
|
|
|
- if (cloudTeacherAmount.compareTo(studentCloudTeacherOrder.getAmount()) > 0) {
|
|
|
+ if (cloudTeacherAmount.compareTo(orderAmount) > 0) {
|
|
|
throw new BizException("云教练退费金额不能大于原始订单金额");
|
|
|
}
|
|
|
+ cloudTeacherOrderService.quitCloudTeacherOrders(quitCloudTeacherOrders, cloudTeacherAmount);
|
|
|
}
|
|
|
amount = amount.add(cloudTeacherAmount);
|
|
|
- if (cloudTeacherAmount.compareTo(BigDecimal.ZERO) > 0 && studentCloudTeacherOrder != null) {
|
|
|
- cloudTeacherOrderService.quitCloudTeacherOrder(studentCloudTeacherOrder, cloudTeacherAmount);
|
|
|
- }
|
|
|
//清除学员云教练
|
|
|
studentService.cleanMember(userId);
|
|
|
}
|