61 lines
2.1 KiB
JavaScript
61 lines
2.1 KiB
JavaScript
import hash from "hash.js"
|
|
|
|
const nonceHeader = "123456789abcdefg"
|
|
let http = {}, riskareaList = []
|
|
const getSHA256 = key => hash.sha256().update(key).digest("hex")
|
|
const getData = (timestampHeader) => {
|
|
return http.post("/app/appepidemicpreventionriskarea/apiForwardPost", {
|
|
appId: "NcApplication",
|
|
key: "3C502C97ABDA40D0A60FBEE50FAAD1DA",
|
|
nonceHeader,
|
|
paasHeader: "zdww",
|
|
signatureHeader: getSHA256(`${timestampHeader}23y0ufFl5YxIyGrI8hWRUZmKkvtSjLQA${nonceHeader}${timestampHeader}`).toUpperCase(),
|
|
timestampHeader
|
|
}, {
|
|
withoutToken: true,
|
|
headers: {
|
|
Referer: "http://bmfw.www.gov.cn/yqfxdjcx/risk.html",
|
|
"x-wif-nonce": "QkjjtiLM2dCratiA",
|
|
"x-wif-paasid": "smt-application",
|
|
"x-wif-signature": getSHA256(`${timestampHeader}fTN2pfuisxTavbTuYVSsNJHetwq5bJvCQkjjtiLM2dCratiA${timestampHeader}`).toUpperCase(),
|
|
"x-wif-timestamp": timestampHeader
|
|
},
|
|
params: {
|
|
url: "http://bmfw.www.gov.cn/bjww/interface/interfaceJson"
|
|
}
|
|
}).then(res => {
|
|
if (res?.data?.data) {
|
|
const {highlist, lowlist, middlelist} = res.data.data
|
|
return Promise.all([
|
|
handleData(highlist, 2),
|
|
handleData(middlelist, 1),
|
|
// handleData(lowlist, 0)
|
|
])
|
|
}
|
|
})
|
|
}
|
|
const transName2Code = area_name => http.post("/app/appepidemicpreventionriskarea/transformationAreaName", null, {
|
|
params: {area_name}
|
|
}).then(res => {
|
|
if (res?.data) {
|
|
return res.data
|
|
}
|
|
})
|
|
const handleData = (list, riskLevel) => {
|
|
return Promise.all(list.map(e => {
|
|
const {province, city, county: district, area_name} = e
|
|
return transName2Code(area_name).then(areaId => e?.communitys?.map(address => riskareaList.push({
|
|
province, city, district, address, areaId,
|
|
level: riskLevel,
|
|
createUserName: "国家卫健委"
|
|
})
|
|
))
|
|
}))
|
|
}
|
|
export const getRiskArea = ins => {
|
|
http = ins
|
|
const timestamp = Math.round(new Date().getTime() / 1000).toString()
|
|
riskareaList = []
|
|
return getData(timestamp).then(() => http.post("/app/appepidemicpreventionriskarea/batchInsert", riskareaList))
|
|
}
|