SysConfigService.java 2.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  1. package com.izouma.nineth.service;
  2. import com.izouma.nineth.domain.SysConfig;
  3. import com.izouma.nineth.dto.PageQuery;
  4. import com.izouma.nineth.exception.BusinessException;
  5. import com.izouma.nineth.repo.SysConfigRepo;
  6. import com.izouma.nineth.utils.JpaUtils;
  7. import lombok.AllArgsConstructor;
  8. import org.springframework.cache.annotation.Cacheable;
  9. import org.springframework.data.domain.Page;
  10. import org.springframework.stereotype.Service;
  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. try {
  24. Thread.sleep(3000);
  25. } catch (InterruptedException e) {
  26. e.printStackTrace();
  27. }
  28. return sysConfigRepo.findByName(name).map(sysConfig -> new BigDecimal(sysConfig.getValue()))
  29. .orElse(BigDecimal.ZERO);
  30. }
  31. @Cacheable("SysConfigServiceGetTime")
  32. public LocalTime getTime(String name) {
  33. String str = sysConfigRepo.findByName(name).map(SysConfig::getValue)
  34. .orElseThrow(new BusinessException("配置不存在"));
  35. DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern("HH:mm");
  36. return LocalTime.from(dateTimeFormatter.parse(str));
  37. }
  38. @Cacheable("SysConfigServiceGetBoolean")
  39. public boolean getBoolean(String name) {
  40. String str = sysConfigRepo.findByName(name).map(SysConfig::getValue)
  41. .orElseThrow(new BusinessException("配置不存在"));
  42. return str.equals("1");
  43. }
  44. @Cacheable("SysConfigServiceGetInt")
  45. public int getInt(String name) {
  46. String str = sysConfigRepo.findByName(name).map(SysConfig::getValue)
  47. .orElseThrow(new BusinessException("配置不存在"));
  48. return Integer.parseInt(str);
  49. }
  50. }