HomeServiceImpl.java 3.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107
  1. package com.caimei.www.service.impl;
  2. import com.caimei.www.pojo.JsonModel;
  3. import com.caimei.www.mapper.HomeDao;
  4. import com.caimei.www.pojo.page.PageFloor;
  5. import com.caimei.www.pojo.page.ImageLink;
  6. import com.caimei.www.pojo.page.ProductList;
  7. import com.caimei.www.service.HomeService;
  8. import com.caimei.www.utils.ImageUtil;
  9. import com.caimei.www.utils.PriceUtil;
  10. import org.springframework.beans.factory.annotation.Value;
  11. import org.springframework.cache.annotation.Cacheable;
  12. import org.springframework.stereotype.Service;
  13. import javax.annotation.Resource;
  14. import java.util.HashMap;
  15. import java.util.List;
  16. import java.util.Map;
  17. /**
  18. * Description
  19. *
  20. * @author : Charles
  21. * @date : 2020/6/22
  22. */
  23. @Service
  24. public class HomeServiceImpl implements HomeService {
  25. @Resource
  26. private HomeDao homeDao;
  27. @Value("${caimei.wwwDomain}")
  28. private String domain;
  29. /**
  30. * 首页楼层
  31. */
  32. @Override
  33. public List<PageFloor> getHomePageFloor() {
  34. List<PageFloor> floorList = homeDao.getHomePageFloor();
  35. return floorList;
  36. }
  37. /**
  38. * 首页轮播图
  39. */
  40. @Override
  41. @Cacheable(value = "getHomeBanners", key="'www'", unless="#result == null")
  42. public JsonModel<List<ImageLink>> getHomeBanners() {
  43. List<ImageLink> list = homeDao.getHomeBanners();
  44. return JsonModel.success(list);
  45. }
  46. /**
  47. * 首页左侧广告图
  48. */
  49. @Override
  50. @Cacheable(value = "getAdvertising", key="'www'", unless="#result == null")
  51. public JsonModel<List<ImageLink>> getAdvertising() {
  52. List<ImageLink> list = homeDao.getAdvertising();
  53. return JsonModel.success(list);
  54. }
  55. /**
  56. * 首页推荐专区商品
  57. */
  58. @Override
  59. @Cacheable(value = "getRecommendProducts", key="'www'", unless="#result == null")
  60. public JsonModel<List<ProductList>> getRecommendProducts() {
  61. List<ProductList> list = homeDao.getRecommendeds();
  62. if (list.size() > 0) {
  63. // 设置价格等级 及 老图片路径
  64. list.forEach(product -> {
  65. product.setPricegrade(PriceUtil.getPriceGrade(product.getPrice()));
  66. product.setPrice(0d);
  67. product.setImage(ImageUtil.getImageURL("product", product.getImage(), 0, domain));
  68. });
  69. }
  70. return JsonModel.success(list);
  71. }
  72. /**
  73. * 首页专题数据
  74. */
  75. @Override
  76. public JsonModel<Map<String, Object>> getHomeTopicData() {
  77. // 大专题:6,小专题:5,商品专题:4,优质供应商:3
  78. Map<String, Object> topicMap = new HashMap<>();
  79. // 6大专题二级楼层
  80. List<PageFloor> bigTopicFloors = homeDao.getHomeBigTopicFloor();
  81. bigTopicFloors.forEach(bigTopic -> {
  82. List<ImageLink> topicData = homeDao.getBigTopicData(bigTopic.getId());
  83. bigTopic.setFloorData(topicData);
  84. });
  85. topicMap.put("bigTopicData", bigTopicFloors);
  86. // 专题4
  87. List<ImageLink> topicData4 = homeDao.getCommodityTopicData();
  88. topicMap.put("topicData4", topicData4);
  89. // 专题5
  90. List<ImageLink> topicData5 = homeDao.getSmallTopicData();
  91. topicMap.put("topicData5", topicData5);
  92. // 专题3
  93. List<ImageLink> topicData3 = homeDao.getSuppliersTopData();
  94. topicMap.put("topicData3", topicData3);
  95. return JsonModel.success(topicMap);
  96. }
  97. }