120 lines
4.3 KiB
Markdown
120 lines
4.3 KiB
Markdown
# 2026年2月3日开发日志
|
||
|
||
## 完成的任务
|
||
|
||
### 1. Tab 栏功能接入和界面美化
|
||
- 将所有 tab 栏的功能接上
|
||
- 优化界面美观度
|
||
|
||
### 2. 音乐库功能开发
|
||
- 实现用户上传音乐或粘贴音乐链接功能
|
||
- 所有用户可以看到共享的音乐
|
||
- 详细文档:[音乐库.sql](./音乐库.sql)
|
||
|
||
### 3. 邀请码功能修复
|
||
- **问题**:使用邀请码登录时用户没有成功获得 5 金币奖励
|
||
- **根本原因**:数据库字段类型错误
|
||
- `invited_by` 字段类型是 `int`,应该是 `varchar(10)`
|
||
- `invite_reward_total` 字段类型是 `int`,应该是 `decimal(10,2)`
|
||
- **解决方案**:创建一键修复脚本 `lover/migrations/fix_invite_complete.sql`
|
||
- **详细文档**:
|
||
- [邀请码功能修复.md](./邀请码功能修复.md)
|
||
- [邀请码问题诊断.md](./邀请码问题诊断.md)
|
||
|
||
### 4. 登录无法进入系统问题修复
|
||
- **问题**:登录显示成功但一直无法进入系统,页面显示空白
|
||
- **根本原因**:`getBobbiesList` 初始值为空字符串 `''`
|
||
- 页面使用 `v-show="getBobbiesList.reg_step == 1"` 判断显示
|
||
- 当 `getBobbiesList` 为空字符串时,`getBobbiesList.reg_step` 为 `undefined`
|
||
- 导致所有 `v-show` 条件都不满足,页面显示空白
|
||
- **解决方案**:
|
||
- 将 `getBobbiesList` 初始值改为对象:`{ reg_step: 1, level: 0, intimacy: 0, next_level_intimacy: 100 }`
|
||
- 将 `loverBasicList` 初始值从空字符串改为 `null`
|
||
- 添加加载状态和错误处理
|
||
- **详细文档**:[登录无法进入问题修复.md](./登录无法进入问题修复.md)
|
||
|
||
### 5. PHP 后端连接泄漏问题诊断
|
||
- **问题**:Python 后端调用 PHP 后端接口超时(5秒)
|
||
```
|
||
HTTPConnectionPool(host='192.168.1.164', port=30100): Read timed out. (read timeout=5)
|
||
```
|
||
- **根本原因**:PHP 内置开发服务器(`php -S`)连接泄漏
|
||
- 通过 `netstat -ano | findstr :30100` 发现 30+ 个 `CLOSE_WAIT` 连接
|
||
- `CLOSE_WAIT` 状态表示客户端已关闭连接但服务器端未关闭
|
||
- PHP 内置服务器在处理大量并发请求时容易出现连接泄漏
|
||
- **临时解决方案**:重启 PHP 服务
|
||
- 创建快速重启脚本:`restart_php_service.bat`
|
||
- 创建连接监控脚本:`monitor_php_connections.bat`(增强版)
|
||
- **长期解决方案**:使用 Nginx + PHP-FPM 代替 `php -S`
|
||
- **详细文档**:[PHP连接泄漏问题修复.md](./PHP连接泄漏问题修复.md)
|
||
|
||
---
|
||
|
||
## 创建的工具脚本
|
||
|
||
### 服务管理脚本
|
||
- `start_all_services.bat` - 启动所有服务(PHP + Python)
|
||
- `stop_all_services.bat` - 停止所有服务
|
||
- `check_services.bat` - 检查服务状态
|
||
- `restart_php_service.bat` - 快速重启 PHP 服务(修复连接泄漏)
|
||
- `monitor_php_connections.bat` - 监控 PHP 连接状态(增强版)
|
||
|
||
### 数据库迁移脚本
|
||
- `lover/migrations/fix_invite_complete.sql` - 邀请码功能一键修复
|
||
- `lover/migrations/fix_invite_field_types.sql` - 修复邀请码字段类型
|
||
- `开发/2026年2月3日/音乐库.sql` - 音乐库数据库结构
|
||
|
||
---
|
||
|
||
## 待处理问题
|
||
|
||
### 1. PHP 连接泄漏(紧急)
|
||
- **当前状态**:已诊断,临时方案已就绪
|
||
- **下一步**:
|
||
1. 执行 `restart_php_service.bat` 重启 PHP 服务
|
||
2. 验证登录功能是否恢复正常
|
||
3. 使用 `monitor_php_connections.bat` 持续监控
|
||
4. 长期考虑切换到 Nginx + PHP-FPM
|
||
|
||
### 2. 邀请码字段类型修复
|
||
- **当前状态**:修复脚本已创建
|
||
- **下一步**:执行 `lover/migrations/fix_invite_complete.sql`
|
||
|
||
---
|
||
|
||
## 技术要点
|
||
|
||
### PHP 连接泄漏诊断方法
|
||
```bash
|
||
# 检查连接状态
|
||
netstat -ano | findstr :30100
|
||
|
||
# 查看 CLOSE_WAIT 连接数
|
||
netstat -ano | findstr :30100 | findstr CLOSE_WAIT | find /c /v ""
|
||
```
|
||
|
||
### 判断标准
|
||
- **正常**:CLOSE_WAIT < 10 个
|
||
- **注意**:CLOSE_WAIT 10-20 个
|
||
- **警告**:CLOSE_WAIT > 20 个(建议立即重启)
|
||
|
||
### 快速重启命令
|
||
```bash
|
||
# 停止所有 PHP 进程
|
||
taskkill /F /PID 23736
|
||
taskkill /F /PID 1416
|
||
|
||
# 启动新的 PHP 服务
|
||
cd xunifriend_RaeeC/public
|
||
php -S 192.168.1.164:30100
|
||
```
|
||
|
||
---
|
||
|
||
## 相关文档
|
||
- [邀请码功能修复.md](./邀请码功能修复.md)
|
||
- [邀请码问题诊断.md](./邀请码问题诊断.md)
|
||
- [登录无法进入问题修复.md](./登录无法进入问题修复.md)
|
||
- [PHP连接泄漏问题修复.md](./PHP连接泄漏问题修复.md)
|
||
- [音乐库.sql](./音乐库.sql)
|