package com.izouma.awesomeAdmin.service; import com.izouma.awesomeAdmin.domain.SysConfig; import com.izouma.awesomeAdmin.dto.PageQuery; import com.izouma.awesomeAdmin.exception.BusinessException; import com.izouma.awesomeAdmin.repo.SysConfigRepo; import com.izouma.awesomeAdmin.utils.JpaUtils; import lombok.AllArgsConstructor; import org.springframework.data.domain.Page; import org.springframework.stereotype.Service; import springfox.documentation.annotations.Cacheable; import java.math.BigDecimal; import java.time.LocalTime; import java.time.format.DateTimeFormatter; @Service @AllArgsConstructor public class SysConfigService { private SysConfigRepo sysConfigRepo; public Page all(PageQuery pageQuery) { return sysConfigRepo.findAll(JpaUtils.toSpecification(pageQuery, SysConfig.class), JpaUtils.toPageRequest(pageQuery)); } @Cacheable("SysConfigServiceGetBigDecimal") public BigDecimal getBigDecimal(String name) { return sysConfigRepo.findByName(name).map(sysConfig -> new BigDecimal(sysConfig.getValue())) .orElse(BigDecimal.ZERO); } @Cacheable("SysConfigServiceGetTime") public LocalTime getTime(String name) { String str = sysConfigRepo.findByName(name).map(SysConfig::getValue) .orElseThrow(new BusinessException("配置不存在")); DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern("HH:mm"); return LocalTime.from(dateTimeFormatter.parse(str)); } @Cacheable("SysConfigServiceGetBoolean") public boolean getBoolean(String name) { String str = sysConfigRepo.findByName(name).map(SysConfig::getValue) .orElseThrow(new BusinessException("配置不存在")); return str.equals("1"); } @Cacheable("SysConfigServiceGetInt") public int getInt(String name) { String str = sysConfigRepo.findByName(name).map(SysConfig::getValue) .orElseThrow(new BusinessException("配置不存在")); return Integer.parseInt(str); } }