PHPackages                             xditn/agent - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. xditn/agent

ActiveLibrary

xditn/agent
===========

通用投流管理后台包 - 投手账号管理、数据概览、报表、投流链接管理

01PHP

Since Feb 4Pushed 3mo agoCompare

[ Source](https://github.com/lanrongxiang/xditn-agent)[ Packagist](https://packagist.org/packages/xditn/agent)[ RSS](/packages/xditn-agent/feed)WikiDiscussions main Synced 1mo ago

READMEChangelogDependenciesVersions (1)Used By (0)

xditn/agent - 通用投流管理后台包
=======================

[](#xditnagent---通用投流管理后台包)

一个通用的投流管理后台 Laravel 包，支持投手账号管理、数据概览、报表、投流链接管理等功能。采用多态关联设计，可适配任何业务场景（短剧、电商、游戏、教育等）。

📦 功能特性
------

[](#-功能特性)

- 📊 **投手账号管理** - 创建、编辑、删除、启用/禁用投手账号
- 🔗 **投流链接管理** - 管理投流链接，支持多平台（Facebook/TikTok/Google）
- 📈 **数据概览** - 实时数据统计、今日/昨日对比、趋势图
- 📋 **多维度报表** - 日报表、月报表、业绩报表、链接报表
- 👥 **新进用户追踪** - 追踪投手带来的新用户及其充值情况
- 🎯 **多态关联** - 支持关联任意产品模型（视频、商品、课程等）
- 🔔 **事件系统** - 新用户注册、订单支付等事件可监听

---

🚀 安装
----

[](#-安装)

### 方式一：本地开发（推荐）

[](#方式一本地开发推荐)

1. 将包放在项目同级目录：

```
your-workspace/
├── api-v1/          # 你的 Laravel 项目
└── agent/           # xditn/agent 包

```

2. 在项目的 `composer.json` 中添加本地仓库：

```
{
    "repositories": [
        {
            "type": "path",
            "url": "../agent",
            "options": {
                "symlink": true
            }
        }
    ],
    "require": {
        "xditn/agent": "*"
    }
}
```

3. 执行安装：

```
composer update
php artisan agent:install
```

### 方式二：Composer 仓库

[](#方式二composer-仓库)

```
composer require xditn/agent
php artisan agent:install
```

---

⚙️ 配置说明
-------

[](#️-配置说明)

配置文件位置：`config/agent.php`

### 基础配置

[](#基础配置)

```
return [
    // 数据库表前缀（可选）
    'table_prefix' => env('AGENT_TABLE_PREFIX', ''),

    // 路由配置
    'route' => [
        'prefix' => env('AGENT_ROUTE_PREFIX', 'api/agent'),  // API 前缀
        'middleware' => ['api'],                              // 中间件
        'enabled' => true,                                    // 是否启用路由
    ],

    // 投手默认密码
    'default_password' => env('AGENT_DEFAULT_PASSWORD', '123456'),
];
```

### 多态关联模型配置

[](#多态关联模型配置)

```
'models' => [
    // 管理员模型（创建投手的管理员）
    'admin' => 'Modules\\User\\Models\\User',

    // 会员模型（投流带来的用户）
    'member' => 'Modules\\Member\\Models\\Member',

    // 订单模型（用于统计充值）
    'order' => 'Modules\\Pay\\Models\\Order',

    // 可推广的产品模型（多态关联）
    'promotable' => [
        'video' => 'Modules\\VideoSubscription\\Models\\Video',      // 短剧
        // 'product' => 'Modules\\Shop\\Models\\Product',            // 商品
        // 'course' => 'Modules\\Course\\Models\\Course',            // 课程
    ],

    // 充值包模型（多态关联）
    'packages' => [
        'recharge' => 'Modules\\Pay\\Models\\RechargeActivity',      // 充值活动
        // 'subscription' => 'Modules\\Pay\\Models\\SubscriptionPlan', // 订阅套餐
    ],
],
```

### 平台配置

[](#平台配置)

```
// 广告平台
'platforms' => [
    'facebook' => ['name' => 'Facebook', 'enabled' => true],
    'tiktok' => ['name' => 'TikTok', 'enabled' => true],
    'google' => ['name' => 'Google', 'enabled' => true],
],

// 投放方式
'delivery_types' => [
    'knife' => '打刀',
    'normal' => '常规',
],

// 应用平台
'app_platforms' => [
    'h5_direct' => 'H5直投',
    'pwa' => 'PWA',
    'app' => 'APP',
],

// 归因平台
'attribution_platforms' => [
    'facebook' => 'Facebook',
    'appsflyer' => 'AppsFlyer',
    'adjust' => 'Adjust',
    'branch' => 'Branch',
],
```

---

📡 API 接口文档
----------

[](#-api-接口文档)

### 投手管理 `/api/agent/agents`

[](#投手管理-apiagentagents)

方法路径说明GET`/agents`投手列表（支持分页、搜索）POST`/agents`创建投手GET`/agents/{id}`投手详情PUT`/agents/{id}`更新投手DELETE`/agents/{id}`删除投手DELETE`/agents`批量删除（body: `{ids: [1,2,3]}`）PUT`/agents/{id}/toggle`启用/禁用投手PUT`/agents/{id}/reset-password`重置密码**创建/更新投手参数：**

```
{
    "name": "投手名称",
    "account": "登录账号",
    "password": "密码（可选）",
    "avatar": "头像URL",
    "mobile": "手机号",
    "email": "邮箱",
    "remark": "备注",
    "status": 1
}
```

### 投流链接管理 `/api/agent/links`

[](#投流链接管理-apiagentlinks)

方法路径说明GET`/links`链接列表POST`/links`创建链接GET`/links/{id}`链接详情PUT`/links/{id}`更新链接DELETE`/links/{id}`删除链接DELETE`/links`批量删除PUT`/links/{id}/toggle`启用/禁用链接POST`/links/{id}/copy`复制链接GET`/links/by-agent/{agentId}`获取指定投手的链接**创建/更新链接参数：**

```
{
    "agent_id": 1,
    "name": "链接名称",
    "platform": "facebook",
    "ad_account": "广告账户",
    "pixel_id": "像素ID",
    "attribution_platform": "facebook",
    "pwa_link": "PWA链接",
    "language": "en",
    "delivery_type": "knife",
    "delivery_product": "H5",
    "app_platform": "h5_direct",
    "app_product": "应用产品名称",

    "promotable_type": "Modules\\VideoSubscription\\Models\\Video",
    "promotable_id": 123,
    "promotable_name": "小姨子的诱惑",

    "first_package_type": "Modules\\Pay\\Models\\RechargeActivity",
    "first_package_id": 1,
    "second_package_type": "Modules\\Pay\\Models\\RechargeActivity",
    "second_package_id": 2,

    "extra_data": {
        "coin_per_episode": 200,
        "episode_count": 50,
        "paid_episode_count": 5
    },

    "full_url": "https://xxx.com/content/xxx",
    "link_remark": "备注",
    "proxy_name": "代理商名称",
    "material_name": "像素名称",
    "status": 1
}
```

### 数据统计 `/api/agent/statistics`

[](#数据统计-apiagentstatistics)

方法路径说明GET`/statistics/overview`数据概览GET`/statistics/recharge-comparison`今日/昨日充值对比GET`/statistics/top-countries`前N国家地区充值排行GET`/statistics/new-user-comparison`今日/昨日新用户对比GET`/statistics/trend`趋势数据（近7天/30天）GET`/statistics/cumulative`累计数据**通用参数：**

参数说明`agent_id`投手ID（可选，不传则统计全部）`start_date`开始日期（如 2024-01-01）`end_date`结束日期`days`天数（趋势接口用）`limit`数量限制（排行接口用）**overview 响应示例：**

```
{
    "code": 0,
    "message": "success",
    "data": {
        "total_orders": 1234,
        "total_recharge": 12345.67,
        "success_rate": 85.5,
        "yesterday_recharge": 1234.56,
        "today": {
            "orders": 123,
            "recharge": 1234.56,
            "new_users": 456
        },
        "breakdown": {
            "google_recharge": 5000.00,
            "ios_recharge": 3000.00,
            "aggregate_recharge": 4345.67
        }
    }
}
```

### 报表 `/api/agent/reports`

[](#报表-apiagentreports)

方法路径说明GET`/reports/performance`业绩报表GET`/reports/daily`日报表GET`/reports/monthly`月报表GET`/reports/link`链接报表**日报表参数：**

参数说明`agent_id`投手ID`agent_name`投手名称（模糊搜索）`start_date`开始日期`end_date`结束日期`page`页码`limit`每页数量### 新进用户 `/api/agent/new-users`

[](#新进用户-apiagentnew-users)

方法路径说明GET`/new-users`新进用户列表GET`/new-users/{id}`用户详情PUT`/new-users/{id}/callback-status`更新回传状态PUT`/new-users/batch/callback-status`批量更新回传状态**列表参数：**

参数说明`agent_id`投手ID`link_id`链接ID`new_id`新进ID（模糊搜索）`country`国家地区`system`系统（h5/ios/android）`callback_status`回传状态`start_time`开始时间`end_time`结束时间---

🔌 在项目中集成
--------

[](#-在项目中集成)

### 1. 实现多态关联接口

[](#1-实现多态关联接口)

**产品模型实现 `PromotableInterface`：**

```
