@sokeai/cli 1.0.41 → 1.0.53
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -24
- package/package.json +2 -2
- package/scripts/build-binaries.sh +1 -30
- package/scripts/e2e-test.sh +63 -3
- package/scripts/install.js +52 -110
- package/scripts/local-test.js +10 -85
- package/scripts/local-test.sh +52 -7
- package/scripts/push.sh +12 -4
- package/scripts/release.sh +50 -40
- package/scripts/test-auto-detect.js +71 -48
- package/skills/README.md +0 -1
- package/skills/oss-upload/skill.md +50 -0
- package/skills/oss-upload/upload.py +355 -0
- package/skills/soke-assign/README.md +310 -0
- package/skills/soke-assign/SKILL.md +383 -0
- package/skills/soke-course/README.md +168 -92
- package/skills/soke-course/SKILL.md +372 -460
- package/skills/soke-exam/SKILL.md +565 -0
- package/skills/soke-exam/references/exam-get-exam-user.md +212 -0
- package/skills/soke-learning-map/SKILL.md +544 -0
- package/skills/soke-learning-profile/SKILL.md +0 -1
- package/skills/soke-lesson/README.md +53 -0
- package/skills/soke-lesson/SKILL.md +510 -0
- package/skills/soke-material/README.md +49 -0
- package/skills/soke-material/SKILL.md +390 -0
- package/scripts/ci/check-legacy-constants.sh +0 -27
- package/scripts/ci/check-yaml-env-whitelist.sh +0 -33
- package/scripts/mcp-stdout-scan.sh +0 -46
- package/scripts/regress-auth.sh +0 -56
- package/scripts/regress-baseline.md +0 -84
- package/scripts/test-local-reconcile.js +0 -55
- package/skills/soke-business-training-report/SKILL.md +0 -58
- package/skills/soke-course/SUMMARY.md +0 -236
- package/skills/soke-course/templates/batch-create-from-excel.md +0 -75
|
@@ -0,0 +1,212 @@
|
|
|
1
|
+
# +get-exam-user - 获取考试用户详细成绩
|
|
2
|
+
|
|
3
|
+
## 概述
|
|
4
|
+
|
|
5
|
+
获取单个用户在特定考试中的详细成绩信息,包括分数、状态、答题时间等。
|
|
6
|
+
|
|
7
|
+
## 命令格式
|
|
8
|
+
|
|
9
|
+
```bash
|
|
10
|
+
soke-cli exam +get-exam-user \
|
|
11
|
+
--exam-id <exam_id> \
|
|
12
|
+
--dept-user-id <dept_user_id>
|
|
13
|
+
```
|
|
14
|
+
|
|
15
|
+
## 参数说明
|
|
16
|
+
|
|
17
|
+
### 必需参数
|
|
18
|
+
|
|
19
|
+
| 参数 | 类型 | 说明 |
|
|
20
|
+
|------|------|------|
|
|
21
|
+
| `--exam-id` | string | 考试ID(uuid) |
|
|
22
|
+
| `--dept-user-id` | string | 部门用户ID |
|
|
23
|
+
|
|
24
|
+
### 可选参数
|
|
25
|
+
|
|
26
|
+
| 参数 | 类型 | 默认值 | 说明 |
|
|
27
|
+
|------|------|--------|------|
|
|
28
|
+
| `--format` | string | json | 输出格式(json/table) |
|
|
29
|
+
|
|
30
|
+
## 返回数据
|
|
31
|
+
|
|
32
|
+
### JSON格式
|
|
33
|
+
|
|
34
|
+
```json
|
|
35
|
+
{
|
|
36
|
+
"code": 0,
|
|
37
|
+
"msg": "success",
|
|
38
|
+
"data": {
|
|
39
|
+
"target_id": "exam_user_123",
|
|
40
|
+
"target_title": "2024年度安全培训考试",
|
|
41
|
+
"dept_user_id": "user456",
|
|
42
|
+
"score": 85,
|
|
43
|
+
"exam_status": "已完成",
|
|
44
|
+
"start_time": 1704038400000,
|
|
45
|
+
"submit_time": 1704042000000,
|
|
46
|
+
"question_count": 20,
|
|
47
|
+
"create_time": 1704038400000
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
### 表格格式
|
|
53
|
+
|
|
54
|
+
```
|
|
55
|
+
target_id | target_title | dept_user_id | score | exam_status | start_time | submit_time | question_count | create_time
|
|
56
|
+
exam_user_123 | 2024年度安全培训考试 | user456 | 85 | 已完成 | 1704038400000 | 1704042000000 | 20 | 1704038400000
|
|
57
|
+
```
|
|
58
|
+
|
|
59
|
+
## 字段说明
|
|
60
|
+
|
|
61
|
+
| 字段 | 类型 | 说明 |
|
|
62
|
+
|------|------|------|
|
|
63
|
+
| `target_id` | string | 考试用户记录ID |
|
|
64
|
+
| `target_title` | string | 考试标题 |
|
|
65
|
+
| `dept_user_id` | string | 部门用户ID |
|
|
66
|
+
| `score` | number | 考试成绩(分数) |
|
|
67
|
+
| `exam_status` | string | 考试状态(如:已完成、进行中、未开始) |
|
|
68
|
+
| `start_time` | number | 开始答题时间(Unix时间戳,毫秒) |
|
|
69
|
+
| `submit_time` | number | 提交时间(Unix时间戳,毫秒) |
|
|
70
|
+
| `question_count` | number | 题目总数 |
|
|
71
|
+
| `create_time` | number | 记录创建时间(Unix时间戳,毫秒) |
|
|
72
|
+
|
|
73
|
+
## 使用示例
|
|
74
|
+
|
|
75
|
+
### 示例1: 查询单个用户成绩
|
|
76
|
+
|
|
77
|
+
```bash
|
|
78
|
+
soke-cli exam +get-exam-user \
|
|
79
|
+
--exam-id exam123 \
|
|
80
|
+
--dept-user-id user456
|
|
81
|
+
```
|
|
82
|
+
|
|
83
|
+
### 示例2: 以表格格式输出
|
|
84
|
+
|
|
85
|
+
```bash
|
|
86
|
+
soke-cli exam +get-exam-user \
|
|
87
|
+
--exam-id exam123 \
|
|
88
|
+
--dept-user-id user456 \
|
|
89
|
+
--format table
|
|
90
|
+
```
|
|
91
|
+
|
|
92
|
+
## 常见场景
|
|
93
|
+
|
|
94
|
+
### 场景1: 用户询问自己的成绩
|
|
95
|
+
|
|
96
|
+
**用户输入**: "我的考试成绩是多少?"
|
|
97
|
+
|
|
98
|
+
**处理步骤**:
|
|
99
|
+
1. 获取当前用户的 `dept_user_id`(通过 `soke-cli api GET /users/me`)
|
|
100
|
+
2. 确认考试ID(可能需要先列出考试)
|
|
101
|
+
3. 执行查询命令
|
|
102
|
+
|
|
103
|
+
```bash
|
|
104
|
+
# 步骤1: 获取当前用户信息
|
|
105
|
+
soke-cli api GET /users/me
|
|
106
|
+
|
|
107
|
+
# 步骤2: 查询成绩
|
|
108
|
+
soke-cli exam +get-exam-user \
|
|
109
|
+
--exam-id exam123 \
|
|
110
|
+
--dept-user-id <从步骤1获取的user_id>
|
|
111
|
+
```
|
|
112
|
+
|
|
113
|
+
### 场景2: 管理员查询员工成绩
|
|
114
|
+
|
|
115
|
+
**用户输入**: "查询张三的考试成绩"
|
|
116
|
+
|
|
117
|
+
**处理步骤**:
|
|
118
|
+
1. 通过姓名查询用户ID(使用 `soke-cli contact +search-user`)
|
|
119
|
+
2. 确认考试ID
|
|
120
|
+
3. 执行查询命令
|
|
121
|
+
|
|
122
|
+
```bash
|
|
123
|
+
# 步骤1: 查询用户ID
|
|
124
|
+
soke-cli contact +search-user --name "张三"
|
|
125
|
+
|
|
126
|
+
# 步骤2: 查询成绩
|
|
127
|
+
soke-cli exam +get-exam-user \
|
|
128
|
+
--exam-id exam123 \
|
|
129
|
+
--dept-user-id <从步骤1获取的dept_user_id>
|
|
130
|
+
```
|
|
131
|
+
|
|
132
|
+
### 场景3: 批量查询多个用户成绩
|
|
133
|
+
|
|
134
|
+
**用户输入**: "查询所有人的考试成绩"
|
|
135
|
+
|
|
136
|
+
**处理步骤**:
|
|
137
|
+
使用 `+list-exam-users` 更合适,可以一次获取所有用户的成绩列表。
|
|
138
|
+
|
|
139
|
+
```bash
|
|
140
|
+
soke-cli exam +list-exam-users --exam-id exam123
|
|
141
|
+
```
|
|
142
|
+
|
|
143
|
+
## 权限要求
|
|
144
|
+
|
|
145
|
+
- **所需权限**: `exam:examUser:readonly`
|
|
146
|
+
- **认证方式**: 需要先执行 `soke-cli auth login` 完成用户认证
|
|
147
|
+
|
|
148
|
+
## 错误处理
|
|
149
|
+
|
|
150
|
+
### 错误1: 考试不存在
|
|
151
|
+
|
|
152
|
+
```json
|
|
153
|
+
{
|
|
154
|
+
"code": 404,
|
|
155
|
+
"msg": "考试不存在"
|
|
156
|
+
}
|
|
157
|
+
```
|
|
158
|
+
|
|
159
|
+
**解决方案**: 检查 `exam-id` 是否正确
|
|
160
|
+
|
|
161
|
+
### 错误2: 用户未参加考试
|
|
162
|
+
|
|
163
|
+
```json
|
|
164
|
+
{
|
|
165
|
+
"code": 404,
|
|
166
|
+
"msg": "用户未参加该考试"
|
|
167
|
+
}
|
|
168
|
+
```
|
|
169
|
+
|
|
170
|
+
**解决方案**: 确认用户是否已参加该考试
|
|
171
|
+
|
|
172
|
+
### 错误3: 权限不足
|
|
173
|
+
|
|
174
|
+
```json
|
|
175
|
+
{
|
|
176
|
+
"code": 403,
|
|
177
|
+
"msg": "权限不足"
|
|
178
|
+
}
|
|
179
|
+
```
|
|
180
|
+
|
|
181
|
+
**解决方案**:
|
|
182
|
+
1. 确认已执行 `soke-cli auth login`
|
|
183
|
+
2. 联系管理员开通 `exam:examUser:readonly` 权限
|
|
184
|
+
|
|
185
|
+
### 错误4: 参数缺失
|
|
186
|
+
|
|
187
|
+
```bash
|
|
188
|
+
Error: required flag(s) "exam-id", "dept-user-id" not set
|
|
189
|
+
```
|
|
190
|
+
|
|
191
|
+
**解决方案**: 检查是否提供了所有必需参数
|
|
192
|
+
|
|
193
|
+
## API详情
|
|
194
|
+
|
|
195
|
+
- **HTTP方法**: GET
|
|
196
|
+
- **API路径**: `/exam/user/info`
|
|
197
|
+
- **请求参数**:
|
|
198
|
+
- `exam_id`: 考试ID
|
|
199
|
+
- `dept_user_id`: 部门用户ID
|
|
200
|
+
|
|
201
|
+
## 相关命令
|
|
202
|
+
|
|
203
|
+
- `+list-exam-users`: 列出考试用户成绩列表
|
|
204
|
+
- `+list-exams`: 列出考试列表
|
|
205
|
+
- `soke-cli contact +search-user`: 查询用户信息
|
|
206
|
+
|
|
207
|
+
## 注意事项
|
|
208
|
+
|
|
209
|
+
1. **时间戳格式**: 所有时间字段都是Unix时间戳(毫秒),不是秒
|
|
210
|
+
2. **用户ID**: 必须使用 `dept_user_id`,不能使用用户名或其他标识
|
|
211
|
+
3. **考试状态**: 状态值可能因系统配置而异,常见值包括:已完成、进行中、未开始、已过期
|
|
212
|
+
4. **成绩计算**: 成绩字段可能为null(如果考试未完成或未提交)
|