EncyclopediaController.java 5.8 KB

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