You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

160 lines
6.7 KiB
Markdown

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

<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. 开发团队
百业研发团队