黑名单管理API
引用文件
本文引用的文件
- AppBlacklistedController.java
- AppBlacklistedService.java
- AppBlacklistedServiceImpl.java
- AppBlackListedBpmServiceImpl.java
- BpmBlacklistStatusListener.java
- BlacklistedTypeEnum.java
- ErrorCodeConstants.java
- ApiConstants.java
- AppBlacklistedDO.java
- AppBlacklistedMapper.xml
- index.md
- app-blacklisted.md
- mac-relation.md
目录
简介
本文件面向黑名单管理API,系统性梳理应用黑名单查询接口、黑名单状态管理接口、黑名单审批流程接口、 黑名单统计分析接口等核心功能,明确黑名单类型枚举、审批状态流转、缓存策略、异步处理机制,提供黑名单配置示例、审批流程图和异常处理方案,并解释黑名单与工作流系统的集成方式。
项目结构
黑名单模块由API接口层、业务服务层、数据访问层与工作流监听器组成,采用分层清晰的职责划分,配合规则引擎与传统匹配逻辑并行,实现灵活高效的黑名单策略下发。
图表来源
- AppBlacklistedController.java
- AppBlacklistedService.java
- AppBlacklistedServiceImpl.java
- AppBlackListedBpmServiceImpl.java
- BpmBlacklistStatusListener.java
- AppBlacklistedDO.java
- AppBlacklistedMapper.xml
- BlacklistedTypeEnum.java
- ErrorCodeConstants.java
- ApiConstants.java
- index.md
- app-blacklisted.md
- mac-relation.md
章节来源
核心组件
- 控制器层:提供黑名单配置、关联关系、明细查询、导出、审批流、缓存刷新等HTTP接口。
- 服务层:封装业务逻辑,包括黑名单主表与子表(渠道、MAC、地区)的CRUD、审批流编排、异步导出、布隆过滤器刷新、规则引擎与传统匹配合并。
- 数据访问层:MyBatis实体与映射文件,DAO层负责持久化。
- 枚举与常量:黑名单类型、错误码、API前缀与版本等。
- 工作流集成:审批流创建、取消、状态监听与规则引擎联动。
章节来源
- AppBlacklistedController.java
- AppBlacklistedService.java
- AppBlacklistedServiceImpl.java
- AppBlackListedBpmServiceImpl.java
- BpmBlacklistStatusListener.java
- AppBlacklistedDO.java
- AppBlacklistedMapper.xml
- BlacklistedTypeEnum.java
- ErrorCodeConstants.java
- ApiConstants.java
架构总览
黑名单模块采用“控制器-服务-数据访问-工作流”的分层架构,支持规则引擎与传统匹配双路径,审批流贯穿修改与删除操作,异步导出与缓存提升性能与一致性。
图表来源
- AppBlacklistedController.java
- AppBlacklistedService.java
- AppBlacklistedServiceImpl.java
- AppBlackListedBpmServiceImpl.java
- BpmBlacklistStatusListener.java
详细组件分析
1) 黑名单类型枚举
- 类型定义:卸载(DELETE)、杀死(KILL)。
- 使用位置:接口返回、统计计算、导出校验等。
图表来源
章节来源
2) 审批状态与流程集成
- 审批状态:未开始、审批中、审批通过、审批不通过、已取消。
- 流程变量:业务类型、更新类型、黑名单主子表关联ID集合。
- 监听器:接收流程状态变更事件,驱动业务生效或回滚。
图表来源
章节来源
3) 黑名单查询与统计接口
- 查询接口:分页查询、详情查询、导出Excel(同步/异步)。
- 统计接口:按黑名单ID统计执行次数(卸载/Kill)。
- 关联统计:结合规则引擎设备数量统计。
图表来源
章节来源
4) 黑名单状态管理接口
- 管理员直通:管理员修改/删除直接生效,无需审批。
- 非管理员:修改/删除走审批流,支持取消未审批更新(含/不含子表)。
图表来源
章节来源
5) 黑名单审批流程接口
- 创建审批:校验流程实例状态,构建流程变量,创建流程实例并更新业务状态。
- 取消审批:取消运行中的流程实例并重置业务状态。
- 规则联动:根据业务类型与更新类型向规则引擎推送业务信息。
图表来源
章节来源
6) 黑名单统计分析接口
- 统计维度:按黑名单ID统计执行次数(卸载/Kill)。
- 时间范围:杀死/闪退明细导出需指定时间范围,同步导出限制最大天数。
- 设备数:结合规则引擎获取设备数量,用于评估影响范围。
图表来源
章节来源
7) 缓存策略
- 本地缓存:按ID缓存黑名单主信息;按渠道ID/地区ID缓存黑名单ID集合,支持并发同步。
- Redis缓存:黑名单主表缓存清理,避免脏读。
- 布隆过滤器:预留初始化与刷新接口(示例代码存在,便于后续启用)。
图表来源
- AppBlacklistedService.java
- AppBlacklistedService.java
- AppBlacklistedServiceImpl.java
- AppBlacklistedController.java
章节来源
- AppBlacklistedService.java
- AppBlacklistedService.java
- AppBlacklistedServiceImpl.java
- AppBlacklistedController.java
8) 异步处理机制
- 异步导出:MAC配置导出、执行结果明细导出,创建导出任务并返回任务ID。
- 同步导出:小数据量直接生成CSV并打包返回。
- Kafka测试:提供发送设备回调与杀死回调事件的测试接口。
图表来源
- AppBlacklistedController.java
- AppBlacklistedController.java
- AppBlacklistedService.java
- AppBlacklistedService.java
章节来源
- AppBlacklistedController.java
- AppBlacklistedController.java
- AppBlacklistedService.java
- AppBlacklistedService.java
9) 黑名单配置示例
- 基础配置:应用名称、包名、开启状态、处理方式(卸载/杀死)、版本号、备注。
- 关联配置:渠道、地区、MAC(支持文件导入)。
- 规则引擎:绑定规则或新建规则,支持复杂条件组合与逻辑运算。
章节来源
10) 黑名单与工作流系统集成
- 流程定义键:以“blacklist”为前缀,绑定业务类型与更新类型。
- 业务变量:包含黑名单主子表关联ID集合,规则引擎联动推送业务信息。
- 状态监听:监听流程状态事件,驱动业务生效或回滚。
章节来源
依赖分析
- 控制器依赖服务接口,服务实现依赖DAO、规则引擎、导出任务、Redisson、Kafka等。
- 审批流服务依赖流程实例API与规则引擎API。
- 实体与映射文件支撑主子表持久化。
图表来源
- AppBlacklistedController.java
- AppBlacklistedServiceImpl.java
- AppBlackListedBpmServiceImpl.java
- BpmBlacklistStatusListener.java
章节来源
- AppBlacklistedController.java
- AppBlacklistedServiceImpl.java
- AppBlackListedBpmServiceImpl.java
- BpmBlacklistStatusListener.java
性能考虑
- 缓存策略:本地缓存与Redis缓存降低查询压力,布隆过滤器可用于快速排除非命中设备。
- 异步导出:大数据量采用异步导出,避免阻塞请求线程。
- 并发控制:流程实例并发冲突时统一取消并提示,避免数据不一致。
- 统计优化:批量获取设备数量,减少多次远程调用。
故障排查指南
- 常见错误码
- 黑名单配置不存在
- 黑名单配置和渠道关系不存在
- 黑名单配置和设备mac绑定关系不存在
- 卸载明细不存在
- 该黑名单配置正在审批中
- 黑名单配置和设备mac绑定导入失败
- 该数据不允许修改
- 该黑名单对应的关联配置已存在
- 黑名单配置和国家关系不存在
- 排查 要点
- 审批状态异常:检查流程实例是否存在、是否被取消或重复提交。
- 导出失败:确认任务ID、文件路径、权限与磁盘空间。
- 导入失败:核对文件格式、字段校验与业务ID有效性。
- 统计异常:确认黑名单状态(开启/删除)、类型(卸载/Kill)与时间范围。
章节来源
结论
黑名单管理API通过清晰的分层设计、完善的审批流集成、灵活的规则引擎与传统匹配双路径、以及缓存与异步导出等性能优化,实现了对APP黑名单的高效治理与精准下发。接口覆盖查询、状态管理、审批、统计与导出等关键场景,满足复杂业务需求与高并发场景下的稳定性要求。
附录
- API前缀与版本:服务名、前缀、版本号定义于API常量。
- 文档入口:黑名单管理模块概览、APP卸载配置、MAC关联配置等文档。
章节来源