No Description

pudongliang 8a5335fbcd feat:创意日报avgROI 3 months ago
.codex 9c268f2770 feat:巡检任务 4 months ago
.qoder aa85c8a495 feat:虚拟线程执行计划创建 3 months ago
.vscode fcc2f154f4 feat: 调整 3 months ago
docs 9c268f2770 feat:巡检任务 4 months ago
portal 8a5335fbcd feat:创意日报avgROI 3 months ago
src 8a5335fbcd feat:创意日报avgROI 3 months ago
.gitignore be66baf2fb feat:支持视频创意,创建速度优化 4 months ago
1.http 3fc8e90158 feat:放开日预算 4 months ago
AGENTS.md 59e8181cf1 feat:创意日报 3 months ago
Dockerfile aeee1d3068 conf: dockerfile 3 months ago
README.md 2644cc3393 Initial commit: GDT Auto project 5 months ago
TODO.md 8f770c202c doc: 广告配置说明 5 months ago
brand.jpg 79207bbafc feat: 创意图片每次上传 4 months ago
for_push.sh 20f0191808 feat:移除登录默认填充 4 months ago
pom.xml a59e63dfd5 feat:mcp-server 4 months ago
test.jpeg 0d1e5eec07 feat: GDT接口对接与功能界面 5 months ago
test.mp4 0d1e5eec07 feat: GDT接口对接与功能界面 5 months ago
广告计划配置.md 8f770c202c doc: 广告配置说明 5 months ago

README.md

腾讯广告投放平台自动化项目

项目简介

这是一个基于 Spring Boot 的腾讯广告投放平台自动化管理系统,采用经典的三层架构设计,集成了现代化的 Java 生态技术栈。

技术栈

核心框架

  • JDK: 21
  • Spring Boot: 3.2.2
  • Maven: 项目管理和构建工具

数据层

  • MySQL: 关系型数据库
  • MyBatis-Plus: 3.5.5 - ORM框架,简化数据库操作
  • Dynamic DataSource: 4.3.0 - 动态数据源切换
  • P6Spy: 3.9.1 - SQL监控和分析

缓存层

  • Redis: 分布式缓存和Session管理

工具库

  • Lombok: 简化Java代码
  • FastJson2: 2.0.47 - 高性能JSON处理
  • Plumelog: 3.5.2 - 分布式日志收集
  • Logback: 日志框架

定时任务

  • Spring Scheduling: Spring定时任务
  • ShedLock: 5.10.2 - 分布式定时任务锁,防止重复执行

业务SDK

  • Marketing API Java SDK: 腾讯广告营销API SDK

项目结构

gdt-auto/
├── src/
│   ├── main/
│   │   ├── java/
│   │   │   └── com/moka/gdtauto/
│   │   │       ├── GdtAutoApplication.java    # 主启动类
│   │   │       ├── controller/                # 控制层
│   │   │       ├── service/                   # 服务接口层
│   │   │       │   └── impl/                  # 服务实现层
│   │   │       ├── mapper/                    # 数据访问层
│   │   │       ├── entity/                    # 实体类
│   │   │       ├── task/                      # 定时任务
│   │   │       └── config/                    # 配置类
│   │   └── resources/
│   │       ├── application.yml                # 应用配置
│   │       ├── logback-spring.xml            # 日志配置
│   │       ├── spy.properties                # P6Spy配置
│   │       └── mapper/                       # MyBatis XML映射文件
│   └── test/                                 # 测试代码
├── pom.xml                                   # Maven依赖配置
└── README.md                                 # 项目说明文档

环境要求

  • JDK 21+
  • Maven 3.6+
  • MySQL 5.7+ 或 8.0+
  • Redis 5.0+

安装步骤

1. 克隆项目

git clone <repository-url>
cd gdt-auto

2. 配置数据库

创建数据库:

CREATE DATABASE gdt_auto DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

修改 src/main/resources/application.yml 中的数据库配置:

spring:
  datasource:
    dynamic:
      datasource:
        master:
          url: jdbc:p6spy:mysql://localhost:3306/gdt_auto?useUnicode=true&characterEncoding=utf8&serverTimezone=Asia/Shanghai
          username: your_username
          password: your_password

3. 配置Redis

修改 src/main/resources/application.yml 中的Redis配置:

spring:
  data:
    redis:
      host: localhost
      port: 6379
      password: your_password  # 如果有密码
      database: 0

4. 配置腾讯广告API

修改 src/main/resources/application.yml 中的腾讯广告API配置:

tencent:
  ads:
    access-token: your_access_token
    refresh-token: your_refresh_token
    app-id: your_app_id
    secret: your_secret

5. 安装依赖

mvn clean install

运行项目

开发环境运行

mvn spring-boot:run

或者在IDE中直接运行 GdtAutoApplication.java 主类。

打包部署

# 打包
mvn clean package -DskipTests

# 运行jar包
java -jar target/gdt-auto-1.0.0.jar

# 指定环境
java -jar target/gdt-auto-1.0.0.jar --spring.profiles.active=prod

验证运行

项目启动后,访问健康检查接口:

curl http://localhost:8080/health

返回 OK 表示项目运行正常。

核心功能模块

1. MyBatis-Plus集成

  • 自动分页
  • 逻辑删除
  • 自动填充
  • 代码生成器支持

2. 动态数据源

支持多数据源动态切换,可以通过注解 @DS("数据源名称") 指定使用的数据源。

3. SQL监控

集成P6Spy,自动记录SQL执行日志,支持慢SQL检测(默认2秒)。

4. 分布式定时任务

使用ShedLock确保定时任务在分布式环境下不会重复执行。

5. 日志管理

  • 控制台输出
  • 文件滚动记录
  • 错误日志独立存储
  • 支持Plumelog分布式日志收集

开发规范

代码结构

  • Controller层: 处理HTTP请求,参数校验
  • Service层: 业务逻辑处理
  • Mapper层: 数据库访问
  • Entity层: 数据实体
  • Task层: 定时任务

命名规范

  • 类名:大驼峰(PascalCase)
  • 方法名:小驼峰(camelCase)
  • 常量:全大写下划线分隔
  • 包名:全小写

Git版本控制

# 初始化仓库
git init

# 添加远程仓库
git remote add origin <repository-url>

# 提交代码
git add .
git commit -m "Initial commit"
git push -u origin main

常见问题

1. MySQL连接失败

  • 检查MySQL服务是否启动
  • 确认数据库名称、用户名、密码是否正确
  • 检查MySQL是否允许远程连接

2. Redis连接失败

  • 检查Redis服务是否启动
  • 确认Redis配置(host、port、password)

3. 端口冲突

如果8080端口被占用,可以在 application.yml 中修改:

server:
  port: 8081

许可证

本项目采用 MIT 许可证。

联系方式

如有问题,请提交 Issue 或联系项目维护者。