map loop
This commit is contained in:
@ -1,40 +1,40 @@
|
||||
require("dotenv").config({ path: "../.env" });
|
||||
const LibWinston = require("../library/LibWinston");
|
||||
const moment = require("moment");
|
||||
const axios = require("axios").default;
|
||||
const url = require("url");
|
||||
const request = require("../config/request");
|
||||
const GpsTracksModels = require("../models/GpsTracksModels");
|
||||
const RegionModels = require("../models/RegionModels");
|
||||
const { stringify } = require("flatted");
|
||||
require("dotenv").config({ path: "../.env" })
|
||||
const LibWinston = require("../library/LibWinston")
|
||||
const moment = require("moment")
|
||||
const axios = require("axios").default
|
||||
const url = require("url")
|
||||
const request = require("../config/request")
|
||||
const GpsTracksModels = require("../models/GpsTracksModels")
|
||||
const RegionModels = require("../models/RegionModels")
|
||||
const { stringify } = require("flatted")
|
||||
|
||||
const schedulerName = process.env.REDIS_SCHEDULER_REVERSE_GEO;
|
||||
const Logger = LibWinston.initialize(schedulerName);
|
||||
const schedulerName = process.env.REDIS_SCHEDULER_REVERSE_GEO
|
||||
const Logger = LibWinston.initialize(schedulerName)
|
||||
|
||||
const go = async () => {
|
||||
try {
|
||||
Logger.log("info", `${schedulerName} running: ${moment().format("YYYY-MM-DD HH:mm:ss")}`);
|
||||
Logger.log("info", `${schedulerName} running: ${moment().format("YYYY-MM-DD HH:mm:ss")}`)
|
||||
// (async function() {
|
||||
try {
|
||||
let loop = process.env.SCHEDULE_REVERSE_GEO_MAX_LOOP;
|
||||
let loop = process.env.SCHEDULE_REVERSE_GEO_MAX_LOOP
|
||||
for (let x = 0; x < loop; x++) {
|
||||
// let tracks = [];
|
||||
let tracks = await GpsTracksModels.get2ForReverseGeo(1);
|
||||
for (let i = 0; i < tracks.length; i++) {
|
||||
console.log("tracks[i] :", tracks[i].id, tracks[i].device_id, tracks[i].latitude, tracks[i].longitude);
|
||||
let now = moment().unix();
|
||||
let updtData = {};
|
||||
let respReverseGeo = null;
|
||||
let tracks = await GpsTracksModels.get2ForReverseGeo(100)
|
||||
tracks.map(async (track) => {
|
||||
console.log("track :", track.id, track.device_id, track.latitude, track.longitude)
|
||||
let now = moment().unix()
|
||||
let updtData = {}
|
||||
let respReverseGeo = null
|
||||
try {
|
||||
const sameAddr = await GpsTracksModels.select2Address(tracks[i].latitude, tracks[i].longitude);
|
||||
const sameAddr = await GpsTracksModels.select2Address(track.latitude, track.longitude)
|
||||
|
||||
if (sameAddr.length > 0) {
|
||||
let addrData = {
|
||||
device_id: tracks[i].device_id,
|
||||
master_id: tracks[i].id,
|
||||
device_id: track.device_id,
|
||||
master_id: track.id,
|
||||
type: sameAddr[0].type,
|
||||
lat: tracks[i].latitude,
|
||||
lng: tracks[i].longitude,
|
||||
lat: track.latitude,
|
||||
lng: track.longitude,
|
||||
country_id: sameAddr[0].country_id,
|
||||
country_code: sameAddr[0].country_code,
|
||||
country_text: sameAddr[0].country_text,
|
||||
@ -54,27 +54,27 @@ const go = async () => {
|
||||
log_reverse_geo: sameAddr[0].log_reverse_geo,
|
||||
crt: now,
|
||||
crt_format: moment.unix(now).format("YYYY-MM-DD HH:mm:ss"),
|
||||
};
|
||||
GpsTracksModels.create2Address(addrData);
|
||||
updtData.stts_reverse_geo = GpsTracksModels.STTS_REVERSE_GEO_SC;
|
||||
await GpsTracksModels.update2(tracks[i].id, updtData);
|
||||
continue;
|
||||
}
|
||||
GpsTracksModels.create2Address(addrData)
|
||||
updtData.stts_reverse_geo = GpsTracksModels.STTS_REVERSE_GEO_SC
|
||||
await GpsTracksModels.update2(track.id, updtData)
|
||||
return null
|
||||
}
|
||||
|
||||
let params = new url.URLSearchParams({
|
||||
lat: tracks[i].latitude,
|
||||
lon: tracks[i].longitude,
|
||||
lat: track.latitude,
|
||||
lon: track.longitude,
|
||||
format: "geojson",
|
||||
});
|
||||
})
|
||||
//const axInstance = axios.create()
|
||||
const axInstance = axios.create({
|
||||
proxy: {
|
||||
host: process.env.PROXY_URL,
|
||||
port: process.env.PROXY_PORT,
|
||||
},
|
||||
});
|
||||
axios.defaults.timeout = 10000;
|
||||
axios.defaults.crossDomain = true;
|
||||
})
|
||||
axios.defaults.timeout = 10000
|
||||
axios.defaults.crossDomain = true
|
||||
// respReverseGeo = await axios({
|
||||
// url: request.osm_reverse_geo.urlFull,
|
||||
// method: request.osm_reverse_geo.method,
|
||||
@ -84,38 +84,43 @@ const go = async () => {
|
||||
// respReverseGeo = await axInstance.get(request.osm_reverse_geo.urlFull + "?" + params.toString(), {
|
||||
// timeout: 10000,
|
||||
// });
|
||||
respReverseGeo = await axInstance.get(request.osm_reverse_geo.urlFull + "?" + params.toString(), {
|
||||
timeout: 10000,
|
||||
headers: {
|
||||
"User-Agent": "movana-fleet-management/1.0 (emirsyafmun@gmail.com)",
|
||||
},
|
||||
});
|
||||
console.log("respReverseGeo: ", respReverseGeo.data || null);
|
||||
let respData = respReverseGeo.data || {};
|
||||
respReverseGeo = await axInstance.get(
|
||||
request.osm_reverse_geo.urlFull + "?" + params.toString(),
|
||||
{
|
||||
timeout: 10000,
|
||||
headers: {
|
||||
"User-Agent": "movana-fleet-management/1.0 (emirsyafmun@gmail.com)",
|
||||
},
|
||||
}
|
||||
)
|
||||
console.log("respReverseGeo: ", track)
|
||||
let respData = respReverseGeo.data || {}
|
||||
if (respReverseGeo.status == 200) {
|
||||
if (respData.features.length < 1) {
|
||||
GpsTracksModels.create2Address({
|
||||
device_id: tracks[i].device_id,
|
||||
master_id: tracks[i].id,
|
||||
lat: tracks[i].latitude,
|
||||
lng: tracks[i].longitude,
|
||||
device_id: track.device_id,
|
||||
master_id: track.id,
|
||||
lat: track.latitude,
|
||||
lng: track.longitude,
|
||||
stts_reverse_geo: GpsTracksModels.STTS_REVERSE_GEO_LOST,
|
||||
log_reverse_geo: JSON.stringify(respData),
|
||||
crt: now,
|
||||
crt_format: moment.unix(now).format("YYYY-MM-DD HH:mm:ss"),
|
||||
});
|
||||
updtData.stts_reverse_geo = GpsTracksModels.STTS_REVERSE_GEO_LOST;
|
||||
await GpsTracksModels.update2(tracks[i].id, updtData);
|
||||
})
|
||||
updtData.stts_reverse_geo = GpsTracksModels.STTS_REVERSE_GEO_LOST
|
||||
await GpsTracksModels.update2(track.id, updtData)
|
||||
} else {
|
||||
let respAddr = respData.features[0].properties.address;
|
||||
let respAddr = respData.features[0].properties.address
|
||||
let addrData = {
|
||||
device_id: tracks[i].device_id,
|
||||
master_id: tracks[i].id,
|
||||
lat: tracks[i].latitude,
|
||||
lng: tracks[i].longitude,
|
||||
device_id: track.device_id,
|
||||
master_id: track.id,
|
||||
lat: track.latitude,
|
||||
lng: track.longitude,
|
||||
country_id: GpsTracksModels.DEFAULT_COUNTRY_ID,
|
||||
country_code: respAddr.country_code,
|
||||
country_text: respAddr.country ? respAddr.country.toUpperCase() : respAddr.country || null,
|
||||
country_text: respAddr.country
|
||||
? respAddr.country.toUpperCase()
|
||||
: respAddr.country || null,
|
||||
state_id: null,
|
||||
city_id: null,
|
||||
district_id: null,
|
||||
@ -123,40 +128,57 @@ const go = async () => {
|
||||
postcode: respAddr.postcode,
|
||||
fulladdress: encodeURIComponent(respData.features[0].properties.display_name),
|
||||
stts_reverse_geo: GpsTracksModels.STTS_REVERSE_GEO_SC,
|
||||
log_reverse_geo: respData.features[0].properties ? JSON.stringify(respData.features[0].properties) : null,
|
||||
log_reverse_geo: respData.features[0].properties
|
||||
? JSON.stringify(respData.features[0].properties)
|
||||
: null,
|
||||
crt: now,
|
||||
crt_format: moment.unix(now).format("YYYY-MM-DD HH:mm:ss"),
|
||||
};
|
||||
}
|
||||
if (respAddr.state || respAddr.city) {
|
||||
addrData.state_text = respAddr.region || respAddr.state || respAddr.state_district || respAddr.county || respAddr.city || "";
|
||||
addrData.state_text = addrData.state_text ? addrData.state_text.toUpperCase() : addrData.state_text || null;
|
||||
addrData.state_text = addrData.state_text || null;
|
||||
addrData.state_text =
|
||||
respAddr.region ||
|
||||
respAddr.state ||
|
||||
respAddr.state_district ||
|
||||
respAddr.county ||
|
||||
respAddr.city ||
|
||||
""
|
||||
addrData.state_text = addrData.state_text
|
||||
? addrData.state_text.toUpperCase()
|
||||
: addrData.state_text || null
|
||||
addrData.state_text = addrData.state_text || null
|
||||
}
|
||||
if (respAddr.city_district || respAddr.city) {
|
||||
addrData.city_text = respAddr.city_district || respAddr.city || "";
|
||||
addrData.city_text = addrData.city_text ? addrData.city_text.toUpperCase() : addrData.city_text || null;
|
||||
addrData.city_text = addrData.city_text || null;
|
||||
addrData.city_text = respAddr.city_district || respAddr.city || ""
|
||||
addrData.city_text = addrData.city_text
|
||||
? addrData.city_text.toUpperCase()
|
||||
: addrData.city_text || null
|
||||
addrData.city_text = addrData.city_text || null
|
||||
}
|
||||
if (respAddr.suburb || respAddr.subdistrict) {
|
||||
addrData.district_text = respAddr.suburb || respAddr.subdistrict || respAddr.subdivision || "";
|
||||
addrData.district_text = addrData.district_text ? addrData.district_text.toUpperCase() : addrData.district_text || null;
|
||||
addrData.district_text = addrData.district_text || null;
|
||||
addrData.district_text =
|
||||
respAddr.suburb || respAddr.subdistrict || respAddr.subdivision || ""
|
||||
addrData.district_text = addrData.district_text
|
||||
? addrData.district_text.toUpperCase()
|
||||
: addrData.district_text || null
|
||||
addrData.district_text = addrData.district_text || null
|
||||
}
|
||||
if (respAddr.village) {
|
||||
addrData.village_text = respAddr.village || respAddr.neighbourhood || "";
|
||||
addrData.village_text = addrData.village_text ? addrData.village_text.toUpperCase() : addrData.village_text || null;
|
||||
addrData.village_text = addrData.village_text || null;
|
||||
addrData.village_text = respAddr.village || respAddr.neighbourhood || ""
|
||||
addrData.village_text = addrData.village_text
|
||||
? addrData.village_text.toUpperCase()
|
||||
: addrData.village_text || null
|
||||
addrData.village_text = addrData.village_text || null
|
||||
}
|
||||
if (respAddr.amenity || respAddr.road || respAddr.city_block) {
|
||||
addrData.streets = "";
|
||||
addrData.streets += respAddr.amenity ? respAddr.amenity + ", " : "";
|
||||
addrData.streets += respAddr.road ? respAddr.road + ", " : "";
|
||||
addrData.streets += respAddr.house_number ? respAddr.house_number + ", " : "";
|
||||
addrData.streets += respAddr.house_name ? respAddr.house_name + ", " : "";
|
||||
addrData.streets += respAddr.city_block ? respAddr.city_block + ", " : "";
|
||||
addrData.streets += addrData.streets || null;
|
||||
addrData.streets = ""
|
||||
addrData.streets += respAddr.amenity ? respAddr.amenity + ", " : ""
|
||||
addrData.streets += respAddr.road ? respAddr.road + ", " : ""
|
||||
addrData.streets += respAddr.house_number ? respAddr.house_number + ", " : ""
|
||||
addrData.streets += respAddr.house_name ? respAddr.house_name + ", " : ""
|
||||
addrData.streets += respAddr.city_block ? respAddr.city_block + ", " : ""
|
||||
addrData.streets += addrData.streets || null
|
||||
if (addrData.streets) {
|
||||
addrData.streets = encodeURIComponent(addrData.streets.slice(0, -2));
|
||||
addrData.streets = encodeURIComponent(addrData.streets.slice(0, -2))
|
||||
}
|
||||
}
|
||||
|
||||
@ -165,119 +187,373 @@ const go = async () => {
|
||||
nmKotamadyaKel: addrData.city_text,
|
||||
nmKecamatanKel: addrData.district_text,
|
||||
nmKelurahan: addrData.village_text,
|
||||
});
|
||||
})
|
||||
if (byAll.length > 1) {
|
||||
addrData.state_id = byAll[0].kodeProv;
|
||||
addrData.city_id = byAll[0].kodeKab;
|
||||
addrData.district_id = byAll[0].kodeKec;
|
||||
addrData.village_id = byAll[0].kodeKel;
|
||||
addrData.state_id = byAll[0].kodeProv
|
||||
addrData.city_id = byAll[0].kodeKab
|
||||
addrData.district_id = byAll[0].kodeKec
|
||||
addrData.village_id = byAll[0].kodeKel
|
||||
}
|
||||
|
||||
let byKel = await RegionModels.whereLike({
|
||||
nmKelurahan: addrData.village_text,
|
||||
});
|
||||
})
|
||||
if (byAll.length < 1 && byKel.length > 0) {
|
||||
addrData.state_id = byKel[0].kodeProv;
|
||||
addrData.city_id = byKel[0].kodeKab;
|
||||
addrData.district_id = byKel[0].kodeKec;
|
||||
addrData.village_id = byKel[0].kodeKel;
|
||||
addrData.state_id = byKel[0].kodeProv
|
||||
addrData.city_id = byKel[0].kodeKab
|
||||
addrData.district_id = byKel[0].kodeKec
|
||||
addrData.village_id = byKel[0].kodeKel
|
||||
}
|
||||
|
||||
if (addrData.state_id === null) {
|
||||
let byPr = await RegionModels.whereLike({ nmProvinsiKel: addrData.state_text });
|
||||
let byPr = await RegionModels.whereLike({ nmProvinsiKel: addrData.state_text })
|
||||
if (byPr.length > 0) {
|
||||
addrData.state_id = byPr[0].kodeProv;
|
||||
addrData.state_id = byPr[0].kodeProv
|
||||
}
|
||||
}
|
||||
|
||||
if (addrData.state_id !== null && addrData.city_id === null) {
|
||||
let byKt = await RegionModels.whereLike({ nmKotamadyaKel: addrData.city_text });
|
||||
let byKt = await RegionModels.whereLike({ nmKotamadyaKel: addrData.city_text })
|
||||
if (byKt.length > 0) {
|
||||
addrData.city_id = byKt[0].kodeKab;
|
||||
addrData.city_id = byKt[0].kodeKab
|
||||
}
|
||||
}
|
||||
|
||||
if (addrData.state_id !== null && addrData.city_id !== null && addrData.district_id === null) {
|
||||
let byKc = await RegionModels.whereLike({ nmKecamatanKel: addrData.district_text });
|
||||
if (
|
||||
addrData.state_id !== null &&
|
||||
addrData.city_id !== null &&
|
||||
addrData.district_id === null
|
||||
) {
|
||||
let byKc = await RegionModels.whereLike({ nmKecamatanKel: addrData.district_text })
|
||||
if (byKc.length > 0) {
|
||||
addrData.district_id = byKc[0].kodeKec;
|
||||
addrData.district_id = byKc[0].kodeKec
|
||||
}
|
||||
}
|
||||
|
||||
if (addrData.state_id !== null && addrData.city_id !== null && addrData.district_id !== null && addrData.village_id === null) {
|
||||
let byKl = await RegionModels.whereLike({ nmKelurahan: addrData.village_text });
|
||||
if (
|
||||
addrData.state_id !== null &&
|
||||
addrData.city_id !== null &&
|
||||
addrData.district_id !== null &&
|
||||
addrData.village_id === null
|
||||
) {
|
||||
let byKl = await RegionModels.whereLike({ nmKelurahan: addrData.village_text })
|
||||
if (byKl.length > 0) {
|
||||
addrData.village_id = byKl[0].kodeKel;
|
||||
addrData.village_id = byKl[0].kodeKel
|
||||
}
|
||||
}
|
||||
|
||||
GpsTracksModels.create2Address(addrData).catch((e) => {
|
||||
Logger.log("error", `${schedulerName} running_error: ${JSON.stringify(e, Object.getOwnPropertyNames(e))}`);
|
||||
});
|
||||
updtData.stts_reverse_geo = GpsTracksModels.STTS_REVERSE_GEO_SC;
|
||||
await GpsTracksModels.update2(tracks[i].id, updtData);
|
||||
Logger.log(
|
||||
"error",
|
||||
`${schedulerName} running_error: ${JSON.stringify(
|
||||
e,
|
||||
Object.getOwnPropertyNames(e)
|
||||
)}`
|
||||
)
|
||||
})
|
||||
updtData.stts_reverse_geo = GpsTracksModels.STTS_REVERSE_GEO_SC
|
||||
await GpsTracksModels.update2(track.id, updtData)
|
||||
}
|
||||
} else {
|
||||
GpsTracksModels.create2Address({
|
||||
device_id: tracks[i].device_id,
|
||||
master_id: tracks[i].id,
|
||||
lat: tracks[i].latitude,
|
||||
lng: tracks[i].longitude,
|
||||
device_id: track.device_id,
|
||||
master_id: track.id,
|
||||
lat: track.latitude,
|
||||
lng: track.longitude,
|
||||
stts_reverse_geo: GpsTracksModels.STTS_REVERSE_GEO_ER,
|
||||
log_reverse_geo: JSON.stringify(respData),
|
||||
crt: now,
|
||||
crt_format: moment.unix(now).format("YYYY-MM-DD HH:mm:ss"),
|
||||
});
|
||||
updtData.stts_reverse_geo = GpsTracksModels.STTS_REVERSE_GEO_ER;
|
||||
await GpsTracksModels.update2(tracks[i].id, updtData);
|
||||
})
|
||||
updtData.stts_reverse_geo = GpsTracksModels.STTS_REVERSE_GEO_ER
|
||||
await GpsTracksModels.update2(track.id, updtData)
|
||||
}
|
||||
} catch (e) {
|
||||
let respData = {};
|
||||
let respData = {}
|
||||
if (respReverseGeo) {
|
||||
if (respReverseGeo.status != 200) {
|
||||
respData.data = respReverseGeo.data;
|
||||
respData.data = respReverseGeo.data
|
||||
} else {
|
||||
respData.msg = e.message;
|
||||
respData.msg = e.message
|
||||
}
|
||||
} else if (typeof e.response != "undefined") {
|
||||
respData.data = e.response;
|
||||
respData.data = e.response
|
||||
} else {
|
||||
respData.msg = e.message;
|
||||
respData.msg = e.message
|
||||
}
|
||||
GpsTracksModels.create2Address({
|
||||
device_id: tracks[i].device_id,
|
||||
master_id: tracks[i].id,
|
||||
lat: tracks[i].latitude,
|
||||
lng: tracks[i].longitude,
|
||||
device_id: track.device_id,
|
||||
master_id: track.id,
|
||||
lat: track.latitude,
|
||||
lng: track.longitude,
|
||||
stts_reverse_geo: GpsTracksModels.STTS_REVERSE_GEO_ER,
|
||||
// log_reverse_geo: JSON.stringify(respData.data),
|
||||
log_reverse_geo: stringify(respData.data),
|
||||
crt: now,
|
||||
crt_format: moment.unix(now).format("YYYY-MM-DD HH:mm:ss"),
|
||||
});
|
||||
updtData.stts_reverse_geo = GpsTracksModels.STTS_REVERSE_GEO_ER;
|
||||
await GpsTracksModels.update2(tracks[i].id, updtData);
|
||||
})
|
||||
updtData.stts_reverse_geo = GpsTracksModels.STTS_REVERSE_GEO_ER
|
||||
await GpsTracksModels.update2(track.id, updtData)
|
||||
}
|
||||
}
|
||||
})
|
||||
// for (let i = 0; i < tracks.length; i++) {
|
||||
// console.log("tracks[i] :", tracks[i].id, tracks[i].device_id, tracks[i].latitude, tracks[i].longitude);
|
||||
// let now = moment().unix();
|
||||
// let updtData = {};
|
||||
// let respReverseGeo = null;
|
||||
// try {
|
||||
// const sameAddr = await GpsTracksModels.select2Address(tracks[i].latitude, tracks[i].longitude);
|
||||
|
||||
// if (sameAddr.length > 0) {
|
||||
// let addrData = {
|
||||
// device_id: tracks[i].device_id,
|
||||
// master_id: tracks[i].id,
|
||||
// type: sameAddr[0].type,
|
||||
// lat: tracks[i].latitude,
|
||||
// lng: tracks[i].longitude,
|
||||
// country_id: sameAddr[0].country_id,
|
||||
// country_code: sameAddr[0].country_code,
|
||||
// country_text: sameAddr[0].country_text,
|
||||
// state_id: sameAddr[0].state_id,
|
||||
// state_text: sameAddr[0].state_text,
|
||||
// city_id: sameAddr[0].city_id,
|
||||
// city_text: sameAddr[0].city_text,
|
||||
// district_id: sameAddr[0].district_id,
|
||||
// district_text: sameAddr[0].district_text,
|
||||
// village_id: sameAddr[0].village_id,
|
||||
// village_text: sameAddr[0].village_text,
|
||||
// postcode: sameAddr[0].postcode,
|
||||
// streets: sameAddr[0].streets,
|
||||
// fulladdress: encodeURIComponent(decodeURIComponent(sameAddr[0].fulladdress)),
|
||||
// type_reverse_geo: sameAddr[0].type_reverse_geo,
|
||||
// stts_reverse_geo: GpsTracksModels.STTS_REVERSE_GEO_SC,
|
||||
// log_reverse_geo: sameAddr[0].log_reverse_geo,
|
||||
// crt: now,
|
||||
// crt_format: moment.unix(now).format("YYYY-MM-DD HH:mm:ss"),
|
||||
// };
|
||||
// GpsTracksModels.create2Address(addrData);
|
||||
// updtData.stts_reverse_geo = GpsTracksModels.STTS_REVERSE_GEO_SC;
|
||||
// await GpsTracksModels.update2(tracks[i].id, updtData);
|
||||
// continue;
|
||||
// }
|
||||
|
||||
// let params = new url.URLSearchParams({
|
||||
// lat: tracks[i].latitude,
|
||||
// lon: tracks[i].longitude,
|
||||
// format: "geojson",
|
||||
// });
|
||||
// //const axInstance = axios.create()
|
||||
// const axInstance = axios.create({
|
||||
// proxy: {
|
||||
// host: process.env.PROXY_URL,
|
||||
// port: process.env.PROXY_PORT,
|
||||
// },
|
||||
// });
|
||||
// axios.defaults.timeout = 10000;
|
||||
// axios.defaults.crossDomain = true;
|
||||
// // respReverseGeo = await axios({
|
||||
// // url: request.osm_reverse_geo.urlFull,
|
||||
// // method: request.osm_reverse_geo.method,
|
||||
// // params: params,
|
||||
// // responseType: 'json',
|
||||
// // });
|
||||
// // respReverseGeo = await axInstance.get(request.osm_reverse_geo.urlFull + "?" + params.toString(), {
|
||||
// // timeout: 10000,
|
||||
// // });
|
||||
// respReverseGeo = await axInstance.get(request.osm_reverse_geo.urlFull + "?" + params.toString(), {
|
||||
// timeout: 10000,
|
||||
// headers: {
|
||||
// "User-Agent": "movana-fleet-management/1.0 (emirsyafmun@gmail.com)",
|
||||
// },
|
||||
// });
|
||||
// console.log("respReverseGeo: ", respReverseGeo.data || null);
|
||||
// let respData = respReverseGeo.data || {};
|
||||
// if (respReverseGeo.status == 200) {
|
||||
// if (respData.features.length < 1) {
|
||||
// GpsTracksModels.create2Address({
|
||||
// device_id: tracks[i].device_id,
|
||||
// master_id: tracks[i].id,
|
||||
// lat: tracks[i].latitude,
|
||||
// lng: tracks[i].longitude,
|
||||
// stts_reverse_geo: GpsTracksModels.STTS_REVERSE_GEO_LOST,
|
||||
// log_reverse_geo: JSON.stringify(respData),
|
||||
// crt: now,
|
||||
// crt_format: moment.unix(now).format("YYYY-MM-DD HH:mm:ss"),
|
||||
// });
|
||||
// updtData.stts_reverse_geo = GpsTracksModels.STTS_REVERSE_GEO_LOST;
|
||||
// await GpsTracksModels.update2(tracks[i].id, updtData);
|
||||
// } else {
|
||||
// let respAddr = respData.features[0].properties.address;
|
||||
// let addrData = {
|
||||
// device_id: tracks[i].device_id,
|
||||
// master_id: tracks[i].id,
|
||||
// lat: tracks[i].latitude,
|
||||
// lng: tracks[i].longitude,
|
||||
// country_id: GpsTracksModels.DEFAULT_COUNTRY_ID,
|
||||
// country_code: respAddr.country_code,
|
||||
// country_text: respAddr.country ? respAddr.country.toUpperCase() : respAddr.country || null,
|
||||
// state_id: null,
|
||||
// city_id: null,
|
||||
// district_id: null,
|
||||
// village_id: null,
|
||||
// postcode: respAddr.postcode,
|
||||
// fulladdress: encodeURIComponent(respData.features[0].properties.display_name),
|
||||
// stts_reverse_geo: GpsTracksModels.STTS_REVERSE_GEO_SC,
|
||||
// log_reverse_geo: respData.features[0].properties ? JSON.stringify(respData.features[0].properties) : null,
|
||||
// crt: now,
|
||||
// crt_format: moment.unix(now).format("YYYY-MM-DD HH:mm:ss"),
|
||||
// };
|
||||
// if (respAddr.state || respAddr.city) {
|
||||
// addrData.state_text = respAddr.region || respAddr.state || respAddr.state_district || respAddr.county || respAddr.city || "";
|
||||
// addrData.state_text = addrData.state_text ? addrData.state_text.toUpperCase() : addrData.state_text || null;
|
||||
// addrData.state_text = addrData.state_text || null;
|
||||
// }
|
||||
// if (respAddr.city_district || respAddr.city) {
|
||||
// addrData.city_text = respAddr.city_district || respAddr.city || "";
|
||||
// addrData.city_text = addrData.city_text ? addrData.city_text.toUpperCase() : addrData.city_text || null;
|
||||
// addrData.city_text = addrData.city_text || null;
|
||||
// }
|
||||
// if (respAddr.suburb || respAddr.subdistrict) {
|
||||
// addrData.district_text = respAddr.suburb || respAddr.subdistrict || respAddr.subdivision || "";
|
||||
// addrData.district_text = addrData.district_text ? addrData.district_text.toUpperCase() : addrData.district_text || null;
|
||||
// addrData.district_text = addrData.district_text || null;
|
||||
// }
|
||||
// if (respAddr.village) {
|
||||
// addrData.village_text = respAddr.village || respAddr.neighbourhood || "";
|
||||
// addrData.village_text = addrData.village_text ? addrData.village_text.toUpperCase() : addrData.village_text || null;
|
||||
// addrData.village_text = addrData.village_text || null;
|
||||
// }
|
||||
// if (respAddr.amenity || respAddr.road || respAddr.city_block) {
|
||||
// addrData.streets = "";
|
||||
// addrData.streets += respAddr.amenity ? respAddr.amenity + ", " : "";
|
||||
// addrData.streets += respAddr.road ? respAddr.road + ", " : "";
|
||||
// addrData.streets += respAddr.house_number ? respAddr.house_number + ", " : "";
|
||||
// addrData.streets += respAddr.house_name ? respAddr.house_name + ", " : "";
|
||||
// addrData.streets += respAddr.city_block ? respAddr.city_block + ", " : "";
|
||||
// addrData.streets += addrData.streets || null;
|
||||
// if (addrData.streets) {
|
||||
// addrData.streets = encodeURIComponent(addrData.streets.slice(0, -2));
|
||||
// }
|
||||
// }
|
||||
|
||||
// let byAll = await RegionModels.whereLike({
|
||||
// nmProvinsiKel: addrData.state_text,
|
||||
// nmKotamadyaKel: addrData.city_text,
|
||||
// nmKecamatanKel: addrData.district_text,
|
||||
// nmKelurahan: addrData.village_text,
|
||||
// });
|
||||
// if (byAll.length > 1) {
|
||||
// addrData.state_id = byAll[0].kodeProv;
|
||||
// addrData.city_id = byAll[0].kodeKab;
|
||||
// addrData.district_id = byAll[0].kodeKec;
|
||||
// addrData.village_id = byAll[0].kodeKel;
|
||||
// }
|
||||
|
||||
// let byKel = await RegionModels.whereLike({
|
||||
// nmKelurahan: addrData.village_text,
|
||||
// });
|
||||
// if (byAll.length < 1 && byKel.length > 0) {
|
||||
// addrData.state_id = byKel[0].kodeProv;
|
||||
// addrData.city_id = byKel[0].kodeKab;
|
||||
// addrData.district_id = byKel[0].kodeKec;
|
||||
// addrData.village_id = byKel[0].kodeKel;
|
||||
// }
|
||||
|
||||
// if (addrData.state_id === null) {
|
||||
// let byPr = await RegionModels.whereLike({ nmProvinsiKel: addrData.state_text });
|
||||
// if (byPr.length > 0) {
|
||||
// addrData.state_id = byPr[0].kodeProv;
|
||||
// }
|
||||
// }
|
||||
|
||||
// if (addrData.state_id !== null && addrData.city_id === null) {
|
||||
// let byKt = await RegionModels.whereLike({ nmKotamadyaKel: addrData.city_text });
|
||||
// if (byKt.length > 0) {
|
||||
// addrData.city_id = byKt[0].kodeKab;
|
||||
// }
|
||||
// }
|
||||
|
||||
// if (addrData.state_id !== null && addrData.city_id !== null && addrData.district_id === null) {
|
||||
// let byKc = await RegionModels.whereLike({ nmKecamatanKel: addrData.district_text });
|
||||
// if (byKc.length > 0) {
|
||||
// addrData.district_id = byKc[0].kodeKec;
|
||||
// }
|
||||
// }
|
||||
|
||||
// if (addrData.state_id !== null && addrData.city_id !== null && addrData.district_id !== null && addrData.village_id === null) {
|
||||
// let byKl = await RegionModels.whereLike({ nmKelurahan: addrData.village_text });
|
||||
// if (byKl.length > 0) {
|
||||
// addrData.village_id = byKl[0].kodeKel;
|
||||
// }
|
||||
// }
|
||||
|
||||
// GpsTracksModels.create2Address(addrData).catch((e) => {
|
||||
// Logger.log("error", `${schedulerName} running_error: ${JSON.stringify(e, Object.getOwnPropertyNames(e))}`);
|
||||
// });
|
||||
// updtData.stts_reverse_geo = GpsTracksModels.STTS_REVERSE_GEO_SC;
|
||||
// await GpsTracksModels.update2(tracks[i].id, updtData);
|
||||
// }
|
||||
// } else {
|
||||
// GpsTracksModels.create2Address({
|
||||
// device_id: tracks[i].device_id,
|
||||
// master_id: tracks[i].id,
|
||||
// lat: tracks[i].latitude,
|
||||
// lng: tracks[i].longitude,
|
||||
// stts_reverse_geo: GpsTracksModels.STTS_REVERSE_GEO_ER,
|
||||
// log_reverse_geo: JSON.stringify(respData),
|
||||
// crt: now,
|
||||
// crt_format: moment.unix(now).format("YYYY-MM-DD HH:mm:ss"),
|
||||
// });
|
||||
// updtData.stts_reverse_geo = GpsTracksModels.STTS_REVERSE_GEO_ER;
|
||||
// await GpsTracksModels.update2(tracks[i].id, updtData);
|
||||
// }
|
||||
// } catch (e) {
|
||||
// let respData = {};
|
||||
// if (respReverseGeo) {
|
||||
// if (respReverseGeo.status != 200) {
|
||||
// respData.data = respReverseGeo.data;
|
||||
// } else {
|
||||
// respData.msg = e.message;
|
||||
// }
|
||||
// } else if (typeof e.response != "undefined") {
|
||||
// respData.data = e.response;
|
||||
// } else {
|
||||
// respData.msg = e.message;
|
||||
// }
|
||||
// GpsTracksModels.create2Address({
|
||||
// device_id: tracks[i].device_id,
|
||||
// master_id: tracks[i].id,
|
||||
// lat: tracks[i].latitude,
|
||||
// lng: tracks[i].longitude,
|
||||
// stts_reverse_geo: GpsTracksModels.STTS_REVERSE_GEO_ER,
|
||||
// // log_reverse_geo: JSON.stringify(respData.data),
|
||||
// log_reverse_geo: stringify(respData.data),
|
||||
// crt: now,
|
||||
// crt_format: moment.unix(now).format("YYYY-MM-DD HH:mm:ss"),
|
||||
// });
|
||||
// updtData.stts_reverse_geo = GpsTracksModels.STTS_REVERSE_GEO_ER;
|
||||
// await GpsTracksModels.update2(tracks[i].id, updtData);
|
||||
// }
|
||||
// }
|
||||
}
|
||||
} catch (e) {
|
||||
console.error(e);
|
||||
Logger.log("error", `${schedulerName} error: ${JSON.stringify(e)}`);
|
||||
console.error(e)
|
||||
Logger.log("error", `${schedulerName} error: ${JSON.stringify(e)}`)
|
||||
}
|
||||
// })();
|
||||
|
||||
Logger.log("info", `${schedulerName} success do reverse geocoding ${moment().format("YYYY-MM-DD HH:mm:ss")}`);
|
||||
Logger.log("info", `${schedulerName} success do reverse geocoding ${moment().format("YYYY-MM-DD HH:mm:ss")}`)
|
||||
} catch (e) {
|
||||
Logger.log("error", `${schedulerName} error: ${JSON.stringify(e)}`);
|
||||
Logger.log("error", `${schedulerName} error: ${JSON.stringify(e)}`)
|
||||
}
|
||||
return true;
|
||||
};
|
||||
return true
|
||||
}
|
||||
|
||||
const index = async () => {
|
||||
while (1 == 1) {
|
||||
await go();
|
||||
await new Promise((r) => setTimeout(r, 1000));
|
||||
await go()
|
||||
await new Promise((r) => setTimeout(r, 1000))
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
index();
|
||||
index()
|
||||
|
||||
Reference in New Issue
Block a user