|  | @@ -31,10 +31,7 @@ import org.springframework.util.CollectionUtils;
 | 
	
		
			
				|  |  |  import java.math.BigDecimal;
 | 
	
		
			
				|  |  |  import java.time.LocalDate;
 | 
	
		
			
				|  |  |  import java.time.format.DateTimeFormatter;
 | 
	
		
			
				|  |  | -import java.util.ArrayList;
 | 
	
		
			
				|  |  | -import java.util.HashMap;
 | 
	
		
			
				|  |  | -import java.util.List;
 | 
	
		
			
				|  |  | -import java.util.Map;
 | 
	
		
			
				|  |  | +import java.util.*;
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  @Service
 | 
	
	
		
			
				|  | @@ -149,26 +146,40 @@ public class UserAccountRecordServiceImpl extends ServiceImpl<UserAccountRecordD
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |      @Override
 | 
	
		
			
				|  |  |      public List<UserAccountRecord> selectRecordByOrderDetail(UserOrderDetailVo userOrderDetailVo) {
 | 
	
		
			
				|  |  | +        List<UserAccountRecord> records = new ArrayList<>();
 | 
	
		
			
				|  |  |          //订单类型: 学生端( VIP、开通会员  PRACTICE、陪练课购买  LIVE、直播课购买 VIDEO、视频课购买 MUSIC、单曲点播 ) 老师端(VIP、开通会员 PINAO_ROOM、琴房时长)
 | 
	
		
			
				|  |  |          //获取业务id
 | 
	
		
			
				|  |  |          List<Long> bizIds = new ArrayList<>();
 | 
	
		
			
				|  |  | -        if (GoodTypeEnum.VIP.equals(userOrderDetailVo.getGoodType())
 | 
	
		
			
				|  |  | -                || GoodTypeEnum.VIDEO.equals(userOrderDetailVo.getGoodType())
 | 
	
		
			
				|  |  | -                || GoodTypeEnum.MUSIC.equals(userOrderDetailVo.getGoodType())) {
 | 
	
		
			
				|  |  | +        if (GoodTypeEnum.VIP.equals(userOrderDetailVo.getGoodType())){
 | 
	
		
			
				|  |  |              bizIds.add(userOrderDetailVo.getBizId());
 | 
	
		
			
				|  |  | -        } else if (GoodTypeEnum.PRACTICE.equals(userOrderDetailVo.getGoodType()) || GoodTypeEnum.LIVE.equals(userOrderDetailVo.getGoodType())) {
 | 
	
		
			
				|  |  | +            records.addAll(baseMapper.selectRecordByOrderDetail(userOrderDetailVo.getOrderNo(),AccountBizTypeEnum.VIP, bizIds));
 | 
	
		
			
				|  |  | +            records.addAll(baseMapper.selectRecordByOrderDetail(userOrderDetailVo.getOrderNo(),AccountBizTypeEnum.VIP_SHARE, bizIds));
 | 
	
		
			
				|  |  | +        }else if(GoodTypeEnum.VIDEO.equals(userOrderDetailVo.getGoodType())){
 | 
	
		
			
				|  |  | +            bizIds.add(userOrderDetailVo.getBizId());
 | 
	
		
			
				|  |  | +            records.addAll(baseMapper.selectRecordByOrderDetail(userOrderDetailVo.getOrderNo(),AccountBizTypeEnum.VIDEO, bizIds));
 | 
	
		
			
				|  |  | +            records.addAll(baseMapper.selectRecordByOrderDetail(userOrderDetailVo.getOrderNo(),AccountBizTypeEnum.VIDEO_SHARE, bizIds));
 | 
	
		
			
				|  |  | +        }else if(GoodTypeEnum.MUSIC.equals(userOrderDetailVo.getGoodType())){
 | 
	
		
			
				|  |  | +            bizIds.add(userOrderDetailVo.getBizId());
 | 
	
		
			
				|  |  | +            records.addAll(baseMapper.selectRecordByOrderDetail(userOrderDetailVo.getOrderNo(),AccountBizTypeEnum.MUSIC, bizIds));
 | 
	
		
			
				|  |  | +            records.addAll(baseMapper.selectRecordByOrderDetail(userOrderDetailVo.getOrderNo(),AccountBizTypeEnum.MUSIC_SHARE, bizIds));
 | 
	
		
			
				|  |  | +        }else if(GoodTypeEnum.PRACTICE.equals(userOrderDetailVo.getGoodType())){
 | 
	
		
			
				|  |  |              //查询课程组下所有课程id
 | 
	
		
			
				|  |  |              List<CourseSchedule> cancel = courseScheduleService.list(Wrappers.<CourseSchedule>lambdaQuery()
 | 
	
		
			
				|  |  |                      .eq(CourseSchedule::getCourseGroupId, userOrderDetailVo.getBizId())
 | 
	
		
			
				|  |  | -                    .ne(CourseSchedule::getStatus, "CANCEL")
 | 
	
		
			
				|  |  |              );
 | 
	
		
			
				|  |  |              cancel.stream().forEach(o -> bizIds.add(o.getId()));
 | 
	
		
			
				|  |  | +            records.addAll(baseMapper.selectRecordByOrderDetail(userOrderDetailVo.getOrderNo(),AccountBizTypeEnum.PRACTICE, bizIds));
 | 
	
		
			
				|  |  | +        }else if(GoodTypeEnum.LIVE.equals(userOrderDetailVo.getGoodType())){
 | 
	
		
			
				|  |  | +            List<Long> groupId = Arrays.asList(userOrderDetailVo.getBizId());
 | 
	
		
			
				|  |  | +            records.addAll(baseMapper.selectRecordByOrderDetail(userOrderDetailVo.getOrderNo(),AccountBizTypeEnum.LIVE_SHARE, groupId));
 | 
	
		
			
				|  |  | +            //查询课程组下所有课程id
 | 
	
		
			
				|  |  | +            List<CourseSchedule> cancel = courseScheduleService.list(Wrappers.<CourseSchedule>lambdaQuery()
 | 
	
		
			
				|  |  | +                    .eq(CourseSchedule::getCourseGroupId, userOrderDetailVo.getBizId())
 | 
	
		
			
				|  |  | +            );
 | 
	
		
			
				|  |  | +            cancel.stream().forEach(o -> bizIds.add(o.getId()));
 | 
	
		
			
				|  |  | +            records.addAll(baseMapper.selectRecordByOrderDetail(userOrderDetailVo.getOrderNo(),AccountBizTypeEnum.LIVE, bizIds));
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  | -        if (CollectionUtils.isEmpty(bizIds)) {
 | 
	
		
			
				|  |  | -            return new ArrayList<>();
 | 
	
		
			
				|  |  | -        }
 | 
	
		
			
				|  |  | -        return baseMapper.selectRecordByOrderDetail(userOrderDetailVo, bizIds);
 | 
	
		
			
				|  |  | +        return records;
 | 
	
		
			
				|  |  |      }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  |  }
 |