jiangtengfei

add other .md files

  1 +#发推送接口
  2 +
  3 +接口地址:/teaching/callback/push_notification
  4 +
  5 +请求方式:GET
  6 +
  7 +Request Params:
  8 +
  9 +|参数名 |是否必须 |说明 |参数类型 |
  10 +|--------------|-----------|--------|-----------------|
  11 +|work_order_id |是 |工单id |Long |
  12 +|notification_type|是 |推送类型 |“ABSENT” or "START_CLASS" 不区分大小写|
  13 +
  14 +
  15 +# 发推送接口 - 通用
  16 +
  17 +接口地址:/teaching/callback/push
  18 +
  19 +请求方式:POST
  20 +
  21 +RequestBody:
  22 +
  23 +```
  24 +[
  25 + {
  26 + "user_id":12938,
  27 + "push_title":"testtt",
  28 + "data":{
  29 + "type":"GRABORDER",
  30 + "count":123
  31 + }
  32 + },
  33 + {
  34 + "user_id":12938,
  35 + "push_title":"testtt",
  36 + "data":{
  37 + "type":"GRABORDER",
  38 + "count":123
  39 + }
  40 + }
  41 +]
  42 +```
  43 +
  44 +返回值:
  45 +
  46 +```
  47 +{
  48 + "data": {},
  49 + "returnCode": 200,
  50 + "returnMsg": "success"
  51 +}
  52 +
  53 +```
  54 +
  55 +
  56 +
  57 +#查询工单对应的腾讯云错误码和信息
  58 +
  59 +接口地址:/teaching/callback/qcloud/error_info
  60 +
  61 +请求方式:GET
  62 +
  63 +请求参数: work_order_id
  64 +
  65 +返回值:
  66 +
  67 +```
  68 +[
  69 + {
  70 + "work_order_id": 345,
  71 + "error_code":"10002",
  72 + "error_msg":"群组不存在,或者曾经存在过,但是目前已经被解散。"
  73 + },
  74 + {
  75 + "work_order_id": 3453,
  76 + "error_code":"10001",
  77 + "error_msg":"群组ID非法,请检查群组ID是否填写正确。"
  78 + }
  79 +
  80 +]
  81 +```
  82 +
  83 +
  84 +# 发短信接口 - 通用
  85 +
  86 +接口地址: /teaching/sms/send
  87 +
  88 +请求方式: POST
  89 +
  90 +请求参数:
  91 +
  92 +|参数名 |是否必须 |说明 |参数类型 |
  93 +|--------------|-----------|--------|-----------------|
  94 +|user_id |是 |用户id |Long |
  95 +|template_code |是 |短信模板id|String |
  96 +|data |是 |短信模板中的参数json|String |
  97 +
  98 +返回值:
  99 +
  100 +status: 200
  101 +
  102 +
  103 +# 群发通知接口 - 通用
  104 +
  105 +接口地址: /teaching/callback/push/group
  106 +
  107 +请求方式: POST
  108 +
  109 +request body :
  110 +
  111 +```
  112 +{
  113 + "alias": [
  114 + "12938",
  115 + "12939"
  116 + ],
  117 + "push_title": "aaaa",
  118 + "data": {
  119 + "type":"T"
  120 + }
  121 +}
  122 +
  123 +```
  124 +
  125 +返回值:
  126 +
  127 +```
  128 +{
  129 + "data": "ok",
  130 + "returnCode": 200,
  131 + "returnMsg": "success"
  132 +}
  133 +```
  134 +
  135 +
  136 +
  137 +# 根据工单id获取群成员资料
  138 +
  139 +接口地址: /teaching/group/member
  140 +
  141 +请求方式: POST
  142 +
  143 +request body:
  144 +
  145 +```
  146 +[123,456,789,57073]
  147 +```
  148 +
  149 +response body:
  150 +
  151 +```
  152 +[
  153 + {
  154 + "groupId": "@TGS#2MSRWMJEG",
  155 + "workOrderId": 123,
  156 + "memberAccount": [
  157 + "202cb962ac59075b964b07152d234b70"
  158 + ]
  159 + },
  160 + {
  161 + "groupId": "@TGS#2RSE7WJEH",
  162 + "workOrderId": 57073,
  163 + "memberAccount": [
  164 + "b0d3549dd95ee0e99f402b37778d1a88",
  165 + "2d7d9ba8bc62e62b491208e7bb1e397c"
  166 + ]
  167 + }
  168 +]
  169 +```
  1 +* [返回远程教学之流程消息](远程教学之流程消息)
  2 +* [返回在线授课相关文档](在线授课相关文档)
  3 +
  4 +### 接口定义
  5 +
  6 +#### 名词定义
  7 +
  8 +* 在线授课必备消息
  9 +
  10 +在线授课必须的公用群名、群Id(授课指令用)以及聊天室Room的Id(音视频聊天用)
  11 +
  12 +* 听课学生基本信息
  13 +Id、头像、昵称、目标、学习统计(词汇量、阅读量、听力时长、口语时长)
  14 +
  15 +* 授课教师基本信息
  16 +Id,头像,昵称
  17 +
  18 +
  19 +### 获取用户访问Qcloud的identifier和签名
  20 +
  21 +/user/me接口中增加返回值:
  22 +
  23 +```
  24 +...
  25 +"qcloud": {
  26 + "identifier": "5de6f7a36339ef5bedc3dc8741a1e222",
  27 + "sign": "eJxFkN1ugkAQRt*F2zZ12R8Xe4doG9BGjZLaK4K7g6yUFWElYNN3LxJMb8*ZLzPf-Fi75fYlLgolo9hEpJTWq4Ws5x5DU6gSojgxUHbYZoxhhB62hrJSZ90JjGxmY4LQv1QStFGJ6oNMwjjhMRkTMoGEHUAKIoXDqR3bgDEeMpU6dsMf8y-P38xWp0nwbXahDg*e66U34be6qjd1VmdN6gZzAQ5-aszeXI9*6i7eQK3VjE61TZcB359QkKD3URhePqdbslq3eSBu-LLw89Fjmcyivva9GL1fTgljgzQqh54zh3DGKB94LMT5qk1k2gL6P-3*AfZQX20_"
  28 + },
  29 +...
  30 +```
  31 +
  32 +# 更新鱼卡状态说明
  33 +
  34 +| 鱼卡状态 | 状态说明 |是否需要客户端参与 |备注 |
  35 +|--------------|---------------------------|------------------|--------|
  36 +|创建 |鱼卡创建初始状态 |N | |
  37 +|分配课程 |分配课程 |N | |
  38 +|分配教师 |匹配教师 |N | |
  39 +|等待学生上课应答 |老师发起上课邀请后 |N | |
  40 +|~~就绪~~ |~~双方进入房间,学生课程已下载~~ |Y | |
  41 +|正在上课 |老师点击开始上课 |Y | |
  42 +|完成 |下课(1.点击下课。2.强制下课) |Y | 下课前5分钟内离开,服务器自己更新状态|
  43 +|教师旷课 |上课5分钟后老师没有发起邀请 |N | |
  44 +|学生旷课 |上课5分钟后学生没有接受邀请 |N | |
  45 +|学生早退 |学生中途离开5分钟以上 |Y |客户端老师端上报信息|
  46 +|教师早退 |教师中途离开5分钟以上 |Y |客户端学生端上报信息|
  47 +|系统异常 |异常 |Y |客户端双方上报信息|
  48 +
  49 +# 0.统一状态码
  50 +> * 设备未绑定成功 错误码:101 描述:设备未绑定成功
  51 +> * deprecate ~~工单校验失败 错误码:102 描述:工单校验失败~~
  52 +> * 进入房间回调失败 错误码: 103 描述: 进入房间回调失败
  53 +> * 工单不存在 错误码: 105 描述: 工单不存在
  54 +
  55 +# 1.显示学生、课程等信息
  56 +
  57 +> 说明:授课客户端需要获取**在线授课必备消息**和**听课学生基本信息**
  58 +>
  59 +> 显示学生信息,课程信息,饼图,柱状图
  60 +>
  61 +
  62 +接口地址:/teaching/student/info
  63 +
  64 +请求方式:GET
  65 +
  66 +Request params:
  67 +
  68 +
  69 +|参数名 |是否必须 |说明 |参数类型 |
  70 +|--------------|-----------|--------|-------------------|
  71 +|work_order_id |是 |工单id |Long |
  72 +
  73 +
  74 +**腾讯云的用户identifier 为盒子鱼用户id的小写md5值**
  75 +
  76 +
  77 +Response:
  78 +
  79 +```
  80 +{
  81 + "data": {
  82 + "student_detail": {
  83 + "student_info": {
  84 + "real_name": "Mmm",
  85 + "figure_url": "http://avatars.boxfish.cn/user/12938/figure/1423708364.jpg",
  86 + "level": 6,
  87 + "level_name": "滔滔6级"
  88 + },
  89 + "lesson_info": {
  90 + "id": "L3NoYXJlL3N2bi_nvo7lm73or63mlocyLTEvMDAxLkV2ZW5pbmcgYXQgSG9tZS54bHN4",
  91 + "name": "Evening at Home",
  92 + "lastModified": 1448379647022,
  93 + "type": "全面提高",
  94 + "difficulty": "1.5",
  95 + "cover": "73dcb39a42bbfd6b3cc83b2569cf4bce"
  96 + },
  97 + "achievement_info": {
  98 + "read_word_count": "0词",
  99 + "listening_time": "0秒",
  100 + "record_time": "0秒",
  101 + "word_count": "3词"
  102 + },
  103 + "course_type_info": {
  104 + "course_type_ratio": [
  105 + {
  106 + "course_type": "Conversation",
  107 + "ratio": 0.1
  108 + },
  109 + {
  110 + "course_type": "Passage",
  111 + "ratio": 0.05
  112 + },
  113 + {
  114 + "course_type": "Function",
  115 + "ratio": 0.15
  116 + },
  117 + {
  118 + "course_type": "Phonics",
  119 + "ratio": 0.1
  120 + },
  121 + {
  122 + "course_type": "Examination",
  123 + "ratio": 0.1
  124 + },
  125 + {
  126 + "course_type": "Words",
  127 + "ratio": 0.1
  128 + },
  129 + {
  130 + "course_type": "Grammar",
  131 + "ratio": 0.2
  132 + },
  133 + {
  134 + "course_type": "Textbook",
  135 + "ratio": 0.1
  136 + },
  137 + {
  138 + "course_type": "Music",
  139 + "ratio": 0.1
  140 + }
  141 + ],
  142 + "course_count": 324
  143 + }
  144 + },
  145 + "group_room_info": {
  146 + "group_name": "BOXFiSH Online Teaching Group",
  147 + "group_id": "@TGS#2SMUBTAER",
  148 + "chat_room_id": 359755386104019
  149 + }
  150 + },
  151 + "returnCode": 200,
  152 + "returnMsg": "success"
  153 +}
  154 +```
  155 +
  156 +# 2.发推送 - 通知学生开始上课
  157 +> 说明:通知某次课程相应的学生准备上课,通过发送推送信息的方式通知给学生。推送的通知中应该包括**在线授课必备消息**和**授课教师的基本信息**
  158 +>
  159 +>
  160 +
  161 +接口地址:/teaching/student/push
  162 +
  163 +请求方式:GET
  164 +
  165 +Request params:
  166 +
  167 +|参数名 |是否必须 |说明 |参数类型 |
  168 +|----------------|----------|--------|------------|
  169 +|work_order_id |是 |工单id | Long |
  170 +
  171 +
  172 +推送json:
  173 +
  174 +```json
  175 +{
  176 + "type":"ONCLASS",
  177 + "figure_url": "http://wx.qlogo.cn/mmopen/PiajxSqBRaEJrztQnGAk8X1G2A0AfjvPRBdgLFOjxsM9AoicoOUrH3Yia3qY9uic5ibQO6wMkJ6bPUx15IN4Vrxv8CA/0",
  178 + "teacher_name": "喜洋洋老师",
  179 + "teacher_id": "5",
  180 + "work_order_id": "34",
  181 + "start_time": "2016-05-18 09:00:00",
  182 + "end_time": "2016-05-18 10:00:00",
  183 + "group_name": "boxfish-class001",
  184 + "group_id": "@TGS#2AA4BQAEN",
  185 + "chat_room_id": "100001"
  186 +}
  187 +```
  188 +
  189 +Response:
  190 +
  191 +1.工单有效
  192 +
  193 +```
  194 +{
  195 + "data": {
  196 + "msg_id": 3385486500,
  197 + "sendno": 1380240050,
  198 + "originalContent": "{\"sendno\":\"1380240050\",\"msg_id\":\"3385486500\"}",
  199 + "resultOK": true,
  200 + "rateLimitQuota": 600,
  201 + "rateLimitRemaining": 599,
  202 + "rateLimitReset": 60
  203 + },
  204 + "returnCode": 200,
  205 + "returnMsg": "success"
  206 +}
  207 +```
  208 +
  209 +2.工单无效
  210 +
  211 +(1) 未到上课时间
  212 +
  213 +```
  214 +{
  215 + "data": {},
  216 + "returnCode": 10,
  217 + "returnMsg": "未到上课时间"
  218 +}
  219 +
  220 +```
  221 +(2) 迟到未在上课时间
  222 +
  223 +```
  224 +{
  225 + "data": {},
  226 + "returnCode": 20,
  227 + "returnMsg": "迟到未在上课时间"
  228 +}
  229 +
  230 +```
  231 +
  232 +(3) 不存在对应的工单
  233 +
  234 +```
  235 +{
  236 + "data": {},
  237 + "returnCode": 1,
  238 + "returnMsg": "不存在对应的工单"
  239 +}
  240 +
  241 +```
  242 +
  243 +# 3.课程正常结束接口
  244 +接口地址:/teaching/student/finish
  245 +
  246 +请求方式: POST
  247 +
  248 +Request params:
  249 +
  250 +|参数名 |是否必须 |说明 |参数类型 |
  251 +|--------------|----------|--------|----------|
  252 +|work_order_id |是 |工单id |Long |
  253 +
  254 +
  255 +返回值:
  256 +
  257 +```
  258 +{
  259 + "data": {},
  260 + "returnCode": 200,
  261 + "returnMsg": "success"
  262 +}
  263 +```
  264 +
  265 +
  266 +
  267 +# 4.房间进入状态回调接口
  268 +
  269 +> 说明:老师进入房间、学生进入房间各回调一次
  270 +
  271 +接口地址:/teaching/callback/chat_room
  272 +
  273 +请求方式:POST
  274 +
  275 +Request body:
  276 +
  277 +```
  278 +{
  279 + "userId":12938,
  280 + "type":"TEACHER",
  281 + "workOrderId": 34,
  282 + "chatRoomId":12345
  283 +}
  284 +```
  285 +
  286 +Response
  287 +
  288 +```
  289 +
  290 +{
  291 + "data": {},
  292 + "returnCode": 200,
  293 + "returnMsg": "success"
  294 +}
  295 +```
  296 +
  297 +# 5.客户端断线重连获取课程状态
  298 +> 说明:
  299 +
  300 +接口地址:/teaching/course/status
  301 +
  302 +请求方式:GET
  303 +
  304 +Request params:
  305 +
  306 +
  307 +|参数名 |是否必须 |说明 |参数类型 |
  308 +|--------------|----------|--------|----------|
  309 +|work_order_id |是 |工单id |Long |
  310 +
  311 +Response:
  312 +
  313 +```
  314 +{
  315 + "data": {
  316 + "recover": true
  317 + },
  318 + "returnCode": 200,
  319 + "returnMsg": "success"
  320 +}
  321 +```
  322 +
  323 +# 6.学生端未收到上课推送主动发起上课接口
  324 +
  325 +> 说明:
  326 +
  327 +接口地址:/teaching/student/enter_class
  328 +
  329 +请求方式:GET
  330 +
  331 +Request params:
  332 +
  333 +|参数名 |是否必须 |说明 |参数类型 |
  334 +|--------------|----------|--------|----------|
  335 +|work_order_id |是 |工单id |Long |
  336 +
  337 +Response:
  338 +
  339 +1.工单有效
  340 +
  341 +```
  342 +{
  343 + "data": {
  344 + "group_id": "@TGS#2SMUBTAER",
  345 + "chat_room_id": 359755386104019
  346 + },
  347 + "returnCode": 200,
  348 + "returnMsg": "success"
  349 +}
  350 +```
  351 +
  352 +2.工单无效
  353 +
  354 +(1) 未到上课时间
  355 +
  356 +```
  357 +{
  358 + "data": {},
  359 + "returnCode": 10,
  360 + "returnMsg": "未到上课时间"
  361 +}
  362 +
  363 +```
  364 +(2) 迟到未在上课时间
  365 +
  366 +```
  367 +{
  368 + "data": {},
  369 + "returnCode": 20,
  370 + "returnMsg": "迟到未在上课时间"
  371 +}
  372 +
  373 +```
  374 +
  375 +(3) 不存在对应的工单
  376 +
  377 +```
  378 +{
  379 + "data": {},
  380 + "returnCode": 1,
  381 + "returnMsg": "不存在对应的工单"
  382 +}
  383 +
  384 +```
  385 +
  386 +# 7.获取课程所有资源列表
  387 +
  388 +> 说明: 学生端调用,从学生端的课程列表可以获取到lesson_id
  389 +>
  390 +
  391 +接口地址:/teaching/resource/lesson
  392 +
  393 +请求方式:GET
  394 +
  395 +Request params:
  396 +
  397 +|参数名 |是否必须 |说明 |参数类型 |
  398 +|--------------|-----------|--------|-----------|
  399 +|lesson_id |是 |课程id |String |
  400 +
  401 +Response :
  402 +
  403 +```
  404 +{
  405 + "data": [
  406 + "0a29673921a26ffb5e5ee81ffed45a9e",
  407 + "0c8a151d1b5eb95bd435e2e1af23ea15",
  408 + "2156d9b3f571381b3eca40d6e9d6e1cc"
  409 + "23dc1178bf9b5f813911f4e798949233",
  410 + ...
  411 + "e77a984dc4cbf889c081f8a53a36f859"
  412 + ],
  413 + "returnCode": 200,
  414 + "returnMsg": "success"
  415 +}
  416 +```
  417 +
  418 +# 8 .旷课回调接口
  419 +>在Request body的参数中,`userId`是用户自己的id, `type`是用户类型, `TEACHER` 或者`STUDENT`
  420 +>
  421 +
  422 +接口地址:/teaching/callback/absent
  423 +
  424 +请求方式:POST
  425 +
  426 +Request body:
  427 +
  428 +```
  429 +{
  430 + "userId":12938,
  431 + "type":"STUDENT",
  432 + "workOrderId":3979
  433 +}
  434 +```
  435 +
  436 +Response :
  437 +
  438 +```
  439 +{
  440 + "data": {},
  441 + "returnCode": 200,
  442 + "returnMsg": "success"
  443 +}
  444 +```
  445 +
  446 +
  447 +# 9.进入课堂回调接口
  448 +> 老师点击`开始上课`后调用该接口
  449 +
  450 +接口地址:/teaching/callback/start_class
  451 +
  452 +请求方式:POST
  453 +
  454 +Request params:
  455 +
  456 +|参数名 |是否必须 |说明 |参数类型 |
  457 +|--------------|----------|--------|----------|
  458 +|work_order_id |是 |工单id |Long |
  459 +
  460 +Response:
  461 +
  462 +```
  463 +{
  464 + "data": {
  465 +
  466 + },
  467 + "returnCode": 200,
  468 + "returnMsg": "success"
  469 +}
  470 +```
  471 +
  472 +
  473 +# 10.取消推送接口
  474 +> 老师在发送推送页面点击`取消`按钮调用该接口
  475 +
  476 +接口地址:/teaching/student/cancel_push
  477 +
  478 +请求方式:GET
  479 +
  480 +Request params:
  481 +
  482 +|参数名 |是否必须 |说明 |参数类型 |
  483 +|--------------|----------|--------|----------|
  484 +|work_order_id |是 |工单id |Long |
  485 +
  486 +
  487 +推送 json:
  488 +
  489 +```
  490 +{
  491 + "work_order_id":"12938",
  492 + "type":"CANCEL"
  493 +}
  494 +
  495 +```
  496 +
  497 +Response:
  498 +```
  499 +{
  500 + "data": {
  501 +
  502 + },
  503 + "returnCode": 200,
  504 + "returnMsg": "success"
  505 +}
  506 +```
  1 +
  2 +|学生 |templateCode |
  3 +|-----------------------------------------------------------------------------|---------------|
  4 +|同学,你今天{startTime}的在线课程在{minute}分钟后开始,请提前做好上课准备。 |SMS_15110230 |
  5 +|同学,你明天有{quantity}节在线课程,上课时间{startTime},请提前做好上课准备。 |SMS_15120322 |
  6 +
  7 +
  8 +
  9 +
  10 +|老师 |templateCode |
  11 +|-----------------------------------------------------------------------------|---------------|
  12 +|老师您好,您今天有{quantity}节在线课程,第一节在{startTime}开始,请准时上课。祝愉快。 |SMS_15160346 |
  13 +|老师您好,新增{startTime}课程《{courseName}》,请您准时上课。祝愉快。 |SMS_15085203 |
  14 +|老师您好,您的课程:{startTime}《{courseName}》,由于{cancelReason}已取消。祝愉快。 |SMS_15115267 |
  1 +
  2 +# 状态码
  3 +* 设备未绑定成功 错误码:101 描述:设备未绑定成功
  4 +* deprecate ~~工单校验失败 错误码:102 描述:工单校验失败~~
  5 +* 进入房间回调失败 错误码:103 描述: 进入房间回调失败
  6 +* 旷课回调失败 错误码: 104 描述: 旷课回调失败
  7 +* 工单不存在 错误码: 105 描述: 工单不存在
  1 +# 工单校验文案
  2 +英文文案
  3 +订单不存在: WORK_ORDER_NOT_EXISTS=The lesson's canceled for some reason.
  4 +上课太早:WORK_ORDER_TOO_EARLY=Not the right time for class yet; Please try again later.
  5 +老师旷课:WORK_ORDER_TOO_LATE=You've missed the lesson; It's already over.
  6 +学生旷课:WORK_ORDER_STUDENT_ABSENT=Your student have missed the lesson; It's already over.
  7 +课程已结束:WORK_ORDER_CLASS_OVER=Class is over
  8 +
  9 +中文文案
  10 +订单不存在: WORK_ORDER_NOT_EXISTS=本次课已取消
  11 +上课太早:WORK_ORDER_TOO_EARLY=未到上课时间,请准点上课。
  12 +老师旷课:WORK_ORDER_TOO_LATE=您已旷课,课程结束。
  13 +学生旷课:WORK_ORDER_STUDENT_ABSENT=您的学生已旷课
  14 +课程已结束:WORK_ORDER_CLASS_OVER=课程已结束