VideoServiceImpl.java 3.46 KB
package com.sincere.student.service.impl;

import com.github.pagehelper.PageHelper;
import com.sincere.student.dto.VideoSearchDto;
import com.sincere.student.mapper.VideoMapper;
import com.sincere.student.model.ColumnType;
import com.sincere.student.model.Video;
import com.sincere.student.service.VideoService;
import com.sincere.student.utils.Page;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils;

import java.util.Arrays;
import java.util.List;

@Service
public class VideoServiceImpl implements VideoService {


    @Autowired
    VideoMapper videoMapper;

    @Override
    public Page<Video> getUniversityList(VideoSearchDto dto) {
        Page<Video> page = new Page<>(dto.getPage(), dto.getPageSize());
        if (StringUtils.isNotBlank(dto.getUniversityName())) {
            dto.setUniversityName("%" + dto.getUniversityName() + "%");
        }
        PageHelper.startPage(dto.getPage(), dto.getPageSize());
        page.setList(videoMapper.getUniversityList(dto));
        page.setCount(videoMapper.getUniversityListCount(dto));
        return page;
    }

    @Override
    public Page<Video> getList(VideoSearchDto dto) {
        Page<Video> page = new Page<>(dto.getPage(), dto.getPageSize());
        if (StringUtils.isNotBlank(dto.getUniversityName())) {
            dto.setUniversityName("%" + dto.getUniversityName() + "%");
        }

        PageHelper.startPage(dto.getPage(), dto.getPageSize());
        List<Video> list = videoMapper.getList(dto);
        for (Video video : list) {
            videoMapper.updateRead(video.getId());
        }
        for (Video video : list) {
            String[] array = video.getVideoUrl().split(",");
            video.setVideoUrlList(Arrays.asList(array));
        }
        page.setList(list);
        page.setCount(videoMapper.getListCount(dto));
        return page;
    }

    @Override
    public Video getDetail(int id) {
        return videoMapper.getById(id);
    }

    @Override
    public int create(Video video) {
        //排序
        Integer sort = video.getSort();
        List<Video> videoList = videoMapper.countSort(sort.intValue(), 1, null);
        if (!CollectionUtils.isEmpty(videoList)) {
            int i = 1;
            for (Video oldVideo : videoList) {
                int add = i + sort;
                if (add > oldVideo.getSort()) {
                    //若已存在自增1
                    oldVideo.setSort(oldVideo.getSort() + 1);
                    videoMapper.update(oldVideo);
                }
                i++;
            }
        }
        videoMapper.create(video);
        return video.getId();
    }

    @Override
    public int update(Video video) {
        //排序
        Integer sort = video.getSort();
        List<Video> videoList = videoMapper.countSort(sort.intValue(), 2, video.getId());
        if (!CollectionUtils.isEmpty(videoList)) {
            int i = 1;
            for (Video oldVideo : videoList) {
                int add = i + sort;
                if (add > oldVideo.getSort()) {
                    //若已存在自增1
                    oldVideo.setSort(oldVideo.getSort() + 1);
                    videoMapper.update(oldVideo);
                }
                i++;
            }
        }
        return videoMapper.update(video);
    }

    @Override
    public int delete(int id) {
        return videoMapper.delete(id);
    }
}