package com.sinata.appointment.service;
|
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
import com.sinata.appointment.constants.CacheNames;
|
import com.sinata.appointment.entity.BizHolidayDate;
|
import com.sinata.appointment.mapper.BizHolidayDateMapper;
|
import java.time.LocalDate;
|
import java.util.Set;
|
import java.util.stream.Collectors;
|
import lombok.RequiredArgsConstructor;
|
import org.springframework.cache.annotation.CacheEvict;
|
import org.springframework.cache.annotation.Cacheable;
|
import org.springframework.stereotype.Service;
|
|
@Service
|
@RequiredArgsConstructor
|
public class BizHolidayDateCacheService {
|
|
private final BizHolidayDateMapper bizHolidayDateMapper;
|
|
@Cacheable(cacheNames = CacheNames.BIZ_HOLIDAY_DATE, key = "'" + CacheNames.BIZ_HOLIDAY_DATE_ALL_KEY + "'")
|
public Set<LocalDate> getAllEnabledHolidayDates() {
|
return bizHolidayDateMapper.selectList(
|
new LambdaQueryWrapper<BizHolidayDate>()
|
.eq(BizHolidayDate::getDelFlag, 0)
|
.orderByAsc(BizHolidayDate::getHolidayDate))
|
.stream()
|
.map(BizHolidayDate::getHolidayDate)
|
.filter(x -> x != null)
|
.collect(Collectors.toSet());
|
}
|
|
@CacheEvict(cacheNames = CacheNames.BIZ_HOLIDAY_DATE, key = "'" + CacheNames.BIZ_HOLIDAY_DATE_ALL_KEY + "'")
|
public void evictAllHolidayDates() {
|
// use spring cache eviction
|
}
|
}
|