UNPKG

unserver-unify

Version:

83 lines 2.97 kB
'use strict'; angular.module('bamboo.course').service('userBizModel', function(ApiService, $q, schoolModel) { var self = this; self.getProfileById = function(id) { if (!id) return; var deferred = $q.defer(); ApiService.get('/profile/' + id).then(function(res) { deferred.resolve(res.data.data); }, function(error) { deferred.reject(error); }); return deferred.promise; }; self.getProfile = function() { var deferred = $q.defer(); ApiService.get('/profile/').then(function(res) { deferred.resolve(res.data.data); }, function(error) { deferred.reject(error); }); return deferred.promise; }; //var _rule,ruledoc; var loadSchool = function() { return schoolModel.getSchool().then(function(school) { //_rule = school.gameruledoc; return school.gameruledoc; }) } var loadSchoolDoc = function(_rule) { return schoolModel.getSchoolDoc(_rule).then(function(_ruledoc) { console.log(_ruledoc); //ruledoc = _ruledoc; return _ruledoc; }); } var calculateScore = function(ruledoc) { var deferred = $q.defer(); self.getProfile().then(function(result) { console.log(result); result = result || {}; var loginDayCounter = result.loginDayCounter || 0; var totaltime = (result.totaltime || 0) / 3600; var summary = result.summary || {}; var exp = (ruledoc.assignment * summary.assignmentrecords) || 0 + (ruledoc.cert * summary.cert) || 0 + (ruledoc.attendance * summary.courseclass) || 0 + (ruledoc.login * loginDayCounter) + (ruledoc.usage * totaltime); var mastery = (ruledoc.gradeA * summary.exam.AF) || 0 + (ruledoc.gradeB * summary.exam.AP) || 0 + (ruledoc.gradeC * summary.exam.A) || 0 + (ruledoc.gradeD * summary.exam.B) || 0 + (sruledoc.gradeE * summary.exam.F) || 0 + (ruledoc.topuser * summary.topusser) || 0; var ctizship = (ruledoc.reply * summary.reply) || 0 + (ruledoc.topic * summary.topic) || 0; var score = exp + mastery + ctizship; var scoreObj = { _exp: exp, _mastery: mastery, _ctizship: ctizship, _score: score }; deferred.resolve(scoreObj); }, function(error) { deferred.reject(error); }); return deferred.promise; } self.getMyScore = function() { return loadSchool().then(loadSchoolDoc).then(calculateScore); } self.getLearningRecordByUserId = function(userId) { var info = { start: 0, limit: Number.MAX_SAFE_INTEGER, action: "getuserprogress", id: userId, }; console.log(info); var deferred = $q.defer(); var promise = deferred.promise; ApiService.post('/lcourses',info).then(function(res){ if(res.data.success){ deferred.resolve(res.data.data); }else{ deferred.reject(); } }); return promise; } });