package com.caimei.www.controller.unlimited; import com.alibaba.fastjson.JSONArray; import com.caimei.www.controller.BaseController; import com.caimei.www.pojo.JsonModel; import com.caimei.www.pojo.baike.BaikeProduct; import com.caimei.www.pojo.baike.BaikeType; import com.caimei.www.pojo.page.ImageLink; import com.caimei.www.service.page.BaseService; import com.caimei.www.service.page.ProductService; import com.google.gson.JsonArray; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.ui.Model; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.ResponseBody; import java.util.ArrayList; import java.util.List; import java.util.Map; /** * 采美文库 * * @author : yuwenjun1997 * @date : 2021/11/23 */ @Controller @RequestMapping("/encyclopedia") public class EncyclopediaController extends BaseController { private static final String PRODUCT_LIST = "encyclopedia/product"; private static final String PRODUCT_DETAIL = "encyclopedia/product-detail"; private static final String INSTRUMENT_LIST = "encyclopedia/instrument"; private static final String INSTRUMENT_DETAIL = "encyclopedia/instrument-detail"; private static final String MORE_LIST = "encyclopedia/more"; private static final String SEARCH_PAGE = "encyclopedia/search"; private static final String CONTACT = "encyclopedia/contact"; private static final String ABOUT_US = "encyclopedia/about"; private static final String MAP = "encyclopedia/map"; private ProductService productService; @Autowired public void setProductService(ProductService productService) { this.productService = productService; } private BaseService baseService; @Override @Autowired public void setBaseService(BaseService baseService) { this.baseService = baseService; } /** * 产品列表 */ @GetMapping("/product.html") public String getProductList(final Model model) { Integer commodityType = 1; // 搜索热门关键字 List searchHotWord = baseService.getBaikeSearchHotWord(); model.addAttribute("searchHotWord", searchHotWord); // banner图 ImageLink banner = baseService.getBaikeBannerImage(commodityType); model.addAttribute("banner", banner); // 分类列表 List typeList = baseService.getBaikeTypeList(commodityType); model.addAttribute("typeList", typeList); // 产品仪器分类数据 JSONArray typeData = productService.getBaikeTypeJson(commodityType); model.addAttribute("typeData", typeData); return PRODUCT_LIST; } /** * 产品详情 */ @GetMapping("/product-{id}.html") public String getProductDetail(final Model model, @PathVariable("id") Integer productId) { BaikeProduct baikeProduct = productService.getBaikeProductDetail(productId); if (baikeProduct == null) { return super.errorPath(); } model.addAttribute("baikeProduct", baikeProduct); return PRODUCT_DETAIL; } /** * 仪器列表 */ @GetMapping("/instrument.html") public String getInstrumentList(final Model model) { Integer commodityType = 2; // 搜索热门关键字 List searchHotWord = baseService.getBaikeSearchHotWord(); model.addAttribute("searchHotWord", searchHotWord); // banner图 ImageLink banner = baseService.getBaikeBannerImage(commodityType); model.addAttribute("banner", banner); // 分类列表 List typeList = baseService.getBaikeTypeList(commodityType); model.addAttribute("typeList", typeList); // 产品仪器分类数据 JSONArray typeData = productService.getBaikeTypeJson(commodityType); model.addAttribute("typeData", typeData); return INSTRUMENT_LIST; } /** * 仪器详情 */ @GetMapping("/instrument-{id}.html") public String getInstrumentDetail(final Model model, @PathVariable("id") Integer productId) { BaikeProduct baikeInstrument = productService.getBaikeProductDetail(productId); if (baikeInstrument == null) { return super.errorPath(); } model.addAttribute("baikeInstrument", baikeInstrument); return INSTRUMENT_DETAIL; } /** * 查看更多 */ @GetMapping("/more-{typeId}-{pageNum}-{pageSize}.html") public String getMoreList(final Model model, @PathVariable("typeId") Integer typeId, @PathVariable("pageNum") Integer pageNum, @PathVariable("pageSize") Integer pageSize) { BaikeType baikeType = productService.getBaikeType(typeId); Map moreData = productService.getBaikeMoreJson(typeId, pageNum, pageSize); model.addAttribute("typeName", baikeType.getName()); model.addAttribute("moreData", moreData); return MORE_LIST; } /** * 搜索列表 */ @GetMapping("/search.html") public String getSearchPage() { return SEARCH_PAGE; } /** * 联系我们 */ @GetMapping("/contact.html") public String getContact() { return CONTACT; } /** * 关于我们 */ @GetMapping("/about.html") public String getAboutUs() { return ABOUT_US; } /** * 关于我们位置定位 */ @GetMapping("/map.html") public String getMap() { return MAP; } /** * 增加浏览量 */ @GetMapping("/pv") @ResponseBody public JsonModel encyclopediaPv(Integer id) { return productService.encyclopediaPv(id); } }