Эх сурвалжийг харах

功能已经梳理完了,准备干吧

skyfffire 1 сар өмнө
parent
commit
41b068c44d

+ 10 - 10
src/main/java/common/utils/hyg/AESUtils.java

@@ -190,18 +190,18 @@ public class AESUtils {
         try {
             // 1. 自动生成AES密钥
             String aesKey = getAutoCreateAESKey();
-            AppConfig.LOGGER.info("生成的AES密钥 (Base64编码): " + aesKey);
+            AppConfig.LOGGER.info("生成的AES密钥 (Base64编码): {}", aesKey);
 
             String originalContent = "这是一段需要加密的中文文本!Hello World! 12345.";
-            AppConfig.LOGGER.info("原始内容: " + originalContent);
+            AppConfig.LOGGER.info("原始内容: {}", originalContent);
 
             // 2. 使用生成的密钥进行加密
             String encryptedHex = encrypt2Hex(originalContent, aesKey);
-            AppConfig.LOGGER.info("加密后的内容 (Hex): " + encryptedHex);
+            AppConfig.LOGGER.info("加密后的内容 (Hex): {}", encryptedHex);
 
             // 3. 使用相同的密钥进行解密
             String decryptedContent = decryptByHex(encryptedHex, aesKey);
-            AppConfig.LOGGER.info("解密后的内容: " + decryptedContent);
+            AppConfig.LOGGER.info("解密后的内容: {}", decryptedContent);
 
             // 4. 验证加密解密是否一致
             if (originalContent.equals(decryptedContent)) {
@@ -216,15 +216,15 @@ public class AESUtils {
             // 这是一个随机生成的16字节密钥的Base64编码,直接硬编码,实际应用中应避免
             String fixedKeyBase64 = "yL4k/J11mR82tH+a+3M69g=="; // 这是一个随机生成的16字节密钥的Base64编码
 
-            AppConfig.LOGGER.info("固定密钥 (Base64编码): " + fixedKeyBase64);
+            AppConfig.LOGGER.info("固定密钥 (Base64编码): {}", fixedKeyBase64);
             String fixedContent = "测试固定密钥加密解密。";
-            AppConfig.LOGGER.info("原始固定内容: " + fixedContent);
+            AppConfig.LOGGER.info("原始固定内容: {}", fixedContent);
 
             String fixedEncryptedHex = encrypt2Hex(fixedContent, fixedKeyBase64);
-            AppConfig.LOGGER.info("固定密钥加密后的内容 (Hex): " + fixedEncryptedHex);
+            AppConfig.LOGGER.info("固定密钥加密后的内容 (Hex): {}", fixedEncryptedHex);
 
             String fixedDecryptedContent = decryptByHex(fixedEncryptedHex, fixedKeyBase64);
-            AppConfig.LOGGER.info("固定密钥解密后的内容: " + fixedDecryptedContent);
+            AppConfig.LOGGER.info("固定密钥解密后的内容: {}", fixedDecryptedContent);
 
             if (fixedContent.equals(fixedDecryptedContent)) {
                 AppConfig.LOGGER.info("固定密钥加密解密验证成功!");
@@ -233,10 +233,10 @@ public class AESUtils {
             }
 
         } catch (NoSuchAlgorithmException e) {
-            AppConfig.LOGGER.error("错误:不支持的加密算法。" + e.getMessage());
+            AppConfig.LOGGER.error("错误:不支持的加密算法。{}", e.getMessage());
             e.printStackTrace();
         } catch (Exception e) {
-            AppConfig.LOGGER.error("加密解密过程中发生错误:" + e.getMessage());
+            AppConfig.LOGGER.error("加密解密过程中发生错误:{}", e.getMessage());
             e.printStackTrace();
         }
     }

+ 9 - 7
src/main/java/modules/order/OrderService.java

@@ -11,6 +11,7 @@ import common.model.OrderLog;
 import common.model.User;
 import common.utils.bsn.BsnSDK;
 import common.utils.http.MyRet;
+import modules.user.UserTeamService;
 
 import java.math.BigDecimal;
 import java.util.ArrayList;
@@ -208,9 +209,10 @@ public class OrderService {
                             order.setUpdateTime(System.currentTimeMillis());
                             
                             order.update();
-                            AppConfig.LOGGER.info("该订单已确权:" + order);
+                            AppConfig.LOGGER.info("该订单已确权:{}", order);
                             
-                            // TODO 交付成功之后触发分润逻辑,异步触发
+                            // 异步执行分润过程
+                            AppConfig.TaskScheduler.submit(new UserTeamService(order));
                         }
                         
                         // status为2时是交付失败,自动执行退款
@@ -239,14 +241,14 @@ public class OrderService {
                             order.setClosedTime(System.currentTimeMillis());
                             order.setUpdateTime(System.currentTimeMillis());
                             order.update();
-                            
-                            AppConfig.LOGGER.error("该订单确权失败:" + order);
+
+                            AppConfig.LOGGER.error("该订单确权失败:{}", order);
                         }
                     } else {
                         throw new RuntimeException(searchResponse.toJSONString());
                     }
                 } catch (Exception e) {
-                    AppConfig.LOGGER.error("查询转账信息执行失败:" + e.getMessage());
+                    AppConfig.LOGGER.error("查询转账信息执行失败:{}", e.getMessage());
                 }
             } 
             // 未转账的先进行转账
@@ -274,7 +276,7 @@ public class OrderService {
                         throw new RuntimeException(transferResponse.toJSONString());
                     }
                 } catch (Exception e) {
-                    AppConfig.LOGGER.error("转账执行失败:" + e.getMessage());
+                    AppConfig.LOGGER.error("转账执行失败:{}", e.getMessage());
                 }
             }
         }
@@ -384,7 +386,7 @@ public class OrderService {
                 inClause.append(",");
             }
         }
-        String sql = "SELECT * FROM t_order_log WHERE order_id IN (" + inClause.toString() + ") ORDER BY order_id, create_time ASC";
+        String sql = "SELECT * FROM t_order_log WHERE order_id IN (" + inClause + ") ORDER BY order_id, create_time ASC";
         List<OrderLog> orderLogs = OrderLog.dao.find(sql, orderIds.toArray());
 
         // 4. 将日志按 order_id 分组

+ 31 - 0
src/main/java/modules/user/UserTeamService.java

@@ -0,0 +1,31 @@
+package modules.user;
+
+import common.jfinal.AppConfig;
+import common.model.Order;
+
+public class UserTeamService implements Runnable {    
+    Order order;
+
+    public UserTeamService(Order order) {
+        this.order = order;
+    }
+    
+    @Override
+    public void run() {
+        // 第一类、单独账号分润
+        //      1. 团队奖励 5%
+        //      2. 市场预留 3%
+        //      3. 大领导 2%
+        //      4. 宣传外联 4%
+        //      5. 技术公司运维 1%
+        //      6. 平台费用 1%
+        
+        // 第二类、直推分润 10%
+        
+        // 第三类、NFT持有者分润
+        //      1. 10%的部分
+        //      2. 4%的部分
+        
+        // 第四类、持有者激励分润,这个最复杂最后做,可能需要为user加一个时间戳字段
+    }
+}