longz
2026-05-28 aa67b3cb0fe26fab576f7710c978ff3594426cca
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
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
    }
}