Initial qiwei secondary development handoff

This commit is contained in:
2026-06-23 21:11:20 +08:00
commit 858cb68f4f
207 changed files with 52782 additions and 0 deletions

139
二次开发指南.md Normal file
View File

@@ -0,0 +1,139 @@
# 企业微信售后客服工具二次开发指南
本文档面向接手本项目的同事,用于快速了解项目结构、开发环境、运行调试、打包发布和常见二开入口。
## 1. 项目概览
本项目是基于 Wails 的 Windows 桌面工具,后端使用 Go前端使用 Vue 3 + Vite + Element Plus。主程序负责桌面界面、配置管理、操作日志、企业微信账号展示和业务功能入口`helper` 辅助程序负责和企业微信客户端、本地 HTTP 接口、自动回复、售后知识库等能力协作。
核心目录说明:
- `main.go``app.go``after_sales*.go``http_client.go`Wails 主程序和业务接口。
- `helper/`32 位辅助程序源码包含企业微信连接、自动回复、售后知识库、素材、AI 调用等逻辑。
- `frontend/src/`:前端 Vue 页面和组件。
- `config/`:配置结构、默认配置、材料和知识库相关配置。
- `logger/`:日志模块。
- `requestdata/``eventdata/`:企业微信接口请求/事件样例数据。
- `scripts/``tools/`:打包脚本和辅助工具。
- `build/`:仅保留 Wails 图标、manifest、安装脚本等构建配置。
- `release/`:交付验证用安装包和运行依赖,不作为日常开发输出目录。
## 2. 开发环境
建议环境:
- Windows 10/11。
- Go 1.24.x项目 `go.mod` 当前声明 `go 1.24.1`
- Node.js + npm前端使用 Vite。
- Wails v2建议安装 Wails CLI 后执行 `wails doctor` 检查环境。
- 企业微信 Windows 客户端,需和 `Helper_4.1.33.6009.dll``Loader_4.1.33.6009.dll` 对应的版本兼容。
首次拉取后执行:
```powershell
cd C:\path\to\qiwei
npm install --prefix frontend
go mod download
```
如本机没有 Wails CLI可安装
```powershell
go install github.com/wailsapp/wails/v2/cmd/wails@latest
```
## 3. 本地启动与调试
主程序开发调试:
```powershell
cd C:\path\to\qiwei
wails dev
```
前端热更新由 Wails 调用 `frontend:dev:watcher`,实际执行的是 `npm run dev`。前端代码主要在 `frontend/src` 下修改。
辅助程序单独构建通常需要 32 位 Windows 目标:
```powershell
cd C:\path\to\qiwei\helper
$env:GOARCH='386'
go build -ldflags='-H windowsgui -s -w' -o ..\build\bin\helper.exe .
```
主程序启动时会优先在运行目录查找 `helper_auto_reply.exe`,不存在时查找 `helper.exe`。如果本地调试企业微信相关能力,需保证运行目录内存在对应 helper 和 DLL。
## 4. 构建与发布
主程序生产构建:
```powershell
cd C:\path\to\qiwei
wails build
```
构建输出通常在 `build/bin`。如果需要制作 Windows 安装包,优先复用 `scripts/package-windows.ps1``build/windows/installer` 下的 NSIS 配置。
本次交付中 `release/qiweimanager-amd64-installer.exe` 是原项目现有安装包,供同事和客户快速验证当前版本;后续新版本应重新构建并替换发布包。
## 5. 前后端调用关系
Wails 会把 Go 端绑定方法暴露给前端,前端生成代码位于 `frontend/wailsjs`。常见流程:
1. 前端 Vue 组件调用 `frontend/wailsjs/go/main/App` 中的方法。
2. 调用进入 `app.go``App` 方法。
3. 需要企业微信能力时,主程序通过 `HTTPClient` 请求本机 helper HTTP 接口。
4. helper 调用企业微信相关能力,返回结果给主程序和前端。
新增后端方法时,需要在 `App` 上新增公开方法,然后重新运行 Wails 开发或构建流程,让 `frontend/wailsjs` 更新。
## 6. 常见二开入口
- 自动回复/AI 配置:后端看 `app.go``GetAutoReplyConfig``SaveAutoReplyConfig``SetAutoReplyEnabled` 等方法helper 侧看 `helper/auto_reply*.go`
- 售后知识库:主程序看 `after_sales*.go`helper 侧看 `helper/after_sales*.go`
- 工程师派单/售后问题:前端看 `frontend/src/components/EngineerDispatch.vue``AfterSalesIssues.vue`,后端看 `after_sales_dispatch.go`
- 企业微信账号与消息发送:主程序看 `GetWxWorkAccountList``SendWxWorkData`helper 侧看 `wxwork_instance_http.go``http_server.go``client_*`
- 配置管理:看 `config/types.go``config/config_manager.go``config/config.json`
- 日志与操作记录:看 `logger/``operation_record.go`、前端 `OperationLogs.vue`
## 7. 配置与敏感信息
`config/config.json` 当前未包含真实客户密钥但后续实施时可能写入回调地址、Token、设备码、文件上传地址等信息。真实客户环境中的配置文件、账号状态、知识库索引和运行日志不要提交到 Git。
建议提交前检查:
```powershell
git status --short
git diff -- config/config.json
```
如必须提供配置示例,请新增 `config/config.example.json`,不要提交客户真实配置。
## 8. 企业微信与 Helper 注意事项
- DLL 文件名中的版本号需要和目标企业微信客户端版本匹配。
- 主程序和 helper 都会写运行日志,日志目录不要提交 Git。
- helper 可能监听本机 HTTP 端口,默认端口由 `callbackConfig.httpPort` 控制,当前默认 `10001`
- 主程序退出时会尝试关闭 helper 进程;调试时如果端口占用或进程残留,可先在任务管理器中结束相关进程。
- 企业微信升级可能导致 DLL 不兼容,需要重新验证账号识别、消息收发和自动回复链路。
## 9. 提交 Git 前检查清单
提交公司仓库前建议确认:
- `frontend/node_modules``frontend/dist``.gocache``build/tmp`、日志目录未出现在 `git status` 中。
- `release/` 中只保留需要交付验证的安装包和运行依赖。
- 没有提交客户真实 Token、设备码、账号状态、聊天记录、运行日志、知识库索引。
- `go test ./...` 能通过,或已记录失败原因。
- 前端依赖可安装,`npm run build --prefix frontend` 能通过,或已记录失败原因。
- README 和本二开指南能让新同事完成首次启动。
## 10. 推荐开发流程
1. 从公司 Git 拉取代码。
2. 安装 Go、Node、Wails 环境。
3. 执行 `npm install --prefix frontend``go mod download`
4. 运行 `wails dev` 做功能开发。
5. 修改后执行 Go 测试和前端构建。
6. 需要发布时执行 `wails build`,再用打包脚本生成安装包。
7. 提交前按检查清单确认无本机/客户敏感文件。