手机号码白名单

news/2024/10/18 5:19:40/

手机号码白名单功能:

思路:在发送时与数据库白名单表做校验,为白名单号码无阻发送

缺点:如果一次性发送十几万号码,每个号码都要和白名单库做校验,速度极大降低

,而且可以采用如果是超频,黑名单,或者屏蔽地区的号码的条件下,再做白名单校验

实例:在项目启动时,加载白名单数据到redis内存中,每次发送从redis缓存中获取白名单号码做校验

1、白名单常量类

/*** @Description SMS模块缓存键值常量* @Date 2021-06-01 18:26* @Created by Lxq*/
public class SmsCacheConst {/**商家应用信息缓存键值*///public static final String CLINETAPP_APPID = "mms:clientApp:appid";public static final String CLINETAPP_ID = "mms:clientApp:id";/**通道缓存键值*/public static final String CHANNEL_ID = "mms:masGdZw:channel";/**缓存中的黑名单库*/public static final String BLACK_IDCODE = "mms:black";/**Redis缓存中白名单号码的键值 */public static final String WHITE_MOBILES = "SmsWhiteMobile";
}

2、启动时获取白名单号码,并缓存到redis中

package com.chuangci.cxcsp.smsapi.component;import com.chuangci.cxcsp.common.utils.RedisUtils;
import com.chuangci.cxcsp.sms.domain.SmsWhite;
import com.chuangci.cxcsp.sms.service.ISmsWhiteService;
import com.chuangci.cxcsp.smsapi.constant.SmsCacheConst;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.ApplicationArguments;
import org.springframework.boot.ApplicationRunner;
import org.springframework.scheduling.annotation.Async;
import org.springframework.stereotype.Component;import java.util.List;@Slf4j
@Component
public class WhiteMobileLoad implements ApplicationRunner {@AutowiredRedisUtils redisUtils;@AutowiredISmsWhiteService smsWhiteService;@Override@Asyncpublic void run(ApplicationArguments args) throws Exception {log.info("开始加载号码白名单到缓存");List<SmsWhite> whiteList = smsWhiteService.selectSmsWhiteList(new SmsWhite());if (whiteList==null){log.warn("不存在白名单号码");return;}redisUtils.del(SmsCacheConst.WHITE_MOBILES);log.info("删除已存在的白名单缓存");for (SmsWhite smsWhite : whiteList) {redisUtils.sSet(SmsCacheConst.WHITE_MOBILES,smsWhite.getIdcode());}log.info("加载号码白名单到缓存完成,共{}个",whiteList.size());}
}

3、发送时获取从redis中获取白名单号码

  //从缓存获取白名单号码数据Set<Object> whiteMobiles = redisUtils.sGet(SmsCacheConst.WHITE_MOBILES);if (whiteMobiles == null){whiteMobiles = new HashSet<>();}

4、发送时校验,非白名单号码做校验

  if (!whiteMobiles.contains(mobile)) {//屏蔽地区号码校验、处理if (StringUtils.isNotBlank(shieldedArea)) {String geo = PhoneUtils.getAreaName(mobile);String province = PhoneUtils.getProvince(mobile);if (ArrayUtil.contains(shieldedAreaArray, geo) || ArrayUtil.contains(shieldedAreaArray, province)) {sendResult.setMobileValid(4);sendResult.setStatusCode("CX:0004");sendResult.setStatusDesc("屏蔽地区号码");shieldNum++;continue;}if (allowAreaArray != null && allowAreaArray.length > 0 && !(ArrayUtil.contains(allowAreaArray, geo) || ArrayUtil.contains(allowAreaArray, province))) {sendResult.setMobileValid(7);sendResult.setStatusCode("CX:0007");sendResult.setStatusDesc("非白名单区域号码");continue;}}


http://www.ppmy.cn/news/746883.html

相关文章

自动化测试及典型开源的自动化测试工具

目录 前言&#xff1a; 自动化测试 自动化测试的意义 手工测试的局限性 自动化测试带来的好处 自动化测试的前提条件 自动化测试的方法 自动化测试的不足 自动化测试的应用方向 典型开源的自动化测试工具 前言&#xff1a; 自动化测试是一种使用软件工具和脚本来执行…

多目标下改进NSGA-II算法并使用ZDT测试函数验证matlab

目标优化机械臂轨迹&#xff0c;不知道NSGA-II算法改进后到底有没有效果&#xff0c;需要用测试函数进行验证&#xff0c;附matlab代码 参考多目标优化NSGA-II的实现&#xff08;MATLAB完整代码&#xff09;_nsga2 matlab_羽丶千落的博客-CSDN博客 目录 1.复制所有matlab代码…

数据中心机房布线设计方案

数据中心机房布线方案 1、概述 当前&#xff0c;我们正处在一个信息爆炸的时代&#xff0c;数据的存储量已经不仅仅是用 KB、MB、GB甚至TB来计算&#xff0c;在不远的将来&#xff0c;人们所谈论的将是PB(1petabyte1,000terabytes)甚至EB(1exabyte1,000petabytes)。在企业的IT基…

服务器是不是信息点,机房综合布线信息点安装模式有哪些

[导读]众所周知,不论是大型网络的综合布线还是家庭网络的组建,都会设计到信息综合布线中插座的端接操作。而根据设备的安装模式与装饰方法,信息插座有几种安装方式。下面,我们就来分享一下,如果如果机房内布置有架空抗静电活动地板,机房综合布线信息点安装模式有哪些! 众…

网络工程设计与实施课程学习总结

介绍 随着网络设备数字化的发展&#xff0c;“云一管一端”应用分工越来越细&#xff0c;企业都在重新定位重新调整。“云”和网的融合&#xff0c;对企业市场的企业来说&#xff0c;既是机会&#xff0c;更是挑战。客户的需求不再是简单的技术与设备&#xff0c;甚至不是解决…

【《系统集成项目管理工程师》必备100题】

《系统集成项目管理工程师》必备100题 项目的特点有哪些&#xff1f; &#xff08;1&#xff09; 临时性&#xff1a;指每个项目有明确的开始和结束日期。 &#xff08;2&#xff09; 独特性&#xff1a;独特的产品服务或成果。 &#xff08;3&#xff09; 渐进明细&#xff1a…

系统集成项目管理工程师知识点集锦

系统集成项目管理工程师知识点集锦 1. 项目的特点有哪些&#xff1f;2. 项目的组织方式有哪些&#xff1f;分别具有什么优缺点&#xff1f;3. 项目管理过程组有哪些&#xff1f;4. 怎么样才能成为一位优秀的项目经理&#xff1f;5. PMO的主要职能有哪些&#xff1f;6. 项目经理…

记一次CPU告警挖矿事件应急响应

为方便您的阅读&#xff0c;可点击下方蓝色字体&#xff0c;进行跳转↓↓↓ 01 事件背景介绍02 定位挖矿主机03 挖矿主机分析04 病毒样本分析05 入侵路径梳理06 安全加固建议 01 事件背景介绍 某单位服务器存在CUP资源异常占用情况&#xff0c;现需对该情况进行排查。 02 定位…