SysConfigService.java 2.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. package com.izouma.awesomeAdmin.service;
  2. import com.izouma.awesomeAdmin.domain.SysConfig;
  3. import com.izouma.awesomeAdmin.dto.PageQuery;
  4. import com.izouma.awesomeAdmin.exception.BusinessException;
  5. import com.izouma.awesomeAdmin.repo.SysConfigRepo;
  6. import com.izouma.awesomeAdmin.utils.JpaUtils;
  7. import lombok.AllArgsConstructor;
  8. import org.springframework.data.domain.Page;
  9. import org.springframework.stereotype.Service;
  10. import springfox.documentation.annotations.Cacheable;
  11. import java.math.BigDecimal;
  12. import java.time.LocalTime;
  13. import java.time.format.DateTimeFormatter;
  14. @Service
  15. @AllArgsConstructor
  16. public class SysConfigService {
  17. private SysConfigRepo sysConfigRepo;
  18. public Page<SysConfig> all(PageQuery pageQuery) {
  19. return sysConfigRepo.findAll(JpaUtils.toSpecification(pageQuery, SysConfig.class), JpaUtils.toPageRequest(pageQuery));
  20. }
  21. @Cacheable("SysConfigServiceGetBigDecimal")
  22. public BigDecimal getBigDecimal(String name) {
  23. return sysConfigRepo.findByName(name).map(sysConfig -> new BigDecimal(sysConfig.getValue()))
  24. .orElse(BigDecimal.ZERO);
  25. }
  26. @Cacheable("SysConfigServiceGetTime")
  27. public LocalTime getTime(String name) {
  28. String str = sysConfigRepo.findByName(name).map(SysConfig::getValue)
  29. .orElseThrow(new BusinessException("配置不存在"));
  30. DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern("HH:mm");
  31. return LocalTime.from(dateTimeFormatter.parse(str));
  32. }
  33. @Cacheable("SysConfigServiceGetBoolean")
  34. public boolean getBoolean(String name) {
  35. String str = sysConfigRepo.findByName(name).map(SysConfig::getValue)
  36. .orElseThrow(new BusinessException("配置不存在"));
  37. return str.equals("1");
  38. }
  39. @Cacheable("SysConfigServiceGetInt")
  40. public int getInt(String name) {
  41. String str = sysConfigRepo.findByName(name).map(SysConfig::getValue)
  42. .orElseThrow(new BusinessException("配置不存在"));
  43. return Integer.parseInt(str);
  44. }
  45. }