WEB版实验资源对接成绩操作流程

说明: 此方法为了web版实验资源能够快速对接集成到平台,特提供js方法直接调用即可将成绩对接到平台,js里已经完成了获取用户信息及实验记录ID,只需将实验产生的成绩或实验报告json作为js方法参数即可,js会调用平台相应接口

如还需获取用户信息,可使用此文最后提供的获取用户信息的js获取

注意:测试请按照<测试平台使用说明>进入测试平台集成实验,然后在学生做实验页面测试,否则调用不会成功.

json数据校验

              http://vr.owvlab.com/checkStep/oldlist
          

准备

能访问外网的情况下引入outer.js,直接把下面代码粘贴到index.html的head头中

<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>

markdown

只有内网的情况下需要先下载jquery.min.jsouter.js文件,放到与index.html同一级目录下,再把下面代码粘贴到index.html的head头中

<script src="./jquery.min.js"></script>
<script src="./outer.js"></script>

markdown

一、对接成绩方法

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查看日志:

markdown

对接成功!

二、对接实验报告(老平台)

1、在需要提交成绩的地方调用SendReportToWeb方法传入参数json格式报告字符串

把以下C#方法放到工程下

/// <summary>
/// webgl提交实验报告
/// </summary>
/// <param name="jsonReslut">json格式报告字符串</param>
public  void SendReportToWeb(string jsonReslut)
{
    Application.ExternalCall("ReportEdit", jsonReslut);
}

2.调用接口完成后浏览器 F12查看日志:

markdown

对接成功!

三、对接实验步骤

(1)接口调用格式

(2)登录数据格式

(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不能为空
其他 系统错误

2.使用范例

(1)提交平台参数范例

            

(2)、在需要提交实验步骤的地方调用SendReportToWeb方法传入参数json格式报告字符串

把以下C#方法放到工程下

		
		/// <summary>
		/// webgl提交实验报告
		/// </summary>
		/// <param name="jsonReslut">json格式报告字符串</param>
		public  void SendReportToWeb(string jsonReslut)
		{
			Application.ExternalCall("UploadSteps", jsonReslut);
		}
		
	

四、html资源调用 js方法

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版无法调用js

对于web版实验,平台会在web实验链接后面拼接一个token参数,使用代码获取到链接后面的token,根据token参数可获取用户信息和实验记录唯一标识符(eid)。

markdown

    //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; //返回参数值
    }


3.使用token获取用户信息及实验记录ID:

url: Host/outer/getMessageByToken

请求参数

参数名 数据类型类型 数值
param string {"token":"从平台复制的token"} (base64加密)

postman示例:
markdown

返回参数(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"

markdown

实验报告对接接口url : domainUrl+"/virexp"+"/outer/report/!reportEdit"

markdown

实验步骤对接接口url : domainUrl+"/virexp"+"/outer/report/!uploadSteps"

markdown

详情参考2.0版本http://rp.owvlab.net/virexp/s/outer/outer.html数据对接说明

对接成功!