feat(users): add scoreLevelService to get user score curr/next/prev level and value

This commit is contained in:
OldHawk
2017-06-12 10:40:07 +08:00
parent f5e6b7cd7c
commit ca29a73b19

View File

@@ -0,0 +1,30 @@
(function () {
'use strict';
angular
.module('users.services')
.factory('ScoreLevelService', ScoreLevelService);
ScoreLevelService.$inject = ['$window'];
function ScoreLevelService($window) {
return {
getScoreLevelJson: function (score) {
var levelJson = {};
var l = Math.floor(Math.sqrt(score / 500));
levelJson.score = score;
levelJson.prevLevel = (l - 1) <= 0 ? 0 : l - 1;
levelJson.currLevel = l;
levelJson.nextLevel = l + 1;
levelJson.prevLevelValue = levelJson.prevLevel * levelJson.prevLevel * 500;
levelJson.currLevelValue = levelJson.currLevel * levelJson.currLevel * 500;
levelJson.nextLevelValue = levelJson.nextLevel * levelJson.nextLevel * 500;
levelJson.currPercent = (score - levelJson.currLevelValue) / (levelJson.nextLevelValue - levelJson.currLevelValue) * 100;
return levelJson;
}
};
}
}());