SysConfigService.java 12 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275
  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. public String getString(String name) {
  45. return sysConfigRepo.findByName(name).map(SysConfig::getValue).orElse(null);
  46. }
  47. @PostConstruct
  48. public void init() {
  49. List<SysConfig> list = sysConfigRepo.findAll();
  50. if (list.stream().noneMatch(i -> i.getName().equals("search_mode"))) {
  51. sysConfigRepo.save(SysConfig.builder()
  52. .name("gift_gas_fee")
  53. .desc("转赠gas费")
  54. .type(SysConfig.ValueType.NUMBER)
  55. .value("1")
  56. .build());
  57. }
  58. if (list.stream().noneMatch(i -> i.getName().equals("enable_wx_pub"))) {
  59. sysConfigRepo.save(SysConfig.builder()
  60. .name("enable_wx_pub")
  61. .desc("使用公众号支付")
  62. .type(SysConfig.ValueType.BOOLEAN)
  63. .value("FALSE")
  64. .build());
  65. }
  66. if (list.stream().noneMatch(i -> i.getName().equals("enable_wx_lite"))) {
  67. sysConfigRepo.save(SysConfig.builder()
  68. .name("enable_wx_lite")
  69. .desc("使用小程序支付")
  70. .type(SysConfig.ValueType.BOOLEAN)
  71. .value("FALSE")
  72. .build());
  73. }
  74. if (list.stream().noneMatch(i -> i.getName().equals("hold_days"))) {
  75. sysConfigRepo.save(SysConfig.builder()
  76. .name("hold_days")
  77. .desc("持有满几天可销售")
  78. .type(SysConfig.ValueType.NUMBER)
  79. .value("1")
  80. .build());
  81. }
  82. if (list.stream().noneMatch(i -> i.getName().equals("default_search_mode"))) {
  83. sysConfigRepo.save(SysConfig.builder()
  84. .name("default_search_mode")
  85. .desc("默认搜索方式")
  86. .type(SysConfig.ValueType.STRING)
  87. .value("FULL")
  88. .build());
  89. }
  90. if (list.stream().noneMatch(i -> i.getName().equals("enable_sand_quick"))) {
  91. sysConfigRepo.save(SysConfig.builder()
  92. .name("enable_sand_quick")
  93. .desc("使用衫德h5快捷支付")
  94. .type(SysConfig.ValueType.BOOLEAN)
  95. .value("FALSE")
  96. .build());
  97. }
  98. if (list.stream().noneMatch(i -> i.getName().equals("order_cancel_time"))) {
  99. sysConfigRepo.save(SysConfig.builder()
  100. .name("order_cancel_time")
  101. .desc("订单自动取消间隔(S)")
  102. .type(SysConfig.ValueType.NUMBER)
  103. .value("210")
  104. .build());
  105. }
  106. if (list.stream().noneMatch(i -> i.getName().equals("pay_channel"))) {
  107. sysConfigRepo.save(SysConfig.builder()
  108. .name("pay_channel")
  109. .desc("支付通道")
  110. .type(SysConfig.ValueType.SELECT)
  111. .value("sandPay")
  112. .options("hmPay,sandPay")
  113. .build());
  114. }
  115. if (list.stream().noneMatch(i -> i.getName().equals("gift_days"))) {
  116. sysConfigRepo.save(SysConfig.builder()
  117. .name("gift_days")
  118. .desc("转赠满多少天可销售")
  119. .type(SysConfig.ValueType.NUMBER)
  120. .value("20")
  121. .build());
  122. }
  123. if (list.stream().noneMatch(i -> i.getName().equals("min_recharge_amount"))) {
  124. sysConfigRepo.save(SysConfig.builder()
  125. .name("min_recharge_amount")
  126. .desc("最小充值金额")
  127. .type(SysConfig.ValueType.NUMBER)
  128. .value("100")
  129. .build());
  130. }
  131. if (list.stream().noneMatch(i -> i.getName().equals("max_recharge_amount"))) {
  132. sysConfigRepo.save(SysConfig.builder()
  133. .name("max_recharge_amount")
  134. .desc("最大充值金额")
  135. .type(SysConfig.ValueType.NUMBER)
  136. .value("5000")
  137. .build());
  138. }
  139. if (list.stream().noneMatch(i -> i.getName().equals("enable_balance_pay"))) {
  140. sysConfigRepo.save(SysConfig.builder()
  141. .name("enable_balance_pay")
  142. .desc("使用余额支付")
  143. .type(SysConfig.ValueType.BOOLEAN)
  144. .value("0")
  145. .build());
  146. }
  147. if (list.stream().noneMatch(i -> i.getName().equals("min_withdraw_amount"))) {
  148. sysConfigRepo.save(SysConfig.builder()
  149. .name("min_withdraw_amount")
  150. .desc("最小提现金额")
  151. .type(SysConfig.ValueType.NUMBER)
  152. .value("100")
  153. .build());
  154. }
  155. if (list.stream().noneMatch(i -> i.getName().equals("withdraw_charge"))) {
  156. sysConfigRepo.save(SysConfig.builder()
  157. .name("withdraw_charge")
  158. .desc("提现手续费(%,最低)")
  159. .type(SysConfig.ValueType.STRING)
  160. .value("8,2")
  161. .build());
  162. }
  163. if (list.stream().noneMatch(i -> i.getName().equals("enable_withdraw"))) {
  164. sysConfigRepo.save(SysConfig.builder()
  165. .name("enable_withdraw")
  166. .desc("允许提现")
  167. .type(SysConfig.ValueType.BOOLEAN)
  168. .value("0")
  169. .build());
  170. }
  171. if (list.stream().noneMatch(i -> i.getName().equals("enable_recharge"))) {
  172. sysConfigRepo.save(SysConfig.builder()
  173. .name("enable_recharge")
  174. .desc("允许充值")
  175. .type(SysConfig.ValueType.BOOLEAN)
  176. .value("0")
  177. .build());
  178. }
  179. if (list.stream().noneMatch(i -> i.getName().equals("daily_withdraw_limit"))) {
  180. sysConfigRepo.save(SysConfig.builder()
  181. .name("daily_withdraw_limit")
  182. .desc("每日提现次数限制")
  183. .type(SysConfig.ValueType.NUMBER)
  184. .value("1")
  185. .build());
  186. }
  187. if (list.stream().noneMatch(i -> i.getName().equals("enable_wallet"))) {
  188. sysConfigRepo.save(SysConfig.builder()
  189. .name("enable_wallet")
  190. .desc("开启钱包功能")
  191. .type(SysConfig.ValueType.BOOLEAN)
  192. .value("0")
  193. .build());
  194. }
  195. if (list.stream().noneMatch(i -> i.getName().equals("realtime_settle_order"))) {
  196. sysConfigRepo.save(SysConfig.builder()
  197. .name("realtime_settle_order")
  198. .desc("开启订单实时结算")
  199. .type(SysConfig.ValueType.BOOLEAN)
  200. .value("0")
  201. .build());
  202. }
  203. if (list.stream().noneMatch(i -> i.getName().equals("wallet_enable_amount"))) {
  204. sysConfigRepo.save(SysConfig.builder()
  205. .name("wallet_enable_amount")
  206. .desc("开启钱包所需最小消费金额")
  207. .type(SysConfig.ValueType.NUMBER)
  208. .value("1")
  209. .build());
  210. }
  211. if (list.stream().noneMatch(i -> i.getName().equals("enable_auto_withdraw"))) {
  212. sysConfigRepo.save(SysConfig.builder()
  213. .name("enable_auto_withdraw")
  214. .desc("开启自动提现")
  215. .type(SysConfig.ValueType.BOOLEAN)
  216. .value("0")
  217. .build());
  218. }
  219. if (list.stream().noneMatch(i -> i.getName().equals("enable_force_withdraw"))) {
  220. sysConfigRepo.save(SysConfig.builder()
  221. .name("enable_force_withdraw")
  222. .desc("开启强制提现")
  223. .type(SysConfig.ValueType.BOOLEAN)
  224. .value("0")
  225. .build());
  226. }
  227. if (list.stream().noneMatch(i -> i.getName().equals("enable_face_auth"))) {
  228. sysConfigRepo.save(SysConfig.builder()
  229. .name("enable_face_auth")
  230. .desc("使用支付宝人脸实名认证")
  231. .type(SysConfig.ValueType.BOOLEAN)
  232. .value("0")
  233. .build());
  234. }
  235. if (list.stream().noneMatch(i -> i.getName().equals("withdraw_channel"))) {
  236. sysConfigRepo.save(SysConfig.builder()
  237. .name("withdraw_channel")
  238. .desc("提现通道")
  239. .type(SysConfig.ValueType.SELECT)
  240. .value("sandPay")
  241. .options("payEase,sandPay")
  242. .build());
  243. }
  244. if (list.stream().noneMatch(i -> i.getName().equals("parallel_airdrop"))) {
  245. sysConfigRepo.save(SysConfig.builder()
  246. .name("parallel_airdrop")
  247. .desc("并发空投")
  248. .type(SysConfig.ValueType.BOOLEAN)
  249. .value("1")
  250. .build());
  251. }
  252. if (list.stream().noneMatch(i -> i.getName().equals("company_collection_price"))) {
  253. sysConfigRepo.save(SysConfig.builder()
  254. .name("company_collection_price")
  255. .desc("企业上传藏品价格")
  256. .type(SysConfig.ValueType.NUMBER)
  257. .value("5")
  258. .build());
  259. }
  260. SearchMode searchMode = SearchMode.valueOf(sysConfigRepo.findByName("default_search_mode").get().getValue());
  261. JpaUtils.setDefaultSearchMode(searchMode);
  262. OrderPayService.setPayChannel(sysConfigRepo.findByName("pay_channel").get().getValue());
  263. }
  264. }