From 3481efebb5033dd35ce6066d030873a892d1db76 Mon Sep 17 00:00:00 2001
From: LSH
Date: 星期二, 28 十一月 2023 14:42:43 +0800
Subject: [PATCH] #

---
 src/main/java/com/zy/crm/manager/service/impl/SmsCodeServiceImpl.java |   66 ++++++++++++++++++++++++++++++++-
 1 files changed, 64 insertions(+), 2 deletions(-)

diff --git a/src/main/java/com/zy/crm/manager/service/impl/SmsCodeServiceImpl.java b/src/main/java/com/zy/crm/manager/service/impl/SmsCodeServiceImpl.java
index 571e3c7..edcd43e 100644
--- a/src/main/java/com/zy/crm/manager/service/impl/SmsCodeServiceImpl.java
+++ b/src/main/java/com/zy/crm/manager/service/impl/SmsCodeServiceImpl.java
@@ -1,17 +1,24 @@
 package com.zy.crm.manager.service.impl;
 
-import com.core.common.R;
+import com.core.common.Cools;
+import com.zy.crm.common.entity.PhoneCodeTypeParam;
 import com.zy.crm.manager.mapper.SmsCodeMapper;
 import com.zy.crm.manager.entity.SmsCode;
 import com.zy.crm.manager.service.SmsCodeService;
 import com.baomidou.mybatisplus.service.impl.ServiceImpl;
 import com.zy.crm.manager.utils.SmsUtils;
+import com.zy.crm.system.entity.Config;
+import com.zy.crm.system.service.ConfigService;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
 import java.util.Date;
 
 @Service("smsCodeService")
 public class SmsCodeServiceImpl extends ServiceImpl<SmsCodeMapper, SmsCode> implements SmsCodeService {
+
+    @Autowired
+    private ConfigService configService;
 
     @Override
     public SmsCode selectByPhone(String phone) {
@@ -41,6 +48,57 @@
         return true;
     }
 
+//    @Override
+//    public boolean sendSmsCodeText(String phone) {
+//        String randomNum = "鍒嗛厤浜嗘柊鐨勮鍒掔敵璇峰崟浠诲姟锛�" ;//鑾峰彇鍏綅闅忔満鏁�
+//        SmsCode smsCode = new SmsCode();
+//        smsCode.setPhone(phone);
+//        smsCode.setCode(randomNum);
+//        smsCode.setStatus(0);
+//        smsCode.setCreateTime(new Date());
+//        if (this.baseMapper.insert(smsCode) <= 0) {
+//            return false;
+//        }
+//
+//        boolean sendSmsCode = SmsUtils.sendSmsCodeText(phone, "");
+//        if (!sendSmsCode) {
+//            return false;
+//        }
+//
+//        smsCode.setSendTime(new Date());
+//        smsCode.setStatus(1);
+//        this.baseMapper.updateById(smsCode);
+//        return true;
+//    }
+
+    @Override
+    public boolean sendSmsCodeText(String phone, PhoneCodeTypeParam param,Long userId) {
+        Config config = configService.selectConfigByCode("SMSNotification");
+        if (Cools.isEmpty(config) || !config.getValue().equals("true")) {
+            return true;
+        }
+        String randomNum = param.code;
+        SmsCode smsCode = new SmsCode();
+        smsCode.setPhone(phone);
+        smsCode.setCode(randomNum);
+        smsCode.setStatus(0);
+        smsCode.setCreateTime(new Date());
+        smsCode.setUserId(userId);
+        if (this.baseMapper.insert(smsCode) <= 0) {
+            return false;
+        }
+
+        boolean sendSmsCode = SmsUtils.sendSmsCodeText(phone, param);
+        if (!sendSmsCode) {
+            return false;
+        }
+
+        smsCode.setSendTime(new Date());
+        smsCode.setStatus(1);
+        this.baseMapper.updateById(smsCode);
+        return true;
+    }
+
     @Override
     public boolean verifySmsCode(String phone, String code) {
         SmsCode smsCode1 = this.baseMapper.selectByPhone(phone);
@@ -48,10 +106,14 @@
             return false;
         }
 
+        if (!smsCode1.getCode().equals(code)) {
+            return false;
+        }
+
         long createTime = smsCode1.getCreateTime().getTime();
         long nowTime = new Date().getTime();
         long diff = nowTime - createTime;
-        if (diff > (60000 * 5)) {//鐭俊鏃堕棿瓒呰繃浜斿垎閽燂紝宸插け鏁�
+        if (diff > (60000 * 10)) {//鐭俊鏃堕棿瓒呰繃鍗佸垎閽燂紝宸插け鏁�
             return false;
         }
 

--
Gitblit v1.9.1