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 | 109 +++++++++++++++++++++++++++++++++++++++++++++++-------
1 files changed, 95 insertions(+), 14 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 8ff8743..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,31 +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.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.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;
@@ -34,6 +35,7 @@
import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource;
+import javax.servlet.http.HttpServletRequest;
@Service
@Slf4j
@@ -42,8 +44,11 @@
@Resource
private ColumnMapper columnMapper;
+ @Resource
+ private CompanyMapper companyMapper;
+
@Autowired
- private ICmsCoreService cmsCoreService;
+ private IReleaseService releaseService;
@Override
public Result getArticleInPage(AdminArticleDto adminArticleDto) {
@@ -51,18 +56,32 @@
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);
}
@@ -96,6 +115,9 @@
String atlas = adminAddArticleDto.getAtlas();
articleEntity.setAtlas(atlas);
Date releaseTime = adminAddArticleDto.getReleaseTime();
+ if (releaseTime == null) {
+ releaseTime = new Date();
+ }
articleEntity.setReleaseTime(releaseTime);
Integer isTop = adminAddArticleDto.getIsTop();
articleEntity.setIsTop(isTop);
@@ -108,6 +130,7 @@
articleEntity.setArticleUrl(adminAddArticleDto.getArticleUrl());
articleEntity.setType(adminAddArticleDto.getType());
+ articleEntity.setContentType(adminAddArticleDto.getContentType());
this.baseMapper.insert(articleEntity);
return Result.ok("添加成功");
}
@@ -144,8 +167,6 @@
}
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();
@@ -160,7 +181,12 @@
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();
@@ -171,6 +197,7 @@
if(ObjectUtil.isNotEmpty(releaseTime)){
articleEntity.setReleaseTime(releaseTime);
}
+ Integer releaseStatus = adminUpdateArticleDto.getReleaseStatus();
articleEntity.setReleaseStatus(releaseStatus);
String articleDetails = adminUpdateArticleDto.getArticleDetails();
articleEntity.setArticleDetails(articleDetails);
@@ -179,6 +206,10 @@
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("更新成功");
}
@@ -207,6 +238,8 @@
}
articleEntity.setReleaseStatus(ArticleEntity.RELEASE_STATUS_NO);
this.baseMapper.updateById(articleEntity);
+
+ releaseService.releaseColumn(articleEntity.getColumnId(), 2, articleEntity.getCompanyId());
return Result.ok("操作成功");
}
@@ -233,13 +266,61 @@
}
@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