From 80b6cbfc9c861469146318d0b3dd5f8b8b525b8a Mon Sep 17 00:00:00 2001 From: xiejun <xiejun@vci-tech.com> Date: 星期五, 01 十一月 2024 15:11:19 +0800 Subject: [PATCH] Revert "集成获取mdm分发通用数据格式接口集成" --- Source/BladeX-Tool/blade-starter-sms/src/main/java/org/springblade/core/sms/QiniuSmsTemplate.java | 85 ++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 85 insertions(+), 0 deletions(-) diff --git a/Source/BladeX-Tool/blade-starter-sms/src/main/java/org/springblade/core/sms/QiniuSmsTemplate.java b/Source/BladeX-Tool/blade-starter-sms/src/main/java/org/springblade/core/sms/QiniuSmsTemplate.java new file mode 100644 index 0000000..0dcc91a --- /dev/null +++ b/Source/BladeX-Tool/blade-starter-sms/src/main/java/org/springblade/core/sms/QiniuSmsTemplate.java @@ -0,0 +1,85 @@ +/* + * Copyright (c) 2018-2028, Chill Zhuang All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * Neither the name of the dreamlu.net developer nor the names of its + * contributors may be used to endorse or promote products derived from + * this software without specific prior written permission. + * Author: Chill 搴勯獮 (smallchill@163.com) + */ +package org.springblade.core.sms; + +import com.qiniu.common.QiniuException; +import com.qiniu.http.Response; +import com.qiniu.sms.SmsManager; +import lombok.AllArgsConstructor; +import org.springblade.core.redis.cache.BladeRedis; +import org.springblade.core.sms.model.SmsCode; +import org.springblade.core.sms.model.SmsData; +import org.springblade.core.sms.model.SmsResponse; +import org.springblade.core.sms.props.SmsProperties; +import org.springblade.core.tool.utils.StringUtil; +import org.springframework.http.HttpStatus; + +import java.time.Duration; +import java.util.Collection; + +/** + * 涓冪墰浜戠煭淇″彂閫佺被 + * + * @author Chill + */ +@AllArgsConstructor +public class QiniuSmsTemplate implements SmsTemplate { + + private final SmsProperties smsProperties; + private final SmsManager smsManager; + private final BladeRedis bladeRedis; + + @Override + public SmsResponse sendMessage(SmsData smsData, Collection<String> phones) { + try { + Response response = smsManager.sendMessage(smsProperties.getTemplateId(), StringUtil.toStringArray(phones), smsData.getParams()); + return new SmsResponse(response.isOK(), response.statusCode, response.toString()); + } catch (QiniuException e) { + e.printStackTrace(); + return new SmsResponse(Boolean.FALSE, HttpStatus.INTERNAL_SERVER_ERROR.value(), e.getMessage()); + } + } + + @Override + public SmsCode sendValidate(SmsData smsData, String phone) { + SmsCode smsCode = new SmsCode(); + boolean temp = sendSingle(smsData, phone); + if (temp && StringUtil.isNotBlank(smsData.getKey())) { + String id = StringUtil.randomUUID(); + String value = smsData.getParams().get(smsData.getKey()); + bladeRedis.setEx(cacheKey(phone, id), value, Duration.ofMinutes(30)); + smsCode.setId(id).setValue(value); + } else { + smsCode.setSuccess(Boolean.FALSE); + } + return smsCode; + } + + @Override + public boolean validateMessage(SmsCode smsCode) { + String id = smsCode.getId(); + String value = smsCode.getValue(); + String phone = smsCode.getPhone(); + String cache = bladeRedis.get(cacheKey(phone, id)); + if (StringUtil.isNotBlank(value) && StringUtil.equalsIgnoreCase(cache, value)) { + bladeRedis.del(cacheKey(phone, id)); + return true; + } + return false; + } + +} -- Gitblit v1.9.3