submit cursor rule

This commit is contained in:
xavier
2025-05-07 17:43:39 +08:00
parent 21a6907e52
commit 6fa41e3f4a
14 changed files with 1755 additions and 980 deletions

View File

@@ -0,0 +1,31 @@
---
description:
globs:
alwaysApply: false
---
# Project Overview
存客宝微信管理系统是基于ThinkPHP 5.1和PHP 7.4的微信账号管理和营销自动化平台。
## 主要功能
- **设备管理**: 设备添加、删除、状态监控和任务配置
- **微信账号管理**: 微信账号列表、微信好友管理和好友转移功能
- **内容库**: 内容创建与管理、朋友圈内容采集和内容分类管理
- **工作台功能**: 自动点赞、朋友圈同步、群消息推送和自动建群
- **流量管理**: 流量标签、流量池管理和订单导入
## 核心文件
- 入口文件: [public/index.php](mdc:public/index.php)
- 应用配置: [config/app.php](mdc:config/app.php)
- 数据库配置: [config/database.php](mdc:config/database.php)
- 路由配置: [route/route.php](mdc:route/route.php)
- 公共函数: [application/common.php](mdc:application/common.php)
## 环境要求
- PHP >= 7.0 (推荐 PHP 7.4)
- MySQL 5.6+
- Composer
- ThinkPHP 5.1所需的PHP扩展

View File

@@ -0,0 +1,50 @@
---
description:
globs:
alwaysApply: false
---
# 目录结构
整个项目遵循ThinkPHP 5.1的目录结构规范,主要包含以下目录:
## 核心目录
- **application/** - 应用目录,包含所有模块和业务逻辑
- [api/](mdc:application/api) - API模块提供RESTful API接口
- [command/](mdc:application/command) - 命令行脚本
- [common/](mdc:application/common) - 公共模块,包含共享功能
- [cunkebao/](mdc:application/cunkebao) - 村客宝主模块
- [store/](mdc:application/store) - 商店模块
- [superadmin/](mdc:application/superadmin) - 超级管理员模块
- [cozeai/](mdc:application/cozeai) - 智能AI模块
- [job/](mdc:application/job) - 后台任务模块
- **config/** - 配置目录
- [app.php](mdc:config/app.php) - 应用配置
- [database.php](mdc:config/database.php) - 数据库配置
- [queue.php](mdc:config/queue.php) - 队列配置
- [worker.php](mdc:config/worker.php) - Worker配置
- **extend/** - 扩展目录,存放第三方扩展类库
- **public/** - 公共资源目录Web访问入口
- [index.php](mdc:public/index.php) - 入口文件
- **route/** - 路由目录
- [route.php](mdc:route/route.php) - 路由配置
- **runtime/** - 运行时目录,存放日志和缓存文件
- **thinkphp/** - ThinkPHP框架核心目录
- **vendor/** - Composer依赖目录
## 模块结构
每个模块通常包含以下目录结构:
- **controller/** - 控制器
- **model/** - 数据模型
- **service/** - 服务层
- **validate/** - 验证器
- **config/** - 模块配置,包括独立的路由配置

View File

@@ -0,0 +1,66 @@
---
description:
globs:
alwaysApply: false
---
# 主要模块
村客宝系统由多个功能模块组成,各模块负责不同的业务功能:
## API模块
[application/api/](mdc:application/api) 提供RESTful API服务主要包括
- [DeviceController.php](mdc:application/api/controller/DeviceController.php) - 设备相关API
- [WechatController.php](mdc:application/api/controller/WechatController.php) - 微信账号相关API
- [WechatFriendController.php](mdc:application/api/controller/WechatFriendController.php) - 微信好友相关API
- [WechatChatroomController.php](mdc:application/api/controller/WechatChatroomController.php) - 微信群相关API
- [MessageController.php](mdc:application/api/controller/MessageController.php) - 消息相关API
- [MomentsController.php](mdc:application/api/controller/MomentsController.php) - 朋友圈相关API
- [WebSocketController.php](mdc:application/api/controller/WebSocketController.php) - WebSocket通信API
## 村客宝主模块
[application/cunkebao/](mdc:application/cunkebao) 是系统的核心模块,包含主要业务逻辑:
- [Device.php](mdc:application/cunkebao/controller/Device.php) - 设备管理控制器
- [DeviceWechat.php](mdc:application/cunkebao/controller/DeviceWechat.php) - 设备微信管理
- [ContentLibraryController.php](mdc:application/cunkebao/controller/ContentLibraryController.php) - 内容库管理
- [WorkbenchController.php](mdc:application/cunkebao/controller/WorkbenchController.php) - 工作台功能
- [TrafficPool.php](mdc:application/cunkebao/controller/TrafficPool.php) - 流量池管理
- [TrafficTag.php](mdc:application/cunkebao/controller/TrafficTag.php) - 流量标签管理
## 公共模块
[application/common/](mdc:application/common) 包含系统共享的功能和工具:
- [service/](mdc:application/common/service) - 公共服务
- [model/](mdc:application/common/model) - 核心数据模型
- [util/](mdc:application/common/util) - 工具类
- [socket/](mdc:application/common/socket) - WebSocket通信
- [middleware/](mdc:application/common/middleware) - 中间件
## 命令行模块
[application/command/](mdc:application/command) 包含系统的命令行工具:
- 定时任务
- 队列处理
- 数据迁移
- 系统维护
## 存储模块
[application/store/](mdc:application/store) 提供资源存储相关的功能:
- 图片存储
- 文件上传
- 资源管理
## 超级管理员模块
[application/superadmin/](mdc:application/superadmin) 提供系统管理功能:
- 用户管理
- 权限管理
- 系统配置

View File

@@ -0,0 +1,71 @@
---
description:
globs:
alwaysApply: false
---
# 开发工作流程
本项目基于ThinkPHP 5.1框架开发遵循MVC设计模式。开发时请参考以下工作流程和规范
## 框架特性
ThinkPHP 5.1使用以下特性:
- 命名空间和自动加载
- 依赖注入和容器
- 门面Facade模式
- 中间件机制
- 路由定义
## 开发流程
1. **理解需求** - 明确功能需求和业务逻辑
2. **设计数据库** - 设计相关数据表和字段
3. **创建模型** - 在对应模块的`model`目录下创建数据模型
4. **编写服务层** - 在`service`目录下实现业务逻辑
5. **创建控制器** - 在`controller`目录下创建控制器处理请求
6. **定义路由** - 在模块的`config/route.php`中定义路由规则
7. **编写前端代码** - 实现页面交互和UI
## 关键文件和位置
- **模型定义**: `application/模块名/model/`
- **控制器**: `application/模块名/controller/`
- **服务层**: `application/模块名/service/`
- **路由配置**: `application/模块名/config/route.php`
- **公共函数**: `application/common.php`
- **配置文件**: `config/` 和 `application/模块名/config/`
## 命名规范
- **类名**: 使用Pascal命名法如`DeviceController`
- **方法名**: 使用camel命名法如`getUserInfo`
- **变量名**: 使用camel命名法如`$deviceInfo`
- **常量**: 使用大写下划线(如`APP_DEBUG`
- **配置参数**: 使用小写下划线(如`app_debug`
## 使用命令行
ThinkPHP提供了命令行工具可用于执行各种任务
```bash
# 查看可用命令
php think
# 启动内置服务器
php think run
# 清除缓存
php think clear
# 执行数据库迁移
php think migrate:run
```
## 扩展包依赖
项目使用Composer管理依赖主要依赖见[composer.json](mdc:composer.json)
- topthink/framework: 5.1.*
- phpoffice/phpexcel
- guzzlehttp/guzzle
- 等其他扩展包

View File

@@ -0,0 +1,85 @@
---
description:
globs:
alwaysApply: false
---
# API 参考
村客宝系统提供RESTful风格的API主要通过`application/api`模块实现。
## API路由结构
系统API遵循RESTful设计主要路由前缀为`/v1`,详细路由定义见[application/api/config/route.php](mdc:application/api/config/route.php)
## 主要API控制器
- [DeviceController.php](mdc:application/api/controller/DeviceController.php) - 设备管理API
- [WechatController.php](mdc:application/api/controller/WechatController.php) - 微信账号API
- [WechatFriendController.php](mdc:application/api/controller/WechatFriendController.php) - 微信好友API
- [WechatChatroomController.php](mdc:application/api/controller/WechatChatroomController.php) - 微信群API
- [MessageController.php](mdc:application/api/controller/MessageController.php) - 消息API
- [MomentsController.php](mdc:application/api/controller/MomentsController.php) - 朋友圈API
- [UserController.php](mdc:application/api/controller/UserController.php) - 用户API
## 常用API端点
### 设备管理
- `GET /v1/devices` - 获取设备列表
- `GET /v1/devices/{id}` - 获取设备详情
- `POST /v1/devices` - 添加设备
- `PUT /v1/devices/{id}` - 更新设备信息
- `DELETE /v1/devices/{id}` - 删除设备
### 微信账号管理
- `GET /v1/wechats` - 获取微信账号列表
- `GET /v1/wechats/{id}` - 获取微信账号详情
- `PUT /v1/wechats/{id}` - 更新微信账号信息
- `DELETE /v1/wechats/{id}` - 删除微信账号
### 微信好友管理
- `GET /v1/wechats/{id}/friends` - 获取好友列表
- `POST /v1/wechats/{id}/friends` - 添加好友
- `PUT /v1/wechats/{id}/friends/{friendId}` - 更新好友信息
### 工作台功能
- `POST /v1/workbench/auto-like` - 自动点赞
- `POST /v1/workbench/sync-moments` - 同步朋友圈
- `POST /v1/workbench/send-message` - 发送消息
## API鉴权
API使用Token认证机制每个请求需要在Header中包含授权信息
```
Authorization: Bearer {token}
```
获取Token的方法
- `POST /v1/auth/login` - 登录获取Token
- `POST /v1/auth/refresh` - 刷新Token
## 响应格式
API统一返回JSON格式数据基本结构
```json
{
"code": 200, // 状态码
"message": "success", // 消息
"data": {}, // 数据(可选)
"time": 1628160000 // 时间戳
}
```
## WebSocket通信
实时通信通过WebSocket实现在[WebSocketController.php](mdc:application/api/controller/WebSocketController.php)中定义:
- 连接地址:`ws://{host}/ws`
- 支持设备状态实时推送
- 支持消息实时通知
- 支持任务执行状态更新

View File

@@ -0,0 +1,96 @@
---
description:
globs:
alwaysApply: false
---
# 数据模型
系统使用ThinkPHP的ORM框架进行数据库操作主要模型如下
## 核心模型
### 设备相关
- **Device模型** - 设备信息
- 位置:[application/common/model/Device.php](mdc:application/common/model/Device.php)
- 主要字段id, name, device_id, status, online_status, created_at, updated_at
- **DeviceWechat模型** - 设备上的微信账号
- 位置:[application/common/model/DeviceWechat.php](mdc:application/common/model/DeviceWechat.php)
- 主要字段id, device_id, wechat_id, status, login_status, created_at, updated_at
### 微信相关
- **Wechat模型** - 微信账号信息
- 位置:[application/common/model/Wechat.php](mdc:application/common/model/Wechat.php)
- 主要字段id, wxid, nickname, avatar, gender, country, province, city, created_at, updated_at
- **WechatFriend模型** - 微信好友
- 位置:[application/common/model/WechatFriend.php](mdc:application/common/model/WechatFriend.php)
- 主要字段id, wechat_id, wxid, nickname, remark, avatar, gender, created_at, updated_at
- **WechatChatroom模型** - 微信群
- 位置:[application/common/model/WechatChatroom.php](mdc:application/common/model/WechatChatroom.php)
- 主要字段id, chatroom_id, name, owner_wxid, member_count, created_at, updated_at
### 内容相关
- **ContentLibrary模型** - 内容库
- 位置:[application/common/model/ContentLibrary.php](mdc:application/common/model/ContentLibrary.php)
- 主要字段id, title, content, type, category_id, tags, created_at, updated_at
- **ContentCategory模型** - 内容分类
- 位置:[application/common/model/ContentCategory.php](mdc:application/common/model/ContentCategory.php)
- 主要字段id, name, parent_id, sort, created_at, updated_at
### 工作台相关
- **Task模型** - 任务
- 位置:[application/common/model/Task.php](mdc:application/common/model/Task.php)
- 主要字段id, name, type, status, config, created_at, updated_at
- **Plan模型** - 计划
- 位置:[application/common/model/Plan.php](mdc:application/common/model/Plan.php)
- 主要字段id, name, type, status, config, schedule, created_at, updated_at
### 流量相关
- **TrafficPool模型** - 流量池
- 位置:[application/common/model/TrafficPool.php](mdc:application/common/model/TrafficPool.php)
- 主要字段id, name, description, created_at, updated_at
- **TrafficTag模型** - 流量标签
- 位置:[application/common/model/TrafficTag.php](mdc:application/common/model/TrafficTag.php)
- 主要字段id, name, color, created_at, updated_at
## 模型关联
系统中的模型通过ThinkPHP的关联关系进行关联
- Device模型 hasMany DeviceWechat模型
- DeviceWechat模型 belongsTo Device模型
- DeviceWechat模型 belongsTo Wechat模型
- Wechat模型 hasMany WechatFriend模型
- Wechat模型 hasMany WechatChatroom模型
- ContentLibrary模型 belongsTo ContentCategory模型
## 模型使用示例
```php
// 查询设备列表
$devices = Device::where('status', 1)->order('id', 'desc')->paginate(10);
// 关联查询设备上的微信账号
$device = Device::with('wechats')->find($deviceId);
// 创建新设备
$device = new Device;
$device->name = '设备名称';
$device->device_id = 'DEVICE_123456';
$device->status = 1;
$device->save();
```
## 数据验证
模型验证规则定义在对应的验证器类中,位于`application/模块名/validate/`目录下。

View File

@@ -0,0 +1,104 @@
---
description:
globs:
alwaysApply: false
---
# WebSocket通信
村客宝系统使用WebSocket实现实时通信功能主要用于设备状态监控和消息实时推送。
## WebSocket服务
系统使用ThinkPHP的think-worker扩展实现WebSocket服务
- 服务配置:[config/worker.php](mdc:config/worker.php)和[config/worker_server.php](mdc:config/worker_server.php)
- Gateway配置[config/gateway_worker.php](mdc:config/gateway_worker.php)
## WebSocket控制器
WebSocket服务主要通过以下文件实现
- [application/api/controller/WebSocketController.php](mdc:application/api/controller/WebSocketController.php) - WebSocket控制器
- [application/common/socket/](mdc:application/common/socket) - WebSocket核心实现
## 消息格式
WebSocket消息使用JSON格式基本结构如下
```json
{
"type": "message_type", // 消息类型
"data": {}, // 消息数据
"time": 1628160000 // 时间戳
}
```
## 常用消息类型
- `device_status` - 设备状态更新
- `wechat_login` - 微信登录状态更新
- `new_message` - 新消息通知
- `task_status` - 任务状态更新
- `error` - 错误消息
## 客户端连接
客户端可以通过以下方式连接WebSocket服务
```javascript
const ws = new WebSocket('ws://{host}/ws');
ws.onopen = function() {
console.log('Connected to WebSocket server');
// 发送认证消息
ws.send(JSON.stringify({
type: 'auth',
data: {
token: 'YOUR_AUTH_TOKEN'
}
}));
};
ws.onmessage = function(event) {
const message = JSON.parse(event.data);
console.log('Received message:', message);
// 根据消息类型处理
switch(message.type) {
case 'device_status':
// 处理设备状态更新
break;
case 'new_message':
// 处理新消息
break;
// ...其他消息类型
}
};
```
## WebSocket命令
系统提供命令行工具管理WebSocket服务
```bash
# 启动WebSocket服务
php think worker:server start
# 停止WebSocket服务
php think worker:server stop
# 重启WebSocket服务
php think worker:server restart
# 查看WebSocket服务状态
php think worker:server status
```
## 消息推送服务
系统使用队列实现消息的异步推送:
- 队列配置:[config/queue.php](mdc:config/queue.php)
- 消息推送任务:[application/job/](mdc:application/job)
通过队列可以实现高效的消息推送,避免阻塞主进程。