# superpush **Repository Path**: yubin99521/superpush ## Basic Information - **Project Name**: superpush - **Description**: 整合华为、魅族、oppo、小米、极光、信鸽等推送平台进行app推送 - **Primary Language**: Java - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 3 - **Created**: 2020-07-17 - **Last Updated**: 2022-05-27 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 简介 superpush用于app推送功能,内部集成了华为、魅族、oppo、小米、极光、信鸽等推送平台。 # 整体架构设计 1. 数据表: - app: app应用相关信息 - channel: app对应的相关渠道信息 - push_client: app + channel所对应的推送平台配置信息 - push_info: 华为渠道推送需要指定手机标识,这个表用于存放收集到的手机标识 - push_task: 推送任务,定时任务会实时扫描这个数据表用于消费推送任务 - push_details: 与push_task表多对一的关系,用于存放用于推送的详细信息 2. 业务设计 - 推送接口的实现采用工厂模式+策略模式 - 推送任务的执行采用xxl分布式定时器来实时扫描 - 华为手机标识的收集使用rabbitmq削峰存储 # 管理接口API ### 1. app - /app/add 入参 | 中文描述 | 类型 | 选项 ---|---|---|--- app_id | app标识 | String | 必填 app_name | app名称 | String | 必填 - /app/modify 入参 | 中文描述 | 类型 | 选项 ---|---|---|--- id | id | String | 必填 app_id | app标识 | String | 可选 app_name | app名称 | String | 可选 - /app/delete/{id} 入参 | 中文描述 | 类型 | 选项 ---|---|---|--- id | id | String | 必填 - /app/query 入参 | 中文描述 | 类型 | 选项 ---|---|---|--- id | id | String | 可选 app_id | app标识 | String | 可选 app_name | app名称 | String | 可选 ### 2. channel - /channel/add 入参 | 中文描述 | 类型 | 选项 ---|---|---|--- app_id | app标识 | String | 必填 channel_id | 渠道id | String | 必填 sdk_name | 应用名称 | String | 必填 - /channel/modify 入参 | 中文描述 | 类型 | 选项 ---|---|---|--- id | id | String | 必填 app_id | app标识 | String | 可选 channel_id | 渠道id | String | 可选 sdk_name | 应用名称 | String | 可选 - /channel/delete/{id} 入参 | 中文描述 | 类型 | 选项 ---|---|---|--- id | id | String | 必填 - /channel/query 入参 | 中文描述 | 类型 | 选项 ---|---|---|--- id | id | String | 可选 app_id | app标识 | String | 可选 channel_id | 渠道id | String | 可选 sdk_name | 应用名称 | String | 可选 ### 3. pushClient - /pushClient/add 入参 | 中文描述 | 类型 | 选项 ---|---|---|--- channel_id | 渠道Id | String | 必选 push_client | 推送服务名称 | String | 必选 enable_flag | 开关标识(1为开启,0为关闭) | String | 必选 push_conf | 推送参数 | String | 可选 - /pushClient/modify 入参 | 中文描述 | 类型 | 选项 ---|---|---|--- id | id | String | 必选 channel_id | 渠道Id | String | 可选 push_client | 推送服务名称 | String | 可选 enable_flag | 开关标识(1为开启,0为关闭) | String | 可选 push_conf | 推送参数 | String | 可选 - /pushClient/delete/{id} 入参 | 中文描述 | 类型 | 选项 ---|---|---|--- id | id | String | 必选 - /pushClient/query 入参 | 中文描述 | 类型 | 选项 ---|---|---|--- id | id | String | 可选 channel_id | 渠道Id | String | 可选 enable_flag | 开关标识(1为开启,0为关闭) | String | 可选 ### 4. push - /push/add 入参 | 中文描述 | 类型 | 选项 ---|---|---|--- app_id | appId | String | 必选 channel_id | 渠道编号,多渠道用&隔开 | String | 可选 repeat_check | 是否校验重复发送 | String | 可选 push_alias_map | 别名 | Map | 可选 push_message | 推送内容 | String | 必选 push_scope | 推送类型ALIAS,CHANNEL | String | 必选 time_to_live | 离线时长 | String | 可选 apns_production | 环境标志,true表示生产环境,false表示开发环境.默认开发环境 | String | 必选 platform_type | 平台 android ios | String | 必选 title | 标题 | String | 可选 sound | 声音 | String | 可选 badge | 角标 | String | 可选 # pushInfo - /pushInfo/add 入参 | 中文描述 | 类型 | 选项 ---|---|---|--- appId | id | String | 必选 channelId | 渠道Id | String | 可选 supersdkUid | 别名 | String | 可选 pushId | 在推送app注册的id | String | 可选 # pushTask - /pushTask/add 入参 | 中文描述 | 类型 | 选项 ---|---|---|--- appId | 推送任务的appId | String | 必选 channelIds | 推送任务的channelId | List | 必选 name | 推送任务名称 | String | 必选 rule | 推送任务规则(cron表达式) | String | 可选 enable_flag | 执行开关(0为关闭1为打开) | String | 必选 extra | 推送任务额外参数 | String | 可选 push_message | 推送消息 | String | 必选 time_to_live | 推送持续时长 | String | 可选 apns_production | 环境标志 true代表生产环境,false为测试 | String | 可选 platform_type | 平台信息(Android,IOS) | String | 必选 title | 推送标题,默认不设置,仅安卓可设置 | String | 必选 sound | 推送声音,默认不设置,仅IOS可设置 | String | 可选 badge | 推送角标数组设置,仅IOS可设置 | String | 可选 push_scope | 推送范围(ALIAS或CHANNEL数组)CHANNEL时ChannelIds不能为空 | String | 必选 push_alias_map | 使用别名推送的别名Map | String | 必选 rule_type | 推送规则的类型参数 1、立即推送 2、预约推送 3、定期推送 4、高级设置 | String | 必选 rule_time | 推送规则的时间参数 | String | 可选 frequency | 推送规则的频率参数 | String | 可选 - /pushTask/update 入参 | 中文描述 | 类型 | 选项 ---|---|---|--- id | id | String | 必选 appId | 推送任务的appId | String | 必选 channelIds | 推送任务的channelId | List | 必选 name | 推送任务名称 | String | 必选 rule | 推送任务规则(cron表达式) | String | 可选 enable_flag | 执行开关(0为关闭1为打开) | String | 必选 extra | 推送任务额外参数 | String | 可选 push_message | 推送消息 | String | 必选 time_to_live | 推送持续时长 | String | 可选 apns_production | 环境标志 true代表生产环境,false为测试 | String | 可选 platform_type | 平台信息(Android,IOS) | String | 必选 title | 推送标题,默认不设置,仅安卓可设置 | String | 必选 sound | 推送声音,默认不设置,仅IOS可设置 | String | 可选 badge | 推送角标数组设置,仅IOS可设置 | String | 可选 push_scope | 推送范围(ALIAS或CHANNEL数组)CHANNEL时ChannelIds不能为空 | String | 必选 push_alias_map | 使用别名推送的别名Map | String | 必选 rule_type | 推送规则的类型参数 1、立即推送 2、预约推送 3、定期推送 4、高级设置 | String | 必选 rule_time | 推送规则的时间参数 | String | 可选 frequency | 推送规则的频率参数 | String | 可选 - /pushTask/enable 入参 | 中文描述 | 类型 | 选项 ---|---|---|--- taskId | taskId | String | 必选 enable_flag | 是否开启1/0 | String | 必选 - /pushTask/queryPage 入参 | 中文描述 | 类型 | 选项 ---|---|---|--- appId | appId | String | 必选 - /pushTask/queryById 入参 | 中文描述 | 类型 | 选项 ---|---|---|--- id | id | String | 必选 - /pushTask/removeById 入参 | 中文描述 | 类型 | 选项 ---|---|---|--- id | id | String | 必选