- InitPlace中保留手工建的数据(code > 9000000)
This commit is contained in:
@@ -57,82 +57,92 @@ func insertPlace(ctx *jxcontext.Context, db *dao.DaoDB, parent *autonavi.Distric
|
|||||||
}
|
}
|
||||||
|
|
||||||
func InitPlace(ctx *jxcontext.Context) (err error) {
|
func InitPlace(ctx *jxcontext.Context) (err error) {
|
||||||
|
placeList, err2 := api.AutonaviAPI.GetDistricts(autonavi.DistrictLevelDistrict, "")
|
||||||
|
if err = err2; err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
placeList = placeList[0].Districts
|
||||||
db := dao.GetDB()
|
db := dao.GetDB()
|
||||||
if err = TruncateTable(db, "place"); err == nil {
|
dao.Begin(db)
|
||||||
placeList, err2 := api.AutonaviAPI.GetDistricts(autonavi.DistrictLevelDistrict, "")
|
defer func() {
|
||||||
if err = err2; err != nil {
|
if r := recover(); r != nil || err != nil {
|
||||||
return err
|
|
||||||
}
|
|
||||||
placeList = placeList[0].Districts
|
|
||||||
dao.Begin(db)
|
|
||||||
defer func() {
|
|
||||||
dao.Rollback(db)
|
dao.Rollback(db)
|
||||||
}()
|
if r != nil {
|
||||||
if err = insertPlace(ctx, db, nil, placeList); err != nil {
|
panic(r)
|
||||||
return err
|
|
||||||
}
|
|
||||||
updateSqls := []string{
|
|
||||||
`
|
|
||||||
UPDATE place t1
|
|
||||||
JOIN jde_city t2 ON t1.code = t2.col_tencentAddressCode
|
|
||||||
SET t1.jd_code = t2.col_areaCode;
|
|
||||||
`,
|
|
||||||
`
|
|
||||||
UPDATE place t1
|
|
||||||
JOIN place t2 ON t1.parent_code = t2.code AND t2.jd_code != 0
|
|
||||||
JOIN jde_district t3 ON t1.name = t3.col_areaName AND t2.jd_code = t3.col_cityCode
|
|
||||||
SET t1.jd_code = t3.col_areaCode
|
|
||||||
WHERE t1.level = 3;
|
|
||||||
`,
|
|
||||||
`
|
|
||||||
UPDATE
|
|
||||||
place t1
|
|
||||||
JOIN ebde_places t2 ON t1.name = t2.col_city_name
|
|
||||||
SET t1.ebai_code = t2.col_city_id
|
|
||||||
WHERE t1.level = 1 OR t1.level = 2;
|
|
||||||
`,
|
|
||||||
`
|
|
||||||
UPDATE
|
|
||||||
place t1
|
|
||||||
JOIN place t1p ON t1.parent_code = t1p.code
|
|
||||||
JOIN ebde_places t2 ON t1.name = t2.col_city_name
|
|
||||||
JOIN ebde_places t2p ON t2.col_parent_id = t2p.col_city_id AND t1p.ebai_code = t2p.col_city_id
|
|
||||||
SET t1.ebai_code = t2.col_city_id
|
|
||||||
WHERE t1.level = 3;
|
|
||||||
`,
|
|
||||||
`
|
|
||||||
UPDATE
|
|
||||||
place t1
|
|
||||||
JOIN mtpsdeliveryprice t2 ON t1.code = t2.citycode
|
|
||||||
SET t1.mtps_price = t2.price;
|
|
||||||
`,
|
|
||||||
`
|
|
||||||
UPDATE
|
|
||||||
place t1
|
|
||||||
JOIN mtpsdeliveryprice t2 ON t1.name LIKE CONCAT(t2.cityname, '%')
|
|
||||||
SET t1.mtps_price = t2.price
|
|
||||||
WHERE t1.level = 2 AND t1.mtps_price = 0;
|
|
||||||
`,
|
|
||||||
`
|
|
||||||
UPDATE place t1
|
|
||||||
LEFT JOIN (
|
|
||||||
SELECT DISTINCT city_code
|
|
||||||
FROM store
|
|
||||||
UNION DISTINCT
|
|
||||||
SELECT DISTINCT place_code city_code
|
|
||||||
FROM sku_name_place_bind
|
|
||||||
) t2 ON t1.code = t2.city_code
|
|
||||||
SET t1.enabled = 0
|
|
||||||
WHERE t1.level = 2 AND t2.city_code IS NULL;
|
|
||||||
`,
|
|
||||||
}
|
|
||||||
for _, v := range updateSqls {
|
|
||||||
if _, err = dao.ExecuteSQL(db, v); err != nil {
|
|
||||||
return err
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
dao.Commit(db)
|
}()
|
||||||
|
if _, err = dao.ExecuteSQL(db, `
|
||||||
|
DELETE t1
|
||||||
|
FROM place t1
|
||||||
|
WHERE code > 9000000;
|
||||||
|
`); err != nil {
|
||||||
|
return err
|
||||||
}
|
}
|
||||||
|
if err = insertPlace(ctx, db, nil, placeList); err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
updateSqls := []string{
|
||||||
|
`
|
||||||
|
UPDATE place t1
|
||||||
|
JOIN jde_city t2 ON t1.code = t2.col_tencentAddressCode
|
||||||
|
SET t1.jd_code = t2.col_areaCode;
|
||||||
|
`,
|
||||||
|
`
|
||||||
|
UPDATE place t1
|
||||||
|
JOIN place t2 ON t1.parent_code = t2.code AND t2.jd_code != 0
|
||||||
|
JOIN jde_district t3 ON t1.name = t3.col_areaName AND t2.jd_code = t3.col_cityCode
|
||||||
|
SET t1.jd_code = t3.col_areaCode
|
||||||
|
WHERE t1.level = 3;
|
||||||
|
`,
|
||||||
|
`
|
||||||
|
UPDATE
|
||||||
|
place t1
|
||||||
|
JOIN ebde_places t2 ON t1.name = t2.col_city_name
|
||||||
|
SET t1.ebai_code = t2.col_city_id
|
||||||
|
WHERE t1.level = 1 OR t1.level = 2;
|
||||||
|
`,
|
||||||
|
`
|
||||||
|
UPDATE
|
||||||
|
place t1
|
||||||
|
JOIN place t1p ON t1.parent_code = t1p.code
|
||||||
|
JOIN ebde_places t2 ON t1.name = t2.col_city_name
|
||||||
|
JOIN ebde_places t2p ON t2.col_parent_id = t2p.col_city_id AND t1p.ebai_code = t2p.col_city_id
|
||||||
|
SET t1.ebai_code = t2.col_city_id
|
||||||
|
WHERE t1.level = 3;
|
||||||
|
`,
|
||||||
|
`
|
||||||
|
UPDATE
|
||||||
|
place t1
|
||||||
|
JOIN mtpsdeliveryprice t2 ON t1.code = t2.citycode
|
||||||
|
SET t1.mtps_price = t2.price;
|
||||||
|
`,
|
||||||
|
`
|
||||||
|
UPDATE
|
||||||
|
place t1
|
||||||
|
JOIN mtpsdeliveryprice t2 ON t1.name LIKE CONCAT(t2.cityname, '%')
|
||||||
|
SET t1.mtps_price = t2.price
|
||||||
|
WHERE t1.level = 2 AND t1.mtps_price = 0;
|
||||||
|
`,
|
||||||
|
`
|
||||||
|
UPDATE place t1
|
||||||
|
LEFT JOIN (
|
||||||
|
SELECT DISTINCT city_code
|
||||||
|
FROM store
|
||||||
|
UNION DISTINCT
|
||||||
|
SELECT DISTINCT place_code city_code
|
||||||
|
FROM sku_name_place_bind
|
||||||
|
) t2 ON t1.code = t2.city_code
|
||||||
|
SET t1.enabled = 0
|
||||||
|
WHERE t1.level = 2 AND t2.city_code IS NULL;
|
||||||
|
`,
|
||||||
|
}
|
||||||
|
for _, v := range updateSqls {
|
||||||
|
if _, err = dao.ExecuteSQL(db, v); err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
}
|
||||||
|
dao.Commit(db)
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user