package com.goafanti.star.service.impl; import java.util.HashSet; import java.util.List; import java.util.Set; import java.util.UUID; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.cache.annotation.CacheEvict; import org.springframework.stereotype.Service; import com.goafanti.common.dao.StarMapper; import com.goafanti.common.enums.StarHotType; import com.goafanti.common.enums.StarType; import com.goafanti.common.model.Star; import com.goafanti.common.utils.LoggerUtils; import com.goafanti.star.bo.BigShotStarListBo; import com.goafanti.star.bo.HotStarListBo; import com.goafanti.star.service.StarService; @Service public class StarServiceImpl implements StarService { private static final Logger logger = LoggerFactory.getLogger(StarServiceImpl.class); @Autowired private StarMapper starMapper; @Override public List listHotStar() { return starMapper.listHostStar(); } @Override public List listStarList() { return starMapper.listStarList(); } @Override public void save(List startList, String[] hot) { starMapper.deleteAll(); Set set = new HashSet<>(); for (Star s : startList) { s.setId(UUID.randomUUID().toString()); s.setHot(StarHotType.UNHOT.getCode()); for (String h : hot) { if (s.getUid().equals(h)) { s.setHot(StarHotType.HOT.getCode()); } else { set.add(h); } } } Star star = null; for (String s : set) { star = new Star(); star.setId(UUID.randomUUID().toString()); star.setUid(s); star.setHot(StarHotType.HOT.getCode()); star.setStar(StarType.UNSTAR.getCode()); startList.add(star); } starMapper.insertBatch(startList); } @Override //@Cacheable(value = "BigShotStarListCache", key = "'BigShotStarList:'+#bigShotStarCacheKey") public List listBigShotStar(Integer bigShotStarCacheKey) { return starMapper.listBigShotStar(); } @Override @CacheEvict(value = "BigShotStarListCache", key = "'BigShotStarList:'+#bigShotStarCacheKey") public void clearBigShotStarList(Integer bigShotStarCacheKey) { LoggerUtils.debug(logger, "清除大咖说科技明星列表缓存:[%s]", bigShotStarCacheKey); } }