ad-platform
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.
wujingtao 2c94d18261 双呼 和统计 3 years ago
ad-platform-common 代码提交 3 years ago
ad-platform-gateway 增加消息模块 添加批量导入 3 years ago
ad-platform-pojo 双呼 和统计 3 years ago
logs Merge branch 'master' of D:\ideaProject\ad-platform with conflicts. 3 years ago
manage 双呼 和统计 3 years ago
services 双呼 和统计 3 years ago
.gitignore 项目初始化 构建后台项目 3 years ago
README.md [文档修改](master): 更新了文档 3 years ago
pom.xml 代码提交 3 years ago

README.md

百业广告线索多功能营销业务系统 v0.1.1

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

百业研发团队