李勇

修复答题卡点名模块倒计时换算错误的问题

此 diff 太大无法显示。
... ... @@ -32,7 +32,7 @@ import QuestionApe from 'apes/QuestionApe';
import UTF8 from 'utf-8';
let loger = Loger.getLoger('McuClient');
let _sdkInfo = {"version": "v1.36.4.20170620", "author": "www.3mang.com"};
let _sdkInfo = {"version": "v1.36.7.20170620", "author": "www.3mang.com"};
//APE
let _sass;
... ...
... ... @@ -37,7 +37,7 @@ class EngineUtils{
//生成时间戳毫秒
static creatTimestamp(){
let time = parseInt(new Date().getTime()/1000);//精确到
let time = parseInt(new Date().getTime()/1000);//精确到秒
return time;
}
//生成时间戳 string
... ...
... ... @@ -61,9 +61,16 @@ class QuestionApe extends Ape {
for(let key in this.questionList){
let question=this.questionList[key];
if(question){
let timestamp=parseInt(question.timeLimit-(new Date().getTime()*0.001-question.timestamp-GlobalConfig.serverAndLoacTimeDistanc));
let currentTime=EngineUtils.creatTimestamp()-GlobalConfig.serverAndLoacTimeDistanc;//将当的时间减去服务器时间差
let timestamp=parseInt(question.timeLimit-(currentTime-question.timestamp));
if(timestamp>=0){
loger.log("question->type:"+question.type,"倒计时:"+timestamp);
this._emit(MessageTypes.UPDATE_QUESTION_TIME,{type:question.type,itemIdx:question.itemIdx,timestamp:timestamp});
}else {
this.stopQuestion({itemIdx:question.itemIdx});
}
}
}
if( this.questionTimer&&Object.keys(this.questionList).length<1){
... ... @@ -163,19 +170,19 @@ class QuestionApe extends Ape {
//停止答题
loger.log("更新答题数据");
if(GlobalConfig.isHost){
//老师,只统计数据,不答题
//先判断时间是否超时
let timeDistance=EngineUtils.creatTimestamp()-model.timestamp;
loger.log("答题卡显示倒计时->timeDistance:"+timeDistance);
timeDistance=model.timeLimit-timeDistance;
if(timeDistance<=0){
//答题卡时间到,需要停止
loger.log("答题卡时间到->需要停止");
this.stopQuestion(model);
}else {
////老师,只统计数据,不答题
////先判断时间是否超时
//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);
//}
this.getQuestionResult(model);
}
}else if(GlobalConfig.isNormal) {
//学生->如果自己已经提交过答案就不需要再显示
if(model.totalUserList.indexOf(GlobalConfig.userId)>=0){
... ... @@ -258,7 +265,7 @@ class QuestionApe extends Ape {
modelPdu.type = parseInt(_param.type)||0;
modelPdu.questionId= parseInt(_param.questionId)||0;
modelPdu.timeLimit= parseInt(_param.timeLimit)||1;//有效时间
modelPdu.timestamp= parseInt(_param.timestamp)||EngineUtils.creatTimestamp();//创建的时间
modelPdu.timestamp= parseInt(_param.timestamp)||parseInt(EngineUtils.creatTimestamp()- GlobalConfig.serverAndLoacTimeDistanc);;//创建的时间(秒)
modelPdu.content= _param.content||[];//题干
modelPdu.options= _param.options||[];//选项列表
modelPdu.answer= _param.answer||[];//用户选择的选项索引
... ... @@ -376,8 +383,11 @@ class QuestionApe extends Ape {
_sassCreatQuestionSuccessHandler(_data){
//loger.log("创建答题卡成功",_data);
if(_data){
//获取当前对方系统时间,再减去服务器时间差
let timestamp=parseInt(EngineUtils.creatTimestamp()- GlobalConfig.serverAndLoacTimeDistanc);//创建答题卡的时间(秒)
let questionItem=_data;
questionItem.itemIdx=parseInt(EngineUtils.creatTimestamp()- GlobalConfig.serverAndLoacTimeDistanc);
questionItem.itemIdx=timestamp;
questionItem.timestamp=timestamp;
this.sendUpdaterTable(questionItem);
}
... ...