Files
private-cloud/console/model/city_dao.js
strawmanbobi f94a89faef private cloud update 2020-06-14
1. completed i18n for private cloud (foreground and background)
2. fixed issues
2020-06-14 11:56:18 +08:00

95 lines
3.0 KiB
JavaScript

/**
* Created by strawmanbobi
* 2016-11-27
*/
// global inclusion
let orm = require('orm');
let dbOrm = require('../mini_poem/db/mysql/mysql_connection').mysqlDB;
let logger = require('../mini_poem/logging/logger4js').helper;
// local inclusion
let ErrorCode = require('../constants/error_code');
let errorCode = new ErrorCode();
let City = dbOrm.define('city',
{
id: Number,
code: String,
name: String,
longitude: Number,
latitude: Number,
name_tw: String
},
{
cache: false
}
);
City.listProvinces = function(callback) {
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);
error = errorCode.FAILED;
callback(error,null);
} else {
callback(error, result);
}
}
);
};
City.listCities = function(provincePrefix, callback) {
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) {
logger.info("get cities failed : " + getCitiesErr);
error = errorCode.FAILED;
callback(error,null);
} else {
callback(error, result);
}
}
);
};
City.countCities = function(conditions, callback) {
dbOrm.driver.execQuery("SELECT COUNT(id) AS number FROM city WHERE " + conditions,
function (countCitiesErr, result) {
if (countCitiesErr) {
logger.info("count cities failed : " + countCitiesErr);
callback(errorCode.FAILED, null);
} else {
callback(errorCode.SUCCESS, result);
}
});
};
City.findCitiesByConditions = function(conditions, from, count, sortField, callback) {
if("id" == sortField && 0 != from) {
conditions.id = orm.lt(from);
City.find(conditions).limit(parseInt(count)).orderRaw("?? ASC", [sortField])
.run(function (error, cities) {
if (error) {
logger.error("find city error : " + error);
callback(errorCode.FAILED, null);
} else {
callback(errorCode.SUCCESS, cities);
}
});
} else {
City.find(conditions).limit(parseInt(count)).offset(parseInt(from)).orderRaw("?? ASC", [sortField])
.run(function (error, cities) {
if (error) {
logger.error("find city error : " + error);
callback(errorCode.FAILED, null);
} else {
callback(errorCode.SUCCESS, cities);
}
});
}
};
module.exports = City;