parent
e2ba722cef
commit
3bc46f39a6
@ -0,0 +1,142 @@
|
||||
package org.sang.service;
|
||||
|
||||
import org.sang.bean.Article;
|
||||
import org.sang.mapper.ArticleMapper;
|
||||
import org.sang.mapper.TagsMapper;
|
||||
import org.sang.utils.Util;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
import java.sql.Timestamp;
|
||||
import java.util.List;
|
||||
|
||||
|
||||
@Service
|
||||
@Transactional
|
||||
public class ArticleService {
|
||||
@Autowired
|
||||
ArticleMapper articleMapper;
|
||||
@Autowired
|
||||
TagsMapper tagsMapper;
|
||||
|
||||
public int addNewArticle(Article article) {
|
||||
//处理文章摘要
|
||||
if (article.getSummary() == null || "".equals(article.getSummary())) {
|
||||
//直接截取
|
||||
String stripHtml = stripHtml(article.getHtmlContent());
|
||||
article.setSummary(stripHtml.substring(0, stripHtml.length() > 50 ? 50 : stripHtml.length()));
|
||||
}
|
||||
if (article.getId() == -1) {
|
||||
//添加操作
|
||||
Timestamp timestamp = new Timestamp(System.currentTimeMillis());
|
||||
if (article.getState() == 1) {
|
||||
//设置发表日期
|
||||
article.setPublishDate(timestamp);
|
||||
}
|
||||
article.setEditTime(timestamp);
|
||||
//设置当前用户
|
||||
article.setUid(Util.getCurrentUser().getId());
|
||||
int i = articleMapper.addNewArticle(article);
|
||||
//打标签
|
||||
String[] dynamicTags = article.getDynamicTags();
|
||||
if (dynamicTags != null && dynamicTags.length > 0) {
|
||||
int tags = addTagsToArticle(dynamicTags, article.getId());
|
||||
if (tags == -1) {
|
||||
return tags;
|
||||
}
|
||||
}
|
||||
return i;
|
||||
} else {
|
||||
Timestamp timestamp = new Timestamp(System.currentTimeMillis());
|
||||
if (article.getState() == 1) {
|
||||
//设置发表日期
|
||||
article.setPublishDate(timestamp);
|
||||
}
|
||||
//更新
|
||||
article.setEditTime(new Timestamp(System.currentTimeMillis()));
|
||||
int i = articleMapper.updateArticle(article);
|
||||
//修改标签
|
||||
String[] dynamicTags = article.getDynamicTags();
|
||||
if (dynamicTags != null && dynamicTags.length > 0) {
|
||||
int tags = addTagsToArticle(dynamicTags, article.getId());
|
||||
if (tags == -1) {
|
||||
return tags;
|
||||
}
|
||||
}
|
||||
return i;
|
||||
}
|
||||
}
|
||||
|
||||
private int addTagsToArticle(String[] dynamicTags, Long aid) {
|
||||
//1.删除该文章目前所有的标签
|
||||
tagsMapper.deleteTagsByAid(aid);
|
||||
//2.将上传上来的标签全部存入数据库
|
||||
tagsMapper.saveTags(dynamicTags);
|
||||
//3.查询这些标签的id
|
||||
List<Long> tIds = tagsMapper.getTagsIdByTagName(dynamicTags);
|
||||
//4.重新给文章设置标签
|
||||
int i = tagsMapper.saveTags2ArticleTags(tIds, aid);
|
||||
return i == dynamicTags.length ? i : -1;
|
||||
}
|
||||
|
||||
public String stripHtml(String content) {
|
||||
content = content.replaceAll("<p .*?>", "");
|
||||
content = content.replaceAll("<br\\s*/?>", "");
|
||||
content = content.replaceAll("\\<.*?>", "");
|
||||
return content;
|
||||
}
|
||||
|
||||
public List<Article> getArticleByState(Integer state, Integer page, Integer count,String keywords) {
|
||||
int start = (page - 1) * count;
|
||||
Long uid = Util.getCurrentUser().getId();
|
||||
return articleMapper.getArticleByState(state, start, count, uid,keywords);
|
||||
}
|
||||
|
||||
// public List<Article> getArticleByStateByAdmin(Integer page, Integer count,String keywords) {
|
||||
// int start = (page - 1) * count;
|
||||
// return articleMapper.getArticleByStateByAdmin(start, count,keywords);
|
||||
// }
|
||||
|
||||
public int getArticleCountByState(Integer state, Long uid,String keywords) {
|
||||
return articleMapper.getArticleCountByState(state, uid,keywords);
|
||||
}
|
||||
|
||||
public int updateArticleState(Long[] aids, Integer state) {
|
||||
if (state == 2) {
|
||||
return articleMapper.deleteArticleById(aids);
|
||||
} else {
|
||||
return articleMapper.updateArticleState(aids, 2);//放入到回收站中
|
||||
}
|
||||
}
|
||||
|
||||
public int restoreArticle(Integer articleId) {
|
||||
return articleMapper.updateArticleStateById(articleId, 1); // 从回收站还原在原处
|
||||
}
|
||||
|
||||
public Article getArticleById(Long aid) {
|
||||
Article article = articleMapper.getArticleById(aid);
|
||||
articleMapper.pvIncrement(aid);
|
||||
return article;
|
||||
}
|
||||
|
||||
public void pvStatisticsPerDay() {
|
||||
articleMapper.pvStatisticsPerDay();
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取最近七天的日期
|
||||
* @return
|
||||
*/
|
||||
public List<String> getCategories() {
|
||||
return articleMapper.getCategories(Util.getCurrentUser().getId());
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取最近七天的数据
|
||||
* @return
|
||||
*/
|
||||
public List<Integer> getDataStatistics() {
|
||||
return articleMapper.getDataStatistics(Util.getCurrentUser().getId());
|
||||
}
|
||||
}
|
Loading…
Reference in new issue