李勇

修改答题卡接口数据和接口传参类型

此 diff 太大无法显示。
... ... @@ -32,7 +32,7 @@ import QuestionApe from 'apes/QuestionApe';
import UTF8 from 'utf-8';
let loger = Loger.getLoger('McuClient');
let _sdkInfo = {"version": "v1.31.11.20170612", "author": "www.3mang.com"};
let _sdkInfo = {"version": "v1.31.8.20170613", "author": "www.3mang.com"};
//APE
let _sass;
... ... @@ -138,6 +138,7 @@ export default class MessageEntrance extends Emiter {
_doc_ape.on(DocApe.DOC_JOIN_CHANNEL_SUCCESS, this.docJoinChannelSuccess.bind(this));
_questionApe=new QuestionApe();
_questionApe.on('*', (type, data) => this._emit(type, data));
//公开外部调用的方法
//class
... ...
... ... @@ -535,10 +535,10 @@ class Sass extends Emiter {
let question={};
question.questionId=ret.id;
question.type=type;
question.content=content;
question.content=_param.content||[];
question.timeLimit=timeLimit;
question.correct=correct;
question.options=options;
question.correct=_param.correct||[];
question.options=_param.options||[];
loger.log('创建答题数据->完成->',question);
this._emit(Sass.SASS_CREAT_QUESTION_SUCCESS, question);
} else {
... ...
... ... @@ -97,6 +97,10 @@ class QuestionApe extends Ape {
//删除
tableDelete(_param) {
if(!_param){
loger.warn('答题卡->删除数据失败->参数错误',_param);
return;
}
let tableDeleteItemPdu = new pdu['RCRegistryTableDeleteItemPdu'];
tableDeleteItemPdu.type = pdu.RCPDU_REG_TABLE_DELETE_PDU;//
tableDeleteItemPdu.itemIdx = parseInt(_param.itemIdx);//这里需要设置要删除的数据的itemIdx,每条数据的这个id都不一样
... ... @@ -114,7 +118,7 @@ class QuestionApe extends Ape {
let adapterPdu = new pdu['RCAdapterPdu'];
adapterPdu.type = pdu.RCPDU_REG_ADAPTER;
adapterPdu.item.push(adapterItemPdu);
loger.log("答题卡删除数据->" + tableDeleteItemPdu.itemIdx);
loger.log("发送答题卡删除数据->" + tableDeleteItemPdu.itemIdx);
this.sendUniform(adapterPdu, true);
}
... ... @@ -135,11 +139,22 @@ class QuestionApe extends Ape {
loger.log("更新答题数据");
if(GlobalConfig.isHost){
//老师,只统计数据,不答题
this.getQuestionResult(model);
//先判断时间是否超时
let timeDistance=EngineUtils.creatTimestamp()-model.timestamp;
loger.log("答题卡显示倒计时->timeDistance:"+timeDistance);
timeDistance=model.timeLimit-timeDistance;
if(timeDistance<=0){
//答题卡时间到,需要停止
loger.log("答题卡时间到->需要停止");
this.stopQuestion(model);
}else {
this.getQuestionResult(model);
}
}else if(GlobalConfig.isNormal) {
//学生->如果自己已经提交过答案就不需要再显示
if(model.totalUserList.indexOf(GlobalConfig.userId)>=0){
loger.log("已经提交过答案->userId:"+GlobalConfig.userId);
loger.log("已经提交过答案-不需要显示答题卡->userId:"+GlobalConfig.userId);
}else {
//显示答题卡数据
this._emit(MessageTypes.START_ANSWER_QUESTION,model);
... ... @@ -175,7 +190,7 @@ class QuestionApe extends Ape {
case 2:
case 3:
//停止答题
loger.log("停止答题");
loger.log("停止答题->",itemDataInfo);
this._emit(MessageTypes.STOP_ANSWER_QUESTION,itemDataInfo);
break;
case 4:
... ... @@ -218,10 +233,10 @@ class QuestionApe extends Ape {
modelPdu.questionId= parseInt(_param.questionId)||0;
modelPdu.timeLimit= parseInt(_param.timeLimit)||1;//有效时间
modelPdu.timestamp= parseInt(_param.timestamp)||EngineUtils.creatTimestamp();//创建的时间
modelPdu.content= _param.content||"";//题干
modelPdu.options= _param.options||"";//选项列表
modelPdu.answer= _param.answer||"";//用户选择的选项索引
modelPdu.correct= _param.correct||"";//正确答案索引
modelPdu.content= _param.content||[];//题干
modelPdu.options= _param.options||[];//选项列表
modelPdu.answer= _param.answer||[];//用户选择的选项索引
modelPdu.correct= _param.correct||[];//正确答案索引
modelPdu.totalUserList=_param.totalUserList||[];//参加的人员userId列表
loger.log("答题卡->packPdu",modelPdu);
return modelPdu;
... ... @@ -294,18 +309,26 @@ class QuestionApe extends Ape {
loger.warn("保存答题答案->参数错误",_param);
return;
}
if(this._sass){
if(this.questionList[_param.itemIdx]){
loger.log("保存答题答案->",_param);
let paramObj=_param;
paramObj.classId=GlobalConfig.classId;
paramObj.userId = GlobalConfig.userId;
paramObj.userName = GlobalConfig.userName;
this._sass.sendAnswer(paramObj);
//检查是否已经提交过答案
let questionItem=this.questionList[_param.itemIdx];
if(questionItem){
if(questionItem.totalUserList.indexOf(GlobalConfig.userId)>=0){
loger.warn("保存答题答案->已经提交过答案不能再次提交");
return;
}else {
loger.log("保存答题答案->数据不存在",_param);
console.log("questionList",this.questionList);
if(this._sass){
if(this.questionList[_param.itemIdx]){
loger.log("保存答题答案->",_param);
let paramObj=_param;
paramObj.classId=GlobalConfig.classId;
paramObj.userId = GlobalConfig.userId;
paramObj.userName = GlobalConfig.userName;
this._sass.sendAnswer(paramObj);
}else {
loger.log("保存答题答案->数据不存在",_param);
console.log("questionList",this.questionList);
}
}
}
}
}
... ... @@ -315,7 +338,7 @@ class QuestionApe extends Ape {
return;
}
loger.log("停止答题->",_param);
this.tableDelete({itemIdx:ApeConsts.CONFERENCE_OBJ_QUESTION_ID})
this.tableDelete(_param);
}
//Sass 事件监听
_sassCreatQuestionSuccessHandler(_data){
... ... @@ -380,7 +403,7 @@ class QuestionApe extends Ape {
resultObj.answers=[];
//根据选项的个数,把选项分开
let options=JSON.parse(resultObj.options);
let options=resultObj.options;
for(let i=0;i<options.length;i++){
let optionObj=new Object();
optionObj.percent=0;//百分比 选择的人数和总参与人数的比
... ...
... ... @@ -1007,9 +1007,9 @@ message RCQuestionDataModelPdu {
optional uint32 timeLimit=6;//有效时间
optional string content=7;//题干
optional uint32 timestamp=8;//创建的时间
optional string options=9;//选项列表
optional string answer=10;//用户选择的答案选项索引
optional string correct=11;//正确答案索引
repeated string options=9;//选项列表
repeated uint32 answer=10;//用户选择的答案选项索引
repeated uint32 correct=11;//正确答案索引
repeated string totalUserList=12;//参与的人员userId列表
}
//end
... ...