说明: 此方法为了web版实验资源能够快速对接集成到平台,特提供js方法直接调用即可将成绩对接到平台,js里已经完成了获取用户信息及实验记录ID,只需将实验产生的成绩或实验报告json作为js方法参数即可,js会调用平台相应接口
如还需获取用户信息,可使用此文最后提供的获取用户信息的js获取
http://vr.owvlab.com/checkStep/oldlist
<script src="http://oss.rainier.com.cn/a_lend/webgl/jquery.min.js"></script> <script src="http://oss.rainier.com.cn/a_lend/webgl/outer.js"></script>
<script src="./jquery.min.js"></script> <script src="./outer.js"></script>
1、在需要提交成绩的地方调用SendScoreToWeb方法传入参数为int数据类型的分数。
把以下C#方法放到工程下
/// <summary>
/// webgl端成绩上传
/// </summary>
/// <param name="score">实验成绩</param>
private void SendScoreToWeb(int score) {
string[] moduleFlag = {"实验成绩"};
string[] questionNumber = {"1"};
string[] questionStem = {"学生实验操作成绩"};
string[] scores = {score.ToString()};
string[] isTrue = {"True"};
Application.ExternalCall("ReciveData", moduleFlag, questionNumber, questionStem, scores, isTrue);
}
2.调用接口完成后浏览器 F12查看日志:
对接成功!
1、在需要提交成绩的地方调用SendReportToWeb方法传入参数json格式报告字符串
把以下C#方法放到工程下
/// <summary>
/// webgl提交实验报告
/// </summary>
/// <param name="jsonReslut">json格式报告字符串</param>
public void SendReportToWeb(string jsonReslut)
{
Application.ExternalCall("ReportEdit", jsonReslut);
}
2.调用接口完成后浏览器 F12查看日志:
对接成功!
(1)接口调用格式
URL:Host/outer/report/!uploadSteps?param=
(2)登录数据格式
同一步骤 开始间时间 小于 结束时间 至少间隔1s
不同步骤 至少间隔1s
title字段不允许重复,再次上传 根据tile字段覆盖原有内容
实验步骤 至少10步 实验时长不小于3分钟
实验步骤得分之和 不得超出100分(百分制)
所有字段不允许为null 没有写 暂无
(3)参数列表
参数名称 | 数据类型及各式定义 | 参数描述 |
---|---|---|
eid | String | 实验资源唯一标识符(EID) |
steps | jsonArrray | 实验步骤详细数据 |
steps 数据 | ||||
---|---|---|---|---|
字段名称 | 数据类型 | 是否必填 | 字段含义 | 要求 |
seq | Strign | 必填 | 实验步骤序号 | 不能为空(必须为整数) |
title | String | 必填 | 步骤名称 | 不能为空,200字以内 不允许重复 |
startTime | String | 必填 | 实验步骤开始时间 | 不能为空 格式(yyyy-MM-dd HH:mm:ss) |
endTime | String | 必填 | 实验步骤结束时间 | 不能为空 格式(yyyy-MM-dd HH:mm:ss) |
expectTime | String | 必填 | 实验步骤合理用时 | 不能为空 |
maxScore | String | 必填 | 实验步骤满分 | 不能为空,0 ~100,百分制(整数) |
score | String | 必填 | 实验步骤得分 | 不能为空,0 ~100,百分制(整数) |
repeatCount | String | 必填 | 实验步骤操作次数 | 不能为空 |
evaluation | String | 必填 | 步骤评价 | 200字以内(没有填写无) |
scoringModel | String | 必填 | 考察点 | 200字以内(没有填写 无) |
remarks | String | 必填 | 备注 | 200字以内(没有填写无) |
(4)接口响应
状态码 | 说明 |
---|---|
000 | 成功 |
101 | json格式错误 |
102 | eid不正确,请使用登陆接口返回的eid! |
103 | json格式存在问题,请检查格式 |
104 | 参数格式不正确 |
105 | steps不能为空 |
105 | steps不能为空 |
其他 | 系统错误 |
(1)提交平台参数范例
{
"eid": "d90e8b9d-6be8-4d1f-981a-d3bd8b7d9cc0",
"steps": [
{
"seq": 1,
"title": "存储器位扩展电路设计",
"startTime": "2021-06-23 17:53:48",
"endTime": "2021-06-23 17:53:50",
"expectTime": 1000,
"maxScore": 5,
"score": 3,
"repeatCount": 0,
"evaluation": "暂无",
"scoringModel": "暂无",
"remarks": "暂无"
},
{
"seq": 2,
"title": "存储器位扩展电路调试",
"startTime": "2021-06-23 17:53:50",
"endTime": "2021-06-23 17:53:52",
"expectTime": 1000,
"maxScore": 5,
"score": 3,
"repeatCount": 0,
"evaluation": "暂无",
"scoringModel": "暂无",
"remarks": "暂无"
}...
]
}
(2)、在需要提交实验步骤的地方调用SendReportToWeb方法传入参数json格式报告字符串
把以下C#方法放到工程下
/// <summary>
/// webgl提交实验报告
/// </summary>
/// <param name="jsonReslut">json格式报告字符串</param>
public void SendReportToWeb(string jsonReslut)
{
Application.ExternalCall("UploadSteps", jsonReslut);
}
1、实验成绩上传
//直接调用即可(第四个为分数) ReciveData([],[],[],[80],[])
2.实验报告调用接口
//report参数为对应实验报告对接文档拼装的json,其中eid可以不加 ReportEdit(report)
3.获取用户信息接口
getUserInfo(); 返回: {eid: "8ae480cd742f6f0001746c9c89681fb8", role: "student", numberId: "xuesheng", name: "学生", className: "无"}
字段说明:
eid:实验记录ID
role:角色
numberId:学号
name:学生姓名
className:班级
对于web版实验,平台会在web实验链接后面拼接一个token参数,使用代码获取到链接后面的token,根据token参数可获取用户信息和实验记录唯一标识符(eid)。
//js获取链接参数:
var token = getUrlParam("token");
//获取参数
function getUrlParam (name) {
var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)"); //构造一个含有目标参数的正则表达式对象
var r = window.location.search.substr(1).match(reg); //匹配目标参数
if (r != null) return unescape(r[2]); return null; //返回参数值
}
url: Host/outer/getMessageByToken
请求参数
参数名 | 数据类型类型 | 数值 |
---|---|---|
param | string | {"token":"从平台复制的token"} (base64加密) |
postman示例:
返回参数(base64加密)
正确返回(base64解码后):
{
"status":"000",
"eId":"8a8091076c28614a016c286748760028",
"userId":"8a808baf66f6f2ac0166f6f6bf2e004c",
"numberId":"3242342",
"name":"张三",
"groupName":"无",
"role":"student"
}
错误信息返回(base64解码后):
{
"status":"909",
"statusMessage":"token失效"
}
返回字段名称 | 数据类型及各式定义 | 字段含义 |
---|---|---|
status | String | 状态码 |
eId | String | 实验记录ID |
userId | String | 学生id |
name | String | 姓名 |
numberId | String | 学生学号 |
groupName | String | 班级 |
role | String | 角色(student/teacher) |
登录完成
接下来就可以使用eid调用接口回传给平台数据
详情参考接口文档
上传成绩接口url : domainUrl+"/virexp"+"/outer/intelligent/!expScoreSave"
实验报告对接接口url : domainUrl+"/virexp"+"/outer/report/!reportEdit"
实验步骤对接接口url : domainUrl+"/virexp"+"/outer/report/!uploadSteps"
详情参考2.0版本http://rp.owvlab.net/virexp/s/outer/outer.html
数据对接说明
对接成功!