zyy
2025-11-04 6f096ab34e0de20d9b5d4d064ce21f4773e7eadd
trading-order-service/src/main/java/com/yami/trading/service/impl/IdentifyingCodeServiceImpl.java
@@ -1,6 +1,7 @@
package com.yami.trading.service.impl;
import com.yami.trading.bean.log.domain.CodeLog;
import com.yami.trading.common.manager.sms.SmsSendUtil;
import com.yami.trading.service.EmailSendService;
import com.yami.trading.service.IdentifyingCodeService;
import com.yami.trading.service.IdentifyingCodeTimeWindowService;
@@ -42,46 +43,47 @@
    @Override
    public void send(String target, String ip, String userId) {
        String code;
        /**
         * 短信发送签名
         */
//      String smsbao_sign = sysparaService.find("smsbao_sign").getValue();
        //短信发送
        if (!target.contains("@")) {
            // 短信发送文本[TEST]code is :{0}
            String send_code_text = this.sysparaService.find("send_code_text").getSvalue();
            if (null == send_code_text || (send_code_text = send_code_text.trim()).isEmpty()) {
                logger.error("send_code_text 未配置");
                return;
            }
            //是否每次发送的code都不一样
            boolean send_code_always_new = this.sysparaService.find("send_code_always_new").getBoolean();
            Object object = this.identifyingCodeTimeWindowService.getAuthCode(target);
            if (object == null || send_code_always_new) {
                Random random = new Random();
                code = String.valueOf(random.nextInt(999999) % 900000 + 100000);
            } else {
                code = String.valueOf(object);
            }
        try {
            String code;
            /**
             * 发送的短信接口类型 tiantian---天天---smsSendService--->>>>--
             * moduyun---摩杜云---smsSingleSender
             * 短信发送签名
             */
            String send_code_type = this.sysparaService.find("send_code_type").getSvalue();
            if (null == send_code_type || (send_code_type = send_code_type.trim()).isEmpty()) {
                logger.error("send_code_type 未配置");
                return;
            }
//      String smsbao_sign = sysparaService.find("smsbao_sign").getValue();
            //短信发送
            if (!target.contains("@")) {
            if ("tiantian".equals(send_code_type)) {
                smsSendService.send(target, MessageFormat.format(send_code_text, code));
                logger.info(MessageFormat.format("tiangtian--target:{0},code:{1},ip:{2}", target, code, ip));
            }
                // 短信发送文本[TEST]code is :{0}
                String send_code_text = this.sysparaService.find("send_code_text").getSvalue();
                if (null == send_code_text || (send_code_text = send_code_text.trim()).isEmpty()) {
                    logger.error("send_code_text 未配置");
                    return;
                }
                //是否每次发送的code都不一样
                boolean send_code_always_new = this.sysparaService.find("send_code_always_new").getBoolean();
                Object object = this.identifyingCodeTimeWindowService.getAuthCode(target);
                if (object == null || send_code_always_new) {
                    Random random = new Random();
                    code = String.valueOf(random.nextInt(999999) % 900000 + 100000);
                } else {
                    code = String.valueOf(object);
                }
                /**
                 * 发送的短信接口类型 tiantian---天天---smsSendService--->>>>--
                 * moduyun---摩杜云---smsSingleSender
                 */
                String send_code_type = this.sysparaService.find("send_code_type").getSvalue();
                if (null == send_code_type || (send_code_type = send_code_type.trim()).isEmpty()) {
                    logger.error("send_code_type 未配置");
                    return;
                }
                if ("tiantian".equals(send_code_type)) {
                    smsSendService.send(target, MessageFormat.format(send_code_text, code));
                    logger.info(MessageFormat.format("tiangtian--target:{0},code:{1},ip:{2}", target, code, ip));
                }
//         else if ("moduyun".equals(send_code_type)) {
//            // -- 摩杜云短信签名的Id--accesskey,secretkey,signId,templateId
@@ -101,47 +103,57 @@
//               }
//            }
//         }
            else if ("smsbao".equals(send_code_type)) {
                smsSendService.send(target, MessageFormat.format(send_code_text, code));
                logger.info(MessageFormat.format("smsbao--target:{0},code:{1},ip:{2}", target, code, ip));
            }
                else if ("smsbao".equals(send_code_type)) {
                    smsSendService.send(target, MessageFormat.format(send_code_text, code));
                    logger.info(MessageFormat.format("smsbao--target:{0},code:{1},ip:{2}", target, code, ip));
                }
        } else {
                else if ("smszh".equals(send_code_type)) {
                    SmsSendUtil.sendSms(target, MessageFormat.format(send_code_text, code), null, null);
                    logger.info(MessageFormat.format("smszh--target:{0},code:{1},ip:{2}", target, code, ip));
                }
            //邮件发送
            String send_code_text_content = this.sysparaService.find("send_code_text_content").getSvalue();
            if (null == send_code_text_content || (send_code_text_content = send_code_text_content.trim()).isEmpty()) {
                logger.error("send_code_text_content 未配置");
                return;
            }
            //是否每次发送的code都不一样
            boolean send_code_always_new = this.sysparaService.find("send_code_always_new").getBoolean();
            Object object = this.identifyingCodeTimeWindowService.getAuthCode(target);
            if (object == null || send_code_always_new) {
                Random random = new Random();
                code = String.valueOf(random.nextInt(999999) % 900000 + 100000);
            } else {
                code = String.valueOf(object);
                //邮件发送
                String send_code_text_content = this.sysparaService.find("send_code_text_content").getSvalue();
                if (null == send_code_text_content || (send_code_text_content = send_code_text_content.trim()).isEmpty()) {
                    logger.error("send_code_text_content 未配置");
                    return;
                }
                //是否每次发送的code都不一样
                boolean send_code_always_new = this.sysparaService.find("send_code_always_new").getBoolean();
                Object object = this.identifyingCodeTimeWindowService.getAuthCode(target);
                if (object == null || send_code_always_new) {
                    Random random = new Random();
                    code = String.valueOf(random.nextInt(999999) % 900000 + 100000);
                } else {
                    code = String.valueOf(object);
                }
                String content = MessageFormat.format("code is :{0}", code);
                String send_content_text = this.sysparaService.find("send_content_text").getSvalue();
                if (0 != (send_content_text = send_content_text.trim()).length()) {
                    content = MessageFormat.format(send_content_text, code);
                }
                emailSendService.sendEmail(target, MessageFormat.format(send_code_text_content, code), content);
                logger.info(MessageFormat.format("email--target:{0},code:{1},ip:{2}", target, code, ip));
            }
            String content = MessageFormat.format("code is :{0}", code);
            String send_content_text = this.sysparaService.find("send_content_text").getSvalue();
            if (0 != (send_content_text = send_content_text.trim()).length()) {
                content = MessageFormat.format(send_content_text, code);
            }
            emailSendService.sendEmail(target, MessageFormat.format(send_code_text_content, code), content);
            logger.info(MessageFormat.format("email--target:{0},code:{1},ip:{2}", target, code, ip));
            this.identifyingCodeTimeWindowService.putAuthCode(target, code);
            CodeLog codeLog = new CodeLog();
            codeLog.setTarget(target);
            codeLog.setUserId(userId);
            codeLog.setLog("发送地址:" + target + ",验证码:" + code + ",ip地址:" + ip);
            codeLog.setCreateTime(new Date());
            codeLogService.save(codeLog);
        }catch (Exception e) {
            throw new RuntimeException();
        }
        this.identifyingCodeTimeWindowService.putAuthCode(target, code);
        CodeLog codeLog = new CodeLog();
        codeLog.setTarget(target);
        codeLog.setUserId(userId);
        codeLog.setLog("发送地址:" + target + ",验证码:" + code + ",ip地址:" + ip);
        codeLog.setCreateTime(new Date());
        codeLogService.save(codeLog);
    }
}