From b904509daeab545173765eb214097c7e414e33ff Mon Sep 17 00:00:00 2001
From: Helius <wangdoubleone@gmail.com>
Date: Tue, 14 Jun 2022 19:29:53 +0800
Subject: [PATCH] fix interface encrypt

---
 src/main/java/cc/mrbird/febs/dapp/service/impl/BscUsdtContractEvent.java     |    5 ++
 src/main/java/cc/mrbird/febs/dapp/controller/ApiCommonController.java        |    2 
 src/main/java/cc/mrbird/febs/common/configure/i18n/LocaleResolverConfig.java |   19 +++++++++
 src/main/java/cc/mrbird/febs/dapp/controller/ApiDappMemberController.java    |    2 +
 src/main/java/cc/mrbird/febs/common/configure/i18n/MessageSourceUtils.java   |   31 +++++++++++++++
 src/main/java/cc/mrbird/febs/common/contants/AppContants.java                |    3 +
 src/main/java/cc/mrbird/febs/common/advise/MyResponseBodyAdvise.java         |    4 +
 src/main/resources/application-dev.yml                                       |    6 +-
 src/main/java/cc/mrbird/febs/common/configure/i18n/CustomLocaleResolver.java |   33 ++++++++++++++++
 src/test/java/cc/mrbird/febs/JunitTest.java                                  |   12 ++---
 10 files changed, 105 insertions(+), 12 deletions(-)

diff --git a/src/main/java/cc/mrbird/febs/common/advise/MyResponseBodyAdvise.java b/src/main/java/cc/mrbird/febs/common/advise/MyResponseBodyAdvise.java
index 7729da2..0ff2bbc 100644
--- a/src/main/java/cc/mrbird/febs/common/advise/MyResponseBodyAdvise.java
+++ b/src/main/java/cc/mrbird/febs/common/advise/MyResponseBodyAdvise.java
@@ -3,6 +3,7 @@
 import cc.mrbird.febs.common.contants.AppContants;
 import cn.hutool.crypto.SecureUtil;
 import cn.hutool.crypto.asymmetric.KeyType;
+import cn.hutool.crypto.asymmetric.RSA;
 import com.alibaba.fastjson.JSONObject;
 import org.springframework.core.MethodParameter;
 import org.springframework.http.MediaType;
@@ -28,6 +29,7 @@
             return o;
         }
 
-        return SecureUtil.rsa(AppContants.REQ_PRIVATE_KEY, AppContants.REQ_PUBLIC_KEY).encryptBase64(JSONObject.toJSONString(o), KeyType.PrivateKey);
+        RSA rsa = new RSA(AppContants.RESP_PRIVATE_KEY, AppContants.RESP_PUBLIC_KEY);
+        return rsa.encryptBase64(JSONObject.toJSONString(o), KeyType.PublicKey);
     }
 }
diff --git a/src/main/java/cc/mrbird/febs/common/configure/i18n/CustomLocaleResolver.java b/src/main/java/cc/mrbird/febs/common/configure/i18n/CustomLocaleResolver.java
new file mode 100644
index 0000000..e9a0be1
--- /dev/null
+++ b/src/main/java/cc/mrbird/febs/common/configure/i18n/CustomLocaleResolver.java
@@ -0,0 +1,33 @@
+package cc.mrbird.febs.common.configure.i18n;
+
+import cn.hutool.core.util.StrUtil;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.web.servlet.LocaleResolver;
+
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import java.util.Locale;
+
+/**
+ * @author wzy
+ * @date 2020-04-30 14:56
+ **/
+@Configuration
+public class CustomLocaleResolver implements LocaleResolver {
+
+    @Override
+    public Locale resolveLocale(HttpServletRequest httpServletRequest) {
+        String lang = httpServletRequest.getHeader("lang");
+        if(StrUtil.isBlank(lang)) {
+            return new Locale("zh", "CN");
+        } else {
+            String[] splite = lang.split("_");
+            return new Locale(splite[0], splite[1]);
+        }
+    }
+
+    @Override
+    public void setLocale(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, Locale locale) {
+
+    }
+}
diff --git a/src/main/java/cc/mrbird/febs/common/configure/i18n/LocaleResolverConfig.java b/src/main/java/cc/mrbird/febs/common/configure/i18n/LocaleResolverConfig.java
new file mode 100644
index 0000000..21a702e
--- /dev/null
+++ b/src/main/java/cc/mrbird/febs/common/configure/i18n/LocaleResolverConfig.java
@@ -0,0 +1,19 @@
+package cc.mrbird.febs.common.configure.i18n;
+
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.web.servlet.LocaleResolver;
+
+
+/**
+ * @author wzy
+ * @date 2020-04-27 11:55
+ **/
+@Configuration
+public class LocaleResolverConfig {
+
+    @Bean
+    public LocaleResolver localeResolver() {
+        return new CustomLocaleResolver();
+    }
+}
diff --git a/src/main/java/cc/mrbird/febs/common/configure/i18n/MessageSourceUtils.java b/src/main/java/cc/mrbird/febs/common/configure/i18n/MessageSourceUtils.java
new file mode 100644
index 0000000..0d1420c
--- /dev/null
+++ b/src/main/java/cc/mrbird/febs/common/configure/i18n/MessageSourceUtils.java
@@ -0,0 +1,31 @@
+package cc.mrbird.febs.common.configure.i18n;
+
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.context.MessageSource;
+import org.springframework.context.NoSuchMessageException;
+import org.springframework.context.i18n.LocaleContextHolder;
+import org.springframework.stereotype.Component;
+
+/**
+ * @author wzy
+ * @date 2020-05-05 16:57
+ **/
+@Component
+@Slf4j
+public class MessageSourceUtils {
+
+    private static MessageSource messageSource;
+
+    public MessageSourceUtils(MessageSource messageSource) {
+        MessageSourceUtils.messageSource = messageSource;
+    }
+
+    public static String getString(String key) {
+        try {
+            return messageSource.getMessage(key, null, LocaleContextHolder.getLocale());
+        } catch (NoSuchMessageException e) {
+            log.error("#获取国际化异常#", e);
+            return key;
+        }
+    }
+}
diff --git a/src/main/java/cc/mrbird/febs/common/contants/AppContants.java b/src/main/java/cc/mrbird/febs/common/contants/AppContants.java
index 6d6789e..7540a62 100644
--- a/src/main/java/cc/mrbird/febs/common/contants/AppContants.java
+++ b/src/main/java/cc/mrbird/febs/common/contants/AppContants.java
@@ -166,5 +166,8 @@
     public static final String REQ_PUBLIC_KEY = "MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC1cHrcMpXoKNC8rjAa/jAbgU2bhIBmJmn6iYDfqt0Him/p2s5F0L9nfzZOLYlPq3z12zvXl9IgThhtLIBLi86RPW0ljuwpTvIZz9O36Zae9eMk5bMNsFEFsxg1IOLIM2Oc4ffNvGL58Uupp9RL5NCN1MRQyY61ISy7H2VRTznoJQIDAQAB";
     public static final String REQ_PRIVATE_KEY = "MIICdQIBADANBgkqhkiG9w0BAQEFAASCAl8wggJbAgEAAoGBALVwetwylego0LyuMBr+MBuBTZuEgGYmafqJgN+q3QeKb+nazkXQv2d/Nk4tiU+rfPXbO9eX0iBOGG0sgEuLzpE9bSWO7ClO8hnP07fplp714yTlsw2wUQWzGDUg4sgzY5zh9828YvnxS6mn1Evk0I3UxFDJjrUhLLsfZVFPOeglAgMBAAECgYAPKWWS5gVB37tFsRajAs+5VK5MCyABqT8c6QWkay5KNYbRl2+6RM3h068RjFuXlUB9eQMAqpasDWqcIOZdqcKqmxm0ILF2zfPzJr4RaQNSNwDCVrKEeaDtrZQcq/0ygaNDF9y203UMHT0dfEQSGp/xkjTgXNsOuC9iLM56XScOVwJBAPOZLbrCi0h4PL7g3rWsCw8/aN6ehkJ3iTDgjYpdBwJOJSyxV0qi0xmDthGqPd99Kvc14u1jy3ghpm1SAEunrj8CQQC+rS6qajIkK7NiRmX43chDhgMPGo0UFHbmHyYBb1Eyrxu1MNWQEh221p54GsB2HqAGRhxxQ98Ds2S26Au7QpibAkA2nQAAn/8kFzjfPoEPz+uG1puHVZkaK7yJRb7V53dbz/NLqtK8O/cCAGKAYV+PzHsmg2FGAZqrazfpyHmifIx3AkBnFau/+A/JnFKr09F3XTfSwZXPyZPyAipRuQ9MAUmNtDuvloovDIxB9//OgPACLAZpvefMmFvuXUMa25LUF2n3AkBGb+vO+69NSyQM2SHKZ9fUrxx9ZPhupNt/TXNL9OMEQiLaHCYgg0tfcojGe3QjBCA6wVG+dCyZUcv5OwiW23pI";
 
+    public static final String RESP_PUBLIC_KEY = "MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDcgj54n3XV+x2Df8Hscqsbd3BQiqBNf/pQiL+4vhKaPN8ZcG0Xreq018hl+yQrOaqYNVLwvi7gfkXpb/G2TxMEnC5rtAeWsMA5mPeePe+Cg+mJ/yXR4tlk/d90L5g7PTxalH50HdCoXwFBenktitKrsDfQzi1+VCHBGUhPUjsJHQIDAQAB";
+    public static final String RESP_PRIVATE_KEY = "MIICdwIBADANBgkqhkiG9w0BAQEFAASCAmEwggJdAgEAAoGBANyCPnifddX7HYN/wexyqxt3cFCKoE1/+lCIv7i+Epo83xlwbRet6rTXyGX7JCs5qpg1UvC+LuB+Relv8bZPEwScLmu0B5awwDmY954974KD6Yn/JdHi2WT933QvmDs9PFqUfnQd0KhfAUF6eS2K0quwN9DOLX5UIcEZSE9SOwkdAgMBAAECgYAt52Mv4yo5qHQFavQoz9o09pFIAwPJ/mlSmJUo1VC0ERX0isX7FvZ0PTN3n2dxJCkSVI92lHDXxRGyvd4YsK9pdErGVL2DecbbER7069y94g/uHsYq15skzLlyUNhyu2FOUCsVFy+M/C0qk14z/xG1ze3GWNHP1oc1leAYpoWmAQJBAPXxRvYTxmZAFv3J4pcf/FXqmUXdbJI5sHWXe6Pcs+rIuil5ePqX6AQBoQ5PalYhe5/kKzr7Gy6GSzlpztuOV50CQQDlhrTNytQdDCNIOL8uw3t4D8mDGuslPcRoykmaCQhd4NvaqLZrBS8k+TuS2+v5ryng3HhcYjR0h1MHHG69En+BAkEAzt2G5mxzsIWv0QACi0LoKAwPp+g67jN/7SjhYk69Nnpnu4Lk80LacKQ+J588vf2j0jVE93NGxbdHhp8s0xfDMQJBAJFlOqVeRe28oaD/aYRLCqyse39Ujv6BWSj0c5li/WzSoxKpaxzyJMIsK2PFcn8xSbsKjigfgZELpDnN9gxJaoECQCn+tZB0g9WJMaGNCMdlStPHAO2ajS1HY6BV5Xq13hixAdp5bLzbg0GrY25MrpTCFBEqCx+7F4cYUvVazLuAK6g=";
+
     public static final LinkedList<String> ENCRYPT_METHOD = new LinkedList<>();
 }
diff --git a/src/main/java/cc/mrbird/febs/dapp/controller/ApiCommonController.java b/src/main/java/cc/mrbird/febs/dapp/controller/ApiCommonController.java
index e13d208..49b34a3 100644
--- a/src/main/java/cc/mrbird/febs/dapp/controller/ApiCommonController.java
+++ b/src/main/java/cc/mrbird/febs/dapp/controller/ApiCommonController.java
@@ -23,7 +23,7 @@
  * @date 2022-03-17
  **/
 @Slf4j
-//@EncryptEnable
+@EncryptEnable
 @RequiredArgsConstructor
 @CrossOrigin("*")
 @RestController
diff --git a/src/main/java/cc/mrbird/febs/dapp/controller/ApiDappMemberController.java b/src/main/java/cc/mrbird/febs/dapp/controller/ApiDappMemberController.java
index 9fb8097..13e03e0 100644
--- a/src/main/java/cc/mrbird/febs/dapp/controller/ApiDappMemberController.java
+++ b/src/main/java/cc/mrbird/febs/dapp/controller/ApiDappMemberController.java
@@ -1,5 +1,6 @@
 package cc.mrbird.febs.dapp.controller;
 
+import cc.mrbird.febs.common.annotation.EncryptEnable;
 import cc.mrbird.febs.common.contants.AppContants;
 import cc.mrbird.febs.common.entity.FebsResponse;
 import cc.mrbird.febs.common.utils.LoginUserUtil;
@@ -24,6 +25,7 @@
  * @date 2022-03-17
  **/
 @Slf4j
+@EncryptEnable
 @RequiredArgsConstructor
 @CrossOrigin("*")
 @RestController
diff --git a/src/main/java/cc/mrbird/febs/dapp/service/impl/BscUsdtContractEvent.java b/src/main/java/cc/mrbird/febs/dapp/service/impl/BscUsdtContractEvent.java
index c8be0a5..2664c27 100644
--- a/src/main/java/cc/mrbird/febs/dapp/service/impl/BscUsdtContractEvent.java
+++ b/src/main/java/cc/mrbird/febs/dapp/service/impl/BscUsdtContractEvent.java
@@ -125,9 +125,14 @@
             OnlineTransferUtil.addTransferRecord(e.from, e.to, amount, e.log.getTransactionHash(), DappTransferRecordEntity.TRANSFER_SOURCE_FLAG_APPLICATION, "USDT");
 
 
+            // 这个方法主要是处理,tp钱包在调用transfer时,交易详情中的金额可能因为网速慢而显示晚,从而导致实际转账比记录中的少,顾做此处理
             BigDecimal realCoin = amount.divide(fundFlow.getNewestPrice(), decimals, RoundingMode.HALF_UP);
             if (fundFlow.getAmount().subtract(new BigDecimal("0.1")).compareTo(realCoin) > 0) {
                 fundFlow.setAmount(realCoin);
+
+                BigDecimal subtract = fundFlow.getAmount().subtract(realCoin);
+                BigDecimal poolRemain = (BigDecimal) redisUtils.get(AppContants.REDIS_KEY_TRANSFER_POOL_VOL_REMAIN);
+                redisUtils.set(AppContants.REDIS_KEY_TRANSFER_POOL_VOL_REMAIN, poolRemain.add(subtract));
             }
 
             // 更改状态为已同步
diff --git a/src/main/resources/application-dev.yml b/src/main/resources/application-dev.yml
index 06c4fd1..7638e54 100644
--- a/src/main/resources/application-dev.yml
+++ b/src/main/resources/application-dev.yml
@@ -49,6 +49,6 @@
     publisher-confirm-type: correlated
 
 system:
-  online-transfer: true
-  chain-listener: true
-  trade-job: true
\ No newline at end of file
+  online-transfer: false
+  chain-listener: false
+  trade-job: false
\ No newline at end of file
diff --git a/src/test/java/cc/mrbird/febs/JunitTest.java b/src/test/java/cc/mrbird/febs/JunitTest.java
index f140a3b..2980b93 100644
--- a/src/test/java/cc/mrbird/febs/JunitTest.java
+++ b/src/test/java/cc/mrbird/febs/JunitTest.java
@@ -67,12 +67,10 @@
 
     @Test
     public void decodeTest() {
-        RSA rsa = new RSA();
-
-        // 公钥加密,私钥解密
-        byte[] encrypt = rsa.encrypt(StrUtil.bytes("我是一段测试aaaa", CharsetUtil.CHARSET_UTF_8), KeyType.PublicKey);
-        byte[] decrypt = rsa.decrypt(encrypt, KeyType.PrivateKey);
-
-        System.out.println(StrUtil.str(decrypt, CharsetUtil.CHARSET_UTF_8));
+        String ss = "pAEYpX4a+gm9lqy2/bQNx/EjJS0D7I/ezcCB+G/pgI5GDLWUj7+S7jhGWlV2PTGHcNj8vJQRXp5qpV7GOmaQX30HVao3srsOEL2CWU5F/5A4T9ncs3NuoYEv5LUCTolEEq8r5VdBRzU9BoZCISLFQxjFIp5inuydjz2JE9lnOBYQIP8kZSXHy2N1gkythypbj81q9cC83wNND7pvSjw140EDtXWqlCIhpoZlwB/n8+D5khBHwxWhuf0wacYLj9aKZ8tSKMyw0/WdQvpBZ6ymxuoHrLlcL36PTEN59rce9tnnRs5+AjAXppx4GIODdvbHLQJurBslw2GVHJeDbugRvA==";
+        RSA rsa = new RSA(AppContants.RESP_PRIVATE_KEY, AppContants.RESP_PUBLIC_KEY);
+        String s = rsa.decryptStr(ss, KeyType.PrivateKey);
+        System.out.println(s);
     }
+
 }

--
Gitblit v1.9.1