ArticleController.java 5.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172
  1. package com.caimei.www.controller.unlimited;
  2. import com.caimei.www.controller.BaseController;
  3. import com.caimei.www.pojo.JsonModel;
  4. import com.caimei.www.pojo.page.Article;
  5. import com.caimei.www.pojo.page.BaseLink;
  6. import com.caimei.www.pojo.page.ImageLink;
  7. import com.caimei.www.service.page.ArticleService;
  8. import com.github.pagehelper.PageInfo;
  9. import org.springframework.beans.factory.annotation.Autowired;
  10. import org.springframework.stereotype.Controller;
  11. import org.springframework.ui.Model;
  12. import org.springframework.web.bind.annotation.*;
  13. import org.springframework.web.server.ServerWebExchange;
  14. import java.util.List;
  15. /**
  16. * 文章页鉴于seo,保留旧链接
  17. *
  18. * @author : Charles
  19. * @date : 2020/7/31
  20. */
  21. @Controller
  22. public class ArticleController extends BaseController {
  23. private static final String ARTICLE_LIST_PATH = "article/list";
  24. private static final String ARTICLE_DETAIL_PATH = "article/detail";
  25. private ArticleService articleService;
  26. @Autowired
  27. public void setArticleService(ArticleService articleService) {
  28. this.articleService = articleService;
  29. }
  30. /**
  31. * 文章列表【旧center】
  32. */
  33. @GetMapping("/info/center-{id}-{pageNum}.html")
  34. public String toArticleList(@PathVariable("id") Integer id, @PathVariable("id") Integer pageNum, final Model model) {
  35. List<BaseLink> typeList = articleService.getArticleTypes();
  36. model.addAttribute("articleType", typeList);
  37. model.addAttribute("typeId", id);
  38. model.addAttribute("labelId", 0);
  39. model.addAttribute("pageNum", pageNum);
  40. //model.addAttribute("pagePath", String.format("/info/center-%s-1.html", id));
  41. return ARTICLE_LIST_PATH;
  42. }
  43. /**
  44. * 文章列表【旧label】
  45. */
  46. @GetMapping("/info/label-{id}-{pageNum}.html")
  47. public String toArticleLabel(@PathVariable("id") Integer id, @PathVariable("id") Integer pageNum, final Model model) {
  48. List<BaseLink> typeList = articleService.getArticleTypes();
  49. model.addAttribute("articleType", typeList);
  50. model.addAttribute("typeId", 0);
  51. model.addAttribute("labelId", id);
  52. model.addAttribute("pageNum", pageNum);
  53. //model.addAttribute("pagePath", String.format("/info/label-%s-1.html", id));
  54. return ARTICLE_LIST_PATH;
  55. }
  56. /**
  57. * 文章搜索结果
  58. */
  59. @GetMapping("/info/search-{pageNum}.html")
  60. public String toArticleSearch(@PathVariable("pageNum") Integer pageNum, final Model model) {
  61. List<BaseLink> typeList = articleService.getArticleTypes();
  62. model.addAttribute("articleType", typeList);
  63. model.addAttribute("typeId", 0);
  64. model.addAttribute("labelId", 0);
  65. model.addAttribute("pageNum", pageNum);
  66. //model.addAttribute("pagePath", "/info/search.html");
  67. return ARTICLE_LIST_PATH;
  68. }
  69. /**
  70. * 文章详情【旧】
  71. */
  72. @GetMapping("/info/detail-{id}-1.html")
  73. public String toArticleDetail(@PathVariable("id") Integer id, final Model model) {
  74. List<BaseLink> typeList = articleService.getArticleTypes();
  75. Article article = articleService.getArticleInfo(id);
  76. if(article == null){
  77. return super.errorPath();
  78. }
  79. model.addAttribute("article", article);
  80. model.addAttribute("articleType", typeList);
  81. model.addAttribute("articleId", id);
  82. model.addAttribute("typeId", (article!=null ? article.getTypeId() : 0));
  83. model.addAttribute("labelId", 0);
  84. return ARTICLE_DETAIL_PATH;
  85. }
  86. /**
  87. * 获取文章热门标签
  88. */
  89. @GetMapping("/article/labels")
  90. @ResponseBody
  91. public JsonModel<List<BaseLink>> getArticleLabels() {
  92. return articleService.getArticleLabels();
  93. }
  94. /**
  95. * 获取文章推荐
  96. */
  97. @GetMapping("/article/recommend")
  98. @ResponseBody
  99. public JsonModel<PageInfo<ImageLink>> getArticleRecommended(Integer typeId,
  100. @RequestParam(value = "pageNum", defaultValue = "1") int pageNum,
  101. @RequestParam(value = "pageSize", defaultValue = "3") int pageSize) {
  102. return articleService.getArticleRecommended(typeId, pageNum, pageSize);
  103. }
  104. /**
  105. * 获取相关文章
  106. */
  107. @GetMapping("/article/related")
  108. @ResponseBody
  109. public JsonModel<PageInfo<Article>> getArticleRelated(Integer id, String labels,
  110. @RequestParam(value = "pageNum", defaultValue = "1") int pageNum,
  111. @RequestParam(value = "pageSize", defaultValue = "3") int pageSize) {
  112. return articleService.getArticleRelated(id, labels, pageNum, pageSize);
  113. }
  114. /**
  115. * 获取文章广告
  116. */
  117. @GetMapping("/article/ads")
  118. @ResponseBody
  119. public JsonModel<List<ImageLink>> getLastestInfoAds() {
  120. return articleService.getLastestInfoAds();
  121. }
  122. /**
  123. * 点击标签
  124. */
  125. @GetMapping("/article/label/click")
  126. @ResponseBody
  127. public JsonModel clickArticleLabel(Integer id) {
  128. return articleService.clickArticleLabel(id);
  129. }
  130. /**
  131. * 点击广告
  132. */
  133. @GetMapping("/article/ad/click")
  134. @ResponseBody
  135. public JsonModel clickArticleAd(Integer id) {
  136. return articleService.clickArticleAd(id);
  137. }
  138. /**
  139. * 文章点赞
  140. */
  141. @GetMapping("/article/like")
  142. @ResponseBody
  143. public JsonModel articleLike(Integer id, ServerWebExchange serverWebExchange) {
  144. return articleService.articleLike(id, serverWebExchange);
  145. }
  146. /**
  147. * 文章浏览量增加
  148. */
  149. @GetMapping("/article/pv")
  150. @ResponseBody
  151. public JsonModel articlePv(Integer id) {
  152. return articleService.articlePv(id);
  153. }
  154. }