Commit 1cc6ce4c authored by limingzhe's avatar limingzhe

feat: 学情展示 提供数据

parent 46168354
// import {RankStatisticsManager} from './RankStatistics';
//
// describe('RankStatistics', () => {
// const sm = new RankStatisticsManager();
//
// test('列表中已经含有某用户数据,则更新数据。', () => {
// let testList = [{ uuid: '1', number: 1 }];
// let data = { uuid: '1', number: 2 };
//
// sm.rankDataList = testList;
// sm.addRankDataToList(data);
//
// expect(testList.length).toEqual(1);
// expect(testList[0].uuid).toEqual('1');
// expect(testList[0].number).toEqual(2);
// });
//
// test('列表中没有某用户的数据,则插入新数据。', () => {
// let testList = [{ uuid: '1', number: 1 }];
// let data = { uuid: '2', number: 2 };
//
// sm.rankDataList = testList;
// sm.addRankDataToList(data);
//
// expect(testList.length).toEqual(2);
// });
//
// test('数组中的数据先按照rightNum降序排列,再按照duration升序排列。', () => {
// let testList = [
// { uuid: '1', rightNum: 1, duration: 7 },
// { uuid: '2', rightNum: 1, duration: 5 },
// { uuid: '3', rightNum: 1, duration: 9 },
// { uuid: '4', rightNum: 3, duration: 9 }];
// let data =
// { uuid: '5', rightNum: 2, duration: 7 };
//
// sm.rankDataList = testList;
// sm.addRankDataToList(data);
//
// expect(testList[0].uuid).toEqual('4');
// expect(testList[1].uuid).toEqual('5');
// expect(testList[2].uuid).toEqual('2');
// expect(testList[3].uuid).toEqual('1');
// expect(testList[4].uuid).toEqual('3');
// });
//
// });
export class RankStatisticsManager {
MESSAGE_RANK = 'hw-gameRank';
_rankDataList = [];
// set rankDataList(arr) {
// this._rankDataList = arr;
// }
//
get rankDataList() {
return this._rankDataList;
}
addRankDataToList(data) {
for (let i = 0; i < this._rankDataList.length; ++i) {
if (this._rankDataList[i].uuid == data.uuid) {
this._rankDataList.splice(i, 1);
break;
}
}
this._rankDataList.push(data);
this._rankDataList.sort((a, b) => {
if (a.rightNum === b.rightNum) {
return a.duration - b.duration;
} else {
return b.rightNum - a.rightNum;
}
});
}
getOneRankData(uuid) {
console.log('getOneRankData uuid: ', uuid );
console.log('this._rankDataList: ', this._rankDataList );
for (let i = 0; i < this._rankDataList.length; i++) {
console.log('---- uuid: ', this._rankDataList[i].uuid);
if (this._rankDataList[i].uuid == uuid) {
return this._rankDataList[i];
}
}
}
sendRankDataEvent(otherData = null) {
const data = {rankData: this._rankDataList};
if (otherData) {
for (const key in otherData) {
data[key] = otherData[key];
}
}
(<any> window).courseware.sendEvent(this.MESSAGE_RANK, data);
}
}
This diff is collapsed.
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment