ContentServiceImpl.java 4.43 KB
package com.hui.iqiyi.service.impl;

import com.hui.iqiyi.Util.ReturnBean;
import com.hui.iqiyi.entity.Content;
import com.hui.iqiyi.entity.Media;
import com.hui.iqiyi.entity.Movie;
import com.hui.iqiyi.entity.Program;
import com.hui.iqiyi.mapper.ContentMapper;
import com.hui.iqiyi.request.ContentRequest;
import com.hui.iqiyi.request.ProgramRequest;
import com.hui.iqiyi.response.ContentResponse;
import com.hui.iqiyi.service.IContentService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.hui.iqiyi.service.IMovieService;
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 org.springframework.transaction.annotation.Transactional;

import javax.annotation.Resource;
import java.util.List;
import java.util.stream.Collectors;

/**
 * <p>
 * 服务实现类
 * </p>
 *
 * @author jobob
 * @since 2021-06-03
 */
@Service
@Primary
public class ContentServiceImpl extends ServiceImpl<ContentMapper, Content> implements IContentService {

    @Resource
    private ContentMapper contentMapper;

    @Autowired
    private IContentService iContentService;

    @Autowired
    private IProgramService iProgramService;

    @Autowired
    private IMovieService iMovieService;

    @Override
    public ReturnBean updateContent(Content content) {
        System.out.println("---------------------更新" + content.toString());
        if (ObjectUtils.isEmpty(content))
            throw new RuntimeException("传入的信息不能为空!");


        try {
            if (contentMapper.updateContent(content) == 0)
                ReturnBean.errorSuccessInfo("更新失败!");
        } catch (Exception e) {
            throw new RuntimeException("更新表头出现错误!错误信息如下" + e.getMessage());
        }
        return ReturnBean.setSuccessInfo("更新成功!");
    }

    //查询单集列表
    @Override
    public List<Content> selectAllSingle(ContentRequest request, Long id) {
        return contentMapper.selectAllSingle(request, id);
    }


    @Override
    public List<ContentResponse> selectAllType(ContentResponse contentResponse) {
        return contentMapper.selectAllType(contentResponse);
    }

    @Override
    public ContentResponse selectAllCont() {
        List<Integer> integers = contentMapper.selectAllCont();
        ContentResponse response = new ContentResponse();
        response.setDrama(integers.get(1));
        response.setMonolithic(integers.get(0));
        return response;
    }

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



}