123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128 |
- # -*- coding: utf-8 -*-
- from config import settings
- from common.BigDataCenterAPI import *
- from utils import *
- import pymysql
- def jwd_to_area(location):
- url = 'https://19.15.75.180:8581/GatewayMsg/http/api/proxy/invoke'
- service_code = 'YZT1685418808667'
- passid = 'C90-44004428'
- passtoken = 'f539f616b2834160bc47fda5f298512c'
- signTime = str(GetTime() // 1000)
- nonce = GetNonce(5)
- sign = GetSign(signTime, nonce, passtoken)
- headers = {
- 'Content-Type': 'application/json',
- 'x-tif-signature': sign,
- 'x-tif-timestamp': signTime,
- 'x-tif-nonce': nonce,
- 'x-tif-paasid': passid,
- 'x-tif-serviceId': service_code
- }
- response = requests.post(url=url, headers=headers, json=location, verify=False)
- if response.status_code == 200:
- try:
- data = response.json()['data'][0]
- district = data['district']
- township = data['township']
- return district,township
- except:
- return None,None
- def put_area(table : str,longitude='longitude',latitude='latitude'):
- conn=None
- cur = None
- try:
- conn = pymysql.connect(host=settings.MYSQL_SERVER,
- user=settings.MYSQL_USER,
- password=settings.MYSQL_PASSWORD,
- database=settings.MYSQL_DB_NAME,
- port=settings.MYSQL_PORT,
- charset='utf8mb4')
- cur = conn.cursor()
- sql = f'select id,{longitude},{latitude} from {table}'
- cur.execute(sql)
- resu = cur.fetchall()
- for info in resu:
- id_1 = info[0]
- location = [{"x":info[1],"y":info[2]}]
- area,township = jwd_to_area(location)
- update_sql = f"UPDATE {table} SET area = %s WHERE id = %s"
- cur.execute(update_sql, (area, id_1))
- conn.commit() # 提交事务
- except pymysql.MySQLError as e:
- print(f"Error: {e}")
- finally:
- if cur:
- cur.close()
- if conn:
- conn.close()
- def put_township(table : str,longitude='longitude',latitude='latitude'):
- conn=None
- cur = None
- try:
- conn = pymysql.connect(host=settings.MYSQL_SERVER,
- user=settings.MYSQL_USER,
- password=settings.MYSQL_PASSWORD,
- database=settings.MYSQL_DB_NAME,
- port=settings.MYSQL_PORT,
- charset='utf8mb4')
- cur = conn.cursor()
- sql = f'select id,{longitude},{latitude} from {table}'
- cur.execute(sql)
- resu = cur.fetchall()
- for info in resu:
- id_1 = info[0]
- location = [{"x":info[1],"y":info[2]}]
- area,township = jwd_to_area(location)
- update_sql = f"UPDATE {table} SET township = %s WHERE id = %s"
- cur.execute(update_sql, (township, id_1))
- conn.commit() # 提交事务
- except pymysql.MySQLError as e:
- print(f"Error: {e}")
- finally:
- if cur:
- cur.close()
- if conn:
- conn.close()
- def put_uuid(table,column):
- conn = None
- cur = None
- try:
- conn = pymysql.connect(host=settings.MYSQL_SERVER,
- user=settings.MYSQL_USER,
- password=settings.MYSQL_PASSWORD,
- database=settings.MYSQL_DB_NAME,
- port=settings.MYSQL_PORT,
- charset='utf8mb4')
- cur = conn.cursor()
- sql = f'select distinct {column} from {table}'
- cur.execute(sql)
- resu = cur.fetchall()
- for info in resu:
- column_data = info[0]
- uid = new_guid()
- update_sql = f"UPDATE {table} SET uid = %s WHERE {column} = %s"
- cur.execute(update_sql, (uid,column_data))
- conn.commit() # 提交事务
- except pymysql.MySQLError as e:
- print(f"Error: {e}")
- finally:
- if cur:
- cur.close()
- if conn:
- conn.close()
- #put_uuid('rescue_materia','management_unit')
- #put_area('emergency_expert')
- # put_area('mid_waterlogged_roads','lng','lat')
- # put_area('mid_school')
- # put_area('mid_hospital')
- # put_area('tower_list')
- # put_area('govdata_real_time_address')
- put_township('govdata_real_time_address')
|