更新百度接口
This commit is contained in:
parent
103f121523
commit
f7b89b3101
|
|
@ -35,20 +35,23 @@
|
|||
:tree-props="{children: 'children', hasChildren: 'hasChildren'}"
|
||||
@selection-change="handleSelectionChange"
|
||||
>
|
||||
<el-table-column type="selection" width="50"></el-table-column>
|
||||
<el-table-column type="selection" width="40"></el-table-column>
|
||||
<el-table-column label="单位名称">
|
||||
<template slot-scope="scope">{{ scope.row.name }}</template>
|
||||
</el-table-column>
|
||||
|
||||
<el-table-column label="所在地区">
|
||||
<template slot-scope="scope" v-if="scope.row.geo">
|
||||
<span v-if="scope.row.geo.pname">{{ scope.row.geo.pname }}</span>
|
||||
<span v-if="scope.row.geo.cityname">/{{ scope.row.geo.cityname }}</span>
|
||||
<span v-if="scope.row.geo.adname">/{{ scope.row.geo.adname }}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="创建日期">
|
||||
<template slot-scope="scope">
|
||||
<span>{{ scope.row.create_time }}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="所在地区">
|
||||
<template slot-scope="scope" v-if="scope.row.geo">
|
||||
<span>{{ scope.row.geo.province }}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="所属">
|
||||
<template slot-scope="scope">
|
||||
<span>{{ scope.row.create_admin_name }}</span>
|
||||
|
|
|
|||
|
|
@ -101,9 +101,9 @@ class Companydis(APIView):
|
|||
"""
|
||||
def get(self, request, format=None):
|
||||
ret = {'s':[], 't':'单位分布', 'max':300, 'min':0}
|
||||
tmp = Company.objects.exclude(geo__isnull=True).values('geo__province').annotate(total=Count('geo__province'))
|
||||
tmp = Company.objects.exclude(geo__isnull=True).values('pname').annotate(total=Count('pname'))
|
||||
for i in tmp:
|
||||
ret['s'].append({'name':nameMap[i['geo__province']], 'value':i['total']})
|
||||
ret['s'].append({'name':nameMap[i['pname']], 'value':i['total']})
|
||||
return Response(ret)
|
||||
|
||||
class Consumerdis(APIView):
|
||||
|
|
@ -112,9 +112,9 @@ class Consumerdis(APIView):
|
|||
"""
|
||||
def get(self, request, format=None):
|
||||
ret = {'s':[], 't':'学员分布', 'max':600, 'min':0}
|
||||
tmp = Consumer.objects.exclude(company__geo__isnull=True).values('company__geo__province').annotate(total=Count('company__geo__province'))
|
||||
tmp = Consumer.objects.exclude(company__geo__isnull=True).values('company__pname').annotate(total=Count('company__pname'))
|
||||
for i in tmp:
|
||||
ret['s'].append({'name':nameMap[i['company__geo__province']], 'value':i['total']})
|
||||
ret['s'].append({'name':nameMap[i['company__pname']], 'value':i['total']})
|
||||
return Response(ret)
|
||||
class Quota(APIView):
|
||||
'''
|
||||
|
|
|
|||
|
|
@ -91,14 +91,40 @@ class ConsumerPermViewSet(ModelViewSet):
|
|||
ordering_fields = ['create_time']
|
||||
ordering = ['-create_time']
|
||||
|
||||
|
||||
def getPosition(address):
|
||||
url = 'http://restapi.amap.com/v3/geocode/geo'
|
||||
par = {'address': address, 'key': '86e0993305a427ac2d0b5371ad97f242'}
|
||||
keys1 = ['86e0993305a427ac2d0b5371ad97f242']
|
||||
def getPosition(name):
|
||||
# 高德接口
|
||||
url = 'http://restapi.amap.com/v3/place/text'
|
||||
par = {'keywords': name, 'key': keys1[0]}
|
||||
res = requests.get(url, par)
|
||||
json_data = json.loads(res.text)
|
||||
fdata = {}
|
||||
if json_data['status'] == '1' and int(json_data['count']) > 0:
|
||||
return json_data['geocodes'][0]
|
||||
alldata = json_data['pois'][0]
|
||||
fdata['cname'] = '中国'
|
||||
fdata['pname'] = alldata['pname']
|
||||
fdata['cityname'] = alldata['cityname']
|
||||
fdata['adname'] = alldata['adname']
|
||||
fdata['address'] = alldata['address']
|
||||
return fdata
|
||||
return None
|
||||
|
||||
keys2 = ['v31TjiNQoCCF1PwDVWU43yUjSoyQSdmj']
|
||||
def getPosition2(name):
|
||||
# 百度接口
|
||||
url = 'http://api.map.baidu.com/place/v2/search'
|
||||
par = {'query': name, 'ak': keys2[0], 'region':'全国', 'output':'json'}
|
||||
res = requests.get(url, par)
|
||||
json_data = json.loads(res.text)
|
||||
fdata = {}
|
||||
if len(json_data['results'])> 0 and 'province' in json_data['results'][0]:
|
||||
alldata = json_data['results'][0]
|
||||
fdata['cname'] = '中国'
|
||||
fdata['pname'] = alldata['province']
|
||||
fdata['cityname'] = alldata['city']
|
||||
fdata['adname'] = alldata['area']
|
||||
fdata['address'] = alldata['address'] if 'address' in alldata else ''
|
||||
return fdata
|
||||
return None
|
||||
|
||||
class CompanyViewSet(ModelViewSet):
|
||||
|
|
@ -118,14 +144,22 @@ class CompanyViewSet(ModelViewSet):
|
|||
|
||||
def perform_create(self, serializer):
|
||||
instance = serializer.save(create_admin=self.request.user)
|
||||
geo = getPosition(instance.name)
|
||||
geo = None
|
||||
try:
|
||||
geo = getPosition2(instance.name)
|
||||
except:
|
||||
pass
|
||||
if geo:
|
||||
instance.geo = geo
|
||||
instance.save()
|
||||
|
||||
def perform_update(self, serializer):
|
||||
instance = serializer.save()
|
||||
geo = getPosition(instance.name)
|
||||
geo = None
|
||||
try:
|
||||
geo = getPosition2(instance.name)
|
||||
except:
|
||||
pass
|
||||
if geo:
|
||||
instance.geo = geo
|
||||
instance.save()
|
||||
|
|
@ -175,12 +209,17 @@ class CompanyViewSet(ModelViewSet):
|
|||
"""
|
||||
地理位置
|
||||
"""
|
||||
companys = Company.objects.filter(geo__isnull=True).order_by('-create_time')
|
||||
companys = Company.objects.all().order_by('-create_time')
|
||||
for i in companys:
|
||||
geo = getPosition(i.name)
|
||||
geo = None
|
||||
try:
|
||||
geo = getPosition2(i.name)
|
||||
except:
|
||||
pass
|
||||
if geo:
|
||||
i.geo = geo
|
||||
i.save()
|
||||
print(str(i.id) + '-' + i.name + '-ok')
|
||||
return Response(status=status.HTTP_200_OK)
|
||||
|
||||
|
||||
|
|
@ -419,7 +458,11 @@ class ConsumerViewSet(ModelViewSet):
|
|||
companyobj = Company.objects.get(name=companyname)
|
||||
else:
|
||||
companyobj = Company.objects.create(name=companyname, create_admin=request.user)
|
||||
geo = getPosition(companyobj.name)
|
||||
geo = None
|
||||
try:
|
||||
geo = getPosition2(companyobj.name)
|
||||
except:
|
||||
pass
|
||||
if geo:
|
||||
companyobj.geo = geo
|
||||
companyobj.save()
|
||||
|
|
|
|||
Loading…
Reference in New Issue