提交 a2ab7a84 作者: 毛细亚

测试发送日志

上级 d5dc58a1
......@@ -201,7 +201,7 @@ export function autoResetPassword(data) {
// 重置密码加密
export function passwardEncryption(data) {
return request({
url: '/game/session/zyouAutoResetPassword',
url: '/sidebar/session/zyouAutoResetPassword',
method: 'post',
data
})
......
......@@ -71,20 +71,20 @@ export default {
try {
const chatUser = this.chatUserForLog
// 构建日志数据
const logData = {
game_id: this.pendingGameLog.game_id,
game_name: this.pendingGameLog.game_name,
game_type: this.pendingGameLog.game_type || '',
main_game_id: this.pendingGameLog.main_game_id || '',
weixin_blongs_id: this.pendingGameLog.weixin_blongs_id || '',
content: this.formatLogContent(content, type),
type: this.pendingGameLog.type || 2,
frontend_message_id: messageInfo?.frontend_message_id || '',
session_id: messageInfo?.session_id || '',
userid: chatUser.userid || '',
external_userid: chatUser.external_userid || ''
}
// 构建日志数据
const logData = {
game_id: this.pendingGameLog.game_id,
game_name: this.pendingGameLog.game_name,
game_type: this.pendingGameLog.game_type || '',
main_game_id: this.pendingGameLog.main_game_id || '',
weixin_blongs_id: this.pendingGameLog.weixin_blongs_id || '',
content: this.formatLogContent(messageInfo?.message || content, type),
type: this.pendingGameLog.type || 2,
frontend_message_id: messageInfo?.frontend_message_id || '',
session_id: messageInfo?.session_id || '',
userid: chatUser.userid || '',
external_userid: chatUser.external_userid || ''
}
console.log('发送游戏日志:', logData)
......
# 测试游戏日志收集功能
# 测试游戏日志收集功能
## 修复的问题
原来的 `sendChatMessage` 方法没有返回包含 `frontend_message_id``session_id` 的数据,导致日志记录失败。
## 修复内容
1. **修改了 `utils/index.js` 中的 `sendChatMessage` 方法**
- ✅ 添加了返回值包含必要的日志信息
- ✅ 生成唯一的 `frontend_message_id``session_id`
- ✅ 返回完整的消息信息对象
2. **优化了 `gameLogMixin.js`**
- ✅ 优化了日志内容的处理逻辑
## 测试步骤
### 1. 打开浏览器开发者工具
- 按 F12 打开开发者工具
- 切换到 **Console(控制台)** 选项卡
### 2. 进行游戏发送操作
任选以下操作之一进行测试:
#### 测试转端功能
1. 选择一个W账号
2. 点击 "转端" 选项卡
3. 选择任意游戏类型(如网页游戏)
4. 点击发送按钮,选择发送方式(如 "仅发送链接")
#### 测试召回功能
1. 选择一个W账号
2. 点击 "召回" 选项卡
3. 选择任意游戏
4. 点击发送按钮
#### 测试转游功能
1. 选择一个W账号
2. 点击 "转游" 选项卡
3. 选择任意游戏
4. 点击发送按钮
### 3. 查看控制台输出
在控制台中应该能看到以下日志信息:
```javascript
// 1. 准备记录游戏日志
准备记录游戏日志: {game_id: "123", game_name: "游戏名称", ...}
// 2. 发送消息对象
发送消息对象: {msgtype: "text", text: {...}, ...}
// 3. 发送游戏日志
发送游戏日志: {
game_id: "123",
game_name: "游戏名称",
content: "消息内容",
frontend_message_id: "uuid-string",
session_id: "uuid-string",
...
}
// 4. 日志记录结果
游戏日志记录成功
// 或者
游戏日志记录失败: 错误信息
```
### 4. 验证功能正常
**成功标志**
- 消息成功发送到聊天窗口
- 控制台显示 "准备记录游戏日志"
- 控制台显示 "发送游戏日志"
- 控制台显示 "游戏日志记录成功"
**失败标志**
- 控制台显示 "游戏日志记录失败"
- 控制台出现错误信息
## 调试信息
### 正常的日志流程
```
1. [游戏发送] 准备记录游戏日志: {...}
2. [消息发送] 发送消息对象: {...}
3. [日志记录] 发送游戏日志: {...}
4. [接口调用] 游戏日志记录成功
```
### 常见问题排查
#### 1. 没有看到 "准备记录游戏日志"
- 检查是否正确调用了发送按钮
- 确认已选择W账号
#### 2. 没有看到 "发送游戏日志"
- 检查消息是否发送成功
- 查看是否有网络错误
#### 3. 看到 "游戏日志记录失败"
- 检查用户信息(userid, external_userid)是否存在
- 检查网络连接是否正常
- 查看具体的错误信息
## 技术细节
### 新增的数据结构
```javascript
// sendChatMessage 返回的对象
{
frontend_message_id: "uuid-generated-id",
session_id: "uuid-generated-id",
message: "实际发送的消息内容",
message_type: "text|image|miniprogram",
timestamp: 1640995200000,
success: true
}
```
### 日志记录的完整参数
```javascript
{
game_id: "游戏ID",
game_name: "游戏名称",
game_type: "游戏类型",
main_game_id: "主游戏ID",
weixin_blongs_id: "微信归属ID",
content: "消息内容",
type: 2, // 日志类型
frontend_message_id: "前端消息ID",
session_id: "会话ID",
userid: "用户ID",
external_userid: "外部用户ID"
}
```
## 注意事项
1. **异步处理**:日志记录是异步进行的,不会影响消息发送
2. **错误容错**:即使日志记录失败,消息发送功能仍然正常
3. **自动清理**:日志记录完成后会自动清空待记录信息
4. **UUID生成**:每次发送都会生成新的唯一标识符
## 如果仍有问题
如果按照上述步骤测试后仍然没有看到日志记录成功的信息,请:
1. 复制控制台中的完整错误信息
2. 说明具体的操作步骤
3. 提供用户和游戏的相关信息(去除敏感数据)
\ No newline at end of file
......@@ -685,9 +685,17 @@ export const fallbackCopyTextToClipboard = function(text, successCallback, error
// 企业微信发送聊天消息的通用方法
export async function sendChatMessage(content, type) {
let messageObj = {}
// 生成消息ID和会话ID,用于日志记录
const messageInfo = {
frontend_message_id: generateUUID(),
session_id: generateUUID(),
message: content,
message_type: type,
timestamp: Date.now()
}
if (type === 'text') {
messageObj = {
msgtype: 'text',
......@@ -696,9 +704,13 @@ export async function sendChatMessage(content, type) {
},
success: (res) => {
console.log(res, '发送文本成功')
messageInfo.success = true
messageInfo.response = res
},
fail: (err) => {
console.log(err, '发送文本失败')
messageInfo.success = false
messageInfo.error = err
}
}
} else if (type === 'link') {
......@@ -707,9 +719,13 @@ export async function sendChatMessage(content, type) {
news: content,
success: (res) => {
console.log(res, '发送 news 成功')
messageInfo.success = true
messageInfo.response = res
},
fail: (err) => {
console.log(err, '发送 news 失败')
messageInfo.success = false
messageInfo.error = err
}
}
} else if (type === 'image') {
......@@ -725,28 +741,57 @@ export async function sendChatMessage(content, type) {
},
success: (res) => {
console.log(res, '发送 image 成功')
messageInfo.success = true
messageInfo.response = res
},
fail: (err) => {
console.log(err, '发送 image 失败')
messageInfo.success = false
messageInfo.error = err
}
}
} else {
throw new Error('获取媒体ID失败')
}
} catch (error) {
console.error('获取媒体ID失败:', error)
Message.error('获取图片媒体ID失败')
return
messageInfo.success = false
messageInfo.error = error
return messageInfo
}
} else {
Message.error('图片链接不存在,无法发送')
return
messageInfo.success = false
messageInfo.error = new Error('图片链接不存在')
return messageInfo
}
} else if (type === 'miniprogram') {
messageObj = {
msgtype: 'miniprogram',
miniprogram: content
miniprogram: content,
success: (res) => {
console.log(res, '发送小程序成功')
messageInfo.success = true
messageInfo.response = res
},
fail: (err) => {
console.log(err, '发送小程序失败')
messageInfo.success = false
messageInfo.error = err
}
}
}
console.log(messageObj, '发送消息对象')
// 发送消息
ww.sendChatMessage(messageObj)
// 默认认为发送成功(因为企业微信API是异步的,我们无法直接获取结果)
// 如果有错误,会在回调中设置
messageInfo.success = true
// 返回消息信息,用于日志记录
return messageInfo
}
\ No newline at end of file
......@@ -1219,11 +1219,7 @@
width: 100%;
height: 100%;
overflow: auto;
.sendLink {
width: 150px;
height: 25px;
cursor: pointer;
}
.createChannel {
font-size: 14px;
.label {
......@@ -1237,9 +1233,7 @@
font-size: 16px;
text-align: center;
}
.sendLink:hover {
color: #00bf8a;
}
.btnRelease {
position: relative;
padding-top: 40px;
......@@ -1313,5 +1307,14 @@
}
}
}
</style>
</style>
<style>
.sendLink {
width: 150px;
height: 25px;
cursor: pointer;
}
.sendLink:hover {
color: #00bf8a;
}</style>
\ No newline at end of file
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论