|
|
@@ -163,8 +163,52 @@ php artisan game:collect-user-logs --collector=fund
|
|
|
4. **完善筛选功能**: 增加更多筛选条件,如日期范围、操作类型等
|
|
|
5. **添加导出功能**: 支持导出用户日志数据为Excel或CSV格式
|
|
|
|
|
|
+## 用户体验优化
|
|
|
+
|
|
|
+### 问题发现
|
|
|
+在测试过程中发现用户日志消息格式对用户来说理解困难:
|
|
|
+- **修复前**: `消耗钻石 5(币种消耗:2,消耗组:16,来源:shop_buy,ID:7)`
|
|
|
+- **问题**: 包含大量技术性信息,用户难以理解实际操作内容
|
|
|
+
|
|
|
+### 优化方案
|
|
|
+修改FundLogCollector,解析备注信息并生成用户友好的消息:
|
|
|
+
|
|
|
+**文件**: `app/Module/Game/Logics/UserLogCollectors/FundLogCollector.php`
|
|
|
+
|
|
|
+1. **添加备注解析方法**:解析remark字段中的来源信息
|
|
|
+2. **添加来源消息生成**:根据来源类型生成具体描述
|
|
|
+3. **添加商品名称获取**:从商店商品表获取实际商品名称
|
|
|
+
|
|
|
+```php
|
|
|
+// 解析备注信息:币种消耗:2,消耗组:16,来源:shop_buy,ID:7
|
|
|
+private function parseRemark(string $remark): array
|
|
|
+{
|
|
|
+ // 使用正则表达式解析键值对
|
|
|
+ if (preg_match_all('/([^:,]+):([^,]+)/', $remark, $matches)) {
|
|
|
+ // 转换为关联数组,支持中文键名
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
+// 根据来源生成用户友好消息
|
|
|
+private function getSourceMessage(string $source, int $id, string $action): ?string
|
|
|
+{
|
|
|
+ switch ($source) {
|
|
|
+ case 'shop_buy':
|
|
|
+ $itemName = $this->getShopItemName($id);
|
|
|
+ return "购买{$itemName}";
|
|
|
+ // 支持更多来源类型...
|
|
|
+ }
|
|
|
+}
|
|
|
+```
|
|
|
+
|
|
|
+### 优化结果
|
|
|
+- **修复后**: `购买小狗一只消耗钻石 2880`
|
|
|
+- **效果**: 用户可以清楚地知道具体购买了什么商品,消耗了多少资源
|
|
|
+- **支持**: 商店购买、宝箱开启、任务奖励等多种来源类型
|
|
|
+
|
|
|
## 提交信息
|
|
|
|
|
|
+### 第一次提交
|
|
|
```
|
|
|
完成用户日志系统修复和测试
|
|
|
|
|
|
@@ -176,3 +220,16 @@ php artisan game:collect-user-logs --collector=fund
|
|
|
- 用户日志管理页面现在完全正常工作,显示3008条记录
|
|
|
- 验证了筛选、分页、查看详情等功能正常
|
|
|
```
|
|
|
+
|
|
|
+### 第二次提交
|
|
|
+```
|
|
|
+优化用户日志消息格式,提升用户体验
|
|
|
+
|
|
|
+- 修改FundLogCollector生成更友好的用户日志消息
|
|
|
+- 解析备注信息中的来源类型和ID,生成具体的操作描述
|
|
|
+- 将技术性信息转换为用户易懂的描述
|
|
|
+- 修复前:消耗钻石 5(币种消耗:2,消耗组:16,来源:shop_buy,ID:7)
|
|
|
+- 修复后:购买小狗一只消耗钻石 2880
|
|
|
+- 支持商店购买、宝箱开启、任务奖励等多种来源类型
|
|
|
+- 大幅提升用户日志的可读性和理解性
|
|
|
+```
|