文章管理的部署

  • 仪表盘显示发布的文章总数

  1. 在仪表盘可以看见文章标题

  2. 在仪表盘中显示15条文章

  3. 在仪表盘中实时更新文章总数

  4. 更改文章内容不会更新文章总数

  5. 仪表盘列表按照发布时间排序

  6. 点击列表中的文章可以跳转到相应文章页面

  • 文章管理内容

  1. 仪表盘文章按照发布时间排序

  2. 显示每个文章标签、发布时间、浏览量标签

  3. 点击文章标题可以跳转入文章界面

  4. 文章标题只显示15篇文章,超过15篇文章会在右下角显示总页数和下一页

  • 文章发布

  1. 文章标题填写超过25字,文章发表失败

  2. 文章标题不能超过25个字,文章内容不受限制

  3. 用户可以创建新文章,标题为不填(发布失败)

  4. 用户可以创建新文章,填写标题(发布成功)

  5. 创建文章后自动生成创建时间

  6. 发布文章可以开启和关闭评论功能

  • 文章编辑、删除

  1. 用户可以编辑已有文章,可以修改文章标题,文章内容

  2. 用户编辑已有文章,修改标题超过25个字无法保存

  3. 点击修改、修改文章标题、文章标签、文章内容后,点击保存会弹出保存成功

  4. 用户可以删除已有文章,删除后该文章的评论从会在仪表盘列表中删除

  5. 删除文章时,会弹出提示是否删除,点击是后会显示删除成功,列表文章数量减少

  6. 删除文章后,点击仪表盘,显示减少一条文章

  7. 用户可以点击文章列表中的文章标题,进入文章详情页面查看文章的详细内容

仪表盘显示发布的文章总数如图所示


import com.example.xiangmuqaq.model.ResponseData.ArticleResponseData;
import com.example.xiangmuqaq.model.ResponseData.StaticticsBo;
import com.example.xiangmuqaq.model.domain.Article;
import com.example.xiangmuqaq.model.domain.Comment;
import com.example.xiangmuqaq.service.IArticleService;
import com.example.xiangmuqaq.service.ISiteService;
import com.github.pagehelper.PageInfo;
import org.junit.platform.commons.util.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.*;

import javax.servlet.http.HttpServletRequest;
import java.util.List;

/**
* Qingke
* 2023/10/25
* 21:18
**/
@Controller
@RequestMapping("/admin")
public class AdminController {
private static final Logger logger = LoggerFactory.getLogger(AdminController.class);

@Autowired
private ISiteService siteServiceImpl;
@Autowired
private IArticleService articleServiceImpl;

// 管理中心起始页
@GetMapping(value = {"", "/index"})
public String index(HttpServletRequest request) {
// 获取最新的15篇博客、评论以及统计数据
List<Article> articles = siteServiceImpl.recentArticles(15);
List<Comment> comments = siteServiceImpl.recentComments(15);
StaticticsBo staticticsBo = siteServiceImpl.getStatistics();
// 向Request域中存储数据
request.setAttribute("comments", comments);
request.setAttribute("articles", articles);
request.setAttribute("statistics", staticticsBo);
return "back/index";
}

// 向文章发表页面跳转
@GetMapping(value = "/article/toEditPage")
public String newArticle( ) {
return "back/article_edit";
}
// 发表文章
@PostMapping(value = "/article/publish")
@ResponseBody
public ArticleResponseData publishArticle(Article article) {
if (StringUtils.isBlank(article.getCategories())) {
article.setCategories("默认分类");
}
try {
articleServiceImpl.publish(article);
logger.info("文章发布成功");
return ArticleResponseData.ok();
} catch (Exception e) {
logger.error("文章发布失败,错误信息: "+e.getMessage());
return ArticleResponseData.fail();
}
}
// 跳转到后台文章列表页面
@GetMapping(value = "/article")
public String index(@RequestParam(value = "page", defaultValue = "1") int page,
@RequestParam(value = "count", defaultValue = "15") int count,
HttpServletRequest request) {
PageInfo<Article> pageInfo = articleServiceImpl.selectArticleWithPage(page, count);
request.setAttribute("articles", pageInfo);
return "back/article_list";
}

// 向文章修改页面跳转
@GetMapping(value = "/article/{id}")
public String editArticle(@PathVariable("id") String id, HttpServletRequest request) {
Article article = articleServiceImpl.selectArticleWithId(Integer.parseInt(id));
request.setAttribute("contents", article);
request.setAttribute("categories", article.getCategories());
return "back/article_edit";
}

// 修改处理处理
@PostMapping(value = "/article/modify")
@ResponseBody
public ArticleResponseData modifyArticle(Article article) {
try {
articleServiceImpl.updateArticleWithId(article);
logger.info("文章更新成功");
return ArticleResponseData.ok();
} catch (Exception e) {
logger.error("文章更新失败,错误信息: "+e.getMessage());
return ArticleResponseData.fail();
}
}

// 文章删除
@PostMapping(value = "/article/delete")
@ResponseBody
public ArticleResponseData delete(@RequestParam int id) {
try {
articleServiceImpl.deleteArticleWithId(id);
logger.info("文章删除成功");
return ArticleResponseData.ok();
} catch (Exception e) {
logger.error("文章删除失败,错误信息: "+e.getMessage());
return ArticleResponseData.fail();
}
}



}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值