EncyclopediaController.java 5.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173
  1. package com.caimei.www.controller.unlimited;
  2. import com.alibaba.fastjson.JSONArray;
  3. import com.caimei.www.controller.BaseController;
  4. import com.caimei.www.pojo.JsonModel;
  5. import com.caimei.www.pojo.baike.BaikeHotSearch;
  6. import com.caimei.www.pojo.baike.BaikeProduct;
  7. import com.caimei.www.pojo.baike.BaikeType;
  8. import com.caimei.www.pojo.page.ImageLink;
  9. import com.caimei.www.service.page.BaseService;
  10. import com.caimei.www.service.page.ProductService;
  11. import com.google.gson.JsonArray;
  12. import org.springframework.beans.factory.annotation.Autowired;
  13. import org.springframework.stereotype.Controller;
  14. import org.springframework.ui.Model;
  15. import org.springframework.web.bind.annotation.GetMapping;
  16. import org.springframework.web.bind.annotation.PathVariable;
  17. import org.springframework.web.bind.annotation.RequestMapping;
  18. import org.springframework.web.bind.annotation.ResponseBody;
  19. import java.util.ArrayList;
  20. import java.util.List;
  21. import java.util.Map;
  22. /**
  23. * 采美文库
  24. *
  25. * @author : yuwenjun1997
  26. * @date : 2021/11/23
  27. */
  28. @Controller
  29. @RequestMapping("/encyclopedia")
  30. public class EncyclopediaController extends BaseController {
  31. private static final String PRODUCT_LIST = "encyclopedia/product";
  32. private static final String PRODUCT_DETAIL = "encyclopedia/product-detail";
  33. private static final String INSTRUMENT_LIST = "encyclopedia/instrument";
  34. private static final String INSTRUMENT_DETAIL = "encyclopedia/instrument-detail";
  35. private static final String MORE_LIST = "encyclopedia/more";
  36. private static final String SEARCH_PAGE = "encyclopedia/search";
  37. private static final String CONTACT = "encyclopedia/contact";
  38. private static final String ABOUT_US = "encyclopedia/about";
  39. private static final String MAP = "encyclopedia/map";
  40. private ProductService productService;
  41. @Autowired
  42. public void setProductService(ProductService productService) {
  43. this.productService = productService;
  44. }
  45. /**
  46. * 产品列表
  47. */
  48. @GetMapping("/product.html")
  49. public String getProductList(final Model model) {
  50. Integer commodityType = 1;
  51. // 搜索热门关键字
  52. List<BaikeHotSearch> searchHotWord = baseService.getBaikeSearchHotWord();
  53. model.addAttribute("searchHotWord", searchHotWord);
  54. // banner图
  55. ImageLink banner = baseService.getBaikeBannerImage(commodityType);
  56. model.addAttribute("banner", banner);
  57. // 分类列表
  58. List<BaikeType> typeList = baseService.getBaikeTypeList(commodityType);
  59. model.addAttribute("typeList", typeList);
  60. // 产品仪器分类数据
  61. JSONArray typeData = productService.getBaikeTypeJson(commodityType);
  62. model.addAttribute("typeData", typeData);
  63. return PRODUCT_LIST;
  64. }
  65. /**
  66. * 产品详情
  67. */
  68. @GetMapping("/product-{id}.html")
  69. public String getProductDetail(final Model model, @PathVariable("id") Integer productId) {
  70. BaikeProduct baikeProduct = productService.getBaikeProductDetail(productId);
  71. if (baikeProduct == null) {
  72. return super.errorPath();
  73. }
  74. model.addAttribute("baikeProduct", baikeProduct);
  75. return PRODUCT_DETAIL;
  76. }
  77. /**
  78. * 仪器列表
  79. */
  80. @GetMapping("/instrument.html")
  81. public String getInstrumentList(final Model model) {
  82. Integer commodityType = 2;
  83. // 搜索热门关键字
  84. List<BaikeHotSearch> searchHotWord = baseService.getBaikeSearchHotWord();
  85. model.addAttribute("searchHotWord", searchHotWord);
  86. // banner图
  87. ImageLink banner = baseService.getBaikeBannerImage(commodityType);
  88. model.addAttribute("banner", banner);
  89. // 分类列表
  90. List<BaikeType> typeList = baseService.getBaikeTypeList(commodityType);
  91. model.addAttribute("typeList", typeList);
  92. // 产品仪器分类数据
  93. JSONArray typeData = productService.getBaikeTypeJson(commodityType);
  94. model.addAttribute("typeData", typeData);
  95. return INSTRUMENT_LIST;
  96. }
  97. /**
  98. * 仪器详情
  99. */
  100. @GetMapping("/instrument-{id}.html")
  101. public String getInstrumentDetail(final Model model, @PathVariable("id") Integer productId) {
  102. BaikeProduct baikeInstrument = productService.getBaikeProductDetail(productId);
  103. if (baikeInstrument == null) {
  104. return super.errorPath();
  105. }
  106. model.addAttribute("baikeInstrument", baikeInstrument);
  107. return INSTRUMENT_DETAIL;
  108. }
  109. /**
  110. * 查看更多
  111. */
  112. @GetMapping("/more-{typeId}-{pageNum}-{pageSize}.html")
  113. public String getMoreList(final Model model, @PathVariable("typeId") Integer typeId, @PathVariable("pageNum") Integer pageNum, @PathVariable("pageSize") Integer pageSize) {
  114. BaikeType baikeType = productService.getBaikeType(typeId);
  115. Map<String, Object> moreData = productService.getBaikeMoreJson(typeId, pageNum, pageSize);
  116. model.addAttribute("typeName", baikeType.getName());
  117. model.addAttribute("moreData", moreData);
  118. return MORE_LIST;
  119. }
  120. /**
  121. * 搜索列表
  122. */
  123. @GetMapping("/search.html")
  124. public String getSearchPage() {
  125. return SEARCH_PAGE;
  126. }
  127. /**
  128. * 联系我们
  129. */
  130. @GetMapping("/contact.html")
  131. public String getContact() {
  132. return CONTACT;
  133. }
  134. /**
  135. * 关于我们
  136. */
  137. @GetMapping("/about.html")
  138. public String getAboutUs() {
  139. return ABOUT_US;
  140. }
  141. /**
  142. * 关于我们位置定位
  143. */
  144. @GetMapping("/map.html")
  145. public String getMap() {
  146. return MAP;
  147. }
  148. /**
  149. * 增加浏览量
  150. */
  151. @GetMapping("/pv")
  152. @ResponseBody
  153. public JsonModel encyclopediaPv(Integer id) {
  154. return productService.encyclopediaPv(id);
  155. }
  156. }