ArticleServiceImpl.java 5.13 KB
package com.sincere.student.service.impl;

import com.github.pagehelper.PageHelper;
import com.sincere.student.dto.ArticleSearchDto;
import com.sincere.student.mapper.ArticleMapper;
import com.sincere.student.model.Article;
import com.sincere.student.model.Consult;
import com.sincere.student.service.ArticleService;
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.ArrayList;
import java.util.Arrays;
import java.util.LinkedList;
import java.util.List;

@Service
public class ArticleServiceImpl implements ArticleService {

    @Autowired
    ArticleMapper articleMapper;

    @Override
    public Page<Article> getList(ArticleSearchDto articleSearchDto) {
        Page<Article> result = new Page<>(articleSearchDto.getPage(), articleSearchDto.getPageSize());
        if (StringUtils.isNotBlank(articleSearchDto.getTitle())) {
            articleSearchDto.setTitle("%" + articleSearchDto.getTitle() + "%");
        }
        PageHelper.startPage(articleSearchDto.getPage(), articleSearchDto.getPageSize());
        List<Article> list = articleMapper.getList(articleSearchDto);
        for (Article article : list) {
            String[] urlList = article.getImageUrl().split(",");
            article.setImageUrlList(Arrays.asList(urlList));
            article.setImageCount(urlList.length);
        }
        List<Article> addAdvertList = new ArrayList<>();
        for (int i = 0; i < list.size(); i++) {
            addAdvertList.add(list.get(i));
            if (i % 6 == 5) {
                try {
                    Article advert = articleMapper.getAdvert();
                    String[] urlList = advert.getImageUrl().split(",");
                    advert.setImageUrlList(Arrays.asList(urlList));
                    advert.setImageCount(urlList.length);
                    addAdvertList.add(advert);
                } catch (Exception e) {

                }
            }
        }
        result.setList(addAdvertList);
        result.setCount(articleMapper.getListCount(articleSearchDto));
        return result;
    }

    @Override
    public Page<Article> getAdminList(ArticleSearchDto articleSearchDto) {
        Page<Article> result = new Page<>(articleSearchDto.getPage(), articleSearchDto.getPageSize());
        if (StringUtils.isNotBlank(articleSearchDto.getTitle())) {
            articleSearchDto.setTitle("%" + articleSearchDto.getTitle() + "%");
        }
        PageHelper.startPage(articleSearchDto.getPage(), articleSearchDto.getPageSize());
        List<Article> list = articleMapper.getList(articleSearchDto);
        for (Article article : list) {
            String[] urlList = article.getImageUrl().split(",");
            article.setImageUrlList(Arrays.asList(urlList));
            article.setImageCount(urlList.length);
        }
        result.setList(list);
        result.setCount(articleMapper.getListCount(articleSearchDto));
        return result;
    }

    @Override
    public List<Article> getRelationList(int universityId) {
        return articleMapper.getRelationList(universityId);
    }

    @Override
    public Article selectById(int id) {
        Article article = articleMapper.selectById(id);
        String[] urlList = article.getImageUrl().split(",");
        article.setImageUrlList(Arrays.asList(urlList));
        article.setImageCount(urlList.length);
        return article;
    }

    @Override
    public int create(Article article) {
        if (article.getType() == 1) {
            article.setColumnType(0);
        }
        //排序
        Integer sort = article.getSort();
        List<Article> articleList = articleMapper.countSort(sort.intValue(), 1, null);
        if (!CollectionUtils.isEmpty(articleList)) {
            int i = 1;
            for (Article oldArticle : articleList) {
                int add = i + sort;
                if (add > oldArticle.getSort()) {
                    //若已存在自增1
                    oldArticle.setSort(oldArticle.getSort() + 1);
                    articleMapper.update(oldArticle);
                }
                i++;
            }
        }
        articleMapper.create(article);
        return article.getId();
    }

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

    @Override
    public int update(Article article) {
        if (article.getType() == 1) {
            article.setColumnType(0);
        }
        //排序
        Integer sort = article.getSort();
        List<Article> articleList = articleMapper.countSort(sort.intValue(), 2, article.getId());
        if (!CollectionUtils.isEmpty(articleList)) {
            int i = 1;
            for (Article oldArticle : articleList) {
                int add = i + sort;
                if (add > oldArticle.getSort()) {
                    //若已存在自增1
                    oldArticle.setSort(oldArticle.getSort() + 1);
                    articleMapper.update(oldArticle);
                }
                i++;
            }
        }
        return articleMapper.update(article);
    }
}