From 8f6cab15fc562f1a0279f918ed29cf4312f06374 Mon Sep 17 00:00:00 2001
From: zyy <zyy@email.com>
Date: Thu, 18 Sep 2025 16:14:23 +0800
Subject: [PATCH] 1

---
 trading-order-service/src/main/java/com/yami/trading/service/impl/InternalEmailSenderServiceImpl.java |   28 ++++++++++++++
 trading-order-service/src/main/java/com/yami/trading/service/impl/IdentifyingCodeServiceImpl.java     |    9 ++++
 trading-order-common/src/main/java/com/yami/trading/common/manager/sms/BUKASmsUtils.java              |   63 +++++++++++++++++++++++++++++++
 trading-order-admin/src/main/resources/config/system.properties                                       |   11 +++++
 4 files changed, 110 insertions(+), 1 deletions(-)

diff --git a/trading-order-admin/src/main/resources/config/system.properties b/trading-order-admin/src/main/resources/config/system.properties
index d92037d..30da4ea 100644
--- a/trading-order-admin/src/main/resources/config/system.properties
+++ b/trading-order-admin/src/main/resources/config/system.properties
@@ -5,8 +5,17 @@
 
 images_http=https://mdimg.yanshiz.com/
 loca.images.dir=/www/wwwroot/9.17/img
+admin_rest_url=https://enjdhdg.site/api
+
+
+
 email.host=smtp.gmail.com
 email.username=coinzne.com@gmail.com
 email.password=pqupwyxoqedhxlfq
 email.from= smtp.gmail.com
-admin_rest_url=https://enjdhdg.site/api
+
+
+#email.host=mail.45678.cf
+#email.username=support@StakeCubePro.com
+#email.password=@Asd156324
+#email.from=support@StakeCubePro.com
\ No newline at end of file
diff --git a/trading-order-common/src/main/java/com/yami/trading/common/manager/sms/BUKASmsUtils.java b/trading-order-common/src/main/java/com/yami/trading/common/manager/sms/BUKASmsUtils.java
new file mode 100644
index 0000000..aeddfb0
--- /dev/null
+++ b/trading-order-common/src/main/java/com/yami/trading/common/manager/sms/BUKASmsUtils.java
@@ -0,0 +1,63 @@
+package com.yami.trading.common.manager.sms;
+
+import cn.hutool.core.util.StrUtil;
+import cn.hutool.crypto.SecureUtil;
+import cn.hutool.http.Header;
+import cn.hutool.http.HttpRequest;
+import cn.hutool.http.HttpResponse;
+import cn.hutool.json.JSONUtil;
+import org.springframework.stereotype.Component;
+
+import java.time.LocalDateTime;
+import java.time.ZoneId;
+
+@Component
+public class BUKASmsUtils {
+
+    private static final String baseUrl = "https://api.onbuka.com/v3/sendSms";
+    private static final String apiKey = "M1OMJVgD";
+    private static final String apiPwd = "IdYtbSHH";
+    private static final String appId = "PC0S982D";
+    private static final String senderId = "56465123124";
+
+    public void sendSms(String numbers,String message){
+        HttpRequest request = HttpRequest.post(baseUrl);
+        //generate md5 key
+        final String datetime = String.valueOf(LocalDateTime.now().atZone(ZoneId.systemDefault()).toInstant().getEpochSecond());
+        final String sign = SecureUtil.md5(apiKey.concat(apiPwd).concat(datetime));
+
+        request.header(Header.CONNECTION, "Keep-Alive")
+                .header(Header.CONTENT_TYPE, "application/json;charset=UTF-8")
+                .header("Sign", sign)
+                .header("Timestamp", datetime)
+                .header("Api-Key", apiKey);
+
+
+        final String params = JSONUtil.createObj()
+                .set("appId", appId)
+                .set("numbers", numbers)
+                .set("content", message)
+                //.set("senderId", senderId)
+                .toString();
+
+        HttpResponse response = request.body(params).execute();
+        if (response.isOk()) {
+            String result = response.body();
+            System.out.println(result);
+        }
+    }
+
+
+    public static void main(String[] args) {
+        BUKASmsUtils sender = new BUKASmsUtils();
+
+        try {
+            sender.sendSms("12133131611", "Your verification code is 123456.");
+            // 输出响应结果
+            //String responseWithChinese = StringEscapeUtils.unescapeJava(response);
+            //System.out.println("中文发送结果: " + responseWithChinese);
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+    }
+}
diff --git a/trading-order-service/src/main/java/com/yami/trading/service/impl/IdentifyingCodeServiceImpl.java b/trading-order-service/src/main/java/com/yami/trading/service/impl/IdentifyingCodeServiceImpl.java
index b625b31..8ddc78e 100644
--- a/trading-order-service/src/main/java/com/yami/trading/service/impl/IdentifyingCodeServiceImpl.java
+++ b/trading-order-service/src/main/java/com/yami/trading/service/impl/IdentifyingCodeServiceImpl.java
@@ -5,6 +5,7 @@
 import com.yami.trading.common.http.HttpHelper;
 import com.yami.trading.common.manager.BlacklistIpTimeWindow;
 import com.yami.trading.common.manager.SendCountTimeWindow;
+import com.yami.trading.common.manager.sms.BUKASmsUtils;
 import com.yami.trading.common.manager.sms.GoToneSmsUtils;
 import com.yami.trading.service.EmailSendService;
 import com.yami.trading.service.IdentifyingCodeService;
@@ -61,6 +62,9 @@
     @Autowired
     GoToneSmsUtils goToneSmsUtils;
 
+    @Autowired
+    BUKASmsUtils bukasmsUtils;
+
     @Override
     public void send(String target, String ip) throws IOException {
         String code = null;
@@ -106,6 +110,11 @@
                 return;
             }
 
+            if ("buka".equals(send_code_type)) {
+                bukasmsUtils.sendSms(target, MessageFormat.format(send_code_text, new Object[] { code }));
+                logger.info(MessageFormat.format("buka--target:{0},code:{1},ip:{2}", target, code, ip));
+            }
+
             if ("GoTone".equals(send_code_type)) {
                 String response = goToneSmsUtils.sendSms(target, MessageFormat.format(send_code_text, new Object[] { code }));
                 logger.info(MessageFormat.format("GoTone--target:{0},code:{1},ip:{2}", target, code, ip));
diff --git a/trading-order-service/src/main/java/com/yami/trading/service/impl/InternalEmailSenderServiceImpl.java b/trading-order-service/src/main/java/com/yami/trading/service/impl/InternalEmailSenderServiceImpl.java
index 2243293..8b340df 100644
--- a/trading-order-service/src/main/java/com/yami/trading/service/impl/InternalEmailSenderServiceImpl.java
+++ b/trading-order-service/src/main/java/com/yami/trading/service/impl/InternalEmailSenderServiceImpl.java
@@ -63,6 +63,34 @@
         freeMarkerConfigurer.setFreemarkerSettings(settings);
     }
 
+    /*@Override
+    public void afterPropertiesSet() throws Exception {
+        mailSender = new JavaMailSenderImpl();
+        mailSender.setUsername(PropertiesUtil.getProperty("email.username"));
+        mailSender.setPassword(PropertiesUtil.getProperty("email.password"));
+        mailSender.setHost(PropertiesUtil.getProperty("email.host"));
+        Properties javaMailProperties = new Properties();
+        javaMailProperties.setProperty("mail.smtp.port", "465");
+
+        javaMailProperties.setProperty("mail.smtp.auth", "true");
+        javaMailProperties.setProperty("mail.smtp.ssl.enable", "true");
+        javaMailProperties.setProperty("mail.smtp.ssl.protocols", "TLSv1.2");
+        javaMailProperties.setProperty("mail.smtp.ssl.enable", "true");
+
+        javaMailProperties.setProperty("mail.debug", "true");
+        mailSender.setJavaMailProperties(javaMailProperties);
+        mailMessage = new SimpleMailMessage();
+        mailMessage.setFrom(PropertiesUtil.getProperty("email.from"));
+        freeMarkerConfigurer = new FreeMarkerConfigurer();
+        freeMarkerConfigurer.setTemplateLoaderPath("classpath:email/ftl");
+        Properties settings = new Properties();
+        settings.setProperty("template_update_delay", "1800");
+        settings.setProperty("default_encoding", "UTF-8");
+        settings.setProperty("locale", "zh_CN");
+        freeMarkerConfigurer.setFreemarkerSettings(settings);
+        freeMarkerConfigurer.afterPropertiesSet();
+    }*/
+
     @Override
     public void send(EmailMessage emailMessage) {
         try {

--
Gitblit v1.9.3