package com.caimei.www.service.impl; import com.caimei.www.pojo.JsonModel; import com.caimei.www.mapper.HomeDao; import com.caimei.www.pojo.page.PageFloor; import com.caimei.www.pojo.page.ImageLink; import com.caimei.www.pojo.page.ProductList; import com.caimei.www.service.HomeService; import com.caimei.www.utils.ImageUtil; import com.caimei.www.utils.PriceUtil; import org.springframework.beans.factory.annotation.Value; import org.springframework.cache.annotation.Cacheable; import org.springframework.stereotype.Service; import javax.annotation.Resource; import java.util.HashMap; import java.util.List; import java.util.Map; /** * Description * * @author : Charles * @date : 2020/6/22 */ @Service public class HomeServiceImpl implements HomeService { @Resource private HomeDao homeDao; @Value("${caimei.wwwDomain}") private String domain; /** * 首页楼层 */ @Override public List getHomePageFloor() { List floorList = homeDao.getHomePageFloor(); return floorList; } /** * 首页轮播图 */ @Override @Cacheable(value = "getHomeBanners", key="'www'", unless="#result == null") public JsonModel> getHomeBanners() { List list = homeDao.getHomeBanners(); return JsonModel.success(list); } /** * 首页左侧广告图 */ @Override @Cacheable(value = "getAdvertising", key="'www'", unless="#result == null") public JsonModel> getAdvertising() { List list = homeDao.getAdvertising(); return JsonModel.success(list); } /** * 首页推荐专区商品 */ @Override @Cacheable(value = "getRecommendProducts", key="'www'", unless="#result == null") public JsonModel> getRecommendProducts() { List list = homeDao.getRecommendeds(); if (list.size() > 0) { // 设置价格等级 及 老图片路径 list.forEach(product -> { product.setPricegrade(PriceUtil.getPriceGrade(product.getPrice())); product.setPrice(0d); product.setImage(ImageUtil.getImageURL("product", product.getImage(), 0, domain)); }); } return JsonModel.success(list); } /** * 首页专题数据 */ @Override public JsonModel> getHomeTopicData() { // 大专题:6,小专题:5,商品专题:4,优质供应商:3 Map topicMap = new HashMap<>(); // 6大专题二级楼层 List bigTopicFloors = homeDao.getHomeBigTopicFloor(); bigTopicFloors.forEach(bigTopic -> { List topicData = homeDao.getBigTopicData(bigTopic.getId()); bigTopic.setFloorData(topicData); }); topicMap.put("bigTopicData", bigTopicFloors); // 专题4 List topicData4 = homeDao.getCommodityTopicData(); topicMap.put("topicData4", topicData4); // 专题5 List topicData5 = homeDao.getSmallTopicData(); topicMap.put("topicData5", topicData5); // 专题3 List topicData3 = homeDao.getSuppliersTopData(); topicMap.put("topicData3", topicData3); return JsonModel.success(topicMap); } }