Browse Source

Merge branch 'master' of http://git.dayaedu.com/yonge/mec

zouxuan 5 years ago
parent
commit
be8bc1ea54

+ 1 - 1
mec-biz/src/main/java/com/ym/mec/biz/service/ClassGroupService.java

@@ -185,7 +185,7 @@ public interface ClassGroupService extends BaseService<Integer, ClassGroup> {
      * @param classGroupIdListStr
      * @return
      */
-    boolean addStudentToClassGroupAndCourseArranging(Integer studentId, String classGroupIdListStr, List<MusicGroupPaymentCalenderCourseSettings> musicGroupPaymentCalenderCourseSettingsList);
+    boolean addStudentToClassGroupAndCourseArranging(Integer studentId, String classGroupIdListStr, String batchNo, List<MusicGroupPaymentCalenderCourseSettings> musicGroupPaymentCalenderCourseSettingsList);
 
     /**
      * 获取未分配合奏的单技班列表

+ 2 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/impl/ClassGroupServiceImpl.java

@@ -1083,6 +1083,7 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
     @Override
     @Transactional(rollbackFor = Exception.class)
 	public boolean addStudentToClassGroupAndCourseArranging(Integer studentId, String classGroupIdListStr,
+                                                            String batchNo,
 			List<MusicGroupPaymentCalenderCourseSettings> musicGroupPaymentCalenderCourseSettingsList) {
 
 		List<ClassGroup> classGroupList = classGroupDao.findClassGroupByIds(classGroupIdListStr);
@@ -1132,6 +1133,7 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
 				courseScheduleStudentPayment.setMusicGroupId(classGroup.getMusicGroupId());
 				courseScheduleStudentPayment.setCourseScheduleId(courseSchedule.getId());
 				courseScheduleStudentPayment.setUserId(studentId);
+				courseScheduleStudentPayment.setBatchNo(batchNo);
 
 				unitPrice = unitPriceMap.get(courseSchedule.getType());
 				if (unitPrice != null) {

+ 1 - 1
mec-biz/src/main/java/com/ym/mec/biz/service/impl/MusicGroupPaymentCalenderServiceImpl.java

@@ -495,7 +495,7 @@ public class MusicGroupPaymentCalenderServiceImpl extends BaseServiceImpl<Long,
 				// 学生加到班级
 				String classGroupIdStr = musicGroupPaymentCalender.getAttribute1();
 				if(StringUtils.isNotBlank(classGroupIdStr)){
-					classGroupService.addStudentToClassGroupAndCourseArranging(Integer.parseInt(studentId), classGroupIdStr, musicGroupPaymentCalenderCourseSettingsList);
+					classGroupService.addStudentToClassGroupAndCourseArranging(Integer.parseInt(studentId), classGroupIdStr, musicGroupPaymentCalender.getBatchNo(), musicGroupPaymentCalenderCourseSettingsList);
 				}
 			}
 		}

+ 24 - 7
mec-biz/src/main/java/com/ym/mec/biz/service/impl/PayServiceImpl.java

@@ -401,7 +401,6 @@ public class PayServiceImpl implements PayService {
             return null;
         }
 
-
         String typeRouteScale = paymentConfig.getTypeRouteScale();
         List<RouteScaleDto> routeScaleDtos = JSON.parseArray(typeRouteScale, RouteScaleDto.class);
         List<Integer> organIds = routeScaleDtos.stream().map(RouteScaleDto::getOrganId).collect(Collectors.toList());
@@ -419,7 +418,6 @@ public class PayServiceImpl implements PayService {
         BigDecimal sellHasRouteBalance = BigDecimal.ZERO;
 
         Iterator<RouteScaleDto> iterator = routeScaleDtos.iterator();
-        BigDecimal maxAmount = BigDecimal.ZERO;
         while (iterator.hasNext()) {
             RouteScaleDto routeScaleDto = iterator.next();
             routeScaleDto.setPayType(paymentConfig.getPayType());
@@ -458,9 +456,6 @@ public class PayServiceImpl implements PayService {
                 iterator.remove();
                 continue;
             }
-            if (routeScaleDto.getAmount().compareTo(maxAmount) > 0) {
-                maxAmount = routeScaleDto.getAmount();
-            }
 
             for (SysPaymentConfig paymentConfigByOrganId : paymentConfigByOrganIds) {
                 if (!paymentConfigByOrganId.getOrganId().equals(routeScaleDto.getOrganId())) continue;
@@ -471,8 +466,30 @@ public class PayServiceImpl implements PayService {
                 }
             }
         }
+        Map<String, List<RouteScaleDto>> routeScaleDtosMap = routeScaleDtos.stream().collect(Collectors.groupingBy(RouteScaleDto::getMerNo));
+
+        //合并同账号的数据
+        BigDecimal maxAmount = BigDecimal.ZERO;
+        List<RouteScaleDto> newRouteScaleDtos = new ArrayList<>();
+        for (Map.Entry<String, List<RouteScaleDto>> groupRouteScaleDtos : routeScaleDtosMap.entrySet()) {
+            RouteScaleDto routeScaleDto = null;
+            for (RouteScaleDto scaleDto : groupRouteScaleDtos.getValue()) {
+                if(routeScaleDto == null){
+                    routeScaleDto = scaleDto;
+                }else {
+                    routeScaleDto.setAmount(routeScaleDto.getAmount().add(scaleDto.getAmount()));
+                    routeScaleDto.setBalance(routeScaleDto.getBalance().add(scaleDto.getBalance()));
+                }
+            }
+            if (routeScaleDto != null && routeScaleDto.getAmount().compareTo(maxAmount) > 0) {
+                maxAmount = routeScaleDto.getAmount();
+            }
+            newRouteScaleDtos.add(routeScaleDto);
+        }
+
+        //金额最大的账号承担手续费
         boolean hasFeeFlag = false;
-        for (RouteScaleDto routeScaleDto : routeScaleDtos) {
+        for (RouteScaleDto routeScaleDto : newRouteScaleDtos) {
             if (!hasFeeFlag && routeScaleDto.getAmount().compareTo(maxAmount) == 0) {
                 routeScaleDto.setFeeFlag("Y");
                 hasFeeFlag = true;
@@ -480,6 +497,6 @@ public class PayServiceImpl implements PayService {
                 routeScaleDto.setFeeFlag("N");
             }
         }
-        return routeScaleDtos;
+        return newRouteScaleDtos;
     }
 }