SysConfigService.java 7.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190
  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.enums.SearchMode;
  5. import com.izouma.nineth.exception.BusinessException;
  6. import com.izouma.nineth.repo.SysConfigRepo;
  7. import com.izouma.nineth.utils.JpaUtils;
  8. import lombok.AllArgsConstructor;
  9. import org.springframework.cache.annotation.Cacheable;
  10. import org.springframework.data.domain.Page;
  11. import org.springframework.stereotype.Service;
  12. import javax.annotation.PostConstruct;
  13. import java.math.BigDecimal;
  14. import java.time.LocalTime;
  15. import java.time.format.DateTimeFormatter;
  16. import java.util.List;
  17. @Service
  18. @AllArgsConstructor
  19. public class SysConfigService {
  20. private SysConfigRepo sysConfigRepo;
  21. public Page<SysConfig> all(PageQuery pageQuery) {
  22. return sysConfigRepo.findAll(JpaUtils.toSpecification(pageQuery, SysConfig.class), JpaUtils.toPageRequest(pageQuery));
  23. }
  24. public BigDecimal getBigDecimal(String name) {
  25. return sysConfigRepo.findByName(name).map(sysConfig -> new BigDecimal(sysConfig.getValue()))
  26. .orElse(BigDecimal.ZERO);
  27. }
  28. public LocalTime getTime(String name) {
  29. String str = sysConfigRepo.findByName(name).map(SysConfig::getValue)
  30. .orElseThrow(new BusinessException("配置不存在"));
  31. DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern("HH:mm");
  32. return LocalTime.from(dateTimeFormatter.parse(str));
  33. }
  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. public int getInt(String name) {
  40. String str = sysConfigRepo.findByName(name).map(SysConfig::getValue)
  41. .orElseThrow(new BusinessException("配置不存在"));
  42. return Integer.parseInt(str);
  43. }
  44. @PostConstruct
  45. public void init() {
  46. List<SysConfig> list = sysConfigRepo.findAll();
  47. if (list.stream().noneMatch(i -> i.getName().equals("search_mode"))) {
  48. sysConfigRepo.save(SysConfig.builder()
  49. .name("gift_gas_fee")
  50. .desc("转赠gas费")
  51. .type(SysConfig.ValueType.NUMBER)
  52. .value("1")
  53. .build());
  54. }
  55. if (list.stream().noneMatch(i -> i.getName().equals("enable_wx_pub"))) {
  56. sysConfigRepo.save(SysConfig.builder()
  57. .name("enable_wx_pub")
  58. .desc("使用公众号支付")
  59. .type(SysConfig.ValueType.BOOLEAN)
  60. .value("FALSE")
  61. .build());
  62. }
  63. if (list.stream().noneMatch(i -> i.getName().equals("enable_wx_lite"))) {
  64. sysConfigRepo.save(SysConfig.builder()
  65. .name("enable_wx_lite")
  66. .desc("使用小程序支付")
  67. .type(SysConfig.ValueType.BOOLEAN)
  68. .value("FALSE")
  69. .build());
  70. }
  71. if (list.stream().noneMatch(i -> i.getName().equals("hold_days"))) {
  72. sysConfigRepo.save(SysConfig.builder()
  73. .name("hold_days")
  74. .desc("持有满几天可销售")
  75. .type(SysConfig.ValueType.NUMBER)
  76. .value("5")
  77. .build());
  78. }
  79. if (list.stream().noneMatch(i -> i.getName().equals("default_search_mode"))) {
  80. sysConfigRepo.save(SysConfig.builder()
  81. .name("default_search_mode")
  82. .desc("默认搜索方式")
  83. .type(SysConfig.ValueType.STRING)
  84. .value("FULL")
  85. .build());
  86. }
  87. if (list.stream().noneMatch(i -> i.getName().equals("enable_sand_quick"))) {
  88. sysConfigRepo.save(SysConfig.builder()
  89. .name("enable_sand_quick")
  90. .desc("使用衫德h5快捷支付")
  91. .type(SysConfig.ValueType.BOOLEAN)
  92. .value("FALSE")
  93. .build());
  94. }
  95. if (list.stream().noneMatch(i -> i.getName().equals("order_cancel_time"))) {
  96. sysConfigRepo.save(SysConfig.builder()
  97. .name("order_cancel_time")
  98. .desc("订单自动取消间隔(S)")
  99. .type(SysConfig.ValueType.NUMBER)
  100. .value("210")
  101. .build());
  102. }
  103. if (list.stream().noneMatch(i -> i.getName().equals("pay_channel"))) {
  104. sysConfigRepo.save(SysConfig.builder()
  105. .name("pay_channel")
  106. .desc("支付通道")
  107. .type(SysConfig.ValueType.SELECT)
  108. .value("sandPay")
  109. .options("hmPay,sandPay")
  110. .build());
  111. }
  112. if (list.stream().noneMatch(i -> i.getName().equals("gift_days"))) {
  113. sysConfigRepo.save(SysConfig.builder()
  114. .name("gift_days")
  115. .desc("转赠满多少天可销售")
  116. .type(SysConfig.ValueType.NUMBER)
  117. .value("20")
  118. .build());
  119. }
  120. if (list.stream().noneMatch(i -> i.getName().equals("min_recharge_amount"))) {
  121. sysConfigRepo.save(SysConfig.builder()
  122. .name("min_recharge_amount")
  123. .desc("最小充值金额")
  124. .type(SysConfig.ValueType.NUMBER)
  125. .value("100")
  126. .build());
  127. }
  128. if (list.stream().noneMatch(i -> i.getName().equals("enable_balance_pay"))) {
  129. sysConfigRepo.save(SysConfig.builder()
  130. .name("enable_balance_pay")
  131. .desc("使用余额支付")
  132. .type(SysConfig.ValueType.BOOLEAN)
  133. .value("0")
  134. .build());
  135. }
  136. if (list.stream().noneMatch(i -> i.getName().equals("min_withdraw_amount"))) {
  137. sysConfigRepo.save(SysConfig.builder()
  138. .name("min_withdraw_amount")
  139. .desc("最小提现金额")
  140. .type(SysConfig.ValueType.NUMBER)
  141. .value("100")
  142. .build());
  143. }
  144. if (list.stream().noneMatch(i -> i.getName().equals("enable_withdraw"))) {
  145. sysConfigRepo.save(SysConfig.builder()
  146. .name("enable_withdraw")
  147. .desc("允许提现")
  148. .type(SysConfig.ValueType.BOOLEAN)
  149. .value("1")
  150. .build());
  151. }
  152. if (list.stream().noneMatch(i -> i.getName().equals("enable_recharge"))) {
  153. sysConfigRepo.save(SysConfig.builder()
  154. .name("enable_recharge")
  155. .desc("允许充值")
  156. .type(SysConfig.ValueType.BOOLEAN)
  157. .value("1")
  158. .build());
  159. }
  160. if (list.stream().noneMatch(i -> i.getName().equals("daily_withdraw_limit"))) {
  161. sysConfigRepo.save(SysConfig.builder()
  162. .name("daily_withdraw_limit")
  163. .desc("每日提现次数限制")
  164. .type(SysConfig.ValueType.NUMBER)
  165. .value("10")
  166. .build());
  167. }
  168. if (list.stream().noneMatch(i -> i.getName().equals("enable_wallet"))) {
  169. sysConfigRepo.save(SysConfig.builder()
  170. .name("enable_wallet")
  171. .desc("开启钱包功能")
  172. .type(SysConfig.ValueType.BOOLEAN)
  173. .value("0")
  174. .build());
  175. }
  176. SearchMode searchMode = SearchMode.valueOf(sysConfigRepo.findByName("default_search_mode").get().getValue());
  177. JpaUtils.setDefaultSearchMode(searchMode);
  178. OrderPayService.setPayChannel(sysConfigRepo.findByName("pay_channel").get().getValue());
  179. }
  180. }