From 0ecfecd2b85b71884fcfba8fa6849be963e434fd Mon Sep 17 00:00:00 2001 From: Helius <wangdoubleone@gmail.com> Date: Mon, 11 Jul 2022 16:47:53 +0800 Subject: [PATCH] fix --- src/main/java/com/xcong/farmer/cms/modules/system/service/Impl/ArticleServiceImpl.java | 208 +++++++++++++++++++++++++++++++++++++-------------- 1 files changed, 150 insertions(+), 58 deletions(-) diff --git a/src/main/java/com/xcong/farmer/cms/modules/system/service/Impl/ArticleServiceImpl.java b/src/main/java/com/xcong/farmer/cms/modules/system/service/Impl/ArticleServiceImpl.java index 475b739..f6af191 100644 --- a/src/main/java/com/xcong/farmer/cms/modules/system/service/Impl/ArticleServiceImpl.java +++ b/src/main/java/com/xcong/farmer/cms/modules/system/service/Impl/ArticleServiceImpl.java @@ -1,27 +1,32 @@ package com.xcong.farmer.cms.modules.system.service.Impl; +import cn.hutool.core.collection.CollUtil; +import cn.hutool.core.date.DateUtil; 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.contants.AppContants; 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.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.UserRoleEntity; +import com.xcong.farmer.cms.modules.core.service.ICmsCoreService; +import com.xcong.farmer.cms.modules.system.dto.*; +import com.xcong.farmer.cms.modules.system.entity.*; 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.mapper.CompanyMapper; import com.xcong.farmer.cms.modules.system.service.IArticleService; +import com.xcong.farmer.cms.modules.system.service.IReleaseService; +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 com.xcong.farmer.cms.modules.system.vo.WebArticleVo; import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.util.ArrayList; +import java.util.Arrays; import java.util.List; import java.util.Date; @@ -30,6 +35,7 @@ import org.springframework.transaction.annotation.Transactional; import javax.annotation.Resource; +import javax.servlet.http.HttpServletRequest; @Service @Slf4j @@ -38,47 +44,65 @@ @Resource private ColumnMapper columnMapper; + @Resource + private CompanyMapper companyMapper; + + @Autowired + private IReleaseService releaseService; + @Override public Result getArticleInPage(AdminArticleDto adminArticleDto) { + UserEntity userlogin = LoginUserUtil.getLoginUser(); + long companyId = userlogin.getCompanyId() == null ? UserEntity.USER_BELONG_TOP : userlogin.getCompanyId(); Page<AdminArticleVo> 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 columnIdStrs = adminArticleDto.getColumnIdStr(); + if(StrUtil.isNotEmpty(columnIdStrs)){ + String[] columnIdStr = columnIdStrs.split(StringPool.COMMA); + List<Long> columnList = new ArrayList<>(); + for(String columnIdString : columnIdStr){ + columnList.add(Long.valueOf(columnIdString)); + } + articleEntity.setColumnList(columnList); } String title = adminArticleDto.getTitle(); if(StrUtil.isNotEmpty(title)){ articleEntity.setTitle(title); } + + if(UserEntity.USER_BELONG_TOP != companyId){ + articleEntity.setCompanyId(companyId); + } IPage<AdminArticleVo> list = this.baseMapper.selectAdminArticleInPage(page,articleEntity); + if (CollUtil.isNotEmpty(list.getRecords())) { + for (AdminArticleVo record : list.getRecords()) { + // 站内 + if (record.getType() == 1) { + record.setArticleUrl(record.getBaseUrl() + record.getPath() + "/" + record.getId() + ".html"); + } + } + } 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(); - if(StrUtil.isEmpty(title)){ - return Result.fail("请输入文章标题"); - } articleEntity.setTitle(title); String childTitle = adminAddArticleDto.getChildTitle(); - if(StrUtil.isNotEmpty(childTitle)){ articleEntity.setChildTitle(childTitle); - } String author = adminAddArticleDto.getAuthor(); - if(StrUtil.isNotEmpty(author)){ articleEntity.setAuthor(author); - } + String authorBelong = adminAddArticleDto.getAuthorBelong(); + articleEntity.setAuthorBelong(authorBelong); String remark = adminAddArticleDto.getRemark(); - if(StrUtil.isNotEmpty(remark)){ articleEntity.setRemark(remark); - } 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("请选择文章栏目"); @@ -87,24 +111,26 @@ 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); + if (releaseTime == null) { + releaseTime = new Date(); } + articleEntity.setReleaseTime(releaseTime); + Integer isTop = adminAddArticleDto.getIsTop(); + articleEntity.setIsTop(isTop); Integer releaseStatus = adminAddArticleDto.getReleaseStatus(); articleEntity.setReleaseStatus(releaseStatus); String articleDetails = adminAddArticleDto.getArticleDetails(); - if(StrUtil.isNotEmpty(articleDetails)){ articleEntity.setArticleDetails(articleDetails); - } + String uploadFile = adminAddArticleDto.getUploadFile(); + articleEntity.setUploadFile(uploadFile); + articleEntity.setArticleUrl(adminAddArticleDto.getArticleUrl()); + articleEntity.setType(adminAddArticleDto.getType()); + articleEntity.setContentType(adminAddArticleDto.getContentType()); this.baseMapper.insert(articleEntity); return Result.ok("添加成功"); } @@ -139,57 +165,51 @@ if(ObjectUtil.isEmpty(articleEntity)){ return Result.fail("文章不存在"); } - articleEntity.getReleaseStatus(); + Integer isTop = adminUpdateArticleDto.getIsTop(); + articleEntity.setIsTop(isTop); 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); - } + articleEntity.setChildTitle(childTitle); String author = adminUpdateArticleDto.getAuthor(); - if(StrUtil.isNotEmpty(author)){ - articleEntity.setAuthor(author); - } + articleEntity.setAuthor(author); String remark = adminUpdateArticleDto.getRemark(); - if(StrUtil.isNotEmpty(remark)){ - articleEntity.setRemark(remark); - } + articleEntity.setRemark(remark); 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("请选择文章栏目"); } + + if (!articleEntity.getColumnId().equals(columnId) && articleEntity.getBeforeColumnId() == -1) { + articleEntity.setBeforeColumnId(articleEntity.getColumnId()); + } 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); - } + articleEntity.setMainDiagram(mainDiagram); String atlas = adminUpdateArticleDto.getAtlas(); - if(StrUtil.isNotEmpty(atlas)){ - articleEntity.setAtlas(atlas); - } + articleEntity.setAtlas(atlas); Date releaseTime = adminUpdateArticleDto.getReleaseTime(); if(ObjectUtil.isNotEmpty(releaseTime)){ articleEntity.setReleaseTime(releaseTime); } Integer releaseStatus = adminUpdateArticleDto.getReleaseStatus(); - if(!ArticleEntity.RELEASE_STATUS_YES.equals(releaseStatus)){ - return Result.fail("请先取消文章的发布状态"); - } articleEntity.setReleaseStatus(releaseStatus); String articleDetails = adminUpdateArticleDto.getArticleDetails(); - if(StrUtil.isNotEmpty(articleDetails)){ - articleEntity.setArticleDetails(articleDetails); - } + articleEntity.setArticleDetails(articleDetails); + String uploadFile = adminUpdateArticleDto.getUploadFile(); + articleEntity.setUploadFile(uploadFile); + + articleEntity.setArticleUrl(adminUpdateArticleDto.getArticleUrl()); + articleEntity.setType(adminUpdateArticleDto.getType()); + articleEntity.setContentType(adminUpdateArticleDto.getContentType()); + + String authorBelong = adminUpdateArticleDto.getAuthorBelong(); + articleEntity.setAuthorBelong(authorBelong); this.baseMapper.updateById(articleEntity); return Result.ok("更新成功"); } @@ -218,17 +238,89 @@ } articleEntity.setReleaseStatus(ArticleEntity.RELEASE_STATUS_NO); this.baseMapper.updateById(articleEntity); + + releaseService.releaseColumn(articleEntity.getColumnId(), 2, articleEntity.getCompanyId()); 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 webArticleInPage(HttpServletRequest request, WebArticleInPageDto webArticleInPageDto) { + String website = request.getHeader(AppContants.WEBSITE_HEADER); + Long companyId = getCompanyIdFromWebsite(website); + + Page<WebArticleVo> page = new Page<>(webArticleInPageDto.getPageNum(), webArticleInPageDto.getPageSize()); + ArticleEntity articleEntity = new ArticleEntity(); + Long columnId = webArticleInPageDto.getColumnId() == null ? 0L : webArticleInPageDto.getColumnId(); + if(columnId != 0L){ + articleEntity.setColumnId(columnId); + } + String author = webArticleInPageDto.getAuthor(); + if(StrUtil.isNotEmpty(author)){ + articleEntity.setAuthor(author); + } + String queryKey = webArticleInPageDto.getQueryKey(); + if(StrUtil.isNotEmpty(queryKey)){ + articleEntity.setTitle(queryKey); + } + if(UserEntity.USER_BELONG_TOP != companyId){ + articleEntity.setCompanyId(companyId); + } + String timeType = webArticleInPageDto.getTimeType(); + if(StrUtil.isNotEmpty(timeType)){ + articleEntity.setTimeType(timeType); + } + IPage<WebArticleVo> list = this.baseMapper.selectWebArticleInPage(page,articleEntity); + return Result.ok(list); + } + + @Override public Result updateStatusOn(Long id) { + Long companyId = LoginUserUtil.getCompanyId(); ArticleEntity articleEntity = this.baseMapper.selectById(id); if(ObjectUtil.isEmpty(articleEntity)){ return Result.fail("文章不存在"); } articleEntity.setReleaseStatus(ArticleEntity.RELEASE_STATUS_YES); + articleEntity.setBeforeColumnId(null); this.baseMapper.updateById(articleEntity); + + releaseService.releaseArticle(articleEntity.getId(), companyId); return Result.ok("操作成功"); } + + private Long getCompanyIdFromWebsite(String website){ + List<CompanyEntity> companyEntities = companyMapper.selectList(new QueryWrapper<>()); + Long companyId = 0L; + if(CollUtil.isNotEmpty(companyEntities)){ + for(CompanyEntity companyEntity : companyEntities){ + boolean contains = StrUtil.contains(companyEntity.getWebAddress(), website); + if(contains){ + companyId = companyEntity.getId(); + } + } + } + return companyId; + } } -- Gitblit v1.9.1