From 49dbcdadd860b7613063ee618fbe38a0593d5bd9 Mon Sep 17 00:00:00 2001
From: Helius <wangdoubleone@gmail.com>
Date: Mon, 11 Jul 2022 15:45:29 +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