From afa3bc1e2f39f66f59ee9b15d6af16593acdc9a4 Mon Sep 17 00:00:00 2001
From: LSH
Date: 星期六, 02 十二月 2023 10:38:27 +0800
Subject: [PATCH] #

---
 src/main/java/com/zy/crm/manager/service/impl/SmsCodeServiceImpl.java |   73 ++++++++++++++++++++++++++++++++++--
 1 files changed, 68 insertions(+), 5 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..1ec0053 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,11 +1,15 @@
 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;
@@ -13,9 +17,12 @@
 @Service("smsCodeService")
 public class SmsCodeServiceImpl extends ServiceImpl<SmsCodeMapper, SmsCode> implements SmsCodeService {
 
+    @Autowired
+    private ConfigService configService;
+
     @Override
-    public SmsCode selectByPhone(String phone) {
-        return this.baseMapper.selectByPhone(phone);
+    public SmsCode selectByPhone(String phone,Integer smsType) {
+        return this.baseMapper.selectByPhone(phone,smsType);
     }
 
     @Override
@@ -41,17 +48,73 @@
         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);
+        smsCode.setSmsType(param.id);
+        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);
+        SmsCode smsCode1 = this.baseMapper.selectByPhone(phone,0);
         if (smsCode1 == null) {
+            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