|
|
|
|
<h1><div style="text-align: center; color: cornflowerblue">百业广告线索多功能营销业务系统 v0.1.1</div></h1>
|
|
|
|
|
|
|
|
|
|
## 0. 项目说明
|
|
|
|
|
依据公司广告业务设计流量治理平台,通过一系列的服务来对广告触达进行有效的收集汇聚及治理
|
|
|
|
|
## 1. 主要工程结构 (*)
|
|
|
|
|
|
|
|
|
|
- 项目通用模块
|
|
|
|
|
ad-platform-common
|
|
|
|
|
通用的设计: 比如响应的统一封装,全局用到的一些常量定义,主键生成策略,统一用的一些工具类等
|
|
|
|
|
ad-platform-gateway
|
|
|
|
|
网关层: 主要负责鉴权和调用链路的一些管理
|
|
|
|
|
ad-platform-pojo
|
|
|
|
|
实体类: 所有的实体类放在这个jar中,方便进行整个工程的使用和查找
|
|
|
|
|
- 服务模块
|
|
|
|
|
services/ad-platform-callback
|
|
|
|
|
回调-服务: 设计回调处理,对头条广告投放平台,百度广告投放平台,广点通投放平台的广告点击进行检测
|
|
|
|
|
services/ad-platform-service
|
|
|
|
|
处理-服务: 主要是对系统的一些常用的底层处理逻辑写在这里,非业务代码,用于平台底层
|
|
|
|
|
services/ad-platform-search
|
|
|
|
|
搜索-服务: 主要是利用搜索引擎技术对存储治理的数据提供分词,检索,排序等综合治理服务
|
|
|
|
|
services/ad-platform-source
|
|
|
|
|
源入-服务: 对通过表单导入的源数据进行治理
|
|
|
|
|
- 管理模块
|
|
|
|
|
manage/ad-platform-management
|
|
|
|
|
管理-后台:对应后台管理系统相关的后台接口
|
|
|
|
|
manage/ad-platform-openapi
|
|
|
|
|
管理-开放:本平台对外提供开放型的接口调用,作用商用和开放平台功能
|
|
|
|
|
manage/ad-platform-task
|
|
|
|
|
管理-任务: 定时任务和一些复杂异步的任务调用采取的模块
|
|
|
|
|
|
|
|
|
|
## 2. 功能需求设计 (*)
|
|
|
|
|
- 营销管理平台
|
|
|
|
|
ad-platform-management
|
|
|
|
|
com.baiye.telemarketing 对线索进行呼叫类业务管理的模块接口(呼叫系统接入)
|
|
|
|
|
com.baiye.privatedomainmarketing 私域营销的相关管理模块接口(企微接入,个微工具接入,私域工具接入)
|
|
|
|
|
com.baiye.effectivenessanalysis 效果分析模块(图表展示)
|
|
|
|
|
com.baiye.usersetting 用户设置模块(信息,设置)
|
|
|
|
|
com.baiye.common 通用模块配置(短信,邮件,通知,线索分配[借助消息和底层引擎])
|
|
|
|
|
- telemarketing 呼叫类业务平台
|
|
|
|
|
实体对象: // TODO
|
|
|
|
|
|
|
|
|
|
实体关系: // TODO
|
|
|
|
|
- privatedomainmarketing
|
|
|
|
|
实体对象: // TODO
|
|
|
|
|
|
|
|
|
|
实体关系: // TODO
|
|
|
|
|
|
|
|
|
|
- 任务系统
|
|
|
|
|
ad-platform-task
|
|
|
|
|
api 以微服务的形式对外提供的定时任务开放API接口,
|
|
|
|
|
dao 对应异步/定时任务相关的记录及系统相关的表
|
|
|
|
|
service 异步/定时任务服务
|
|
|
|
|
实体对象: // TODO
|
|
|
|
|
|
|
|
|
|
实体关系: // TODO
|
|
|
|
|
|
|
|
|
|
- 开放服务
|
|
|
|
|
ad-platform-openapi
|
|
|
|
|
api 以微服务的形式对外提供的开放API接口,
|
|
|
|
|
dao 对应相关的记录及系统相关的表
|
|
|
|
|
service 服务
|
|
|
|
|
|
|
|
|
|
- 对外平台资源来源回调服务
|
|
|
|
|
ad-platform-callback
|
|
|
|
|
|
|
|
|
|
- 搜索服务
|
|
|
|
|
ad-platform-search
|
|
|
|
|
主要是对标签提供的搜索服务
|
|
|
|
|
|
|
|
|
|
- 底层引擎服务
|
|
|
|
|
ad-platform-service
|
|
|
|
|
标签计算引擎
|
|
|
|
|
资源 分配/匹配 引擎
|
|
|
|
|
|
|
|
|
|
- 源数据导入处理
|
|
|
|
|
ad-platform-source
|
|
|
|
|
源数据及三方平台源数据导入的治理 [后期进行汇聚如我们的大数据系统]
|
|
|
|
|
|
|
|
|
|
## 3. 文件命名规范 (*)
|
|
|
|
|
application.yml - 总控配置
|
|
|
|
|
application-dev.yml - 本地开发环境配置
|
|
|
|
|
application-prod.yml - 线上环境配置
|
|
|
|
|
application-test.yml - 测试环境配置
|
|
|
|
|
|
|
|
|
|
## 4. 任务及计划
|
|
|
|
|
- 框架整合
|
|
|
|
|
· 通用框架
|
|
|
|
|
日志框架整合使用 log4j2
|
|
|
|
|
数据库连接池使用 druid
|
|
|
|
|
项目基本配置 ...
|
|
|
|
|
· 功能性框架整合
|
|
|
|
|
微服务框架 springboot + springcloud + jpa
|
|
|
|
|
分表分库框架 sharding-jdbc
|
|
|
|
|
分布式定时任务框架 elastic-job
|
|
|
|
|
缓存 springcache -> redis
|
|
|
|
|
搜索引擎 elasticsearch + solr
|
|
|
|
|
- 两者都属于 springboot-data 下的集成方案
|
|
|
|
|
- 使用手册 https://www.elastic.co/guide/en/elasticsearch/reference/8.0/index.html(自己选择版本)
|
|
|
|
|
消息队列 rocketMQ
|
|
|
|
|
- 使用手册 https://github.com/apache/rocketmq-spring/wiki/%E7%94%A8%E6%88%B7%E6%89%8B%E5%86%8C
|
|
|
|
|
- 常用demo https://github.com/apache/rocketmq-spring/tree/master/rocketmq-spring-boot-samples
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
## 3. 核心链路 (*)
|
|
|
|
|
配置回调地址及参数 -> 检测回调结果进行入库 -> 提供接口进行查询 -> 导出查询后的结果
|
|
|
|
|
|
|
|
|
|
## 4. 核心流程设计
|
|
|
|
|
|
|
|
|
|
### 4.1 资源汇聚处理流程设计
|
|
|
|
|
|
|
|
|
|
主链路: 资源回调 -> 存储 -> 分发 -> 消息通知
|
|
|
|
|
|
|
|
|
|
(网关层)
|
|
|
|
|
get/post 类型的回调请求(日志记录)
|
|
|
|
|
-> 参数匹配解析到不同的类型的处理
|
|
|
|
|
-> 发送给不同类型的处理(函数线程)
|
|
|
|
|
-> 对请求记录进行记录(mongoDB入库记录)
|
|
|
|
|
-> 封装请求调用具体的业务服务
|
|
|
|
|
(业务层)
|
|
|
|
|
-> 接收网关层的调用
|
|
|
|
|
-> 必要的字段解析处理
|
|
|
|
|
-> 根据分表分库策略进行入库
|
|
|
|
|
-> 更新查询缓存
|
|
|
|
|
-> [异步]传递新的资源给引擎进行处理
|
|
|
|
|
(引擎层)
|
|
|
|
|
-> 接收业务层服务给的数据
|
|
|
|
|
-> 标签计算引擎可以对数据进行标准化标签打标
|
|
|
|
|
-> 资源分配引擎进行资源分配处理[这里包含数据的脱敏处理]
|
|
|
|
|
(业务层)
|
|
|
|
|
-> 接收引擎层给的回调
|
|
|
|
|
-> 存储基础标签
|
|
|
|
|
-> 根据资源分配建立和业务和业务员的对应关系
|
|
|
|
|
(引擎层)
|
|
|
|
|
-> 业务层的数据
|
|
|
|
|
-> 标签数据进入搜索引擎来支撑查询和分词高亮排序等
|
|
|
|
|
-> 资源进线消息进入消息队列进行通知
|
|
|
|
|
|
|
|
|
|
### 4.2 对接系统功能点统一思路设计
|
|
|
|
|
|
|
|
|
|
主链路: 所选资源准备 -> 资源对外引擎处理[脱敏,格式化] -> 记录状态跟踪[工作流或者任务生命周期跟踪] -> 回调处理 -> 消息通知 + 定时任务进行检查状态终结
|
|
|
|
|
|
|
|
|
|
(业务层)
|
|
|
|
|
-> 准备所选的资源(格式化/API文档对接)
|
|
|
|
|
-> 选择发送模式(定时任务/基础异步任务)
|
|
|
|
|
(引擎层)
|
|
|
|
|
-> 定时任务引擎
|
|
|
|
|
(业务层)
|
|
|
|
|
-> 发送回调
|
|
|
|
|
|
|
|
|
|
## 5. 涉及核心技术及框架
|
|
|
|
|
|
|
|
|
|
储存中间件 : 分表分库(ShardingJDBC)
|
|
|
|
|
框架技术选型 : SpringBoot , JPA
|
|
|
|
|
数据存储选型 : Mysql , ES
|
|
|
|
|
中间件: RocketMQ, 缓存, Canal
|
|
|
|
|
|
|
|
|
|
## 6. 开发团队
|
|
|
|
|
|
|
|
|
|
百业研发团队
|
|
|
|
|
|