HomeServiceImpl.java 3.6 KB

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