From ecedfccfa0a5161df4b3e2409e63850e25eb3c07 Mon Sep 17 00:00:00 2001
From: xiaoyong931011 <15274802129@163.com>
Date: Fri, 16 Dec 2022 11:33:26 +0800
Subject: [PATCH] 20221216 常量初始化

---
 src/main/java/cc/mrbird/febs/FebsShiroApplication.java            |   33 +++++++++++++++++++++++++++++++++
 src/main/java/cc/mrbird/febs/dapp/contract/ContractMain.java      |    8 +++++---
 src/main/java/cc/mrbird/febs/common/contants/SystemConstants.java |   14 ++++++++++++++
 3 files changed, 52 insertions(+), 3 deletions(-)

diff --git a/src/main/java/cc/mrbird/febs/FebsShiroApplication.java b/src/main/java/cc/mrbird/febs/FebsShiroApplication.java
index 3f01173..2363a2d 100644
--- a/src/main/java/cc/mrbird/febs/FebsShiroApplication.java
+++ b/src/main/java/cc/mrbird/febs/FebsShiroApplication.java
@@ -1,12 +1,22 @@
 package cc.mrbird.febs;
 
+import cc.mrbird.febs.common.contants.AppContants;
+import cc.mrbird.febs.common.contants.SystemConstants;
+import cc.mrbird.febs.dapp.entity.DataDictionaryCustom;
+import cc.mrbird.febs.dapp.enumerate.DataDictionaryEnum;
+import cc.mrbird.febs.dapp.mapper.DataDictionaryCustomMapper;
+import cn.hutool.core.util.StrUtil;
 import org.mybatis.spring.annotation.MapperScan;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.boot.WebApplicationType;
 import org.springframework.boot.autoconfigure.SpringBootApplication;
 import org.springframework.boot.builder.SpringApplicationBuilder;
 import org.springframework.scheduling.annotation.EnableAsync;
 import org.springframework.scheduling.annotation.EnableScheduling;
 import org.springframework.transaction.annotation.EnableTransactionManagement;
+
+import javax.annotation.PostConstruct;
+import java.lang.reflect.Field;
 
 /**
  * @author MrBird
@@ -18,10 +28,33 @@
 @MapperScan("cc.mrbird.febs.*.mapper")
 public class FebsShiroApplication {
 
+    @Autowired
+    private DataDictionaryCustomMapper dataDictionaryCustomMapper;
+
+    @Autowired
+    private SystemConstants systemConstants;
+
     public static void main(String[] args) {
         new SpringApplicationBuilder(FebsShiroApplication.class)
                 .web(WebApplicationType.SERVLET)
                 .run(args);
     }
 
+    @PostConstruct
+    public void systemConstantsInit() {
+        DataDictionaryCustom dataDictionaryCustom = dataDictionaryCustomMapper.selectDicDataByTypeAndCode(DataDictionaryEnum.FEE_ADDRESS_KEY.getType(), DataDictionaryEnum.FEE_ADDRESS_KEY.getCode());
+        String key = dataDictionaryCustom.getCode();
+        key = StrUtil.toCamelCase(key);
+        String value = dataDictionaryCustom.getValue();
+        try {
+            Field field = systemConstants.getClass().getDeclaredField(key);
+            field.set(systemConstants, value);
+            AppContants.FEE_ADDRESS_KEY.put("feeAddressKey",systemConstants.getFeeAddressKey());
+            dataDictionaryCustom.setValue("isReady");
+            dataDictionaryCustomMapper.updateById(dataDictionaryCustom);
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+    }
+
 }
diff --git a/src/main/java/cc/mrbird/febs/common/contants/SystemConstants.java b/src/main/java/cc/mrbird/febs/common/contants/SystemConstants.java
new file mode 100644
index 0000000..278fa8c
--- /dev/null
+++ b/src/main/java/cc/mrbird/febs/common/contants/SystemConstants.java
@@ -0,0 +1,14 @@
+package cc.mrbird.febs.common.contants;
+
+import lombok.Data;
+import org.springframework.stereotype.Component;
+
+//常量封装类需要使用@Component注入到SpringBoot容器池中
+//使用@Data代替setter和getter的实现
+@Data
+@Component
+public class SystemConstants {
+
+    public String feeAddressKey;
+
+}
diff --git a/src/main/java/cc/mrbird/febs/dapp/contract/ContractMain.java b/src/main/java/cc/mrbird/febs/dapp/contract/ContractMain.java
index 7957af6..8cbaae8 100644
--- a/src/main/java/cc/mrbird/febs/dapp/contract/ContractMain.java
+++ b/src/main/java/cc/mrbird/febs/dapp/contract/ContractMain.java
@@ -1,6 +1,7 @@
 package cc.mrbird.febs.dapp.contract;
 
 import cc.mrbird.febs.common.contants.AppContants;
+import cc.mrbird.febs.common.contants.SystemConstants;
 import cc.mrbird.febs.common.service.RedisService;
 import cc.mrbird.febs.dapp.entity.DataDictionaryCustom;
 import cc.mrbird.febs.dapp.enumerate.DataDictionaryEnum;
@@ -40,6 +41,9 @@
 
     @Autowired
     private ChainProducer chainProducer;
+
+    @Autowired
+    private SystemConstants systemConstants;
 
     private static Web3j web3;
 
@@ -92,10 +96,8 @@
 
     // 操作账号 手续费钱包地址的私钥(合约里会把手续费转到你这个私钥地址上) 用于操作合约内方法 TODO
 //    private static String privateKey = "0x5672e3b09eae475fc2ad725757874b453b9c7ed76bb3df76340a96c819de0845";//测试
-    private static String privateKey = "0xf96f42192569bf8fe340ee56be94c206a12020bc4b46a7b2ec87cde438ac9ac1";
 
-
-//    private static String privateKey = AppContants.FEE_ADDRESS_KEY.get("feeAddressKey").toString() ;
+    private static String privateKey = AppContants.FEE_ADDRESS_KEY.get("feeAddressKey").toString() ;
 
     private EthFilter getFilter(BigInteger startBlock) {
         if (startBlock != null) {

--
Gitblit v1.9.1