UNPKG

unserver-unify

Version:

93 lines (90 loc) 2.8 kB
'use strict'; angular.module('bamboo.common').service('knowledgeBizModel', knowledgeBizModel); knowledgeBizModel.$inject = ['$q', 'ApiService', '$translate']; function knowledgeBizModel($q, ApiService, $translate) { var self = this; var chartData = { labels: [], datasets: [{ label: "" , backgroundColor: "rgba(255,99,132,0.2)", borderColor: "rgba(255,99,132,1)", pointBackgroundColor: "rgba(255,99,132,1)", pointBorderColor: "#fff", pointHoverBackgroundColor: "#fff", pointHoverBorderColor: "rgba(255,99,132,1)", data: [] }] }; function getKnowledgeSourse(userknowledges) { var displayKnowledges = []; angular.forEach(userknowledges, function(value, key) { // var childPerctg = []; var _k = { //child:childPerctg, value: value, key: key, score: value.correct * 100 / value.counter, } displayKnowledges.push(_k); // /console.log(value); for (var i = 0; i <= 5; i++) { if (value[i]) { displayKnowledges.push({ level: i, //counter:value[i].counter, //correct:value[i].correct, value: value[i], score: value[i].correct * 100 / value[i].counter, percentage: (value[i].correct * 100) / value[i].counter }); } } }); return displayKnowledges; } function prepareRadarChart(knowledgeSourse) { var labels = []; var data = []; //var charDict = {}; angular.forEach(knowledgeSourse, function(nlg, idx) { if (nlg.key) { var key = nlg.key.split(',').shift(); var value = nlg.value; labels.push(key); if (value.counter) { data.push(value.correct * 100 / value.counter); } else { labels.pop(); } } }); chartData.labels = labels; chartData.datasets[0].data = data; $translate('Accuracy Rate(%)').then(function(data) { chartData.datasets[0].label = data; }); return chartData; } self.getRadarChartData = function(uid, lid) { var info = { cid: lid, id: uid, action: "getusercourseknowledges", } var deferred = $q.defer(); var promise = deferred.promise; ApiService.post('/user', info).then(function(result) {; var userscores = []; if (result.data.success) { var userknowledges = result.data.data || []; var knowledgeSourse = getKnowledgeSourse(userknowledges); var radarChartData = prepareRadarChart(knowledgeSourse); deferred.resolve(radarChartData); }else{ deferred.reject(result); } }); return promise; } }