MediaServiceImpl.java 3.37 KB
package com.hui.iqiyi.service.impl;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.hui.iqiyi.config.AppPagingRequest;
import com.hui.iqiyi.entity.Media;
import com.hui.iqiyi.entity.Program;
import com.hui.iqiyi.mapper.MediaMapper;
import com.hui.iqiyi.request.MediaRequest;
import com.hui.iqiyi.request.ProgramRequest;
import com.hui.iqiyi.service.IMediaService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.hui.iqiyi.service.IProgramService;
import org.apache.commons.lang3.ObjectUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Primary;
import org.springframework.stereotype.Service;

import java.util.List;
import java.util.stream.Collectors;

/**
 * <p>
 * VIEW 服务实现类
 * </p>
 *
 * @author jobob
 * @since 2021-06-03
 */
/*
继续改 参数 返回值
 */
@Service
@Primary
public class MediaServiceImpl extends ServiceImpl<MediaMapper, Media> implements IMediaService {

    @Autowired
    private MediaMapper mediaMapper;

    @Autowired
    private IProgramService programService;

    @Override
    public IPage<Media> selectAllIqIy(MediaRequest iqiyiContent) {
        try {
            //  return mediaMapper.selectAllIqIy(AppPagingRequest.getPage(iqiyiContent),iqiyiContent);

        } catch (Exception e) {
            throw new RuntimeException("服务器错误,错误原因是:" + e.getMessage() + "请联系运维!");
        }
        return null;
    }

    @Override
    public List<Media> selectAllIqIyList(MediaRequest iqiyiContent) {
        List<Media> list = null;
        try {
            list = mediaMapper.selectAllIqIy(iqiyiContent);
            if (list.size() == 0)
                return list;
            ProgramRequest programRequest = new ProgramRequest();
            programRequest.setContentIdList(list.stream().map(Long -> Long.getId()).collect(Collectors.toList()));
            List<ProgramRequest> listPro = programService.selectDownload(programRequest);
            for (Media media : list) {
                for (ProgramRequest pro : listPro) {
                    if (media.getId().compareTo(pro.getIqiyiContentId()) == 0) {
                        //如果剧头的总集数与下载量一直则显示全部下载完成
                        if (media.getCurrCount().compareTo(pro.getDownloadCount()) == 0) {
                            media.setDownloadStatus("全部下载完成");
                            continue;
                        }
                        //如果剧头的总集数 大于 下载量 就显示未全部下载
                        if (media.getCurrCount().compareTo(pro.getDownloadCount()) > 0) {
                            media.setDownloadStatus("未全部下载");
                            continue;
                        }
                    }
                }
                //里面是关联查询匹配,如果没有下载记录,就塞入未下载
                if (ObjectUtils.isEmpty(media.getDownloadStatus()))
                    media.setDownloadStatus("未下载");
            }
        } catch (Exception e) {
            throw new RuntimeException("服务器错误,错误原因是:" + e.getMessage() + "请联系运维!");
        }
        return list;
    }


    @Override
    public List<Media> selectAllfollow(MediaRequest info) {
        return mediaMapper.selectAllfollow(info);
    }
}