[新增功能](master): 设计及拆分

对整个广告平台进行整体设计及模块拆分设计;
master
土豆兄弟 3 years ago
parent 8c761b4e94
commit b653512ced

@ -1,12 +1,30 @@
<h1><div style="text-align: center; color: cornflowerblue">百业广告平台业务系统 v0.0.1</div></h1> <h1><div style="text-align: center; color: cornflowerblue">百业广告平台业务系统 v0.1.1</div></h1>
## 0. 主要功能设计 ## 0. 项目说明
ad-platform-callback 依据公司广告业务设计流量治理平台,通过一系列的服务来对广告触达进行有效的收集汇聚及治理
设计回调处理,对头条广告投放平台,百度广告投放平台,广点通投放平台的广告点击进行检测 ## 1. 主要工程结构
ad-platform-service
对进行整理后的点击数据对外提供查询接口服务 - 项目通用模块
ad-platform-common ad-platform-common
通用的工具及pojo包 通用的设计: 比如响应的统一封装,全局用到的一些常量定义,主键生成策略,统一用的一些工具类等
ad-platform-gateway
网关层: 主要负责鉴权和调用链路的一些管理
ad-platform-pojo
实体类: 所有的实体类放在这个jar中,方便进行整个工程的使用和查找
- 服务模块
services/ad-platform-callback
回调-服务: 设计回调处理,对头条广告投放平台,百度广告投放平台,广点通投放平台的广告点击进行检测
services/ad-platform-service
处理-服务: 主要是对系统的一些常用的底层处理逻辑写在这里,非业务代码,用于平台底层
services/ad-platform-search
搜索-服务: 主要是利用搜索引擎技术对存储治理的数据提供分词,检索,排序等综合治理服务
- 管理模块
manage/ad-platform-management
管理-后台:对应后台管理系统相关的后台接口
manage/ad-platform-openapi
管理-开放:本平台对外提供开放型的接口调用,作用商用和开放平台功能
manage/ad-platform-task
管理-任务: 定时任务和一些复杂异步的任务调用采取的模块
## 1. 核心链路 ## 1. 核心链路
配置回调地址及参数 -> 检测回调结果进行入库 -> 提供接口进行查询 -> 导出查询后的结果 配置回调地址及参数 -> 检测回调结果进行入库 -> 提供接口进行查询 -> 导出查询后的结果
@ -17,5 +35,6 @@
数据存储选型 : Mysql , ES 数据存储选型 : Mysql , ES
中间件: RocketMQ, 缓存, Canal 中间件: RocketMQ, 缓存, Canal
## 3. 开发团队
百业研发团队

@ -1,4 +0,0 @@
package com.baiye.api;
public class JuLiangOpenAPi {
}

@ -22,6 +22,11 @@
<artifactId>spring-boot-starter-web</artifactId> <artifactId>spring-boot-starter-web</artifactId>
</dependency> </dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
<dependency> <dependency>
<groupId>org.projectlombok</groupId> <groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId> <artifactId>lombok</artifactId>

@ -18,6 +18,7 @@ import java.io.Serializable;
@NoArgsConstructor @NoArgsConstructor
public class CommonResponse<T> implements Serializable { public class CommonResponse<T> implements Serializable {
/** /**
* 0, 1, * 0, 1,
*/ */

@ -0,0 +1,19 @@
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<parent>
<artifactId>ad-platform</artifactId>
<groupId>com.baiye</groupId>
<version>1.0-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>ad-platform-gateway</artifactId>
<properties>
<maven.compiler.source>8</maven.compiler.source>
<maven.compiler.target>8</maven.compiler.target>
</properties>
</project>

@ -0,0 +1,19 @@
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<parent>
<artifactId>ad-platform</artifactId>
<groupId>com.baiye</groupId>
<version>1.0-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>ad-platform-pojo</artifactId>
<properties>
<maven.compiler.source>8</maven.compiler.source>
<maven.compiler.target>8</maven.compiler.target>
</properties>
</project>

@ -0,0 +1,19 @@
package com.baiye.model.entity;
import javax.persistence.Entity;
import javax.persistence.Id;
/**
*
*
* @author q
* @date 2021/11/05
*/
@Entity
public class TokenManager {
@Id
private Long id;
}

@ -0,0 +1,10 @@
package com.baiye.model.vo;
/**
* 访
*
* @author q
* @date 2021/11/08
*/
public class AccessToken {
}

@ -0,0 +1,10 @@
package com.baiye.model.vo;
/**
*
*
* @author q
* @date 2021/11/08
*/
public class TokenUser {
}

@ -0,0 +1,46 @@
### Java template
# Compiled class file
*.class
# Log file
*.log
# BlueJ files
*.ctxt
# Mobile Tools for Java (J2ME)
.mtj.tmp/
# Package Files #
*.jar
*.war
*.nar
*.ear
*.zip
*.tar.gz
*.rar
# virtual machine crash logs, see http://www.java.com/en/download/help/error_hotspot.xml
hs_err_pid*
### Maven template
target/
pom.xml.tag
pom.xml.releaseBackup
pom.xml.versionsBackup
pom.xml.next
release.properties
dependency-reduced-pom.xml
buildNumber.properties
.mvn/timing.properties
# https://github.com/takari/maven-wrapper#usage-without-binary-jar
.mvn/wrapper/maven-wrapper.jar
### Example user template template
### Example user template
# IntelliJ project files
.idea
*.iml
out
gen

@ -0,0 +1,37 @@
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<parent>
<artifactId>ad-platform</artifactId>
<groupId>com.baiye</groupId>
<version>1.0-SNAPSHOT</version>
<relativePath>../../pom.xml</relativePath>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>ad-platform-management</artifactId>
<properties>
<!-- maven 编译配置 -->
<maven.compiler.source>8</maven.compiler.source>
<maven.compiler.target>8</maven.compiler.target>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
</properties>
<dependencies>
<!-- 通用依赖 -->
<dependency>
<groupId>com.baiye</groupId>
<artifactId>ad-platform-common</artifactId>
<version>1.0-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>com.baiye</groupId>
<artifactId>ad-platform-pojo</artifactId>
<version>1.0-SNAPSHOT</version>
</dependency>
</dependencies>
</project>

@ -0,0 +1,46 @@
### Java template
# Compiled class file
*.class
# Log file
*.log
# BlueJ files
*.ctxt
# Mobile Tools for Java (J2ME)
.mtj.tmp/
# Package Files #
*.jar
*.war
*.nar
*.ear
*.zip
*.tar.gz
*.rar
# virtual machine crash logs, see http://www.java.com/en/download/help/error_hotspot.xml
hs_err_pid*
### Maven template
target/
pom.xml.tag
pom.xml.releaseBackup
pom.xml.versionsBackup
pom.xml.next
release.properties
dependency-reduced-pom.xml
buildNumber.properties
.mvn/timing.properties
# https://github.com/takari/maven-wrapper#usage-without-binary-jar
.mvn/wrapper/maven-wrapper.jar
### Example user template template
### Example user template
# IntelliJ project files
.idea
*.iml
out
gen

@ -0,0 +1,37 @@
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<parent>
<artifactId>ad-platform</artifactId>
<groupId>com.baiye</groupId>
<version>1.0-SNAPSHOT</version>
<relativePath>../../pom.xml</relativePath>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>ad-platform-openapi</artifactId>
<properties>
<!-- maven 编译配置 -->
<maven.compiler.source>8</maven.compiler.source>
<maven.compiler.target>8</maven.compiler.target>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
</properties>
<dependencies>
<!-- 通用依赖 -->
<dependency>
<groupId>com.baiye</groupId>
<artifactId>ad-platform-common</artifactId>
<version>1.0-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>com.baiye</groupId>
<artifactId>ad-platform-pojo</artifactId>
<version>1.0-SNAPSHOT</version>
</dependency>
</dependencies>
</project>

@ -0,0 +1,20 @@
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<parent>
<artifactId>ad-platform</artifactId>
<groupId>com.baiye</groupId>
<version>1.0-SNAPSHOT</version>
<relativePath>../../pom.xml</relativePath>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>ad-platform-task</artifactId>
<properties>
<maven.compiler.source>8</maven.compiler.source>
<maven.compiler.target>8</maven.compiler.target>
</properties>
</project>

@ -9,22 +9,34 @@
<packaging>pom</packaging> <packaging>pom</packaging>
<version>1.0-SNAPSHOT</version> <version>1.0-SNAPSHOT</version>
<modules> <modules>
<module>ad-platform-callback</module> <!-- 服务模块 -->
<module>ad-platform-service</module> <module>services/ad-platform-callback</module>
<module>services/ad-platform-service</module>
<module>services/ad-platform-search</module>
<!-- 项目公用模块 -->
<module>ad-platform-common</module> <module>ad-platform-common</module>
<module>ad-platform-gateway</module>
<module>ad-platform-pojo</module>
<!-- 管理模块-->
<module>manage/ad-platform-management</module>
<module>manage/ad-platform-openapi</module>
<module>manage/ad-platform-task</module>
</modules> </modules>
<properties> <properties>
<!-- 统一版本定义 -->
<spring.boot.version>2.3.2.RELEASE</spring.boot.version>
<spring.cloud.version>Hoxton.SR8</spring.cloud.version>
<!-- maven 编译配置 -->
<maven.compiler.source>8</maven.compiler.source> <maven.compiler.source>8</maven.compiler.source>
<maven.compiler.target>8</maven.compiler.target> <maven.compiler.target>8</maven.compiler.target>
<spring.boot.version>2.3.2.RELEASE</spring.boot.version> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
</properties> </properties>
<dependencyManagement> <dependencyManagement>
<dependencies> <dependencies>
<!-- springboot dependencies 用于管理版本--> <!-- spring-boot dependencies 用于管理版本-->
<dependency> <dependency>
<groupId>org.springframework.boot</groupId> <groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-dependencies</artifactId> <artifactId>spring-boot-dependencies</artifactId>
@ -33,13 +45,22 @@
<scope>import</scope> <scope>import</scope>
</dependency> </dependency>
<!-- spring-cloud dependencies 用于管理版本-->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>${spring.cloud.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
<!-- 引入工具类 --> <!-- 引入工具类 -->
<dependency> <dependency>
<groupId>cn.hutool</groupId> <groupId>cn.hutool</groupId>
<artifactId>hutool-all</artifactId> <artifactId>hutool-all</artifactId>
<version>5.7.13</version> <version>5.7.13</version>
<scope>import</scope>
</dependency> </dependency>
</dependencies> </dependencies>
</dependencyManagement> </dependencyManagement>

@ -0,0 +1,46 @@
### Java template
# Compiled class file
*.class
# Log file
*.log
# BlueJ files
*.ctxt
# Mobile Tools for Java (J2ME)
.mtj.tmp/
# Package Files #
*.jar
*.war
*.nar
*.ear
*.zip
*.tar.gz
*.rar
# virtual machine crash logs, see http://www.java.com/en/download/help/error_hotspot.xml
hs_err_pid*
### Maven template
target/
pom.xml.tag
pom.xml.releaseBackup
pom.xml.versionsBackup
pom.xml.next
release.properties
dependency-reduced-pom.xml
buildNumber.properties
.mvn/timing.properties
# https://github.com/takari/maven-wrapper#usage-without-binary-jar
.mvn/wrapper/maven-wrapper.jar
### Example user template template
### Example user template
# IntelliJ project files
.idea
*.iml
out
gen

@ -12,11 +12,26 @@
<artifactId>ad-platform-callback</artifactId> <artifactId>ad-platform-callback</artifactId>
<properties> <properties>
<!-- maven 编译配置 -->
<maven.compiler.source>8</maven.compiler.source> <maven.compiler.source>8</maven.compiler.source>
<maven.compiler.target>8</maven.compiler.target> <maven.compiler.target>8</maven.compiler.target>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
</properties> </properties>
<dependencies> <dependencies>
<!-- 通用依赖 -->
<dependency>
<groupId>com.baiye</groupId>
<artifactId>ad-platform-common</artifactId>
<version>1.0-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>com.baiye</groupId>
<artifactId>ad-platform-pojo</artifactId>
<version>1.0-SNAPSHOT</version>
</dependency>
<!-- springboot 相关的 --> <!-- springboot 相关的 -->
<dependency> <dependency>
<groupId>org.springframework.boot</groupId> <groupId>org.springframework.boot</groupId>

@ -0,0 +1,15 @@
package com.baiye.api;
/**
* api
*
* @author q
* @date 2021/11/05
*/
public class JuLiangOpenAPi {
}

@ -0,0 +1,57 @@
package com.baiye.service;
import com.baiye.model.vo.AccessToken;
import com.baiye.model.vo.TokenUser;
import java.util.List;
/**
*
* <p>
* : https://open.oceanengine.com/doc/index.html?key=ad&type=api&id=1696710505147407
*
*
* @author q
* @date 2021/11/05
*/
public interface TokenManagerService {
/**
* 访
*
* @return {@link String}
*/
String getAccessToken();
/**
*
*/
void refreshToken();
/**
*
*
* @return {@link List}<{@link TokenUser}>
*/
List<TokenUser> getPermitedUsers();
/**
*
*
* @return {@link TokenUser}
*/
TokenUser getPermitedUser();
/**
* 访 - token
*
* @return {@link AccessToken}
*/
AccessToken getAPPAccessToken();
}

@ -0,0 +1,19 @@
package com.baiye.service;
/**
* url
*
* : https://open.oceanengine.com/doc/index.html?key=ad&type=api&id=1696710730514432
*
* @author q
* @date 2021/11/05
*/
public interface TransformationUrlManagerService {
/**
*
*/
void modifyMonitoringLinks();
}

@ -0,0 +1,46 @@
### Java template
# Compiled class file
*.class
# Log file
*.log
# BlueJ files
*.ctxt
# Mobile Tools for Java (J2ME)
.mtj.tmp/
# Package Files #
*.jar
*.war
*.nar
*.ear
*.zip
*.tar.gz
*.rar
# virtual machine crash logs, see http://www.java.com/en/download/help/error_hotspot.xml
hs_err_pid*
### Maven template
target/
pom.xml.tag
pom.xml.releaseBackup
pom.xml.versionsBackup
pom.xml.next
release.properties
dependency-reduced-pom.xml
buildNumber.properties
.mvn/timing.properties
# https://github.com/takari/maven-wrapper#usage-without-binary-jar
.mvn/wrapper/maven-wrapper.jar
### Example user template template
### Example user template
# IntelliJ project files
.idea
*.iml
out
gen

@ -0,0 +1,35 @@
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<parent>
<artifactId>ad-platform</artifactId>
<groupId>com.baiye</groupId>
<version>1.0-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>ad-platform-search</artifactId>
<properties>
<!-- maven 编译配置 -->
<maven.compiler.source>8</maven.compiler.source>
<maven.compiler.target>8</maven.compiler.target>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
</properties>
<dependencies>
<!-- 通用依赖 -->
<dependency>
<groupId>com.baiye</groupId>
<artifactId>ad-platform-common</artifactId>
<version>1.0-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>com.baiye</groupId>
<artifactId>ad-platform-pojo</artifactId>
<version>1.0-SNAPSHOT</version>
</dependency>
</dependencies>
</project>

@ -0,0 +1,46 @@
### Java template
# Compiled class file
*.class
# Log file
*.log
# BlueJ files
*.ctxt
# Mobile Tools for Java (J2ME)
.mtj.tmp/
# Package Files #
*.jar
*.war
*.nar
*.ear
*.zip
*.tar.gz
*.rar
# virtual machine crash logs, see http://www.java.com/en/download/help/error_hotspot.xml
hs_err_pid*
### Maven template
target/
pom.xml.tag
pom.xml.releaseBackup
pom.xml.versionsBackup
pom.xml.next
release.properties
dependency-reduced-pom.xml
buildNumber.properties
.mvn/timing.properties
# https://github.com/takari/maven-wrapper#usage-without-binary-jar
.mvn/wrapper/maven-wrapper.jar
### Example user template template
### Example user template
# IntelliJ project files
.idea
*.iml
out
gen

@ -23,6 +23,11 @@
<artifactId>ad-platform-common</artifactId> <artifactId>ad-platform-common</artifactId>
<version>1.0-SNAPSHOT</version> <version>1.0-SNAPSHOT</version>
</dependency> </dependency>
<dependency>
<groupId>com.baiye</groupId>
<artifactId>ad-platform-pojo</artifactId>
<version>1.0-SNAPSHOT</version>
</dependency>
<!-- springboot 相关的 --> <!-- springboot 相关的 -->
<dependency> <dependency>

@ -3,8 +3,12 @@ package com.baiye.api;
import org.springframework.web.bind.annotation.RestController; import org.springframework.web.bind.annotation.RestController;
/** /**
* 广
*
* @author q * @author q
* @date 2021/11/08
*/ */
@RestController @RestController
public class AdPlatformAddressController { public class AdPlatformAddressController {
Loading…
Cancel
Save