From f94a89faef6fe64815c8bcb7067058a3d6894240 Mon Sep 17 00:00:00 2001 From: strawmanbobi Date: Sun, 14 Jun 2020 11:56:18 +0800 Subject: [PATCH] private cloud update 2020-06-14 1. completed i18n for private cloud (foreground and background) 2. fixed issues --- console/authentication/admin_auth.js | 30 +- console/authentication/ticket_pair.js | 28 +- console/common/utils/string_utils.js | 10 +- console/configuration/system_configs.js | 4 +- console/model/brand_dao.js | 22 +- console/model/category_dao.js | 18 +- console/model/city_dao.js | 16 +- console/model/collect_remote_dao.js | 22 +- console/model/ir_protocol_dao.js | 22 +- console/model/remote_index_dao.js | 29 +- console/model/stb_operator_dao.js | 12 +- console/model/virtual_remote_dao.js | 18 +- console/routes/authentication_routes.js | 4 +- console/routes/code_manage_routes.js | 4 +- console/routes/index.js | 2 +- console/routes/navigation_routes.js | 4 +- console/routes/stat_routes.js | 4 +- console/services/authentication_service.js | 36 +- console/services/code_manage_service.js | 230 +++--- console/services/navigation_service.js | 4 +- console/services/stat_service.js | 18 +- console/web/code/index.html | 3 +- console/web/code/js/constants.js | 40 +- console/web/code/js/manage.js | 51 +- console/web/code/js/operate.js | 484 +----------- console/work_unit/authentication_logic.js | 60 +- console/work_unit/code_manage_logic.js | 869 ++++++++++++--------- console/work_unit/stat_logic.js | 82 +- 28 files changed, 899 insertions(+), 1227 deletions(-) diff --git a/console/authentication/admin_auth.js b/console/authentication/admin_auth.js index 92c1219..1d9c2cd 100644 --- a/console/authentication/admin_auth.js +++ b/console/authentication/admin_auth.js @@ -4,23 +4,23 @@ */ require('../mini_poem/configuration/constants'); -var Cache = require('../mini_poem/cache/redis.js'); -var logger = require('../mini_poem/logging/logger4js').helper; -var Enums = require('../constants/enums'); -var ErrorCode = require('../constants/error_code'); +let Cache = require('../mini_poem/cache/redis.js'); +let logger = require('../mini_poem/logging/logger4js').helper; +let Enums = require('../constants/enums'); +let ErrorCode = require('../constants/error_code'); -var enums = new Enums(); -var errorCode = new ErrorCode(); +let enums = new Enums(); +let errorCode = new ErrorCode(); -var AdminAuth = function(_cacheHost, _cachePort, _cacheAdmin, _cachePassword) { +let AdminAuth = function(_cacheHost, _cachePort, _cacheAdmin, _cachePassword) { this.cache = new Cache(_cacheHost, _cachePort, _cacheAdmin, _cachePassword); }; AdminAuth.prototype.setAuthInfo = function(id, token, ttl, callback) { this.cache.set(id, token, ttl, function(setAdminAuthErr, data) { - var error = errorCode.SUCCESS; - if(setAdminAuthErr != errorCode.SUCCESS.code) { + let error = errorCode.SUCCESS; + if(setAdminAuthErr !== errorCode.SUCCESS.code) { error = errorCode.FAILED; } callback(error, data); @@ -28,9 +28,9 @@ AdminAuth.prototype.setAuthInfo = function(id, token, ttl, callback) { }; AdminAuth.prototype.validateAuthInfo = function(id, token, callback) { - var error = errorCode.SUCCESS; + let error = errorCode.SUCCESS; this.cache.get(id, false, function(getAdminAuthErr, result) { - if(errorCode.SUCCESS.code != getAdminAuthErr || !result || token != result) { + if(errorCode.SUCCESS.code !== getAdminAuthErr || !result || token !== result) { error = errorCode.AUTHENTICATION_FAILURE; } callback(error, result); @@ -38,9 +38,9 @@ AdminAuth.prototype.validateAuthInfo = function(id, token, callback) { }; AdminAuth.prototype.getAuthInfo = function(id, callback) { - var error = errorCode.SUCCESS; + let error = errorCode.SUCCESS; this.cache.get(id, false, function(getAdminAuthErr, result) { - if(errorCode.SUCCESS.code != getAdminAuthErr) { + if(errorCode.SUCCESS.code !== getAdminAuthErr) { error = errorCode.FAILED; } callback(error, result); @@ -48,9 +48,9 @@ AdminAuth.prototype.getAuthInfo = function(id, callback) { }; AdminAuth.prototype.deleteAuthInfo = function(id, callback) { - var error = errorCode.SUCCESS; + let error = errorCode.SUCCESS; this.cache.delete(id, function(deleteAdminAuthErr) { - if(deleteAdminAuthErr != errorCode.SUCCESS.code) { + if(deleteAdminAuthErr !== errorCode.SUCCESS.code) { error = errorCode.FAILED; } callback(error); diff --git a/console/authentication/ticket_pair.js b/console/authentication/ticket_pair.js index b795915..cb71007 100644 --- a/console/authentication/ticket_pair.js +++ b/console/authentication/ticket_pair.js @@ -3,23 +3,23 @@ * 2016-12-24 (Xmax eve) */ -require('../mini_poem//configuration/constants'); -var Cache = require('../mini_poem//cache/redis.js'); -var logger = require('../mini_poem//logging/logger4js').helper; -var Enums = require('../constants/enums'); -var ErrorCode = require('../constants/error_code'); +require('../mini_poem/configuration/constants'); +let Cache = require('../mini_poem/cache/redis.js'); +let logger = require('../mini_poem/logging/logger4js').helper; +let Enums = require('../constants/enums'); +let ErrorCode = require('../constants/error_code'); -var enums = new Enums(); -var errorCode = new ErrorCode(); +let enums = new Enums(); +let errorCode = new ErrorCode(); -var TicketPair = function(_cacheHost, _cachePort, _cacheAdmin, _cachePassword) { +let TicketPair = function(_cacheHost, _cachePort, _cacheAdmin, _cachePassword) { this.cache = new Cache(_cacheHost, _cachePort, _cacheAdmin, _cachePassword); }; TicketPair.prototype.setTicketPair = function(id, ticket, ttl, callback) { this.cache.set(id, ticket, ttl, function(setTicketPairErr, data) { - var error = errorCode.SUCCESS; - if(setTicketPairErr != errorCode.SUCCESS.code) { + let error = errorCode.SUCCESS; + if(setTicketPairErr !== errorCode.SUCCESS.code) { error = errorCode.FAILED; } callback(error, data); @@ -28,9 +28,9 @@ TicketPair.prototype.setTicketPair = function(id, ticket, ttl, callback) { TicketPair.prototype.getTicketPair = function(id, callback) { - var error = errorCode.SUCCESS; + let error = errorCode.SUCCESS; this.cache.get(id, false, function(getTicketPairErr, result) { - if(errorCode.SUCCESS.code != getTicketPairErr) { + if(errorCode.SUCCESS.code !== getTicketPairErr) { error = errorCode.FAILED; } callback(error, result); @@ -38,9 +38,9 @@ TicketPair.prototype.getTicketPair = function(id, callback) { }; TicketPair.prototype.deleteTicketPair = function(id, callback) { - var error = errorCode.SUCCESS; + let error = errorCode.SUCCESS; this.cache.delete(id, function(deleteTicketPairErr) { - if(deleteTicketPairErr != errorCode.SUCCESS.code) { + if(deleteTicketPairErr !== errorCode.SUCCESS.code) { error = errorCode.FAILED; } callback(error); diff --git a/console/common/utils/string_utils.js b/console/common/utils/string_utils.js index 1b94038..72850ea 100644 --- a/console/common/utils/string_utils.js +++ b/console/common/utils/string_utils.js @@ -12,13 +12,13 @@ exports.stringTruncate = function (srcStr, maxLength) { exports.stringMask = function (srcStr, prefixLength, maskLength) { // auto mask string - var retStr = ""; - var srcStrLength = srcStr.length; + let retStr = ""; + let srcStrLength = srcStr.length; if(srcStrLength <= prefixLength) { return srcStr; } retStr = srcStr.substring(0, prefixLength); - for(var i = 0; i < maskLength; i++) { + for(let i = 0; i < maskLength; i++) { retStr += "*"; } if(srcStrLength <= prefixLength + maskLength) { @@ -29,8 +29,8 @@ exports.stringMask = function (srcStr, prefixLength, maskLength) { }; exports.verifyPhoneNumber = function (number){ - var a = /^((\(\d{3}\))|(\d{3}\-))?13\d{9}|14[57]\d{8}|15\d{9}|18\d{9}$/; - if(number.length!=11||!number.match(a)) { + let a = /^((\(\d{3}\))|(\d{3}-))?13\d{9}|14[57]\d{8}|15\d{9}|18\d{9}$/; + if(number.length !== 11||!number.match(a)) { return 0; } else { return 1; diff --git a/console/configuration/system_configs.js b/console/configuration/system_configs.js index cd31546..cfaeffc 100644 --- a/console/configuration/system_configs.js +++ b/console/configuration/system_configs.js @@ -7,8 +7,8 @@ //noinspection JSUnresolvedFunction require('../mini_poem/configuration/constants'); //noinspection JSUnresolvedFunction -var Enums = require('./../constants/enums'); -var enums = new Enums(); +let Enums = require('./../constants/enums'); +let enums = new Enums(); //noinspection JSUnresolvedVariable exports.setupEnvironment = function () { diff --git a/console/model/brand_dao.js b/console/model/brand_dao.js index 785d35f..d01486e 100644 --- a/console/model/brand_dao.js +++ b/console/model/brand_dao.js @@ -4,19 +4,19 @@ */ // global inclusion -var orm = require('orm'); -var dbOrm = require('../mini_poem/db/mysql/mysql_connection').mysqlDB; -var logger = require('../mini_poem/logging/logger4js').helper; -var dateUtils = require('../mini_poem/utils/date_utils.js'); +let orm = require('orm'); +let dbOrm = require('../mini_poem/db/mysql/mysql_connection').mysqlDB; +let logger = require('../mini_poem/logging/logger4js').helper; +let dateUtils = require('../mini_poem/utils/date_utils.js'); // local inclusion -var ErrorCode = require('../constants/error_code'); -var Enums = require('../constants/enums'); +let ErrorCode = require('../constants/error_code'); +let Enums = require('../constants/enums'); -var errorCode = new ErrorCode(); -var enums = new Enums(); +let errorCode = new ErrorCode(); +let enums = new Enums(); -var Brand = dbOrm.define('brand', +let Brand = dbOrm.define('brand', { id: Number, name: String, @@ -35,8 +35,8 @@ var Brand = dbOrm.define('brand', ); Brand.createBrand = function(brand, callback) { - var date = dateUtils.formatDate(new Date(), "yyyy-MM-dd hh:mm:ss"); - var newBrand = new Brand({ + let date = dateUtils.formatDate(new Date(), "yyyy-MM-dd hh:mm:ss"); + let newBrand = new Brand({ name: brand.name, category_id: brand.category_id, category_name: brand.category_name, diff --git a/console/model/category_dao.js b/console/model/category_dao.js index f889249..801562a 100644 --- a/console/model/category_dao.js +++ b/console/model/category_dao.js @@ -4,16 +4,16 @@ */ // global inclusion -var orm = require('orm'); -var dbOrm = require('../mini_poem/db/mysql/mysql_connection').mysqlDB; -var logger = require('../mini_poem/logging/logger4js').helper; -var dateUtils = require('../mini_poem/utils/date_utils.js'); +let orm = require('orm'); +let dbOrm = require('../mini_poem/db/mysql/mysql_connection').mysqlDB; +let logger = require('../mini_poem/logging/logger4js').helper; +let dateUtils = require('../mini_poem/utils/date_utils.js'); // local inclusion -var ErrorCode = require('../constants/error_code'); -var errorCode = new ErrorCode(); +let ErrorCode = require('../constants/error_code'); +let errorCode = new ErrorCode(); -var Category = dbOrm.define('category', +let Category = dbOrm.define('category', { id: Number, name: String, @@ -29,8 +29,8 @@ var Category = dbOrm.define('category', ); Category.createCategory = function(category, callback) { - var date = dateUtils.formatDate(new Date(), "yyyy-MM-dd hh:mm:ss"); - var newCategory = new Category({ + let date = dateUtils.formatDate(new Date(), "yyyy-MM-dd hh:mm:ss"); + let newCategory = new Category({ name: category.name, status: 1, update_time: date, diff --git a/console/model/city_dao.js b/console/model/city_dao.js index 817fb7a..25ef1b7 100644 --- a/console/model/city_dao.js +++ b/console/model/city_dao.js @@ -4,15 +4,15 @@ */ // global inclusion -var orm = require('orm'); -var dbOrm = require('../mini_poem/db/mysql/mysql_connection').mysqlDB; -var logger = require('../mini_poem/logging/logger4js').helper; +let orm = require('orm'); +let dbOrm = require('../mini_poem/db/mysql/mysql_connection').mysqlDB; +let logger = require('../mini_poem/logging/logger4js').helper; // local inclusion -var ErrorCode = require('../constants/error_code'); -var errorCode = new ErrorCode(); +let ErrorCode = require('../constants/error_code'); +let errorCode = new ErrorCode(); -var City = dbOrm.define('city', +let City = dbOrm.define('city', { id: Number, code: String, @@ -27,7 +27,7 @@ var City = dbOrm.define('city', ); City.listProvinces = function(callback) { - var error = errorCode.SUCCESS; + let error = errorCode.SUCCESS; dbOrm.driver.execQuery("SELECT * FROM city WHERE code LIKE '__0000'", function(getProvincesErr, result) { if (getProvincesErr) { logger.info("get provinces failed : " + getProvincesErr); @@ -41,7 +41,7 @@ City.listProvinces = function(callback) { }; City.listCities = function(provincePrefix, callback) { - var error = errorCode.SUCCESS; + let error = errorCode.SUCCESS; // dbOrm is object of ORM dbOrm.driver.execQuery("SELECT * FROM city WHERE code LIKE '" + provincePrefix + "__00' AND code NOT LIKE '__0000'", function(getCitiesErr, result) { if (getCitiesErr) { diff --git a/console/model/collect_remote_dao.js b/console/model/collect_remote_dao.js index a05d2f4..5d59345 100644 --- a/console/model/collect_remote_dao.js +++ b/console/model/collect_remote_dao.js @@ -4,18 +4,18 @@ */ // global inclusion -var orm = require('orm'); -var dbOrm = require('../mini_poem/db/mysql/mysql_connection').mysqlDB; -var logger = require('../mini_poem/logging/logger4js').helper; +let orm = require('orm'); +let dbOrm = require('../mini_poem/db/mysql/mysql_connection').mysqlDB; +let logger = require('../mini_poem/logging/logger4js').helper; // local inclusion -var ErrorCode = require('../constants/error_code'); -var Enums = require('../constants/enums'); +let ErrorCode = require('../constants/error_code'); +let Enums = require('../constants/enums'); -var errorCode = new ErrorCode(); -var enums = new Enums(); +let errorCode = new ErrorCode(); +let enums = new Enums(); -var CollectRemote = dbOrm.define('collect_remote', +let CollectRemote = dbOrm.define('collect_remote', { id: Number, name: String, @@ -40,8 +40,8 @@ var CollectRemote = dbOrm.define('collect_remote', ); CollectRemote.createCollectRemote = function(collectRemote, callback) { - var date = dateUtils.formatDate(new Date(), "yyyy-MM-dd hh:mm:ss"); - var newCollectRemote = new CollectRemote({ + let date = dateUtils.formatDate(new Date(), "yyyy-MM-dd hh:mm:ss"); + let newCollectRemote = new CollectRemote({ name: collectRemote.name, category_id: collectRemote.category_id, category_name: collectRemote.category_name, @@ -153,7 +153,7 @@ CollectRemote.updateCollectRemote = function(collectRemoteID, newCollectRemote, } else { logger.info("get collectRemote by ID successfully in update collectRemote"); - for (var prop in collectRemote) { + for (let prop in collectRemote) { if (undefined !== newCollectRemote[prop] && null !== newCollectRemote[prop]) { collectRemote[prop] = newCollectRemote[prop]; } diff --git a/console/model/ir_protocol_dao.js b/console/model/ir_protocol_dao.js index c4529d6..415578c 100644 --- a/console/model/ir_protocol_dao.js +++ b/console/model/ir_protocol_dao.js @@ -4,19 +4,19 @@ */ // global inclusion -var orm = require('orm'); -var dbOrm = require('../mini_poem/db/mysql/mysql_connection').mysqlDB; -var logger = require('../mini_poem/logging/logger4js').helper; -var dateUtils = require('../mini_poem/utils/date_utils.js'); +let orm = require('orm'); +let dbOrm = require('../mini_poem/db/mysql/mysql_connection').mysqlDB; +let logger = require('../mini_poem/logging/logger4js').helper; +let dateUtils = require('../mini_poem/utils/date_utils.js'); // local inclusion -var ErrorCode = require('../constants/error_code'); -var errorCode = new ErrorCode(); +let ErrorCode = require('../constants/error_code'); +let errorCode = new ErrorCode(); -var Enums = require('../constants/enums'); -var enums = new Enums(); +let Enums = require('../constants/enums'); +let enums = new Enums(); -var IRProtocol = dbOrm.define('ir_protocol', +let IRProtocol = dbOrm.define('ir_protocol', { id: Number, name: String, @@ -32,8 +32,8 @@ var IRProtocol = dbOrm.define('ir_protocol', ); IRProtocol.createIRProtocol = function(protocol, callback) { - var date = dateUtils.formatDate(new Date(), "yyyy-MM-dd hh:mm:ss"); - var newProtocol = new IRProtocol({ + let date = dateUtils.formatDate(new Date(), "yyyy-MM-dd hh:mm:ss"); + let newProtocol = new IRProtocol({ name: protocol.name, status: protocol.status, type: protocol.type, diff --git a/console/model/remote_index_dao.js b/console/model/remote_index_dao.js index fa3cc33..a5a4772 100644 --- a/console/model/remote_index_dao.js +++ b/console/model/remote_index_dao.js @@ -4,19 +4,19 @@ */ // global inclusion -var orm = require('orm'); -var dbOrm = require('../mini_poem/db/mysql/mysql_connection').mysqlDB; -var logger = require('../mini_poem/logging/logger4js').helper; -var dateUtils = require('../mini_poem/utils/date_utils.js'); +let orm = require('orm'); +let dbOrm = require('../mini_poem/db/mysql/mysql_connection').mysqlDB; +let logger = require('../mini_poem/logging/logger4js').helper; +let dateUtils = require('../mini_poem/utils/date_utils.js'); // local inclusion -var ErrorCode = require('../constants/error_code'); -var Enums = require('../constants/enums'); +let ErrorCode = require('../constants/error_code'); +let Enums = require('../constants/enums'); -var errorCode = new ErrorCode(); -var enums = new Enums(); +let errorCode = new ErrorCode(); +let enums = new Enums(); -var RemoteIndex = dbOrm.define('remote_index', +let RemoteIndex = dbOrm.define('remote_index', { id: Number, category_id: Number, @@ -48,8 +48,8 @@ var RemoteIndex = dbOrm.define('remote_index', ); RemoteIndex.createRemoteIndex = function(remoteIndex, callback) { - var date = dateUtils.formatDate(new Date(), "yyyy-MM-dd hh:mm:ss"); - var newRemoteIndex = new RemoteIndex({ + let date = dateUtils.formatDate(new Date(), "yyyy-MM-dd hh:mm:ss"); + let newRemoteIndex = new RemoteIndex({ name: remoteIndex.name, category_id: remoteIndex.category_id, category_name: remoteIndex.category_name, @@ -168,9 +168,8 @@ RemoteIndex.updateRemoteIndex = function(remoteIndexID, newRemoteIndex, callback logger.error("get remoteIndex by ID error in update remote index : " + error); callback(errorCode.FAILED, null); } else { - var date = dateUtils.formatDate(new Date(), "yyyy-MM-dd hh:mm:ss"); - logger.info("get remoteIndex by ID successfully in update remote index"); - for (var prop in remoteIndex) { + let date = dateUtils.formatDate(new Date(), "yyyy-MM-dd hh:mm:ss"); + for (let prop in remoteIndex) { if (undefined != newRemoteIndex[prop] && null != newRemoteIndex[prop]) { remoteIndex[prop] = newRemoteIndex[prop]; } @@ -195,7 +194,6 @@ RemoteIndex.verifyRemoteIndex = function(remoteIndexID, status, callback) { logger.error("get remoteIndex by ID error in verify remote index : " + error); callback(errorCode.FAILED, null); } else { - logger.info("get remoteIndex by ID successfully in verify remote index"); remoteIndex.status = status; remoteIndex.save(function(error, updatedRemoteIndex) { @@ -216,7 +214,6 @@ RemoteIndex.fallbackRemoteIndex = function(remoteIndexID, status, callback) { logger.error("get remoteIndex by ID error in fallback remote index : " + error); callback(errorCode.FAILED, null); } else { - logger.info("get remoteIndex by ID successfully in fallback remote index"); remoteIndex.status = status; remoteIndex.save(function(error, updatedRemoteIndex) { diff --git a/console/model/stb_operator_dao.js b/console/model/stb_operator_dao.js index 711732d..b673d26 100644 --- a/console/model/stb_operator_dao.js +++ b/console/model/stb_operator_dao.js @@ -4,15 +4,15 @@ */ // global inclusion -var orm = require('orm'); -var dbOrm = require('../mini_poem/db/mysql/mysql_connection').mysqlDB; -var logger = require('../mini_poem/logging/logger4js').helper; +let orm = require('orm'); +let dbOrm = require('../mini_poem/db/mysql/mysql_connection').mysqlDB; +let logger = require('../mini_poem/logging/logger4js').helper; // local inclusion -var ErrorCode = require('../constants/error_code'); -var errorCode = new ErrorCode(); +let ErrorCode = require('../constants/error_code'); +let errorCode = new ErrorCode(); -var StbOperator = dbOrm.define('stb_operator', +let StbOperator = dbOrm.define('stb_operator', { id: Number, operator_id: String, diff --git a/console/model/virtual_remote_dao.js b/console/model/virtual_remote_dao.js index c4c910c..82197b9 100644 --- a/console/model/virtual_remote_dao.js +++ b/console/model/virtual_remote_dao.js @@ -4,23 +4,23 @@ */ // global inclusion -var kvConn = require('../mini_poem/db/mongodb/mongodb_connection'); -var logger = require('../mini_poem/logging/logger4js').helper; -var Map = require('../mini_poem/mem/map'); +let kvConn = require('../mini_poem/db/mongodb/mongodb_connection'); +let logger = require('../mini_poem/logging/logger4js').helper; +let Map = require('../mini_poem/mem/map'); // local inclusion -var ErrorCode = require('../constants/error_code'); -var errorCode = new ErrorCode(); +let ErrorCode = require('../constants/error_code'); +let errorCode = new ErrorCode(); -var VirtualRemote = function() { +let VirtualRemote = function() { }; -var remoteMap = new Map(); +let remoteMap = new Map(); VirtualRemote.prototype.findRemoteByKey = function(protocol, remote, remoteKey, code, callback) { // traverse all collections per remote - var collectionName = remote + "_" + protocol; - var vRemote = remoteMap.get(collectionName); + let collectionName = remote + "_" + protocol; + let vRemote = remoteMap.get(collectionName); if(null == vRemote) { try { vRemote = kvConn.defineByCollection(collectionName, { diff --git a/console/routes/authentication_routes.js b/console/routes/authentication_routes.js index 19c8269..8178b3b 100644 --- a/console/routes/authentication_routes.js +++ b/console/routes/authentication_routes.js @@ -3,8 +3,8 @@ * 2016-11-27 */ -var app = require('../irext_console.js'); -var authenticationService = require('../services/authentication_service.js'); +let app = require('../irext_console.js'); +let authenticationService = require('../services/authentication_service.js'); app.post('/irext/certificate/admin_login', authenticationService.adminLogin); app.post('/irext/certificate/token_verify', authenticationService.verifyToken); diff --git a/console/routes/code_manage_routes.js b/console/routes/code_manage_routes.js index a30d637..be8e8af 100644 --- a/console/routes/code_manage_routes.js +++ b/console/routes/code_manage_routes.js @@ -3,8 +3,8 @@ * 2016-11-27 */ -var app = require('../irext_console.js'); -var intService = require('../services/code_manage_service.js'); +let app = require('../irext_console.js'); +let intService = require('../services/code_manage_service.js'); app.post('/irext/int/list_provinces', intService.listProvinces); app.post('/irext/int/list_cities', intService.listCities); diff --git a/console/routes/index.js b/console/routes/index.js index ca80eb3..acd0bf2 100644 --- a/console/routes/index.js +++ b/console/routes/index.js @@ -3,7 +3,7 @@ * 2016-11-27 */ -var server = require('../irext_console.js'); +let server = require('../irext_console.js'); require('./navigation_routes.js'); require('./authentication_routes.js'); diff --git a/console/routes/navigation_routes.js b/console/routes/navigation_routes.js index f7e691d..adb7ef8 100644 --- a/console/routes/navigation_routes.js +++ b/console/routes/navigation_routes.js @@ -3,7 +3,7 @@ * 2016-12-05 */ -var app = require('../irext_console.js'); -var navigationService = require('../services/navigation_service.js'); +let app = require('../irext_console.js'); +let navigationService = require('../services/navigation_service.js'); app.post('/irext/nav/nav_to_url', navigationService.navToURL); \ No newline at end of file diff --git a/console/routes/stat_routes.js b/console/routes/stat_routes.js index 94fea4f..fc85920 100644 --- a/console/routes/stat_routes.js +++ b/console/routes/stat_routes.js @@ -2,8 +2,8 @@ * Created by Strawmanbobi * 2016-11-27 */ -var app = require('../irext_console.js'); -var statService = require('../services/stat_service.js'); +let app = require('../irext_console.js'); +let statService = require('../services/stat_service.js'); app.post('/irext/stat/generic_count', statService.genericCount); diff --git a/console/services/authentication_service.js b/console/services/authentication_service.js index 9e328f9..164dc3a 100644 --- a/console/services/authentication_service.js +++ b/console/services/authentication_service.js @@ -4,16 +4,16 @@ */ // system inclusion -var logger = require('../mini_poem/logging/logger4js').helper; +let logger = require('../mini_poem/logging/logger4js').helper; // local inclusion -var ServiceResponse = require('../response/service_response.js'); -var LoginResponse = require('../response/login_response.js'); +let ServiceResponse = require('../response/service_response.js'); +let LoginResponse = require('../response/login_response.js'); -var authenticationLogic = require('../work_unit/authentication_logic.js'); +let authenticationLogic = require('../work_unit/authentication_logic.js'); -var Enums = require('../constants/enums'); -var ErrorCode = require('../constants/error_code'); +let Enums = require('../constants/enums'); +let ErrorCode = require('../constants/error_code'); /* @@ -23,11 +23,11 @@ var ErrorCode = require('../constants/error_code'); * return : ServiceResponse */ exports.adminLogin = function (req, res) { - var admin = req.body; - var userName = admin.user_name; - var password = admin.password; + let admin = req.body; + let userName = admin.user_name; + let password = admin.password; - var loginResponse = new LoginResponse(); + let loginResponse = new LoginResponse(); authenticationLogic.adminLoginWorkUnit(userName, password, function (adminLoginErr, admin) { logger.info("admin login successfully, entity = " + JSON.stringify(admin)); loginResponse.status = adminLoginErr; @@ -44,11 +44,11 @@ exports.adminLogin = function (req, res) { * return : ServiceResponse */ exports.verifyToken = function (req, res) { - var bodyParam = req.body; - var id = bodyParam.id; - var token = bodyParam.token; + let bodyParam = req.body; + let id = bodyParam.id; + let token = bodyParam.token; - var serviceResponse = new ServiceResponse(); + let serviceResponse = new ServiceResponse(); authenticationLogic.verifyTokenWorkUnit(id, token, function (verifyTokenErr) { serviceResponse.status = verifyTokenErr; res.send(serviceResponse); @@ -63,11 +63,11 @@ exports.verifyToken = function (req, res) { * return : ServiceResponse */ exports.changePassword = function (req, res) { - var bodyParam = req.body; - var userName = bodyParam.user_name; - var callbackURL = bodyParam.callback_url; + let bodyParam = req.body; + let userName = bodyParam.user_name; + let callbackURL = bodyParam.callback_url; - var serviceResponse = new ServiceResponse(); + let serviceResponse = new ServiceResponse(); authenticationLogic.sendChangePwMailWorkUnit(userName, callbackURL, function (changePWErr) { serviceResponse.status = changePWErr; res.send(serviceResponse); diff --git a/console/services/code_manage_service.js b/console/services/code_manage_service.js index 11dd5ac..7e663b6 100644 --- a/console/services/code_manage_service.js +++ b/console/services/code_manage_service.js @@ -4,27 +4,27 @@ */ // system inclusion -var logger = require('../mini_poem/logging/logger4js').helper; +let logger = require('../mini_poem/logging/logger4js').helper; -var formidable = require('formidable'); -var fs = require('fs'); +let formidable = require('formidable'); +let fs = require('fs'); // local inclusion -var ServiceResponse = require('../response/service_response.js'); -var CategoryResponse = require('../response/category_response.js'); -var BrandResponse = require('../response/brand_response.js'); -var ProtocolResponse = require('../response/protocol_response.js'); -var CityResponse = require('../response/city_response.js'); -var OperatorResponse = require('../response/operator_response.js'); -var RemoteIndexResponse = require('../response/remote_index_response.js'); +let ServiceResponse = require('../response/service_response.js'); +let CategoryResponse = require('../response/category_response.js'); +let BrandResponse = require('../response/brand_response.js'); +let ProtocolResponse = require('../response/protocol_response.js'); +let CityResponse = require('../response/city_response.js'); +let OperatorResponse = require('../response/operator_response.js'); +let RemoteIndexResponse = require('../response/remote_index_response.js'); -var internalLogic = require('../work_unit/code_manage_logic.js'); +let internalLogic = require('../work_unit/code_manage_logic.js'); -var Enums = require('../constants/enums'); -var ErrorCode = require('../constants/error_code'); +let Enums = require('../constants/enums'); +let ErrorCode = require('../constants/error_code'); -var enums = new Enums(); -var errorCode = new ErrorCode(); +let enums = new Enums(); +let errorCode = new ErrorCode(); /* * function : List Categories @@ -33,11 +33,12 @@ var errorCode = new ErrorCode(); * return : CategoryResponse */ exports.listCategories = function (req, res) { - var from = req.body.from; - var count = req.body.count; + let from = req.body.from; + let count = req.body.count; + let lang = req.body.lang || req.headers["accept-language"]; - var categoryResponse = new CategoryResponse(); - internalLogic.listCategoriesWorkUnit(from, count, function (listCategoriesErr, categories) { + let categoryResponse = new CategoryResponse(); + internalLogic.listCategoriesWorkUnit(lang, from, count, function (listCategoriesErr, categories) { categoryResponse.status = listCategoriesErr; categoryResponse.entity = categories; res.send(categoryResponse); @@ -53,12 +54,13 @@ exports.listCategories = function (req, res) { * return : BrandResponse */ exports.listBrands = function (req, res) { - var categoryID = req.body.category_id; - var from = req.body.from; - var count = req.body.count; + let categoryID = req.body.category_id; + let from = req.body.from; + let count = req.body.count; + let lang = req.body.lang || req.headers["accept-language"]; - var brandResponse = new BrandResponse(); - internalLogic.listBrandsWorkUnit(categoryID, from, count, function (listBrandsErr, brands) { + let brandResponse = new BrandResponse(); + internalLogic.listBrandsWorkUnit(lang, categoryID, from, count, function (listBrandsErr, brands) { brandResponse.status = listBrandsErr; brandResponse.entity = brands; res.send(brandResponse); @@ -74,7 +76,7 @@ exports.listBrands = function (req, res) { * return : BrandResponse */ exports.listUnpublishedBrands = function (req, res) { - var brandResponse = new BrandResponse(); + let brandResponse = new BrandResponse(); internalLogic.listUnpublishedBrandsWorkUnit(function (listBrandsErr, brands) { brandResponse.status = listBrandsErr; brandResponse.entity = brands; @@ -90,10 +92,10 @@ exports.listUnpublishedBrands = function (req, res) { * return : ProtocolResponse */ exports.listIRProtocols = function (req, res) { - var from = req.body.from; - var count = req.body.count; + let from = req.body.from; + let count = req.body.count; - var protocolResponse = new ProtocolResponse(); + let protocolResponse = new ProtocolResponse(); internalLogic.listIRProtocolsWorkUnit(from, count, function (listProtocolsErr, protocols) { protocolResponse.status = listProtocolsErr; protocolResponse.entity = protocols; @@ -108,8 +110,10 @@ exports.listIRProtocols = function (req, res) { * return : ProvinceResponse */ exports.listProvinces = function (req, res) { - var cityResponse = new CityResponse(); - internalLogic.listProvincesWorkUnit(function (listProvincesErr, provinces) { + let cityResponse = new CityResponse(); + let lang = req.body.lang || req.headers["accept-language"]; + + internalLogic.listProvincesWorkUnit(lang, function (listProvincesErr, provinces) { cityResponse.status = listProvincesErr; cityResponse.entity = provinces; res.send(cityResponse); @@ -123,28 +127,11 @@ exports.listProvinces = function (req, res) { * return : CityResponse */ exports.listCities = function (req, res) { - var provincePrefix = req.body.province_prefix; + let provincePrefix = req.body.province_prefix; + let lang = req.body.lang || req.headers["accept-language"]; - var cityResponse = new CityResponse(); - internalLogic.listCitiesWorkUnit(provincePrefix, function (listCitiesErr, cities) { - cityResponse.status = listCitiesErr; - cityResponse.entity = cities; - res.send(cityResponse); - res.end(); - }); -}; - -/* - * function : List Cities are covered - * parameter : province code prefix - * return : CityResponse - */ -exports.listCoveredCities = function (req, res) { - var from = req.body.from; - var count = req.body.count; - - var cityResponse = new CityResponse(); - internalLogic.listCoveredCitiesWorkUnit(from, count, function (listCitiesErr, cities) { + let cityResponse = new CityResponse(); + internalLogic.listCitiesWorkUnit(lang, provincePrefix, function (listCitiesErr, cities) { cityResponse.status = listCitiesErr; cityResponse.entity = cities; res.send(cityResponse); @@ -158,12 +145,13 @@ exports.listCoveredCities = function (req, res) { * return : OperatorResponse */ exports.listOperators = function (req, res) { - var cityCode = req.body.city_code; - var from = req.body.from; - var count = req.body.count; + let cityCode = req.body.city_code; + let from = req.body.from; + let count = req.body.count; + let lang = req.body.lang || req.headers["accept-language"]; - var operatorResponse = new OperatorResponse(); - internalLogic.listOperatorsWorkUnit(cityCode, from, count, function (listOperatorsErr, operators) { + let operatorResponse = new OperatorResponse(); + internalLogic.listOperatorsWorkUnit(lang, cityCode, from, count, function (listOperatorsErr, operators) { operatorResponse.status = listOperatorsErr; operatorResponse.entity = operators; res.send(operatorResponse); @@ -181,15 +169,16 @@ exports.listOperators = function (req, res) { * return : Remote Index List */ exports.listIndexes = function (req, res) { - var categoryID = req.body.category_id; - var brandID = req.body.brand_id; - var cityCode = req.body.city_code; - var operatorID = req.body.operator_id; - var from = req.body.from; - var count = req.body.count; + let categoryID = req.body.category_id; + let brandID = req.body.brand_id; + let cityCode = req.body.city_code; + let operatorID = req.body.operator_id; + let from = req.body.from; + let count = req.body.count; + let lang = req.body.lang || req.headers["accept-language"]; - var remoteIndexResponse = new RemoteIndexResponse(); - internalLogic.listRemoteIndexesWorkUnit(categoryID, brandID, cityCode, operatorID, from, count, + let remoteIndexResponse = new RemoteIndexResponse(); + internalLogic.listRemoteIndexesWorkUnit(lang, categoryID, brandID, cityCode, operatorID, from, count, function (listRemoteIndexesErr, remoteIndexes) { remoteIndexResponse.status = listRemoteIndexesErr; remoteIndexResponse.entity = remoteIndexes; @@ -207,14 +196,15 @@ exports.listIndexes = function (req, res) { * return : Remote Index List */ exports.listRemoteIndexes = function (req, res) { - var categoryID = req.query.category_id; - var brandID = req.query.brand_id; - var cityCode = req.query.city_code; - var operatorID = req.query.operator_id; - var from = req.query.from; - var count = req.query.count; + let categoryID = req.query.category_id; + let brandID = req.query.brand_id; + let cityCode = req.query.city_code; + let operatorID = req.query.operator_id; + let from = req.query.from; + let count = req.query.count; + let lang = req.body.lang || req.headers["accept-language"]; - internalLogic.listRemoteIndexesWorkUnit(categoryID, brandID, cityCode, operatorID, from, count, + internalLogic.listRemoteIndexesWorkUnit(lang, categoryID, brandID, cityCode, operatorID, from, count, function (listRemoteIndexesErr, remoteIndexes) { res.send(remoteIndexes); res.end(); @@ -229,11 +219,12 @@ exports.listRemoteIndexes = function (req, res) { * return : Remote Index List */ exports.searchRemoteIndexes = function (req, res) { - var remoteMap = req.query.remote_map; - var from = req.query.from; - var count = req.query.count; + let remoteMap = req.query.remote_map; + let from = req.query.from; + let count = req.query.count; + let lang = req.query.lang || req.headers["accept-language"]; - internalLogic.searchRemoteIndexesWorkUnit(remoteMap, from, count, + internalLogic.searchRemoteIndexesWorkUnit(lang, remoteMap, from, count, function (listRemoteIndexesErr, remoteIndexes) { // remoteIndexResponse.status = listRemoteIndexesErr; //remoteIndexResponse = remoteIndexes; @@ -248,10 +239,10 @@ exports.searchRemoteIndexes = function (req, res) { * return : Redirect to binary download */ exports.downloadIndex = function (req, res) { - var remoteIndexID = req.body.index_id; + let remoteIndexID = req.body.index_id; internalLogic.downloadRemoteBinCachedWorkUnit(remoteIndexID, function (serveBinErr, filePath) { - if (errorCode.SUCCESS.code == serveBinErr.code) { + if (errorCode.SUCCESS.code === serveBinErr.code) { logger.info("download file located at " + filePath); res.download(filePath, ""); } else { @@ -268,10 +259,10 @@ exports.downloadIndex = function (req, res) { * return : Redirect to binary download */ exports.downloadRemoteIndex = function (req, res) { - var remoteIndexID = req.query.remote_index_id; + let remoteIndexID = req.query.remote_index_id; internalLogic.downloadRemoteBinCachedWorkUnit(remoteIndexID, function (serveBinErr, filePath) { - if (errorCode.SUCCESS.code == serveBinErr.code) { + if (errorCode.SUCCESS.code === serveBinErr.code) { logger.info("download file located at " + filePath); res.download(filePath, ""); } else { @@ -291,7 +282,7 @@ exports.downloadRemoteIndex = function (req, res) { * return : Remote Index List */ exports.listUnpublishedRemoteIndexes = function (req, res) { - var remoteIndexResponse = new RemoteIndexResponse(); + let remoteIndexResponse = new RemoteIndexResponse(); internalLogic.listUnpublishedRemoteIndexesWorkUnit(function (listRemoteIndexesErr, remoteIndexes) { remoteIndexResponse.status = listRemoteIndexesErr; remoteIndexResponse.entity = remoteIndexes; @@ -306,22 +297,22 @@ exports.listUnpublishedRemoteIndexes = function (req, res) { * return : None */ exports.createRemoteIndex = function (req, res) { - var form = new formidable.IncomingForm({ + let form = new formidable.IncomingForm({ uploadDir: FILE_TEMP_PATH }); - var remoteIndex; - var filePath; - var contentType; - var adminID; + let remoteIndex; + let filePath; + let contentType; + let adminID; form.on('file', function(field, file) { // rename the incoming file to the file's name logger.info("on file in formidable, change file name according to remote name"); - fs.rename(file.path, form.uploadDir + "/" + file.name); + fs.rename(file.path, form.uploadDir + "/" + file.name, null); }).on('error', function(err) { logger.error("formidable parse form error : " + err); - res.send("" + + res.send("" + " " + "
编码文件提交失败
" + "" + @@ -339,23 +330,22 @@ exports.createRemoteIndex = function (req, res) { filePath = files.remote_file.path; // set MIME to octet-stream as there might not be any contentType passed from the front-end form contentType = files.type || "application/octet-stream"; - logger.info("remoteIndex.kk_remote_number = " + remoteIndex.kk_remote_number); internalLogic.createRemoteIndexWorkUnit(remoteIndex, filePath, contentType, adminID, function (createRemoteIndexErr) { - if(errorCode.SUCCESS.code == createRemoteIndexErr.code) { - res.send("" + + if(errorCode.SUCCESS.code === createRemoteIndexErr.code) { + res.send("" + " " + "
编码文件提交成功
" + "" + ""); - } else if (errorCode.DUPLICATED_REMOTE_CODE.code == createRemoteIndexErr.code) { - res.send("" + + } else if (errorCode.DUPLICATED_REMOTE_CODE.code === createRemoteIndexErr.code) { + res.send("" + " " + "
编码重复,无需新增
" + "" + ""); } else { - res.send("" + + res.send("" + " " + "
编码文件提交失败
" + "" + @@ -373,10 +363,10 @@ exports.createRemoteIndex = function (req, res) { * return : ServiceResponse */ exports.deleteRemoteIndex = function (req, res) { - var remoteIndex = req.body; - var adminID = req.body.admin_id; + let remoteIndex = req.body; + let adminID = req.body.admin_id; - var serviceResponse = new ServiceResponse(); + let serviceResponse = new ServiceResponse(); internalLogic.deleteRemoteIndexWorkUnit(remoteIndex, adminID, function (deleteRemoteErr) { serviceResponse.status = deleteRemoteErr; res.send(serviceResponse); @@ -391,11 +381,11 @@ exports.deleteRemoteIndex = function (req, res) { * return : ServiceResponse */ exports.verifyRemoteIndex = function (req, res) { - var remoteIndex = req.body; - var pass = req.body.pass; - var adminID = req.body.admin_id; + let remoteIndex = req.body; + let pass = req.body.pass; + let adminID = req.body.admin_id; - var serviceResponse = new ServiceResponse(); + let serviceResponse = new ServiceResponse(); internalLogic.verifyRemoteIndexWorkUnit(remoteIndex, pass, adminID, function (verifyRemoteErr) { serviceResponse.status = verifyRemoteErr; res.send(serviceResponse); @@ -409,10 +399,10 @@ exports.verifyRemoteIndex = function (req, res) { * return : ServiceResponse */ exports.fallbackRemoteIndex = function (req, res) { - var remoteIndex = req.body; - var adminID = req.body.admin_id; + let remoteIndex = req.body; + let adminID = req.body.admin_id; - var serviceResponse = new ServiceResponse(); + let serviceResponse = new ServiceResponse(); internalLogic.fallbackRemoteIndexWorkUnit(remoteIndex, adminID, function (fallbackRemoteErr) { serviceResponse.status = fallbackRemoteErr; res.send(serviceResponse); @@ -426,9 +416,9 @@ exports.fallbackRemoteIndex = function (req, res) { * return : ServiceResponse */ exports.publishRemoteIndex = function (req, res) { - var adminID = req.body.admin_id; + let adminID = req.body.admin_id; - var serviceResponse = new ServiceResponse(); + let serviceResponse = new ServiceResponse(); internalLogic.publishRemoteIndexWorkUnit(adminID, function (publishRemoteErr) { serviceResponse.status = publishRemoteErr; res.send(serviceResponse); @@ -442,10 +432,10 @@ exports.publishRemoteIndex = function (req, res) { * return : Service response */ exports.createBrand = function (req, res) { - var brand = req.body; - var adminID = req.body.admin_id; + let brand = req.body; + let adminID = req.body.admin_id; - var serviceResponse = new ServiceResponse(); + let serviceResponse = new ServiceResponse(); internalLogic.createBrandWorkUnit(brand, adminID, function (createBrandErr) { serviceResponse.status = createBrandErr; res.send(serviceResponse); @@ -459,9 +449,9 @@ exports.createBrand = function (req, res) { * return : Service response */ exports.publishBrands = function (req, res) { - var adminID = req.body.admin_id; + let adminID = req.body.admin_id; - var serviceResponse = new ServiceResponse(); + let serviceResponse = new ServiceResponse(); internalLogic.publishBrandsWorkUnit(adminID, function (publishBrandsErr) { serviceResponse.status = publishBrandsErr; res.send(serviceResponse); @@ -475,19 +465,19 @@ exports.publishBrands = function (req, res) { * return : None */ exports.createProtocol = function (req, res) { - var form = new formidable.IncomingForm({ + let form = new formidable.IncomingForm({ uploadDir: FILE_TEMP_PATH + "/protocol" }); - var protocol; - var filePath; - var contentType; - var adminID; + let protocol; + let filePath; + let contentType; + let adminID; form.on('file', function(field, file) { - fs.rename(file.path, form.uploadDir + "/" + file.name); + fs.rename(file.path, form.uploadDir + "/" + file.name, null); }).on('error', function(err) { logger.error("formidable parse form error : " + err); - res.send("" + + res.send("" + "" + "
协议文件提交失败
" + "" + @@ -507,15 +497,15 @@ exports.createProtocol = function (req, res) { contentType = files.type || "application/octet-stream"; console.log("filePath = " + filePath + ", contentType = " + contentType); internalLogic.createProtocolWorkUnit(protocol, filePath, contentType, adminID, function (createProtocolErr) { - if(errorCode.SUCCESS.code == createProtocolErr.code) { - res.send("" + + if(errorCode.SUCCESS.code === createProtocolErr.code) { + res.send("" + "" + "
协议文件提交成功
" + "" + ""); res.end(); } else { - res.send("" + + res.send("" + "" + "
协议文件提交失败
" + "" + diff --git a/console/services/navigation_service.js b/console/services/navigation_service.js index 33c8990..cda5473 100644 --- a/console/services/navigation_service.js +++ b/console/services/navigation_service.js @@ -11,7 +11,7 @@ * return : Redirect to the certain URL */ exports.navToURL = function(req, res) { - var bodyParam = req.body; - var page = bodyParam.page; + let bodyParam = req.body; + let page = bodyParam.page; res.redirect("/" + page); }; \ No newline at end of file diff --git a/console/services/stat_service.js b/console/services/stat_service.js index ed24352..49fd141 100644 --- a/console/services/stat_service.js +++ b/console/services/stat_service.js @@ -6,12 +6,12 @@ // system inclusion // local inclusion -var StatResponse = require('../response/stat_response.js'); +let StatResponse = require('../response/stat_response.js'); -var statLogic = require('../work_unit/stat_logic.js'); +let statLogic = require('../work_unit/stat_logic.js'); -var Enums = require('../constants/enums'); -var ErrorCode = require('../constants/error_code'); +let Enums = require('../constants/enums'); +let ErrorCode = require('../constants/error_code'); /* * function : Count supported categories, brands and remote indexes @@ -19,7 +19,7 @@ var ErrorCode = require('../constants/error_code'); * return : Customized statistics response */ exports.genericCount = function(req, res) { - var statResponse = new StatResponse(); + let statResponse = new StatResponse(); statLogic.countRemoteWorkUnit(function(countRemoteErr, statContent) { statResponse.status = countRemoteErr; statResponse.entity = statContent; @@ -34,7 +34,7 @@ exports.genericCount = function(req, res) { * return : Customized statistics response */ exports.statCategories = function(req, res) { - var statResponse = new StatResponse(); + let statResponse = new StatResponse(); statLogic.statCategoriesWorkUnit(function(statCategoriesErr, statCategories) { statResponse.status = statCategoriesErr; statResponse.entity = statCategories; @@ -49,9 +49,9 @@ exports.statCategories = function(req, res) { * return : Customized statistics response */ exports.statBrands = function(req, res) { - var categoryID = req.body.category_id; + let categoryID = req.body.category_id; - var statResponse = new StatResponse(); + let statResponse = new StatResponse(); statLogic.statBrandsWorkUnit(categoryID, function(statBrandsErr, statBrands) { statResponse.status = statBrandsErr; statResponse.entity = statBrands; @@ -66,7 +66,7 @@ exports.statBrands = function(req, res) { * return : Customized statistics response */ exports.statCities = function(req, res) { - var statResponse = new StatResponse(); + let statResponse = new StatResponse(); statLogic.statCitiesWorkUnit(function(statCitiesErr, statCities) { statResponse.status = statCitiesErr; statResponse.entity = statCities; diff --git a/console/web/code/index.html b/console/web/code/index.html index 43348ac..5a21ffe 100644 --- a/console/web/code/index.html +++ b/console/web/code/index.html @@ -295,7 +295,7 @@
@@ -484,6 +484,7 @@ + diff --git a/console/web/code/js/constants.js b/console/web/code/js/constants.js index e378256..aed56d9 100644 --- a/console/web/code/js/constants.js +++ b/console/web/code/js/constants.js @@ -3,25 +3,25 @@ * 2017-03-27 */ -var LS_KEY_ID = 'user_name'; -var LS_KEY_TOKEN = 'token'; +let LS_KEY_ID = 'user_name'; +let LS_KEY_TOKEN = 'token'; -var CATEGORY_AC = 1; -var CATEGORY_TV = 2; -var CATEGORY_STB = 3; -var CATEGORY_NW = 4; -var CATEGORY_IPTV = 5; -var CATEGORY_DVD = 6; -var CATEGORY_FAN = 7; -var CATEGORY_PROJECTOR = 8; -var CATEGORY_STEREO = 9; -var CATEGORY_LIGHT_BULB = 10; -var CATEGORY_BSTB = 11; -var CATEGORY_CLEANING_ROBOT = 12; -var CATEGORY_AIR_CLEANER = 13; -var CATEGORY_DYSON = 14; +let CATEGORY_AC = 1; +let CATEGORY_TV = 2; +let CATEGORY_STB = 3; +let CATEGORY_NW = 4; +let CATEGORY_IPTV = 5; +let CATEGORY_DVD = 6; +let CATEGORY_FAN = 7; +let CATEGORY_PROJECTOR = 8; +let CATEGORY_STEREO = 9; +let CATEGORY_LIGHT_BULB = 10; +let CATEGORY_BSTB = 11; +let CATEGORY_CLEANING_ROBOT = 12; +let CATEGORY_AIR_CLEANER = 13; +let CATEGORY_DYSON = 14; -var TRANSFER_STATE_NONE = 0; -var TRANSFER_STATE_BIN_FETCHED = 1; -var TRANSFER_STATE_BIN_ON_GOING = 2; -var TRANSFER_STATE_BIN_DONE = 3; \ No newline at end of file +let TRANSFER_STATE_NONE = 0; +let TRANSFER_STATE_BIN_FETCHED = 1; +let TRANSFER_STATE_BIN_ON_GOING = 2; +let TRANSFER_STATE_BIN_DONE = 3; \ No newline at end of file diff --git a/console/web/code/js/manage.js b/console/web/code/js/manage.js index b74e21a..c26d452 100644 --- a/console/web/code/js/manage.js +++ b/console/web/code/js/manage.js @@ -101,13 +101,6 @@ $(document).ready(function() { let fileName = filePath.substring(filePath.lastIndexOf('\\') + 1, filePath.lastIndexOf('.')); $('#protocol_name_b').val(fileName); }); - - $('.dob_cbtn').click(function() { - onDoBClick(this.id); - }); - - updateTransferState(TRANSFER_STATE_NONE); - }); function initializeSelectors() { @@ -128,7 +121,7 @@ function loadRemoteList(isSearch, remoteMap) { url = '/irext/int/search_remote_indexes?remote_map='+ remoteMap+'&from=0&count=2000&admin_id='+id+'&token='+token; } else { - if(currentFilterCategory.id === 3) { + if(parseInt(currentFilterCategory.id) === 3) { url = '/irext/int/list_remote_indexes?category_id='+ currentFilterCategory.id+'&city_code='+currentFilterCity.code+ '&from=0&count=100&admin_id='+id+'&token='+token; @@ -446,7 +439,7 @@ function searchRemote() { } } -function verifyRemote() { +function verifyRemote(pass) { if(null == selectedRemote) { popUpHintDialog(i18n.t("page_code.d_hint_common_select_index", { lng: userLang })); return; @@ -688,7 +681,8 @@ function initializeCategories() { from : 0, count : 200, admin_id : id, - token : token + token : token, + lang: userLang }, timeout: 20000, success: function(response) { @@ -724,7 +718,8 @@ function initializeProvince() { dataType: 'JSON', data: { admin_id : id, - token : token + token : token, + lang : userLang }, type: 'POST', timeout: 20000, @@ -760,7 +755,8 @@ function initializeCity() { data: { province_prefix : provincePrefix, admin_id : id, - token : token + token : token, + lang : userLang }, timeout: 20000, success: function(response) { @@ -810,7 +806,8 @@ function initializeOperator() { from : 0, count : 200, admin_id : id, - token : token + token : token, + lang: userLang }, timeout: 20000, success: function(response) { @@ -859,7 +856,8 @@ function initializeBrands() { from : 0, count : 300, admin_id : id, - token : token + token : token, + lang: userLang }, timeout: 20000, success: function(response) { @@ -896,7 +894,8 @@ function initializeFilterCategories() { from : 0, count : 200, admin_id : id, - token : token + token : token, + lang: userLang }, timeout: 20000, success: function(response) { @@ -929,7 +928,8 @@ function initializeFilterProvince() { dataType: 'JSON', data: { admin_id : id, - token : token + token : token, + lang : userLang }, timeout: 20000, success: function(response) { @@ -964,7 +964,8 @@ function initializeFilterCity() { data: { province_prefix : provincePrefix, admin_id : id, - token : token + token : token, + lang : userLang }, timeout: 20000, success: function(response) { @@ -978,7 +979,7 @@ function initializeFilterCity() { name: cities[0].name } } - if(currentFilterCategory.id === 3) { + if(parseInt(currentFilterCategory.id) === 3) { loadRemoteList(); } } else { @@ -1001,7 +1002,8 @@ function initializeFilterBrands() { from : 0, count : 300, admin_id : id, - token : token + token : token, + lang: userLang }, timeout: 20000, success: function(response) { @@ -1052,7 +1054,6 @@ function onProtocolTypeChange() { function onCategoryChange() { let currentCategoryID = $('#category_id').val(); currentCategory = getCategoryByID(currentCategoryID); - switchCategory(); } @@ -1274,7 +1275,7 @@ function onFallbackRemote() { return; } - if (currentFilterCategory.id === 3) { + if (parseInt(currentFilterCategory.id) === 3) { hintText = i18n.t("page_code.d_hint_fallback_confirm", { lng: userLang }) + selectedRemote.city_name + ' ' + selectedRemote.category_name + ' ' + selectedRemote.protocol + ' ' + selectedRemote.remote + @@ -1298,7 +1299,7 @@ function onDeleteRemote() { popUpHintDialog(i18n.t("page_code.d_hint_common_select_index", { lng: userLang })); return; } - if (currentFilterCategory.id === 3) { + if (parseInt(currentFilterCategory.id) === 3) { hintText = i18n.t("page_code.d_hint_delete_confirm", { lng: userLang }) + selectedRemote.city_name + ' ' + selectedRemote.category_name + ' ' + selectedRemote.protocol + ' ' + selectedRemote.remote + @@ -1329,7 +1330,7 @@ function onVerifyRemote(isPass) { popUpHintDialog(i18n.t("page_code.d_hint_common_select_index", { lng: userLang })); return; } - if (currentFilterCategory.id === 3) { + if (parseInt(currentFilterCategory.id) === 3) { hintText = i18n.t("page_code.d_hint_confirm_to", { lng: userLang }) + passText + selectedRemote.city_name + ' ' + selectedRemote.category_name + ' ' + selectedRemote.protocol + ' ' + @@ -1643,7 +1644,7 @@ function getCategoryByID(categoryID) { let i = 0; for(i = 0; i < g_categories.length; i++) { let category = g_categories[i]; - if (category.id === categoryID) { + if (parseInt(category.id) === parseInt(categoryID)) { return category; } } @@ -1654,7 +1655,7 @@ function getBrandByID(brandID) { let i = 0; for(i = 0; i < g_brands.length; i++) { let brand = g_brands[i]; - if (brand.id === brandID) { + if (parseInt(brand.id) === parseInt(brandID)) { return brand; } } diff --git a/console/web/code/js/operate.js b/console/web/code/js/operate.js index 92737d4..b81d2c1 100644 --- a/console/web/code/js/operate.js +++ b/console/web/code/js/operate.js @@ -4,27 +4,27 @@ */ // web COM socket -var ws = null; -var transferSocketConnected = false; -var serialPortConnected = false; +let ws = null; +let transferSocketConnected = false; +let serialPortConnected = false; // initialize transfer object -var binToTransfer = { +let binToTransfer = { category_id : 0, content : null, length : 0 }; -var keyNames = [ +let keyNames = [ "POWER", "UP", "DOWN", "LEFT", "RIGHT", "OK", "PLUS", "MINUS", "HOME", "BACK", "MENU" ]; -var acPowers = ["ON", "OFF"]; -var acTempBegin = 16; -var acModes = ["Cool", "Heat", "Auto", "Fan", "DEHUMID"]; -var acSpeed = ["Low", "Medium", "High", "Auto"]; -var acSwing = ["ON", "OFF"]; -var acStatus = { +let acPowers = ["ON", "OFF"]; +let acTempBegin = 16; +let acModes = ["Cool", "Heat", "Auto", "Fan", "DEHUMID"]; +let acSpeed = ["Low", "Medium", "High", "Auto"]; +let acSwing = ["ON", "OFF"]; +let acStatus = { power: 0, temp: 8, mode: 0, @@ -32,19 +32,19 @@ var acStatus = { wind_speed: 0 }; -var decodedReceiverTimer = null; -var decodedValue = []; -var decodedReceiving = false; +let decodedReceiverTimer = null; +let decodedValue = []; +let decodedReceiving = false; -var transferState = TRANSFER_STATE_NONE; +let transferState = TRANSFER_STATE_NONE; -var BIN_TRANSFER_BYTE_MAX = 16; +let BIN_TRANSFER_BYTE_MAX = 16; function downloadBin() { - var downloadURL = ""; + let downloadURL = ""; if(null == selectedRemote) { - popUpHintDialog('请先选中一个索引'); + popUpHintDialog(i18n.t("page_code.d_hint_common_select_index", { lng: userLang })); return; } downloadURL = '/irext/int/download_remote_index?remote_index_id='+selectedRemote.id+'&admin_id='+id+'&token='+token; @@ -57,452 +57,4 @@ function downloadBin() { '_blank' ); } -} - -// binary transfer to IR decode chip sets -function onTransferBin() { - if(null == selectedRemote) { - popUpHintDialog('请先选中一个索引'); - return; - } - $('#binary_transfer_dialog').modal({ - backdrop: 'static', - keyboard: false - }) -} - -function onTransferTypeChanged() { - // TODO: -} - -function prepareTransfer() { - if (false == transferSocketConnected) { - ws = new WebSocket('ws://localhost:8301/'); - ws.binaryType = 'arraybuffer'; - - ws.addEventListener('error', function () { - onTransferSocketError(); - }); - - ws.addEventListener('open', function () { - onTransferSocketOpened(); - }); - - ws.addEventListener('close', function () { - onTransferSocketClosed(); - }); - - ws.addEventListener('message', function (data) { - onTransferSocketData(data); - }); - transferSocketConnected = true; - } else { - popUpHintDialog('连接已经建立'); - } -} - -function onTransferSocketError() { - popUpHintDialog('当前的环境不支持 Web COM,请参考 ' + - 'http://https://github.com/strawmanbobi/web-com 获取更多信息'); - updateTransferState(TRANSFER_STATE_NONE, 0, 100); -} - -function onTransferSocketOpened() { - serialPortConnected = true; -} - -function onTransferSocketClosed() { - transferSocketConnected = false; - popUpHintDialog("Web COM 已经关闭"); - updateTransferState(TRANSFER_STATE_NONE, 0, 100); -} - -function onTransferSocketData(e) { - // echo data from peer - if (TRANSFER_STATE_BIN_FETCHED == transferState || - TRANSFER_STATE_BIN_ON_GOING == transferState) { - var array = new Uint8Array(e.data); - if (array[0] == 0x30) { - onTransferResponse(array.slice(1)); - } else if (array[0] == 0x31) { - onCommandResponse(array.slice(1)); - } else { - // might be decode result - console.log('error'); - } - } else if (TRANSFER_STATE_BIN_DONE == transferState) { - var array = new Uint16Array(e.data); - // this is a part of the data chunk of the whole decoded values, concat this - onDecoded(array); - } -} - -function onTransferResponse(data) { - if (TRANSFER_STATE_BIN_FETCHED == transferState || - TRANSFER_STATE_BIN_ON_GOING == transferState) { - // verify if the expected byte index equals '0' - - var index = parseInt(new TextDecoder("utf-8").decode(data)); - updateTransferState(TRANSFER_STATE_BIN_ON_GOING, index, binToTransfer.length); - if (index >= binToTransfer.length) { - updateTransferState(TRANSFER_STATE_BIN_DONE,index, binToTransfer.length); - } else { - sendExpectedData(index); - } - } else { - console.log('invalid transfer state : ' + transferState); - } -} - -function onCommandResponse(data) { - -} - -function onDecoded(array) { - if (decodedReceiverTimer) { - clearTimeout(decodedReceiverTimer); - } - if (false == decodedReceiving) { - // clear receiving buffer - decodedValue = new Uint16Array(array); - } - decodedReceiving = true; - // concat buffer - decodedValue = concatTypedArrays(decodedValue, array); - decodedReceiverTimer = setTimeout(function() { - decodedReceiving = false; - $('#dob_ir_wave_value').val(decodedValue); - }, 200); -} - -function fetchBinary() { - var remoteToTransfer = selectedRemote; - remoteToTransfer.admin_id = id; - remoteToTransfer.token = token; - $.ajax({ - url: '/irext/decode/prepare_transfering_remote_index', - type: 'POST', - dataType: 'json', - data: remoteToTransfer, - timeout: 20000, - success: function (response) { - if(response.status.code == 0) { - onTransferBinFetched(response.entity); - } else { - popUpHintDialog('获取二进制文件失败'); - } - }, - error: function () { - popUpHintDialog('获取二进制文件失败'); - } - }); -} - -function startTransfer() { - if (!ws) { - console.log('invalid transfer socket'); - return; - } - - fetchBinary(); -} - -function startDoB() { - /* - if (TRANSFER_STATE_BIN_DONE != transferState) { - popUpHintDialog("需要先下载二进制码"); - return; - } - */ - $('#binary_transfer_dialog').modal('hide'); - $('#dob_ir_wave_value').val(''); - resetKeyPressInfo(); - $('#dob_dialog').modal({ - backdrop: 'static', - keyboard: false - }); -} - -function quitDob() { - $('#dob_dialog').modal('hide'); -} - -function sendExpectedData(index) { - if (index < 0) { - console.log('expected index error : ' + index + ', abort !!'); - return; - } - if (!ws) { - console.log('invalid transfer socket'); - return; - } - var leftLength = binToTransfer.length - index; - var lengthToSend = 0; - if (leftLength < BIN_TRANSFER_BYTE_MAX) { - lengthToSend = parseInt(leftLength); - } else { - lengthToSend = parseInt(BIN_TRANSFER_BYTE_MAX); - } - var arrayToSend = binToTransfer.content.slice(index, parseInt(index) + parseInt(lengthToSend)); - var binToSend = buildBinaryPacket(arrayToSend); - ws.send(binToSend); -} - -function cancelTransfer() { - // close serial port by closing transfer socket - if (ws) { - ws.close(); - } - serialPortConnected = false; - updateTransferState(TRANSFER_STATE_NONE, 0, 100); - $('#binary_transfer_dialog').modal('hide'); - binToTransfer = { - category_id : 0, - content : null, - length : 0 - }; -} - -function onTransferBinFetched(btt) { - var bin = _base64ToArrayBuffer(btt.bin); - // prepare binary in RAM - binToTransfer = { - category_id : btt.category_id, - // encode binary content into typed array - content : new Uint8Array(bin), - length : bin.byteLength - }; - updateTransferState(TRANSFER_STATE_BIN_FETCHED, 0, 100); - if (false == serialPortConnected) { - popUpHintDialog("连接尚未建立,请先建立连接"); - return; - } - - if (null == binToTransfer || null == binToTransfer.content || 0 == binToTransfer.length || - 0 == binToTransfer.category_id) { - popUpHintDialog("没有获取到有效的编码二进制文件,请重试"); - return; - } - - // after remote binary is fetch, start binary data transfer by clicking 'start' button - var binaryLengthData = buildBinaryLength(binToTransfer.length); - if (null == binaryLengthData) { - console.log('failed to parse binary length, abort !!'); - return; - } - var transferType = binToTransfer.category_id == CATEGORY_AC ? '2' : '1'; - var header = buildSummaryPacket(transferType + binaryLengthData); - ws.send(header); -} - -function updateTransferState(newState, progress, total) { - var progressText = ''; - transferState = newState; - switch (parseInt(newState)) { - case TRANSFER_STATE_NONE: - progressText = '空闲中'; - break; - case TRANSFER_STATE_BIN_FETCHED: - progressText = '二进制文件获得'; - break; - case TRANSFER_STATE_BIN_ON_GOING: - progressText = '发送中: ' + progress + '/' + total; - break; - case TRANSFER_STATE_BIN_DONE: - progressText = '发送完成'; - break; - default: - console.log('transfer state error : ' + newState); - break; - } - - updateProgress(progress, total); - $('#transfer_progress_desc').html(progressText); -} - -function updateProgress(current, total) { - var progress = $("#transfer_progress"); - progress.attr('aria-valuemax', total); - progress.attr('data-transitiongoal', current); - progress.progressbar(); -} - -function buildBinaryLength(lengthInfo) { - try { - var len = parseInt(lengthInfo); - if (len >= 10000) { - console.log('binary size exceeded'); - return null; - } else if (len >= 1000 && len < 10000) { - return lengthInfo; - } else if (len >= 100 && len < 1000) { - return "0" + lengthInfo; - } else if (len >= 10 && len < 100) { - return "00" + lengthInfo; - } else if (len >= 0 && len < 10) { - return "000" + lengthInfo; - } else { - console.log('binary size exceeded'); - return null; - } - } catch (err) { - console.log('error occurred : ' + err); - return null; - } -} - -function buildSummaryPacket(data) { - if (isByteArray(data)) { - return concatTypedArrays(new Uint8Array([0x30]), data); - } else if (isString(data)) { - return '0' + data; - } -} - -function buildBinaryPacket(data) { - if (isByteArray(data)) { - return concatTypedArrays(new Uint8Array([0x31]), data); - } else if (isString(data)) { - return '1' + data; - } else { - console.log('invalid type of bin to send : ' + typeof data + ', ' + data.constructor); - } -} - -function buildCommand(data) { - if (isByteArray(data)) { - return concatTypedArrays(new Uint8Array([0x32]), data); - } else if (isString(data)) { - return '2' + data; - } -} - -function onDoBClick(buttonID) { - if (TRANSFER_STATE_BIN_DONE != transferState) { - popUpHintDialog('需要先下载二进制码'); - return; - } - currentControl.key_id = buttonID.substring(8); - updateKeyPressInfo(currentControl.key_id); - decodeOnBoard(currentControl); -} - -function updateKeyPressInfo(buttonID) { - $('#key_press').html(keyNames[parseInt(buttonID)]); - - if(1 == selectedRemote.category_id && binToTransfer.category_id == CATEGORY_AC) { - $('#ac_status_power').html('AC POWER:' + acPowers[acStatus.power]); - $('#ac_status_mode').html('AC MODE:' + acModes[acStatus.mode]); - $('#ac_status_temp').html('AC TEMP:' + (16 + parseInt(acStatus.temp))); - $('#ac_status_speed').html('WIND SPEED:' + acSpeed[acStatus.wind_speed]); - $('#ac_status_swing').html('SWING:' + acSwing[acStatus.wind_dir]); - } else if (2 == selectedRemote.category_id && binToTransfer.category_id != CATEGORY_AC) { - $('#ac_status_power').html(''); - $('#ac_status_mode').html(''); - $('#ac_status_temp').html(''); - $('#ac_status_speed').html(''); - $('#ac_status_swing').html(''); - } -} - -function resetKeyPressInfo() { - $('#key_press').html(''); - $('#ac_status_power').html(''); - $('#ac_status_mode').html(''); - $('#ac_status_temp').html(''); - $('#ac_status_speed').html(''); - $('#ac_status_swing').html(''); -} - -function decodeOnBoard(control) { - var command = ''; - if (!ws) { - console.log('invalid command socket'); - return; - } - - var transferType = binToTransfer.category_id == CATEGORY_AC ? '2' : '1'; - - if(1 == selectedRemote.category_id && binToTransfer.category_id == CATEGORY_AC) { - // decode as AC - acStatus = { - power: '0', - temp: '8', - mode: '0', - wind_dir: '0', - wind_speed: '0' - }; - control.ac_status = acStatus; - var acFunction = '0'; - switch(control.key_id) { - case '0': - // power key --> change power - acFunction = '1'; - break; - case '1': - // up key --> change wind speed - acFunction = '5'; - break; - case '2': - // down key --> change wind dir - acFunction = '6'; - break; - case '4': - // right key --> change mode - acFunction = '2'; - break; - case '5': - // center key --> fix wind dir - acFunction = '7'; - break; - case '6': - // plus key --> temp up - acFunction = '3'; - break; - case '7': - // minus key --> temp down - acFunction = '4'; - break; - - default: - return; - } - command = buildCommand(transferType + acFunction + control.ac_status.power + - control.ac_status.temp + control.ac_status.mode + - control.ac_status.wind_dir + control.ac_status.wind_speed); - } else { - // decode as TV - command = buildCommand(transferType + control.key_id); - } - - ws.send(command); -} - -function _base64ToArrayBuffer(base64) { - var binary_string = window.atob(base64); - var len = binary_string.length; - var bytes = new Uint8Array(len); - for (var i = 0; i < len; i++) { - bytes[i] = binary_string.charCodeAt(i); - } - return bytes.buffer; -} - -function ab2hex(buffer) { // buffer is an ArrayBuffer - return Array.prototype.map.call(new Uint8Array(buffer), x => '0x' + ('00' + x.toString(16)).slice(-2)).join(','); -} - -function concatTypedArrays(a, b) { - var c = new (a.constructor)(a.length + b.length); - c.set(a, 0); - c.set(b, a.length); - return c; -} - -function isByteArray(obj) { - return (typeof obj == 'object') && obj.constructor == Uint8Array; -} - -function isString(obj) { - return (typeof obj == 'string') && obj.constructor == String; } \ No newline at end of file diff --git a/console/work_unit/authentication_logic.js b/console/work_unit/authentication_logic.js index 9205d6a..08f2235 100644 --- a/console/work_unit/authentication_logic.js +++ b/console/work_unit/authentication_logic.js @@ -5,39 +5,39 @@ require('../mini_poem/configuration/constants'); -var AdminAuth = require('../authentication/admin_auth.js'); -var RequestSender = require('../mini_poem/http/request.js'); +let AdminAuth = require('../authentication/admin_auth.js'); +let RequestSender = require('../mini_poem/http/request.js'); -var ErrorCode = require('../constants/error_code.js'); -var logger = require('../mini_poem/logging/logger4js').helper; +let ErrorCode = require('../constants/error_code.js'); +let logger = require('../mini_poem/logging/logger4js').helper; -var errorCode = new ErrorCode(); +let errorCode = new ErrorCode(); -var adminAuth = new AdminAuth(REDIS_HOST, REDIS_PORT, null, REDIS_PASSWORD); +let adminAuth = new AdminAuth(REDIS_HOST, REDIS_PORT, null, REDIS_PASSWORD); -var SIGN_IN_SERVICE = "/irext/certificate/admin_login"; -var CHANGE_PASSWORD_SERVICE = "/irext/certificate/change_pw"; +let SIGN_IN_SERVICE = "/irext/certificate/admin_login"; +let CHANGE_PASSWORD_SERVICE = "/irext/certificate/change_pw"; exports.adminLoginWorkUnit = function (userName, password, callback) { - var queryParams = new Map(); + let queryParams = new Map(); - var requestSender = + let requestSender = new RequestSender(EXTERNAL_SERVER_ADDRESS, EXTERNAL_SERVER_PORT, SIGN_IN_SERVICE, queryParams); - var signinInfo = { + let signinInfo = { user_name : userName, password : password }; requestSender.sendPostRequest(signinInfo, function(signInRequestErr, signInResponse) { - if (signInRequestErr == errorCode.SUCCESS.code && null != signInResponse) { - var resp = JSON.parse(signInResponse); - if (undefined != resp.entity) { - var admin = resp.entity; - var token, + if (signInRequestErr === errorCode.SUCCESS.code && null != signInResponse) { + let resp = JSON.parse(signInResponse); + if (undefined !== resp.entity) { + let admin = resp.entity; + let token, key, ttl = 24 * 60 * 60 * 14, timeStamp, @@ -46,11 +46,11 @@ exports.adminLoginWorkUnit = function (userName, password, callback) { token = admin.token; key = "admin_" + admin.id; adminAuth.setAuthInfo(key, token, ttl, function(setAdminAuthErr) { - if (errorCode.SUCCESS.code == setAdminAuthErr.code) { + if (errorCode.SUCCESS.code === setAdminAuthErr.code) { key = "admin_name_" + admin.id; name = admin.user_name; adminAuth.setAuthInfo(key, name, ttl, function(setAdminNameErr) { - if (errorCode.SUCCESS.code == setAdminNameErr.code) { + if (errorCode.SUCCESS.code === setAdminNameErr.code) { admin.token = token; } callback(setAdminNameErr, admin); @@ -68,9 +68,9 @@ exports.adminLoginWorkUnit = function (userName, password, callback) { }; exports.verifyTokenWorkUnit = function (id, token, callback) { - var key = "admin_" + id; + let key = "admin_" + id; adminAuth.validateAuthInfo(key, token, function(validateAdminAuthErr, result) { - if (validateAdminAuthErr.code != errorCode.SUCCESS.code) { + if (validateAdminAuthErr.code !== errorCode.SUCCESS.code) { logger.info("token validation failed"); } callback(validateAdminAuthErr); @@ -78,12 +78,12 @@ exports.verifyTokenWorkUnit = function (id, token, callback) { }; exports.verifyTokenWithPermissionWorkUnit = function (id, token, permissions, callback) { - var key = "admin_" + id; + let key = "admin_" + id; adminAuth.validateAuthInfo(key, token, function(validateAdminAuthErr, result) { - if (validateAdminAuthErr.code == errorCode.SUCCESS.code) { + if (validateAdminAuthErr.code === errorCode.SUCCESS.code) { logger.info("token validation successfully"); - if (undefined != result && null != result && "" != result) { - if (result.indexOf(permissions) != -1) { + if (undefined !== result && null !== result && "" !== result) { + if (result.indexOf(permissions) !== -1) { callback(errorCode.SUCCESS); } else { logger.info("permission do not match"); @@ -98,23 +98,23 @@ exports.verifyTokenWithPermissionWorkUnit = function (id, token, permissions, ca }; exports.sendChangePwMailWorkUnit = function (userName, callbackURL, callback) { - var queryParams = new Map(); + let queryParams = new Map(); - var requestSender = + let requestSender = new RequestSender(EXTERNAL_SERVER_ADDRESS, EXTERNAL_SERVER_PORT, CHANGE_PASSWORD_SERVICE, queryParams); - var userInfo = { + let userInfo = { user_name : userName, callback_url :callbackURL }; requestSender.sendPostRequest(userInfo, function(changePwRequestErr, changePwResponse) { - if (changePwRequestErr == errorCode.SUCCESS.code && null != changePwResponse) { - var resp = JSON.parse(changePwResponse); - if (undefined != resp.status && errorCode.SUCCESS == resp.status) { + if (changePwRequestErr === errorCode.SUCCESS.code && null != changePwResponse) { + let resp = JSON.parse(changePwResponse); + if (undefined !== resp.status && errorCode.SUCCESS === resp.status) { callback(errorCode.SUCCESS); } else { callback(errorCode.FAILED); diff --git a/console/work_unit/code_manage_logic.js b/console/work_unit/code_manage_logic.js index 1c47f75..2e8e173 100644 --- a/console/work_unit/code_manage_logic.js +++ b/console/work_unit/code_manage_logic.js @@ -5,209 +5,341 @@ // system inclusion fs = require('fs'); -var crypto = require('crypto'); +let crypto = require('crypto'); // global inclusion require('../mini_poem/configuration/constants'); -var orm = require('orm'); -var AdminAuth = require('../authentication/admin_auth.js'); -var PythonCaller = require('../mini_poem/external/python_caller'); +let orm = require('orm'); +let AdminAuth = require('../authentication/admin_auth.js'); +let PythonCaller = require('../mini_poem/external/python_caller'); -var Category = require('../model/category_dao.js'); -var Brand = require('../model/brand_dao.js'); -var IRProtocol = require('../model/ir_protocol_dao.js'); -var City = require('../model/city_dao.js'); -var RemoteIndex = require('../model/remote_index_dao.js'); -var StbOperator = require('../model/stb_operator_dao.js'); -var CollectRemote = require('../model/collect_remote_dao.js'); +let Category = require('../model/category_dao.js'); +let Brand = require('../model/brand_dao.js'); +let IRProtocol = require('../model/ir_protocol_dao.js'); +let City = require('../model/city_dao.js'); +let RemoteIndex = require('../model/remote_index_dao.js'); +let StbOperator = require('../model/stb_operator_dao.js'); +let CollectRemote = require('../model/collect_remote_dao.js'); -var RequestSender = require('../mini_poem/http/request.js'); -var Map = require('../mini_poem/mem/map.js'); +let RequestSender = require('../mini_poem/http/request.js'); +let Map = require('../mini_poem/mem/map.js'); -var Enums = require('../constants/enums.js'); -var ErrorCode = require('../constants/error_code.js'); -var Categories = require('../constants/remote_categories'); +let Enums = require('../constants/enums.js'); +let ErrorCode = require('../constants/error_code.js'); +let Categories = require('../constants/remote_categories'); -var logger = require('../mini_poem/logging/logger4js').helper; +let logger = require('../mini_poem/logging/logger4js').helper; -var async = require('async'); +let async = require('async'); -var enums = new Enums(); -var errorCode = new ErrorCode(); +let enums = new Enums(); +let errorCode = new ErrorCode(); -var adminAuth = new AdminAuth(REDIS_HOST, REDIS_PORT, null, REDIS_PASSWORD); +let adminAuth = new AdminAuth(REDIS_HOST, REDIS_PORT, null, REDIS_PASSWORD); // relative XML file path -var PROTOCOL_PATH = "protocol"; +let PROTOCOL_PATH = "protocol"; -var contributeProtocolService = "/irext-server/contribute/contribute_protocol"; -var contributeBrandsService = "/irext-server/contribution/contribute_brands"; -var contributeRemoteIndexesService = "/irext-server/contribution/contribute_remote_indexes"; +let contributeProtocolService = "/irext-server/contribute/contribute_protocol"; +let contributeBrandsService = "/irext-server/contribution/contribute_brands"; +let contributeRemoteIndexesService = "/irext-server/contribution/contribute_remote_indexes"; -exports.listCategoriesWorkUnit = function (from, count, callback) { - var conditions = { +exports.listCategoriesWorkUnit = function (lang, from, count, callback) { + let conditions = { status: enums.ITEM_VALID }; - Category.listRemoteCategories(conditions, from, count, "id", function(getCategoryByIDErr, categories) { - callback(getCategoryByIDErr, categories); + + let language = "en-US"; + if (undefined !== lang && null !== lang && -1 !== lang.indexOf("zh-CN")) { + language = "zh-CN"; + } + Category.listRemoteCategories(conditions, from, count, "id", function (listCategoriesErr, categories) { + if (language === "en-US" && listCategoriesErr.code === errorCode.SUCCESS.code && null !== categories) { + // cover field 'name' with 'name_en' + for (let i = 0; i < categories.length; i++) { + if (parseInt(categories[i].id) === enums.CATEGORY_STB) { + categories.splice(i, 1); + i--; + continue; + } + categories[i].name = categories[i].name_en; + } + } + callback(listCategoriesErr, categories); }); }; -exports.listBrandsWorkUnit = function (categoryID, from, count, callback) { - var conditions = { +exports.listBrandsWorkUnit = function (lang, categoryID, from, count, callback) { + let conditions = { status: orm.gt(parseInt(enums.ITEM_INVALID)), category_id: categoryID }; - Brand.listBrands(conditions, from, count, "priority", function(getBrandByIDErr, brands) { - callback(getBrandByIDErr, brands); + + let language = "en-US"; + if (undefined !== lang && null !== lang && -1 !== lang.indexOf("zh-CN")) { + language = "zh-CN"; + } + Brand.listBrands(conditions, from, count, "priority", function (listBrandsErr, brands) { + if (language === "en-US" && listBrandsErr.code === errorCode.SUCCESS.code && null !== brands) { + // cover field 'name' with 'name_en' + for (let i = 0; i < brands.length; i++) { + brands[i].name = brands[i].name_en; + } + } + callback(listBrandsErr, brands); }); }; exports.listUnpublishedBrandsWorkUnit = function (callback) { - var conditions = { + let conditions = { status: enums.ITEM_VERIFY }; - Brand.listBrands(conditions, 0, 100, "priority", function(getBrandByIDErr, brands) { + Brand.listBrands(conditions, 0, 100, "priority", function (getBrandByIDErr, brands) { callback(getBrandByIDErr, brands); }); }; -exports.listProvincesWorkUnit = function (callback) { - City.listProvinces(function(listProvincesErr, provinces) { +exports.listProvincesWorkUnit = function (lang, callback) { + let language = "en-US"; + if (undefined !== lang && null !== lang && -1 !== lang.indexOf("zh-CN")) { + language = "zh-CN"; + } + City.listProvinces(function (listProvincesErr, provinces) { + if (language !== "zh-CN") { + provinces = []; + } callback(listProvincesErr, provinces); }); }; -exports.listCitiesWorkUnit = function (provincePrefix, callback) { - City.listCities(provincePrefix, function(listCitiesErr, cities) { +exports.listCitiesWorkUnit = function (lang, provincePrefix, callback) { + let language = "en-US"; + if (undefined !== lang && null !== lang && -1 !== lang.indexOf("zh-CN")) { + language = "zh-CN"; + } + City.listCities(provincePrefix, function (listCitiesErr, cities) { + if (language !== "zh-CN") { + cities = []; + } callback(listCitiesErr, cities); }); }; -exports.listOperatorsWorkUnit = function (cityCode, from, count, callback) { - var conditions = { +exports.listOperatorsWorkUnit = function (lang, cityCode, from, count, callback) { + let language = "en-US"; + if (undefined !== lang && null !== lang && -1 !== lang.indexOf("zh-CN")) { + language = "zh-CN"; + } + let conditions = { city_code: cityCode, status: enums.ITEM_VALID }; - StbOperator.listStbOperators(conditions, from, count, "id", function(listOperatorsErr, operators) { + StbOperator.listStbOperators(conditions, from, count, "id", function (listOperatorsErr, operators) { + if (language !== "zh-CN") { + operators = []; + } callback(listOperatorsErr, operators); }); }; -exports.listRemoteIndexesWorkUnit = function (categoryID, brandID, cityCode, operatorID, from, count, callback) { - var conditions; - var listCollectRemotesConditions; +exports.listRemoteIndexesWorkUnit = function (lang, categoryID, brandID, cityCode, operatorID, from, count, callback) { + let language = "en-US"; + let categoryNameEn = ""; + let brandNameEn = ""; + let conditions; + let listCollectRemotesConditions; - if (parseInt(categoryID) === enums.CATEGORY_STB) { - if (null == operatorID) { - conditions = { - category_id: categoryID, - city_code: cityCode, - status: orm.gt(enums.ITEM_INVALID) - }; - } else { - conditions = { - category_id: categoryID, - city_code: cityCode, - operator_id: operatorID, - status: orm.gt(enums.ITEM_INVALID) - }; - } - RemoteIndex.listRemoteIndexes(conditions, from, count, "priority", - function(listRemoteIndexesErr, remoteIndexes) { - for (var i = 0; i < remoteIndexes.length; i++) { - remoteIndexes[i].para = 0; - } - if (!operatorID) { - listCollectRemotesConditions = { - category_id: parseInt(categoryID), - city_code: cityCode, - status: parseInt(enums.COLLECT_REMOTE_STATUS_CONFIRMED) - }; - } else { - listCollectRemotesConditions = { - category_id: parseInt(categoryID), - city_code: cityCode, - operator_id: operatorID, - status: parseInt(enums.COLLECT_REMOTE_STATUS_CONFIRMED) - }; - } - CollectRemote.listCollectRemotes(listCollectRemotesConditions, - from, count, "update_time", function(listCollectRemotesErr, collectRemotes) { - if (null != collectRemotes && collectRemotes.length > 0) { - for (var i = 0; i < collectRemotes.length; i++) { - collectRemotes[i].para = 0; - } - } - remoteIndexes.push.apply(remoteIndexes, collectRemotes); - callback(listRemoteIndexesErr, remoteIndexes); - }); - }); - } else if (parseInt(categoryID) === enums.CATEGORY_AC || - parseInt(categoryID) === enums.CATEGORY_TV || - parseInt(categoryID) === enums.CATEGORY_NW || - parseInt(categoryID) === enums.CATEGORY_IPTV || - parseInt(categoryID) === enums.CATEGORY_DVD || - parseInt(categoryID) === enums.CATEGORY_FAN || - parseInt(categoryID) === enums.CATEGORY_PROJECTOR || - parseInt(categoryID) === enums.CATEGORY_STEREO || - parseInt(categoryID) === enums.CATEGORY_LIGHT_BULB || - parseInt(categoryID) === enums.CATEGORY_BSTB || - parseInt(categoryID) === enums.CATEGORY_CLEANING_ROBOT || - parseInt(categoryID) === enums.CATEGORY_AIR_CLEANER || - parseInt(categoryID) === enums.CATEGORY_DYSON) { - conditions = { - category_id: categoryID, - brand_id: brandID, - status: orm.gt(enums.ITEM_INVALID) - }; - RemoteIndex.listRemoteIndexes(conditions, from, count, "priority", - function(listRemoteIndexesErr, remoteIndexes) { - for (var i = 0; i < remoteIndexes.length; i++) { - remoteIndexes[i].para = 0; - } - // append IRIS indexes - listCollectRemotesConditions = { - category_id: parseInt(categoryID), - brand_id: parseInt(brandID), - status: parseInt(enums.COLLECT_REMOTE_STATUS_CONFIRMED) - } - CollectRemote.listCollectRemotes(listCollectRemotesConditions, - from, count, "update_time", - function(listCollectRemotesErr, collectRemotes) { - if (null != collectRemotes && collectRemotes.length > 0) { - for (var i = 0; i < collectRemotes.length; i++) { - collectRemotes[i].para = 1; - } - } - remoteIndexes.push.apply(remoteIndexes, collectRemotes); - callback(listRemoteIndexesErr, remoteIndexes); - }); - }); - } else { - callback(errorCode.INVALID_CATEGORY, null); + if (undefined !== lang && null !== lang && -1 !== lang.indexOf("zh-CN")) { + language = "zh-CN"; } -}; - -exports.searchRemoteIndexesWorkUnit = function (remoteMap, from, count, callback) { - var conditions = { - remote_map: orm.like("%" + remoteMap + "%") - }; - - RemoteIndex.listRemoteIndexes(conditions, from, count, "priority", function(listRemoteIndexesErr, remoteIndexes) { - callback(listRemoteIndexesErr, remoteIndexes); + Category.getCategoryByID(categoryID, function(getCategoryByIDErr, category) { + if (null != category) { + categoryNameEn = category.name_en; + if (parseInt(categoryID) === enums.CATEGORY_AC || + parseInt(categoryID) === enums.CATEGORY_TV || + parseInt(categoryID) === enums.CATEGORY_NW || + parseInt(categoryID) === enums.CATEGORY_IPTV || + parseInt(categoryID) === enums.CATEGORY_DVD || + parseInt(categoryID) === enums.CATEGORY_FAN || + parseInt(categoryID) === enums.CATEGORY_PROJECTOR || + parseInt(categoryID) === enums.CATEGORY_STEREO || + parseInt(categoryID) === enums.CATEGORY_LIGHT_BULB || + parseInt(categoryID) === enums.CATEGORY_BSTB || + parseInt(categoryID) === enums.CATEGORY_CLEANING_ROBOT || + parseInt(categoryID) === enums.CATEGORY_AIR_CLEANER || + parseInt(categoryID) === enums.CATEGORY_DYSON) { + Brand.getBrandByID(brandID, function (getBrandByIDErr, brand) { + if (null != brand) { + brandNameEn = brand.name_en; + conditions = { + category_id: categoryID, + brand_id: brandID, + status: orm.gt(enums.ITEM_INVALID) + }; + RemoteIndex.listRemoteIndexes(conditions, from, count, "priority", + function(listRemoteIndexesErr, remoteIndexes) { + if (listRemoteIndexesErr.code === errorCode.SUCCESS.code && + null !== remoteIndexes) { + for (let i = 0; i < remoteIndexes.length; i++) { + if (language === "en-US") { + // cover field 'name' with 'name_en' + remoteIndexes[i].category_name = categoryNameEn; + remoteIndexes[i].brand_name = brandNameEn; + } + remoteIndexes[i].para = 0; + } + } + // append IRIS indexes + listCollectRemotesConditions = { + category_id: parseInt(categoryID), + brand_id: parseInt(brandID), + status: parseInt(enums.COLLECT_REMOTE_STATUS_CONFIRMED) + } + CollectRemote.listCollectRemotes(listCollectRemotesConditions, + from, count, "update_time", function(listCollectRemotesErr, collectRemotes) { + if (null != collectRemotes && collectRemotes.length > 0) { + for (let i = 0; i < collectRemotes.length; i++) { + collectRemotes[i].para = 1; + } + } + remoteIndexes.push.apply(remoteIndexes, collectRemotes); + callback(listRemoteIndexesErr, remoteIndexes); + }); + }); + } else { + logger.error("brand is invalid : " + brandID); + callback(errorCode.INVALID_BRAND, null); + } + }); + } else if (parseInt(categoryID) === enums.CATEGORY_STB) { + if (!operatorID) { + conditions = { + category_id: categoryID, + city_code: cityCode, + status: orm.gt(enums.ITEM_INVALID) + }; + } else { + conditions = { + category_id: categoryID, + city_code: cityCode, + operator_id: operatorID, + status: orm.gt(enums.ITEM_INVALID) + }; + } + RemoteIndex.listRemoteIndexes(conditions, from, count, "priority", + function(listRemoteIndexesErr, remoteIndexes) { + for (let i = 0; i < remoteIndexes.length; i++) { + if (language === "en-US") { + // cover field 'name' with 'name_en' + remoteIndexes[i].category_name = categoryNameEn; + remoteIndexes[i].brand_name = brandNameEn; + } + remoteIndexes[i].para = 0; + } + // append IRIS indexes + if (!operatorID) { + listCollectRemotesConditions = { + category_id: parseInt(categoryID), + city_code: cityCode, + status: parseInt(enums.COLLECT_REMOTE_STATUS_CONFIRMED) + }; + } else { + listCollectRemotesConditions = { + category_id: parseInt(categoryID), + city_code: cityCode, + operator_id: operatorID, + status: parseInt(enums.COLLECT_REMOTE_STATUS_CONFIRMED) + }; + } + CollectRemote.listCollectRemotes(listCollectRemotesConditions, + from, count, "update_time", function(listCollectRemotesErr, collectRemotes) { + if (null != collectRemotes && collectRemotes.length > 0) { + for (let i = 0; i < collectRemotes.length; i++) { + collectRemotes[i].para = 0; + } + } + remoteIndexes.push.apply(remoteIndexes, collectRemotes); + callback(listRemoteIndexesErr, remoteIndexes); + }); + }); + } else { + callback(errorCode.INVALID_CATEGORY, null); + } + } else { + callback(errorCode.INVALID_CATEGORY, null); + } }); }; -exports.downloadRemoteBinCachedWorkUnit = function(remoteIndexID, callback) { - RemoteIndex.getRemoteIndexByID(remoteIndexID, function(getRemoteIndexErr, remoteIndex) { - if (errorCode.SUCCESS.code == getRemoteIndexErr.code && null != remoteIndex) { - var fileName = "irda_" + remoteIndex.protocol + "_" + remoteIndex.remote + ".bin"; - var localBinFileName = FILE_TEMP_PATH + "/" + fileName; +exports.searchRemoteIndexesWorkUnit = function (lang, remoteMap, from, count, callback) { + let language = "en-US"; + if (undefined !== lang && null !== lang && -1 !== lang.indexOf("zh-CN")) { + language = "zh-CN"; + } + let remoteIndexCollection = []; - var error = errorCode.SUCCESS; + let conditions = { + remote_map: orm.like("%" + remoteMap + "%") + }; - fs.exists(localBinFileName, function(exists) { + RemoteIndex.listRemoteIndexes(conditions, from, count, "priority", + function(listRemoteIndexesErr, remoteIndexes) { + if (language === "en-US") { + async.eachSeries(remoteIndexes, function (remoteIndex, innerCallback) { + // handle i18n for en-US + let categoryID = remoteIndex.category_id; + Category.getCategoryByID(categoryID, function(getCategoryErr, category) { + if (errorCode.SUCCESS.code === getCategoryErr.code && null != category) { + if (parseInt(categoryID) === enums.CATEGORY_AC || + parseInt(categoryID) === enums.CATEGORY_TV || + parseInt(categoryID) === enums.CATEGORY_NW || + parseInt(categoryID) === enums.CATEGORY_IPTV || + parseInt(categoryID) === enums.CATEGORY_DVD || + parseInt(categoryID) === enums.CATEGORY_FAN || + parseInt(categoryID) === enums.CATEGORY_PROJECTOR || + parseInt(categoryID) === enums.CATEGORY_STEREO || + parseInt(categoryID) === enums.CATEGORY_LIGHT_BULB || + parseInt(categoryID) === enums.CATEGORY_BSTB || + parseInt(categoryID) === enums.CATEGORY_CLEANING_ROBOT || + parseInt(categoryID) === enums.CATEGORY_AIR_CLEANER || + parseInt(categoryID) === enums.CATEGORY_DYSON) { + remoteIndex.category_name = category.name_en; + let brandID = remoteIndex.brand_id; + Brand.getBrandByID(brandID, function(getBrandErr, brand) { + if (errorCode.SUCCESS.code === getBrandErr.code && null != brand) { + remoteIndex.brand_name = brand.name_en; + remoteIndexCollection.push(remoteIndex); + innerCallback(); + } else { + remoteIndexCollection.push(remoteIndex); + innerCallback(); + } + }); + } else if (parseInt(categoryID) === enums.CATEGORY_STB) { + // do not add STB in en-US language case + } + } else { + innerCallback(); + } + }); + }, function (err) { + callback(listRemoteIndexesErr, remoteIndexCollection); + }); + } else { + callback(listRemoteIndexesErr, remoteIndexes); + } + }); +}; + +exports.downloadRemoteBinCachedWorkUnit = function (remoteIndexID, callback) { + RemoteIndex.getRemoteIndexByID(remoteIndexID, function (getRemoteIndexErr, remoteIndex) { + if (errorCode.SUCCESS.code === getRemoteIndexErr.code && null != remoteIndex) { + let fileName = "irda_" + remoteIndex.protocol + "_" + remoteIndex.remote + ".bin"; + let localBinFileName = FILE_TEMP_PATH + "/" + fileName; + + let error = errorCode.SUCCESS; + + fs.exists(localBinFileName, function (exists) { if (exists) { logger.info("file " + localBinFileName + " already exists, serve directly"); callback(error, localBinFileName); @@ -225,59 +357,59 @@ exports.downloadRemoteBinCachedWorkUnit = function(remoteIndexID, callback) { }; exports.listUnpublishedRemoteIndexesWorkUnit = function (callback) { - var conditions = { + let conditions = { status: enums.ITEM_PASS }; - RemoteIndex.listRemoteIndexes(conditions, 0, 1000, "priority", function(listRemoteIndexesErr, remoteIndexes) { + RemoteIndex.listRemoteIndexes(conditions, 0, 1000, "priority", function (listRemoteIndexesErr, remoteIndexes) { callback(listRemoteIndexesErr, remoteIndexes); }); }; exports.listIRProtocolsWorkUnit = function (from, count, callback) { - var conditions = { + let conditions = { status: orm.gt(enums.ITEM_INVALID) }; - IRProtocol.listIRProtocols(conditions, from, count, "name", function(listIRProtocolsErr, IRProtocols) { + IRProtocol.listIRProtocols(conditions, from, count, "name", function (listIRProtocolsErr, IRProtocols) { callback(listIRProtocolsErr, IRProtocols); }); }; -exports.createRemoteIndexWorkUnit = function(remoteIndex, filePath, contentType, adminID, callback) { +exports.createRemoteIndexWorkUnit = function (remoteIndex, filePath, contentType, adminID, callback) { ////////////////////////////////////// // step 1, rename input remote xml file - var find = '\\\\'; - var re = new RegExp(find, 'g'); - var unixFilePath = filePath.replace(re, '/'); - var lios = unixFilePath.lastIndexOf('/'); - var fileDir = unixFilePath.substring(0, lios); - var subCate = remoteIndex.sub_cate; - var categoryID = remoteIndex.category_id; - var remoteDir = ""; - var remoteXMLFilePath; - var remoteBinFilePath; - var protocolPath; - var outputPath; - var outputFilePath; - var newRemoteIndex; - var newACRemoteNumber; - var tagType; - var contributor = ""; - var protocolFileName = ""; - var localProtocolFileName = ""; + let find = '\\\\'; + let re = new RegExp(find, 'g'); + let unixFilePath = filePath.replace(re, '/'); + let lios = unixFilePath.lastIndexOf('/'); + let fileDir = unixFilePath.substring(0, lios); + let subCate = remoteIndex.sub_cate; + let categoryID = remoteIndex.category_id; + let remoteDir = ""; + let remoteXMLFilePath; + let remoteBinFilePath; + let protocolPath; + let outputPath; + let outputFilePath; + let newRemoteIndex; + let newACRemoteNumber; + let tagType; + let contributor = ""; + let protocolFileName = ""; + let localProtocolFileName = ""; - var pythonRuntimeDir = null, + let pythonRuntimeDir = null, pythonFile = null, userArgs = []; // verify admin - var key = "admin_name_" + adminID; - adminAuth.getAuthInfo(key, function(getAdminAuthErr, result) { - if (errorCode.SUCCESS.code == getAdminAuthErr.code && null != result) { + let key = "admin_name_" + adminID; + adminAuth.getAuthInfo(key, function (getAdminAuthErr, result) { + if (errorCode.SUCCESS.code === getAdminAuthErr.code && null != result) { contributor = result; // begin creating remote index - switch(parseInt(categoryID)) { + switch (parseInt(categoryID)) { case enums.CATEGORY_AC: pythonFile = "ir_status_encode.py"; break; @@ -306,7 +438,7 @@ exports.createRemoteIndexWorkUnit = function(remoteIndex, filePath, contentType, pythonFile); // process xml source file and source remote indexes - if (parseInt(categoryID) == enums.CATEGORY_AC) { + if (parseInt(categoryID) === enums.CATEGORY_AC) { // TAG FORMAT encode tagType = "new_ac"; remoteXMLFilePath = fileDir + "/" + remoteIndex.remote_name + ".xml"; @@ -322,8 +454,8 @@ exports.createRemoteIndexWorkUnit = function(remoteIndex, filePath, contentType, userArgs.push(fileDir + "/"); pythonCaller = new PythonCaller(); try { - pythonCaller.call(pythonRuntimeDir, pythonFile, userArgs, function(remoteGenErr, genResult) { - if (errorCode.SUCCESS.code == remoteGenErr) { + pythonCaller.call(pythonRuntimeDir, pythonFile, userArgs, function (remoteGenErr, genResult) { + if (errorCode.SUCCESS.code === remoteGenErr) { ////////////////////////////////////// // step 3, if successfully created tag binary file, upload binary logger.info("remote " + remoteIndex.remote_name + " has successfully been generated"); @@ -333,7 +465,7 @@ exports.createRemoteIndexWorkUnit = function(remoteIndex, filePath, contentType, outputFilePath = outputPath + "/irda_" + tagType + "_" + newACRemoteNumber + ".bin"; logger.info("final tag binary output file = " + outputFilePath); - fs.readFile(outputFilePath, function(readFileErr, fileData) { + fs.readFile(outputFilePath, function (readFileErr, fileData) { if (readFileErr) { logger.error("read remote code binary file error : " + readFileErr); callback(errorCode.FAILED, null); @@ -343,17 +475,17 @@ exports.createRemoteIndexWorkUnit = function(remoteIndex, filePath, contentType, ////////////////////////////////////// // step 3.5, check if this remote index is already // contained in remote index list by binary - var fileHash = checksum(fileData); + let fileHash = checksum(fileData); logger.info("hash of binary file = " + fileHash); - var conditions = { + let conditions = { category_id: remoteIndex.category_id, brand_id: remoteIndex.brand_id, binary_md5: fileHash }; RemoteIndex.findRemoteIndexByCondition(conditions, - function(findRemoteIndexesErr, remoteIndexes) { - if (errorCode.SUCCESS.code == findRemoteIndexesErr.code && + function (findRemoteIndexesErr, remoteIndexes) { + if (errorCode.SUCCESS.code === findRemoteIndexesErr.code && null != remoteIndexes && remoteIndexes.length > 0) { logger.info("this remote is duplicated by binary value"); callback(errorCode.DUPLICATED_REMOTE_CODE, null); @@ -379,7 +511,7 @@ exports.createRemoteIndexWorkUnit = function(remoteIndex, filePath, contentType, }; // see if this remote index is already in database - var conditions = { + let conditions = { //category_id: remoteIndex.category_id, //brand_id: remoteIndex.brand_id, protocol: tagType, @@ -388,8 +520,8 @@ exports.createRemoteIndexWorkUnit = function(remoteIndex, filePath, contentType, }; RemoteIndex.findRemoteIndexByCondition(conditions, - function(findRemoteIndexErr, remoteIndexes) { - if(errorCode.SUCCESS.code == findRemoteIndexErr.code && + function (findRemoteIndexErr, remoteIndexes) { + if (errorCode.SUCCESS.code === findRemoteIndexErr.code && remoteIndexes && remoteIndexes.length > 0) { logger.info("remote index already exists"); @@ -397,7 +529,7 @@ exports.createRemoteIndexWorkUnit = function(remoteIndex, filePath, contentType, callback(errorCode.FAILED, null); } else { RemoteIndex.createRemoteIndex(newRemoteIndex, - function(createRemoteIndexErr, createdRemoteIndex) { + function (createRemoteIndexErr, createdRemoteIndex) { callback(createRemoteIndexErr, createdRemoteIndex); }); } @@ -437,10 +569,10 @@ exports.createRemoteIndexWorkUnit = function(remoteIndex, filePath, contentType, ////////////////////////////////////// // step 3, try executing remote encoding script - var pythonCaller = new PythonCaller(); + let pythonCaller = new PythonCaller(); try { - pythonCaller.call(pythonRuntimeDir, pythonFile, userArgs, function(remoteGenErr, genResult) { - if(errorCode.SUCCESS.code == remoteGenErr) { + pythonCaller.call(pythonRuntimeDir, pythonFile, userArgs, function (remoteGenErr, genResult) { + if (errorCode.SUCCESS.code === remoteGenErr) { ////////////////////////////////////// // step 4, try executing merge script @@ -459,121 +591,121 @@ exports.createRemoteIndexWorkUnit = function(remoteIndex, filePath, contentType, userArgs.push(remoteBinFilePath); userArgs.push(outputPath); pythonCaller.call(pythonRuntimeDir, pythonFile, userArgs, - function(remoteMergeErr, mergeResult) { - logger.info("merge protocol error = " + remoteMergeErr); - if(errorCode.SUCCESS.code == remoteMergeErr) { - outputFilePath = outputPath + "/irda_" + remoteIndex.protocol_name + "_" + - remoteIndex.remote_name + ".bin"; - logger.info("final output file = " + outputFilePath); + function (remoteMergeErr, mergeResult) { + logger.info("merge protocol error = " + remoteMergeErr); + if (errorCode.SUCCESS.code === remoteMergeErr) { + outputFilePath = outputPath + "/irda_" + remoteIndex.protocol_name + "_" + + remoteIndex.remote_name + ".bin"; + logger.info("final output file = " + outputFilePath); - fs.readFile(outputFilePath, function(readFileErr, fileData) { - if (readFileErr) { - logger.error("read remote code binary file error : " + readFileErr); - callback(errorCode.FAILED, null); - } else { - logger.info("read remote binary file successfully, " + - "file size = " + fileData.length); - ////////////////////////////////////// - // step 5, check if this remote index is already contained in remote index - // list by binary - var fileHash = checksum(fileData); - logger.info("hash of binary file = " + fileHash); - var conditions = null; - - if (enums.CATEGORY_STB == remoteIndex.category_id) { - conditions = { - category_id: remoteIndex.category_id, - city_code: remoteIndex.city_code, - binary_md5: fileHash - }; + fs.readFile(outputFilePath, function (readFileErr, fileData) { + if (readFileErr) { + logger.error("read remote code binary file error : " + readFileErr); + callback(errorCode.FAILED, null); } else { - conditions = { - category_id: remoteIndex.category_id, - brand_id: remoteIndex.brand_id, - binary_md5: fileHash - }; - } + logger.info("read remote binary file successfully, " + + "file size = " + fileData.length); + ////////////////////////////////////// + // step 5, check if this remote index is already contained in remote index + // list by binary + let fileHash = checksum(fileData); + logger.info("hash of binary file = " + fileHash); + let conditions = null; - RemoteIndex.findRemoteIndexByCondition(conditions, - function(findRemoteIndexesErr, remoteIndexes) { - if (errorCode.SUCCESS.code == findRemoteIndexesErr.code && - null != remoteIndexes && remoteIndexes.length > 0) { - logger.info("this remote is duplicated by binary value"); - callback(errorCode.DUPLICATED_REMOTE_CODE, null); - } else { - ////////////////////////////////////// - // step 6, create remote index record in db - if (remoteIndex.category_id == enums.CATEGORY_STB) { - newRemoteIndex = { - category_id: remoteIndex.category_id, - category_name: remoteIndex.category_name, - city_code: remoteIndex.city_code, - city_name: remoteIndex.city_name, - operator_id: remoteIndex.operator_id, - operator_name: remoteIndex.operator_name, - protocol: remoteIndex.protocol_name, - remote: remoteIndex.remote_name, - remote_map: remoteIndex.protocol_name + - '_' + remoteIndex.remote_name, - priority: remoteIndex.priority, - sub_cate: subCate, - remote_number: remoteIndex.remote_number, - city_name_tw: remoteIndex.city_name_tw, - operator_name_tw: remoteIndex.operator_name_tw, - binary_md5: fileHash, - contributor: contributor - } - } else { - newRemoteIndex = { - category_id: remoteIndex.category_id, - category_name: remoteIndex.category_name, - brand_id: remoteIndex.brand_id, - brand_name: remoteIndex.brand_name, - protocol: remoteIndex.protocol_name, - remote: remoteIndex.remote_name, - remote_map: remoteIndex.protocol_name + - '_' + remoteIndex.remote_name, - priority: remoteIndex.priority, - sub_cate: subCate, - remote_number: remoteIndex.remote_number, - category_name_tw: remoteIndex.category_name_tw, - brand_name_tw: remoteIndex.brand_name_tw, - binary_md5: fileHash, - contributor: contributor - } - } - - // see if this remote index is already in database - var conditions = { - // category_id: remoteIndex.category_id, - // brand_id: remoteIndex.brand_id, - protocol: remoteIndex.protocol_name, - remote: remoteIndex.remote_name, - status: orm.gt(enums.ITEM_INVALID) + if (enums.CATEGORY_STB === remoteIndex.category_id) { + conditions = { + category_id: remoteIndex.category_id, + city_code: remoteIndex.city_code, + binary_md5: fileHash }; + } else { + conditions = { + category_id: remoteIndex.category_id, + brand_id: remoteIndex.brand_id, + binary_md5: fileHash + }; + } - RemoteIndex.findRemoteIndexByCondition(conditions, - function(findRemoteIndexErr, remoteIndexes) { - if(errorCode.SUCCESS.code == findRemoteIndexErr.code && - remoteIndexes && - remoteIndexes.length > 0) { - logger.info("remote index already exists"); - callback(errorCode.FAILED, null); + RemoteIndex.findRemoteIndexByCondition(conditions, + function (findRemoteIndexesErr, remoteIndexes) { + if (errorCode.SUCCESS.code === findRemoteIndexesErr.code && + null != remoteIndexes && remoteIndexes.length > 0) { + logger.info("this remote is duplicated by binary value"); + callback(errorCode.DUPLICATED_REMOTE_CODE, null); } else { - RemoteIndex.createRemoteIndex(newRemoteIndex, - function(createRemoteIndexErr, createdRemoteIndex) { - callback(createRemoteIndexErr, createdRemoteIndex); - }); + ////////////////////////////////////// + // step 6, create remote index record in db + if (remoteIndex.category_id === enums.CATEGORY_STB) { + newRemoteIndex = { + category_id: remoteIndex.category_id, + category_name: remoteIndex.category_name, + city_code: remoteIndex.city_code, + city_name: remoteIndex.city_name, + operator_id: remoteIndex.operator_id, + operator_name: remoteIndex.operator_name, + protocol: remoteIndex.protocol_name, + remote: remoteIndex.remote_name, + remote_map: remoteIndex.protocol_name + + '_' + remoteIndex.remote_name, + priority: remoteIndex.priority, + sub_cate: subCate, + remote_number: remoteIndex.remote_number, + city_name_tw: remoteIndex.city_name_tw, + operator_name_tw: remoteIndex.operator_name_tw, + binary_md5: fileHash, + contributor: contributor + } + } else { + newRemoteIndex = { + category_id: remoteIndex.category_id, + category_name: remoteIndex.category_name, + brand_id: remoteIndex.brand_id, + brand_name: remoteIndex.brand_name, + protocol: remoteIndex.protocol_name, + remote: remoteIndex.remote_name, + remote_map: remoteIndex.protocol_name + + '_' + remoteIndex.remote_name, + priority: remoteIndex.priority, + sub_cate: subCate, + remote_number: remoteIndex.remote_number, + category_name_tw: remoteIndex.category_name_tw, + brand_name_tw: remoteIndex.brand_name_tw, + binary_md5: fileHash, + contributor: contributor + } + } + + // see if this remote index is already in database + let conditions = { + // category_id: remoteIndex.category_id, + // brand_id: remoteIndex.brand_id, + protocol: remoteIndex.protocol_name, + remote: remoteIndex.remote_name, + status: orm.gt(enums.ITEM_INVALID) + }; + + RemoteIndex.findRemoteIndexByCondition(conditions, + function (findRemoteIndexErr, remoteIndexes) { + if (errorCode.SUCCESS.code === findRemoteIndexErr.code && + remoteIndexes && + remoteIndexes.length > 0) { + logger.info("remote index already exists"); + callback(errorCode.FAILED, null); + } else { + RemoteIndex.createRemoteIndex(newRemoteIndex, + function (createRemoteIndexErr, createdRemoteIndex) { + callback(createRemoteIndexErr, createdRemoteIndex); + }); + } + }); } }); - } - }); - } - }); - } else { - callback(errorCode.FAILED, null); - } - }); + } + }); + } else { + callback(errorCode.FAILED, null); + } + }); } else { callback(errorCode.FAILED, null); } @@ -591,18 +723,17 @@ exports.createRemoteIndexWorkUnit = function(remoteIndex, filePath, contentType, }; exports.deleteRemoteIndexWorkUnit = function (remoteIndex, adminID, callback) { - var key = "admin_name_" + adminID; - adminAuth.getAuthInfo(key, function(getAdminAuthErr, result) { - if (errorCode.SUCCESS.code == getAdminAuthErr.code && null != result) { - if(remoteIndex.contributor.indexOf(result) == -1) { - logger.info("the admin " + result + " could not change this remote index"); + let key = "admin_name_" + adminID; + adminAuth.getAuthInfo(key, function (getAdminAuthErr, result) { + if (errorCode.SUCCESS.code === getAdminAuthErr.code && null != result) { + if (remoteIndex.contributor.indexOf(result) === -1) { callback(errorCode.FAILED); } else { remoteIndex.status = enums.ITEM_INVALID; RemoteIndex.updateRemoteIndex(remoteIndex.id, remoteIndex, - function(deleteRemoteIndexErr, updatedRemoteIndex) { - callback(deleteRemoteIndexErr); - }); + function (deleteRemoteIndexErr, updatedRemoteIndex) { + callback(deleteRemoteIndexErr); + }); } } else { callback(errorCode.FAILED); @@ -611,17 +742,17 @@ exports.deleteRemoteIndexWorkUnit = function (remoteIndex, adminID, callback) { }; exports.verifyRemoteIndexWorkUnit = function (remoteIndex, pass, adminID, callback) { - var key = "admin_name_" + adminID; - adminAuth.getAuthInfo(key, function(getAdminAuthErr, result) { - if (errorCode.SUCCESS.code == getAdminAuthErr.code && null != result) { - if(remoteIndex.contributor.indexOf(result) == -1) { + let key = "admin_name_" + adminID; + adminAuth.getAuthInfo(key, function (getAdminAuthErr, result) { + if (errorCode.SUCCESS.code === getAdminAuthErr.code && null != result) { + if (remoteIndex.contributor.indexOf(result) === -1) { logger.info("the admin " + result + " could not change this remote index"); callback(errorCode.FAILED); return; } - var status = 0 == pass ? enums.ITEM_PASS : enums.ITEM_FAILED; + let status = (true === pass || 'true' === pass) ? enums.ITEM_PASS : enums.ITEM_FAILED; - RemoteIndex.verifyRemoteIndex(remoteIndex.id, status, function(updateRemoteIndexErr) { + RemoteIndex.verifyRemoteIndex(remoteIndex.id, status, function (updateRemoteIndexErr) { callback(updateRemoteIndexErr); }); } else { @@ -631,15 +762,15 @@ exports.verifyRemoteIndexWorkUnit = function (remoteIndex, pass, adminID, callba }; exports.fallbackRemoteIndexWorkUnit = function (remoteIndex, adminID, callback) { - var key = "admin_name_" + adminID; - adminAuth.getAuthInfo(key, function(getAdminAuthErr, result) { - if (errorCode.SUCCESS.code == getAdminAuthErr.code && null != result) { - if (remoteIndex.contributor.indexOf(result) == -1) { + let key = "admin_name_" + adminID; + adminAuth.getAuthInfo(key, function (getAdminAuthErr, result) { + if (errorCode.SUCCESS.code === getAdminAuthErr.code && null != result) { + if (remoteIndex.contributor.indexOf(result) === -1) { logger.info("the admin " + result + " could not change this remote index"); callback(errorCode.FAILED); return; } - var status = enums.ITEM_VERIFY; + let status = enums.ITEM_VERIFY; RemoteIndex.fallbackRemoteIndex(remoteIndex.id, status, function (updateRemoteIndexErr) { callback(updateRemoteIndexErr); @@ -655,23 +786,23 @@ exports.publishRemoteIndexWorkUnit = function (callback) { }; exports.createBrandWorkUnit = function (brand, adminID, callback) { - var conditions = { + let conditions = { category_id: brand.category_id, name: brand.name, status: enums.ITEM_VERIFY }; - var key = "admin_name_" + adminID; - adminAuth.getAuthInfo(key, function(getAdminAuthErr, result) { - if (getAdminAuthErr.code == errorCode.SUCCESS.code && + let key = "admin_name_" + adminID; + adminAuth.getAuthInfo(key, function (getAdminAuthErr, result) { + if (getAdminAuthErr.code === errorCode.SUCCESS.code && null != result) { brand.contributor = result; - Brand.findBrandByConditions(conditions, function(findBrandErr, brands) { - if(errorCode.SUCCESS.code == findBrandErr.code && null != brands && brands.length > 0) { + Brand.findBrandByConditions(conditions, function (findBrandErr, brands) { + if (errorCode.SUCCESS.code === findBrandErr.code && null != brands && brands.length > 0) { logger.info("brand already exists"); callback(errorCode.SUCCESS); } else { - Brand.createBrand(brand, function(createBrandErr, createdBrand) { + Brand.createBrand(brand, function (createBrandErr, createdBrand) { callback(createBrandErr, createdBrand); }); } @@ -683,10 +814,10 @@ exports.createBrandWorkUnit = function (brand, adminID, callback) { }; exports.publishBrandsWorkUnit = function (adminID, callback) { - var conditions = null; - var key = "admin_name_" + adminID; - adminAuth.getAuthInfo(key, function(getAdminAuthErr, result) { - if (getAdminAuthErr.code == errorCode.SUCCESS.code && + let conditions = null; + let key = "admin_name_" + adminID; + adminAuth.getAuthInfo(key, function (getAdminAuthErr, result) { + if (getAdminAuthErr.code === errorCode.SUCCESS.code && null != result) { conditions = { status: enums.ITEM_VERIFY @@ -701,20 +832,20 @@ exports.publishBrandsWorkUnit = function (adminID, callback) { }); }, function (err) { // send HTTP request to IRext main server - var queryParams = new Map(); - var requestSender = + let queryParams = new Map(); + let requestSender = new RequestSender(EXTERNAL_SERVER_ADDRESS, EXTERNAL_SERVER_PORT, contributeBrandsService, queryParams); - for (var i = 0; i < brands.length; i++) { + for (let i = 0; i < brands.length; i++) { brands[i].status = enums.ITEM_VERIFY; } - var contributeBrandsRequest = { - brandList : brands + let contributeBrandsRequest = { + brandList: brands }; requestSender.sendPostRequest(contributeBrandsRequest, - function(contributeBrandsRequestErr, contributeBrandsResponse) { + function (contributeBrandsRequestErr, contributeBrandsResponse) { logger.info(contributeBrandsRequestErr); callback(errorCode.SUCCESS); }); @@ -730,35 +861,35 @@ exports.publishBrandsWorkUnit = function (adminID, callback) { }); }; -exports.createProtocolWorkUnit = function(protocol, filePath, contentType, adminID, callback) { +exports.createProtocolWorkUnit = function (protocol, filePath, contentType, adminID, callback) { ////////////////////////////////////// // step 1, rename input remote xml file - var find = '\\\\'; - var re = new RegExp(find, 'g'); - var unixFilePath = filePath.replace(re, '/'); - var lios = unixFilePath.lastIndexOf('/'); - var fileDir = unixFilePath.substring(0, lios); - var contributor; + let find = '\\\\'; + let re = new RegExp(find, 'g'); + let unixFilePath = filePath.replace(re, '/'); + let lios = unixFilePath.lastIndexOf('/'); + let fileDir = unixFilePath.substring(0, lios); + let contributor; - var protocolName = protocol.protocol_name_b; - var srcFile = fileDir + "/" + protocolName + ".xml"; - var destFile = fileDir + "/" + protocolName + ".bin"; - var protocolType = protocol.protocol_type; - var localProtocolFile = ""; + let protocolName = protocol.protocol_name_b; + let srcFile = fileDir + "/" + protocolName + ".xml"; + let destFile = fileDir + "/" + protocolName + ".bin"; + let protocolType = protocol.protocol_type; + let localProtocolFile = ""; - var pythonRuntimeDir = fileDir, + let pythonRuntimeDir = fileDir, pythonFile = "ir_command_protocol.py", userArgs = []; ///////////////////////////////////// // step 2, get admin name as contributor - var key = "admin_name_" + adminID; - adminAuth.getAuthInfo(key, function(getAdminAuthErr, result) { - if (errorCode.SUCCESS.code == getAdminAuthErr.code && null != result) { + let key = "admin_name_" + adminID; + adminAuth.getAuthInfo(key, function (getAdminAuthErr, result) { + if (errorCode.SUCCESS.code === getAdminAuthErr.code && null != result) { contributor = result; - if (enums.PROTOCOL_TYPE_G2_QUATERNARY == protocolType) { + if (enums.PROTOCOL_TYPE_G2_QUATERNARY === protocolType) { pythonFile = "ir_command_protocol.py"; - } else if (enums.PROTOCOL_TYPE_G2_HEXDECIMAL == protocolType) { + } else if (enums.PROTOCOL_TYPE_G2_HEXDECIMAL === protocolType) { pythonFile = "ir_command_protocol_hex.py"; } @@ -770,15 +901,15 @@ exports.createProtocolWorkUnit = function(protocol, filePath, contentType, admin ////////////////////////////////////// // step 3, try executing remote encoding - var pythonCaller = new PythonCaller(); + let pythonCaller = new PythonCaller(); try { logger.info("prepare to call python script"); - pythonCaller.call(pythonRuntimeDir, pythonFile, userArgs, function(protocolGenErr, genResult) { - if(errorCode.SUCCESS.code == protocolGenErr) { + pythonCaller.call(pythonRuntimeDir, pythonFile, userArgs, function (protocolGenErr, genResult) { + if (errorCode.SUCCESS.code === protocolGenErr) { ////////////////////////////////////// // step 3.5, upload protocol binary file to local file storage localProtocolFile = destFile; - fs.readFile(localProtocolFile, function(readFileErr, fileData) { + fs.readFile(localProtocolFile, function (readFileErr, fileData) { if (readFileErr) { logger.error("read protocol binary file error : " + readFileErr); callback(errorCode.FAILED); @@ -786,21 +917,21 @@ exports.createProtocolWorkUnit = function(protocol, filePath, contentType, admin logger.info("read protocol binary successfully, file size = " + fileData.length); ////////////////////////////////////// // step 4, try register protocol to db - var newProtocol = { + let newProtocol = { name: protocolName, status: enums.ITEM_VALID, type: protocolType, contributor: contributor }; - var conditions = { + let conditions = { name: protocolName }; logger.info("ir_command_protocol.py called successfully, create protocol in DB"); IRProtocol.findIRProtocolByConditions(conditions, - function(findIRProtocolErr, IRProtocols) { - if(errorCode.SUCCESS.code == findIRProtocolErr.code && + function (findIRProtocolErr, IRProtocols) { + if (errorCode.SUCCESS.code === findIRProtocolErr.code && null != IRProtocols && IRProtocols.length > 0) { logger.info("protocol " + protocolName + " already exists, " + @@ -808,29 +939,29 @@ exports.createProtocolWorkUnit = function(protocol, filePath, contentType, admin callback(errorCode.SUCCESS); } else { IRProtocol.createIRProtocol(newProtocol, - function(createIRProtocolErr, createdIRProtocol) { + function (createIRProtocolErr, createdIRProtocol) { callback(createIRProtocolErr); }); } }); // contribute protocol to IRext main server - var queryParams = new Map(); - var requestSender = + let queryParams = new Map(); + let requestSender = new RequestSender(EXTERNAL_SERVER_ADDRESS, EXTERNAL_SERVER_PORT, contributeProtocolService, queryParams); newProtocol.status = enums.ITEM_VERIFY; - var contributeProtocolRequest = { - protocol : newProtocol + let contributeProtocolRequest = { + protocol: newProtocol }; - var formData = { + let formData = { // Pass a simple key-value pair protocol: JSON.stringify(contributeProtocolRequest), protocolFile: fs.createReadStream(localProtocolFile), }; requestSender.postMultipartForm(formData, - function(contributeProtocolRequestErr, contributeProtocolResponse) { + function (contributeProtocolRequestErr, contributeProtocolResponse) { logger.info(contributeProtocolRequestErr); callback(errorCode.SUCCESS); }); diff --git a/console/work_unit/stat_logic.js b/console/work_unit/stat_logic.js index 67c7baf..a959dd4 100644 --- a/console/work_unit/stat_logic.js +++ b/console/work_unit/stat_logic.js @@ -5,31 +5,31 @@ // global inclusion require('../mini_poem/configuration/constants'); -var logger = require('../mini_poem/logging/logger4js').helper; +let logger = require('../mini_poem/logging/logger4js').helper; // local inclusion -var Category = require('../model/category_dao.js'); -var Brand = require('../model/brand_dao.js'); -var City = require('../model/city_dao.js'); -var RemoteIndex = require('../model/remote_index_dao.js'); +let Category = require('../model/category_dao.js'); +let Brand = require('../model/brand_dao.js'); +let City = require('../model/city_dao.js'); +let RemoteIndex = require('../model/remote_index_dao.js'); -var Enums = require('../constants/enums.js'); -var ErrorCode = require('../constants/error_code.js'); +let Enums = require('../constants/enums.js'); +let ErrorCode = require('../constants/error_code.js'); -var enums = new Enums(); -var errorCode = new ErrorCode(); +let enums = new Enums(); +let errorCode = new ErrorCode(); -var async = require('async'); +let async = require('async'); exports.countRemoteWorkUnit = function(callback) { - var conditions = { + let conditions = { status: enums.ITEM_VALID }; Category.countCategories(conditions, function(countCategoriesErr, categoriesCount) { Brand.countBrands(conditions, function(countBrandsErr, brandsCount) { RemoteIndex.countRemoteIndexes(conditions, function(countRemoteIndexesErr, remoteIndexesCount) { - var statInfo = new Object(); + let statInfo = {}; statInfo.categories_count = categoriesCount; statInfo.brands_count = brandsCount; statInfo.remote_indexes_count = remoteIndexesCount; @@ -40,29 +40,29 @@ exports.countRemoteWorkUnit = function(callback) { }; exports.statCategoriesWorkUnit = function(callback) { - var conditions = { + let conditions = { status: enums.ITEM_VALID }; - var retCategoriesCount = []; + let retCategoriesCount = []; Category.listCategories(conditions, 0, 200, "id", function(findCategoriesErr, categories) { - if (errorCode.FAILED.code == findCategoriesErr.code) { + if (errorCode.FAILED.code === findCategoriesErr.code) { logger.error("failed to find categories"); callback(findCategoriesErr, null); } else { async.eachSeries(categories, function (category, innerCallback) { - var categoryName = category.name; - var categoryID = category.id; - if (enums.CATEGORY_STB != categoryID) { - var countConditions = { + let categoryName = category.name; + let categoryID = category.id; + if (enums.CATEGORY_STB !== categoryID) { + let countConditions = { category_id: categoryID, status: enums.ITEM_VALID }; Brand.countBrands(countConditions, function(countBrandsErr, brandsCount) { - if (errorCode.SUCCESS.code == countBrandsErr.code) { - var categoryStat = new Object(); + if (errorCode.SUCCESS.code === countBrandsErr.code) { + let categoryStat = {}; categoryStat.id = categoryID; categoryStat.name = categoryName; categoryStat.brands_count = brandsCount; @@ -73,11 +73,11 @@ exports.statCategoriesWorkUnit = function(callback) { innerCallback(); }); } else { - var countConditions = "code LIKE '__0000';"; + let countConditions = "code LIKE '__0000';"; City.countCities(countConditions, function(countCitiesErr, citiesCount) { - if (errorCode.SUCCESS.code == countCitiesErr.code) { - var categoryStat = new Object(); + if (errorCode.SUCCESS.code === countCitiesErr.code) { + let categoryStat = {}; categoryStat.id = categoryID; categoryStat.name = categoryName; categoryStat.brands_count = citiesCount[0].number; @@ -97,31 +97,31 @@ exports.statCategoriesWorkUnit = function(callback) { }; exports.statBrandsWorkUnit = function (categoryID, callback) { - var conditions = { + let conditions = { category_id: categoryID, status: enums.ITEM_VALID }; - var retBrandsCount = []; + let retBrandsCount = []; Brand.listBrands(conditions, 0, 200, "priority", function(findBrandsErr, brands) { - if (errorCode.FAILED.code == findBrandsErr.code) { + if (errorCode.FAILED.code === findBrandsErr.code) { logger.error("failed to find brands"); callback(findBrandsErr, null); } else { async.eachSeries(brands, function (brand, innerCallback) { - var brandName = brand.name; - var brandID = brand.id; + let brandName = brand.name; + let brandID = brand.id; - if (enums.CATEGORY_STB != categoryID) { - var countConditions = { + if (enums.CATEGORY_STB !== categoryID) { + let countConditions = { brand_id: brandID, status: enums.ITEM_VALID }; RemoteIndex.countRemoteIndexes(countConditions, function(countRemoteIndexesErr, remoteIndexesCount) { - if (errorCode.SUCCESS.code == countRemoteIndexesErr.code) { - var brandStat = new Object(); + if (errorCode.SUCCESS.code === countRemoteIndexesErr.code) { + let brandStat = {}; brandStat.id = brandID; brandStat.name = brandName; brandStat.remote_indexes_count = remoteIndexesCount; @@ -140,22 +140,22 @@ exports.statBrandsWorkUnit = function (categoryID, callback) { }; exports.statCitiesWorkUnit = function (callback) { - var retCitiesCount = []; + let retCitiesCount = []; City.listProvinces(function(listProvincesErr, provinces) { - if (errorCode.FAILED.code == listProvincesErr.code) { + if (errorCode.FAILED.code === listProvincesErr.code) { logger.error("failed to find brands"); callback(listProvincesErr, null); } else { async.eachSeries(provinces, function (province, innerCallback) { - var provinceName = province.name; - var provinceCode = province.code; - var provincePrefix = provinceCode.substring(0, 2); - var countConditions = "code LIKE '" + provincePrefix + "__00' AND code <> '" + provincePrefix + "0000';"; + let provinceName = province.name; + let provinceCode = province.code; + let provincePrefix = provinceCode.substring(0, 2); + let countConditions = "code LIKE '" + provincePrefix + "__00' AND code <> '" + provincePrefix + "0000';"; City.countCities(countConditions, function(countCitiesErr, citiesCount) { - if (errorCode.SUCCESS.code == countCitiesErr.code) { - var cityStat = new Object(); + if (errorCode.SUCCESS.code === countCitiesErr.code) { + let cityStat = {}; cityStat.name = provinceName; cityStat.city_count = citiesCount[0].number; retCitiesCount.push(cityStat);