소스 검색

feat: 新增函数 patch 用于补漏

modood 7 년 전
부모
커밋
717d9baf63
1개의 변경된 파일28개의 추가작업 그리고 3개의 파일을 삭제
  1. 28 3
      lib/worker.js

+ 28 - 3
lib/worker.js

@@ -130,9 +130,11 @@ exports.fetchStreets = async () => {
 
       // 特殊处理:名为市辖区的县级没有乡级
       // 1. 福建省泉州市金门县(350527)也没有乡级
-      // 2. 甘肃省嘉峪关市下仅一个县级名为市辖区(code: 620201),
-      //    但是它有乡级,因此在抓取县级的时候已经重命名
-      if (areaName === '市辖区' || ['350527'].includes(areaCode)) continue
+      // 2. 甘肃省嘉峪关市下一个县级名为市辖区(code: 620201),
+      //    海南省三亚市下一个县级名为市辖区(code: 460201),
+      //    但是它们有乡级,因此不可略过。
+      if ((areaName === '市辖区' && !['620201', '460201'].includes(areaCode)) ||
+        ['350527'].includes(areaCode)) continue
 
       // 特殊处理:广东省中山市(3320)、广东省东莞市(4419)、海南省儋州市(4604)的乡级
       // 页面的路由比较特别,需要手动拼接。
@@ -195,3 +197,26 @@ exports.fetchVillages = async () => {
     after = r.cursors.after
   }
 }
+
+/**
+ * 补漏
+ * @author   https://github.com/modood
+ * @datetime 2018-02-02 13:39
+ */
+exports.patch = async () => {
+  // 特殊处理:福建省泉州市金门县(350527)没有乡级导致没有匹配上爬取县级的正则表达式。
+  // 手动插入县级、乡级、村级
+  const areas = [
+    { code: '350527', name: '金门县', cityCode: '3505', provinceCode: '35' }
+  ]
+  const streets = [
+    { code: '350527000', name: '金门县', areaCode: '350527', cityCode: '3505', provinceCode: '35' }
+  ]
+  const villages = [
+    { code: '350527000000', name: '金门县', streetCode: '350527000', areaCode: '350527', cityCode: '3505', provinceCode: '35' }
+  ]
+
+  await Area.bulkCreate(areas, { ignoreDuplicates: true })
+  await Street.bulkCreate(streets, { ignoreDuplicates: true })
+  await Village.bulkCreate(villages, { ignoreDuplicates: true })
+}