Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
C
company_app
概览
概览
详情
活动
周期分析
版本库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
统计图
问题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程表
图表
维基
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
毛细亚
company_app
Commits
a2ab7a84
提交
a2ab7a84
authored
6月 06, 2025
作者:
毛细亚
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
测试发送日志
上级
d5dc58a1
显示空白字符变更
内嵌
并排
正在显示
5 个修改的文件
包含
225 行增加
和
15 行删除
+225
-15
game.js
src/api/game.js
+1
-1
gameLogMixin.js
src/mixins/gameLogMixin.js
+1
-1
测试日志收集功能.md
src/mixins/测试日志收集功能.md
+160
-0
index.js
src/utils/index.js
+50
-4
sendGame.vue
src/views/components/quickSendGame/sendGame.vue
+13
-9
没有找到文件。
src/api/game.js
浏览文件 @
a2ab7a84
...
...
@@ -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
})
...
...
src/mixins/gameLogMixin.js
浏览文件 @
a2ab7a84
...
...
@@ -78,7 +78,7 @@ export default {
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
),
content
:
this
.
formatLogContent
(
messageInfo
?.
message
||
content
,
type
),
type
:
this
.
pendingGameLog
.
type
||
2
,
frontend_message_id
:
messageInfo
?.
frontend_message_id
||
''
,
session_id
:
messageInfo
?.
session_id
||
''
,
...
...
src/mixins/测试日志收集功能.md
0 → 100644
浏览文件 @
a2ab7a84
# 测试游戏日志收集功能
# 测试游戏日志收集功能
## 修复的问题
原来的
`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
src/utils/index.js
浏览文件 @
a2ab7a84
...
...
@@ -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
src/views/components/quickSendGame/sendGame.vue
浏览文件 @
a2ab7a84
...
...
@@ -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
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论