|  | @@ -2293,8 +2293,11 @@ public class ExportServiceImpl implements ExportService {
 | 
	
		
			
				|  |  |          Map<Integer, String> userLastMusicIdMap = new HashMap<>();
 | 
	
		
			
				|  |  |          Map<Integer, String> userLastMusicNameMap = new HashMap<>();
 | 
	
		
			
				|  |  |          Map<Integer, String> studentNameMap = new HashMap<>();
 | 
	
		
			
				|  |  | +        Map<Integer, String> userFirstPracticeMap = new HashMap<>();
 | 
	
		
			
				|  |  |          if(studentPaymentOrderExportDtos.stream().anyMatch(e->e.getUserId() != null)){
 | 
	
		
			
				|  |  |              List<Integer> studentIds = studentPaymentOrderExportDtos.stream().filter(e->e.getUserId() != null).map(e -> e.getUserId()).distinct().collect(Collectors.toList());
 | 
	
		
			
				|  |  | +            //获取学员第一个网管课课程组编号
 | 
	
		
			
				|  |  | +            userFirstPracticeMap = MapUtil.convertMybatisMap(courseScheduleStudentPaymentDao.findUserFirstVipMap("PRACTICE",studentIds));
 | 
	
		
			
				|  |  |              //获取学员第一个课程组编号
 | 
	
		
			
				|  |  |              userFirstVipMap = MapUtil.convertMybatisMap(courseScheduleStudentPaymentDao.findUserFirstVipMap("VIP",studentIds));
 | 
	
		
			
				|  |  |              //获取学员最近加入的一个乐团编号
 | 
	
	
		
			
				|  | @@ -2339,26 +2342,8 @@ public class ExportServiceImpl implements ExportService {
 | 
	
		
			
				|  |  |              }
 | 
	
		
			
				|  |  |              //根据订单类型初始化业务数据
 | 
	
		
			
				|  |  |              Optional.ofNullable(groupTypeConsumerMap1.get(basicOrder.getGroupType())).ifPresent(consumer -> consumer.accept(basicOrder));
 | 
	
		
			
				|  |  | -            if(basicOrder.getRouteAmount().compareTo(BigDecimal.ZERO) == 0){
 | 
	
		
			
				|  |  | -                continue;
 | 
	
		
			
				|  |  | -            }
 | 
	
		
			
				|  |  | -            if(basicOrder.getTypeDesc() == null){
 | 
	
		
			
				|  |  | -                if(basicOrder.getGroupType() == GroupType.VIP){
 | 
	
		
			
				|  |  | -                    //学员没有历史VIP课程则导出为【VIP课新增】
 | 
	
		
			
				|  |  | -                    //学员有历史VIP课程到导出为【VIP课续费]
 | 
	
		
			
				|  |  | -                    if(Objects.equals(userFirstVipMap.get(basicOrder.getUserId()),basicOrder.getMusicGroupId())){
 | 
	
		
			
				|  |  | -                        basicOrder.setTypeDesc(StudentPaymentOrderExportDto.TypeDesc.NEW_VIP);
 | 
	
		
			
				|  |  | -                    }else {
 | 
	
		
			
				|  |  | -                        basicOrder.setTypeDesc(StudentPaymentOrderExportDto.TypeDesc.RENEW_VIP);
 | 
	
		
			
				|  |  | -                    }
 | 
	
		
			
				|  |  | -                }else if(basicOrder.getGroupType().equals(GroupType.SUBJECT_CHANGE)){
 | 
	
		
			
				|  |  | -                    basicOrder.setTypeDesc(StudentPaymentOrderExportDto.TypeDesc.NEW_MUSIC);
 | 
	
		
			
				|  |  | -                }else if(basicOrder.getGroupType().equals(GroupType.REPAIR)){
 | 
	
		
			
				|  |  | -                    basicOrder.setTypeDesc(StudentPaymentOrderExportDto.TypeDesc.REPAIR);
 | 
	
		
			
				|  |  | -                }else {
 | 
	
		
			
				|  |  | -                    basicOrder.setTypeDesc(StudentPaymentOrderExportDto.TypeDesc.OTHER);
 | 
	
		
			
				|  |  | -                }
 | 
	
		
			
				|  |  | -            }
 | 
	
		
			
				|  |  | +            this.setSubTypeDesc(basicOrder,userFirstVipMap,userFirstPracticeMap);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |              String paymentChannel = "";
 | 
	
		
			
				|  |  |              if (basicOrder.getPaymentChannel() == null) {
 | 
	
		
			
				|  |  |              } else if (basicOrder.getPaymentChannel().equals("YQPAY")) {
 | 
	
	
		
			
				|  | @@ -2369,6 +2354,9 @@ public class ExportServiceImpl implements ExportService {
 | 
	
		
			
				|  |  |                  paymentChannel = "余额";
 | 
	
		
			
				|  |  |              }
 | 
	
		
			
				|  |  |              basicOrder.setPaymentChannel(paymentChannel);
 | 
	
		
			
				|  |  | +            if(basicOrder.getRouteAmount().compareTo(BigDecimal.ZERO) == 0){
 | 
	
		
			
				|  |  | +                continue;
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  |              //如果有订单详情
 | 
	
		
			
				|  |  |              List<StudentPaymentOrderDetail> detailList = orderDetailMap.get(basicOrder.getId());
 | 
	
		
			
				|  |  |              if (!CollectionUtils.isEmpty(detailList)) {
 | 
	
	
		
			
				|  | @@ -2394,6 +2382,32 @@ public class ExportServiceImpl implements ExportService {
 | 
	
		
			
				|  |  |          exportManagerDownload(workbook,managerDownload);
 | 
	
		
			
				|  |  |      }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | +    public void setSubTypeDesc(StudentPaymentOrderExportDto basicOrder,Map<Integer,String> userFirstVipMap,Map<Integer,String> userFirstPracticeMap){
 | 
	
		
			
				|  |  | +        if(basicOrder.getTypeDesc() == null){
 | 
	
		
			
				|  |  | +            if(basicOrder.getGroupType() == GroupType.VIP){
 | 
	
		
			
				|  |  | +                //学员没有历史VIP课程则导出为【VIP课新增】
 | 
	
		
			
				|  |  | +                //学员有历史VIP课程到导出为【VIP课续费]
 | 
	
		
			
				|  |  | +                if(Objects.equals(userFirstVipMap.get(basicOrder.getUserId()),basicOrder.getMusicGroupId())){
 | 
	
		
			
				|  |  | +                    basicOrder.setTypeDesc(StudentPaymentOrderExportDto.TypeDesc.NEW_VIP);
 | 
	
		
			
				|  |  | +                }else {
 | 
	
		
			
				|  |  | +                    basicOrder.setTypeDesc(StudentPaymentOrderExportDto.TypeDesc.RENEW_VIP);
 | 
	
		
			
				|  |  | +                }
 | 
	
		
			
				|  |  | +            }else if(basicOrder.getGroupType() == GroupType.PRACTICE){
 | 
	
		
			
				|  |  | +                if(Objects.equals(userFirstPracticeMap.get(basicOrder.getUserId()),basicOrder.getMusicGroupId())){
 | 
	
		
			
				|  |  | +                    basicOrder.setTypeDesc(StudentPaymentOrderExportDto.TypeDesc.NEW_PRACTICE);
 | 
	
		
			
				|  |  | +                }else {
 | 
	
		
			
				|  |  | +                    basicOrder.setTypeDesc(StudentPaymentOrderExportDto.TypeDesc.RENEW_PRACTICE);
 | 
	
		
			
				|  |  | +                }
 | 
	
		
			
				|  |  | +            }else if(basicOrder.getGroupType().equals(GroupType.SUBJECT_CHANGE)){
 | 
	
		
			
				|  |  | +                basicOrder.setTypeDesc(StudentPaymentOrderExportDto.TypeDesc.NEW_MUSIC);
 | 
	
		
			
				|  |  | +            }else if(basicOrder.getGroupType().equals(GroupType.REPAIR)){
 | 
	
		
			
				|  |  | +                basicOrder.setTypeDesc(StudentPaymentOrderExportDto.TypeDesc.REPAIR);
 | 
	
		
			
				|  |  | +            }else {
 | 
	
		
			
				|  |  | +                basicOrder.setTypeDesc(StudentPaymentOrderExportDto.TypeDesc.OTHER);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +    }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |      //按订单详情计算
 | 
	
		
			
				|  |  |      public void calcOrderDetail(StudentPaymentOrderExportDto basicOrder,List<StudentPaymentOrderDetail> detailList,Map<Integer, String> userFirstVipMap){
 | 
	
		
			
				|  |  |          //排除金额为0的订单详情
 |