From ca29a73b1959c7232e87df936fc757bbc93ec431 Mon Sep 17 00:00:00 2001 From: OldHawk Date: Mon, 12 Jun 2017 10:40:07 +0800 Subject: [PATCH] feat(users): add scoreLevelService to get user score curr/next/prev level and value --- .../services/scoreLevel.client.service.js | 30 +++++++++++++++++++ 1 file changed, 30 insertions(+) create mode 100644 modules/users/client/services/scoreLevel.client.service.js diff --git a/modules/users/client/services/scoreLevel.client.service.js b/modules/users/client/services/scoreLevel.client.service.js new file mode 100644 index 00000000..8f77a869 --- /dev/null +++ b/modules/users/client/services/scoreLevel.client.service.js @@ -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; + } + }; + } +}());