package com.xcong.farmer.cms.modules.system.service.Impl; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.xcong.farmer.cms.common.response.Result; import com.xcong.farmer.cms.modules.system.dto.AdminAddArticleDto; import com.xcong.farmer.cms.modules.system.dto.AdminArticleDto; import com.xcong.farmer.cms.modules.system.dto.AdminUpdateArticleDto; import com.xcong.farmer.cms.modules.system.entity.ArticleEntity; import com.xcong.farmer.cms.modules.system.entity.ColumnEntity; import com.xcong.farmer.cms.modules.system.mapper.ArticleMapper; import com.xcong.farmer.cms.modules.system.mapper.ColumnMapper; import com.xcong.farmer.cms.modules.system.service.IArticleService; import com.xcong.farmer.cms.modules.system.vo.AdminArticleVo; import com.xcong.farmer.cms.modules.system.vo.AdminSeeArticleInfoVo; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Service; import java.util.ArrayList; import java.util.List; import java.util.Date; import cn.hutool.core.util.StrUtil; import cn.hutool.core.util.ObjectUtil; import org.springframework.transaction.annotation.Transactional; import javax.annotation.Resource; @Service @Slf4j public class ArticleServiceImpl extends ServiceImpl implements IArticleService { @Resource private ColumnMapper columnMapper; @Override public Result getArticleInPage(AdminArticleDto adminArticleDto) { Page page = new Page<>(adminArticleDto.getPageNum(), adminArticleDto.getPageSize()); ArticleEntity articleEntity = new ArticleEntity(); Long columnId = adminArticleDto.getColumnId() == null ? 0L : adminArticleDto.getColumnId(); if(columnId != 0L){ articleEntity.setColumnId(columnId); } String title = adminArticleDto.getTitle(); if(StrUtil.isNotEmpty(title)){ articleEntity.setTitle(title); } IPage list = this.baseMapper.selectAdminArticleInPage(page,articleEntity); return Result.ok(list); } @Override @Transactional public Result addArticle(AdminAddArticleDto adminAddArticleDto) { ArticleEntity articleEntity = new ArticleEntity(); String title = adminAddArticleDto.getTitle(); if(StrUtil.isEmpty(title)){ return Result.fail("请输入文章标题"); } articleEntity.setTitle(title); String childTitle = adminAddArticleDto.getChildTitle(); if(StrUtil.isNotEmpty(childTitle)){ articleEntity.setChildTitle(childTitle); } String describe = adminAddArticleDto.getDescribe(); if(StrUtil.isNotEmpty(describe)){ articleEntity.setDescribe(describe); } long columnId = adminAddArticleDto.getColumnId() == null ? 0L : adminAddArticleDto.getColumnId(); if(columnId == 0L){ return Result.fail("请选择文章栏目"); } ColumnEntity columnEntity = columnMapper.selectById(columnId); if(ObjectUtil.isEmpty(columnEntity)){ return Result.fail("请选择文章栏目"); } articleEntity.setColumnId(columnId); Integer visits = adminAddArticleDto.getVisits() == null ? 0 : adminAddArticleDto.getVisits(); articleEntity.setVisits(visits); String mainDiagram = adminAddArticleDto.getMainDiagram(); if(StrUtil.isNotEmpty(mainDiagram)){ articleEntity.setMainDiagram(mainDiagram); } String atlas = adminAddArticleDto.getAtlas(); if(StrUtil.isNotEmpty(atlas)){ articleEntity.setAtlas(atlas); } Date releaseTime = adminAddArticleDto.getReleaseTime(); if(ObjectUtil.isNotEmpty(releaseTime)){ articleEntity.setReleaseTime(releaseTime); } Integer releaseStatus = adminAddArticleDto.getReleaseStatus(); articleEntity.setReleaseStatus(releaseStatus); String articleDetails = adminAddArticleDto.getArticleDetails(); if(StrUtil.isNotEmpty(articleDetails)){ articleEntity.setArticleDetails(articleDetails); } this.baseMapper.insert(articleEntity); return Result.ok("添加成功"); } @Override @Transactional public Result deleteArticle(Long id) { ArticleEntity articleEntity = this.baseMapper.selectById(id); if(ObjectUtil.isEmpty(articleEntity)){ return Result.fail("文章不存在"); } articleEntity.setDelStatus(ArticleEntity.DELETE_STATUS_YES); this.baseMapper.updateById(articleEntity); return Result.ok("删除成功"); } @Override public Result seeArticleInfo(Long id) { ArticleEntity articleEntity = this.baseMapper.selectById(id); if(ObjectUtil.isEmpty(articleEntity)){ return Result.fail("文章不存在"); } AdminSeeArticleInfoVo adminSeeArticleInfoVo = this.baseMapper.selectAdminArticleByid(id); return Result.ok(adminSeeArticleInfoVo); } @Override @Transactional public Result updateArticle(AdminUpdateArticleDto adminUpdateArticleDto) { Long id = adminUpdateArticleDto.getId(); ArticleEntity articleEntity = this.baseMapper.selectById(id); if(ObjectUtil.isEmpty(articleEntity)){ return Result.fail("文章不存在"); } String title = adminUpdateArticleDto.getTitle(); if(StrUtil.isEmpty(title)){ return Result.fail("请输入文章标题"); } articleEntity.setTitle(title); String childTitle = adminUpdateArticleDto.getChildTitle(); if(StrUtil.isNotEmpty(childTitle)){ articleEntity.setChildTitle(childTitle); } String describe = adminUpdateArticleDto.getDescribe(); if(StrUtil.isNotEmpty(describe)){ articleEntity.setDescribe(describe); } long columnId = adminUpdateArticleDto.getColumnId() == null ? 0L : adminUpdateArticleDto.getColumnId(); if(columnId == 0L){ return Result.fail("请选择文章栏目"); } ColumnEntity columnEntity = columnMapper.selectById(columnId); if(ObjectUtil.isEmpty(columnEntity)){ return Result.fail("请选择文章栏目"); } articleEntity.setColumnId(columnId); Integer visits = adminUpdateArticleDto.getVisits() == null ? 0 : adminUpdateArticleDto.getVisits(); articleEntity.setVisits(visits); String mainDiagram = adminUpdateArticleDto.getMainDiagram(); if(StrUtil.isNotEmpty(mainDiagram)){ articleEntity.setMainDiagram(mainDiagram); } String atlas = adminUpdateArticleDto.getAtlas(); if(StrUtil.isNotEmpty(atlas)){ articleEntity.setAtlas(atlas); } Date releaseTime = adminUpdateArticleDto.getReleaseTime(); if(ObjectUtil.isNotEmpty(releaseTime)){ articleEntity.setReleaseTime(releaseTime); } Integer releaseStatus = adminUpdateArticleDto.getReleaseStatus(); articleEntity.setReleaseStatus(releaseStatus); String articleDetails = adminUpdateArticleDto.getArticleDetails(); if(StrUtil.isNotEmpty(articleDetails)){ articleEntity.setArticleDetails(articleDetails); } this.baseMapper.updateById(articleEntity); return Result.ok("更新成功"); } }