package com.xcong.farmer.cms.modules.system.service.Impl; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.toolkit.StringPool; 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.core.service.ICmsCoreService; 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.AdminDeleteDto; 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.entity.UserEntity; import com.xcong.farmer.cms.modules.system.entity.UserRoleEntity; 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.util.LoginUserUtil; 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.beans.factory.annotation.Autowired; 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; @Autowired private ICmsCoreService cmsCoreService; @Override public Result getArticleInPage(AdminArticleDto adminArticleDto) { UserEntity userlogin = LoginUserUtil.getLoginUser(); long companyId = userlogin.getCompanyId() == null ? UserEntity.USER_BELONG_TOP : userlogin.getCompanyId(); 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); } if(UserEntity.USER_BELONG_TOP != companyId){ articleEntity.setCompanyId(companyId); } IPage list = this.baseMapper.selectAdminArticleInPage(page,articleEntity); return Result.ok(list); } @Override @Transactional public Result addArticle(AdminAddArticleDto adminAddArticleDto) { UserEntity userlogin = LoginUserUtil.getLoginUser(); long companyId = userlogin.getCompanyId() == null ? UserEntity.USER_BELONG_TOP : userlogin.getCompanyId(); ArticleEntity articleEntity = new ArticleEntity(); articleEntity.setCompanyId(companyId); String title = adminAddArticleDto.getTitle(); articleEntity.setTitle(title); String childTitle = adminAddArticleDto.getChildTitle(); articleEntity.setChildTitle(childTitle); String author = adminAddArticleDto.getAuthor(); articleEntity.setAuthor(author); String authorBelong = adminAddArticleDto.getAuthorBelong(); articleEntity.setAuthorBelong(authorBelong); String remark = adminAddArticleDto.getRemark(); articleEntity.setRemark(remark); long columnId = adminAddArticleDto.getColumnId() == null ? 0L : adminAddArticleDto.getColumnId(); 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(); articleEntity.setMainDiagram(mainDiagram); String atlas = adminAddArticleDto.getAtlas(); articleEntity.setAtlas(atlas); Date releaseTime = adminAddArticleDto.getReleaseTime(); articleEntity.setReleaseTime(releaseTime); Integer isTop = adminAddArticleDto.getIsTop(); articleEntity.setIsTop(isTop); Integer releaseStatus = adminAddArticleDto.getReleaseStatus(); articleEntity.setReleaseStatus(releaseStatus); String articleDetails = adminAddArticleDto.getArticleDetails(); articleEntity.setArticleDetails(articleDetails); String uploadFile = adminAddArticleDto.getUploadFile(); articleEntity.setUploadFile(uploadFile); 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("文章不存在"); } Integer isTop = adminUpdateArticleDto.getIsTop(); articleEntity.setIsTop(isTop); Integer releaseStatus = adminUpdateArticleDto.getReleaseStatus(); articleEntity.setReleaseStatus(releaseStatus); String title = adminUpdateArticleDto.getTitle(); articleEntity.setTitle(title); String childTitle = adminUpdateArticleDto.getChildTitle(); articleEntity.setChildTitle(childTitle); String author = adminUpdateArticleDto.getAuthor(); articleEntity.setAuthor(author); String remark = adminUpdateArticleDto.getRemark(); articleEntity.setRemark(remark); long columnId = adminUpdateArticleDto.getColumnId() == null ? 0L : adminUpdateArticleDto.getColumnId(); 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(); articleEntity.setMainDiagram(mainDiagram); String atlas = adminUpdateArticleDto.getAtlas(); articleEntity.setAtlas(atlas); Date releaseTime = adminUpdateArticleDto.getReleaseTime(); if(ObjectUtil.isNotEmpty(releaseTime)){ articleEntity.setReleaseTime(releaseTime); } articleEntity.setReleaseStatus(releaseStatus); String articleDetails = adminUpdateArticleDto.getArticleDetails(); articleEntity.setArticleDetails(articleDetails); String uploadFile = adminUpdateArticleDto.getUploadFile(); articleEntity.setUploadFile(uploadFile); this.baseMapper.updateById(articleEntity); return Result.ok("更新成功"); } @Override public Result delObjs(AdminDeleteDto adminDeleteDto) { String ids = adminDeleteDto.getIds(); if(StrUtil.isNotEmpty(ids)){ String[] articleIds = ids.split(StringPool.COMMA); for(String articleIdStr : articleIds){ Long articleId = Long.valueOf(articleIdStr); ArticleEntity articleEntity = this.baseMapper.selectById(articleId); articleEntity.setDelStatus(ArticleEntity.DELETE_STATUS_YES); this.baseMapper.updateById(articleEntity); } } return Result.ok("删除成功"); } @Override public Result updateStatusOff(Long id) { ArticleEntity articleEntity = this.baseMapper.selectById(id); if(ObjectUtil.isEmpty(articleEntity)){ return Result.fail("文章不存在"); } articleEntity.setReleaseStatus(ArticleEntity.RELEASE_STATUS_NO); this.baseMapper.updateById(articleEntity); return Result.ok("操作成功"); } @Override public Result updateIstop(Long id) { ArticleEntity articleEntity = this.baseMapper.selectById(id); if(ObjectUtil.isEmpty(articleEntity)){ return Result.fail("文章不存在"); } articleEntity.setIsTop(ArticleEntity.ISTOP_YES); this.baseMapper.updateById(articleEntity); return Result.ok("操作成功"); } @Override public Result updateIstopOff(Long id) { ArticleEntity articleEntity = this.baseMapper.selectById(id); if(ObjectUtil.isEmpty(articleEntity)){ return Result.fail("文章不存在"); } articleEntity.setIsTop(ArticleEntity.ISTOP_NO); this.baseMapper.updateById(articleEntity); return Result.ok("操作成功"); } @Override public Result updateStatusOn(Long id) { ArticleEntity articleEntity = this.baseMapper.selectById(id); if(ObjectUtil.isEmpty(articleEntity)){ return Result.fail("文章不存在"); } articleEntity.setReleaseStatus(ArticleEntity.RELEASE_STATUS_YES); this.baseMapper.updateById(articleEntity); return Result.ok("操作成功"); } @Override public void releaseArticle(Long id) { ArticleEntity article = this.baseMapper.selectById(id); ColumnEntity column = columnMapper.selectById(article.getColumnId()); cmsCoreService.articleProcess(article.getId(), column.getArticleTemplate()); } }