mirror of
https://github.com/taobataoma/meanTorrent.git
synced 2026-02-19 04:47:07 +01:00
50 lines
1.5 KiB
JavaScript
50 lines
1.5 KiB
JavaScript
'use strict';
|
|
|
|
var path = require('path'),
|
|
config = require(path.resolve('./config/config')),
|
|
common = require(path.resolve('./config/lib/common')),
|
|
mongoose = require('mongoose'),
|
|
User = mongoose.model('User'),
|
|
traceLogCreate = require(path.resolve('./config/lib/tracelog')).create;
|
|
|
|
var traceConfig = config.meanTorrentConfig.trace;
|
|
var examinationConfig = config.meanTorrentConfig.examination;
|
|
|
|
/**
|
|
* update
|
|
*
|
|
* @param req
|
|
* @param user
|
|
* @param action
|
|
* @param value
|
|
*/
|
|
module.exports.update = function (req, user, action, value) {
|
|
var v = value || action.value;
|
|
|
|
if (action.enable) {
|
|
if (user) {
|
|
if (common.examinationIsValid(user)) {
|
|
user.examinationData.score = user.examinationData.score || 0;
|
|
user.examinationData.score += v;
|
|
|
|
var uploadFinished = user.examinationData.uploaded >= examinationConfig.incrementData.upload;
|
|
var downloadFinished = user.examinationData.downloaded >= examinationConfig.incrementData.download;
|
|
var scoreFinished = user.examinationData.score >= examinationConfig.incrementData.score;
|
|
user.examinationData.isFinished = uploadFinished && downloadFinished && scoreFinished;
|
|
user.examinationData.finishedTime = user.examinationData.isFinished ? Date.now() : null;
|
|
|
|
user.markModified('examinationData');
|
|
}
|
|
user.score += v;
|
|
user.save(function () {
|
|
traceLogCreate(req, traceConfig.action.userScoreChange, {
|
|
user: user._id,
|
|
score: v,
|
|
scoreActionName: action.name
|
|
});
|
|
});
|
|
}
|
|
}
|
|
};
|
|
|