超期未过延长期限一个月
This commit is contained in:
parent
13588d91ec
commit
925cf5fbd7
|
|
@ -100,7 +100,7 @@ class Companydis(APIView):
|
|||
单位分布
|
||||
"""
|
||||
def get(self, request, format=None):
|
||||
ret = {'s':[], 't':'单位分布', 'max':300, 'min':0}
|
||||
ret = {'s':[], 't':'单位分布', 'max':800, 'min':0}
|
||||
tmp = Company.objects.exclude(geo__pname__isnull=True).values('geo__pname').annotate(total=Count('geo__pname'))
|
||||
for i in tmp:
|
||||
if i['geo__pname'] in nameMap:
|
||||
|
|
@ -112,7 +112,7 @@ class Consumerdis(APIView):
|
|||
学员分布
|
||||
"""
|
||||
def get(self, request, format=None):
|
||||
ret = {'s':[], 't':'学员分布', 'max':600, 'min':0}
|
||||
ret = {'s':[], 't':'学员分布', 'max':3000, 'min':0}
|
||||
tmp = Consumer.objects.exclude(company__geo__pname__isnull=True).values('company__geo__pname').annotate(total=Count('company__geo__pname'))
|
||||
for i in tmp:
|
||||
if i['company__geo__pname'] in nameMap:
|
||||
|
|
|
|||
|
|
@ -69,8 +69,8 @@ class Consumer(CommonModel):
|
|||
collects = models.ManyToManyField(Question, verbose_name='收藏试题')
|
||||
process = JSONField('练习进度', blank=True, default=dict)
|
||||
|
||||
ID_number = models.CharField('身份证号', max_length=100, null=True, blank=True)
|
||||
realname = models.CharField('真实姓名', max_length=100, null=True, blank=True)
|
||||
ID_number = models.CharField('查询身份证号', max_length=100, null=True, blank=True)
|
||||
realname = models.CharField('查询真实姓名', max_length=100, null=True, blank=True)
|
||||
|
||||
ID_number1 = models.CharField('身份证号', max_length=100, null=True, blank=True)
|
||||
create_admin = models.ForeignKey(UserProfile, on_delete=models.SET_NULL, null=True, blank=True, related_name='consumer_create_admin')
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@ from crm.models import Consumer
|
|||
from rest_framework.permissions import IsAuthenticated
|
||||
from django.core.cache import cache
|
||||
from django.utils import timezone
|
||||
from datetime import datetime
|
||||
from datetime import datetime, timedelta
|
||||
# 学员接口列表
|
||||
ConsumerPerms = [
|
||||
'paper_view',
|
||||
|
|
@ -22,9 +22,20 @@ VistorPerms = [
|
|||
'questioncat_view',
|
||||
'my_examtest',
|
||||
]
|
||||
from .spider import getZs
|
||||
def get_consumerperm_list(consumer):
|
||||
perms = list(consumer.role.perms.values_list('code', flat=True))
|
||||
if consumer.exceed_date and (consumer.exceed_date < datetime.date(timezone.now())):
|
||||
if consumer.name and consumer.ID_number1:
|
||||
candidates = getZs(consumer.name, consumer.ID_number1)
|
||||
if candidates:
|
||||
perms.append('account_exceed')
|
||||
else:
|
||||
# 未通过考试增加30天期限
|
||||
newdate = datetime.date(timezone.now() + timedelta(days=30))
|
||||
consumer.exceed_date = newdate
|
||||
consumer.save()
|
||||
else:
|
||||
perms.append('account_exceed')
|
||||
cache.get_or_set('cperms_'+str(consumer.id), perms)
|
||||
return perms
|
||||
|
|
|
|||
|
|
@ -0,0 +1,27 @@
|
|||
import requests
|
||||
from lxml import etree
|
||||
|
||||
def getZs(realname, ID_number):
|
||||
payload = {'IndexModel[name]': realname, 'IndexModel[identityNumber]': ID_number, 'IndexModel[certNumber]':'', 'IndexModel[candidateNumber]':''}
|
||||
r = requests.post('https://fushe.chinansc.cn/open/candidate-list',data=payload)
|
||||
html = etree.HTML(r.text)
|
||||
results = html.xpath("//table[@class='cert-table']")
|
||||
candidates = []
|
||||
try:
|
||||
for i in results:
|
||||
img = i.xpath('tr/td/a/@href')
|
||||
name = i.xpath('tr[1]/td[1]/text()')
|
||||
ID_number = i.xpath('tr[1]/td[2]/text()')
|
||||
report_number = i.xpath('tr[2]/td[1]/text()')
|
||||
issue_date = i.xpath('tr[2]/td[2]/text()')
|
||||
jsondata = {
|
||||
'name':name[0],
|
||||
'ID_number':ID_number[0],
|
||||
'report_number':report_number[0],
|
||||
'issue_date':issue_date[0],
|
||||
'img':'https://fushe.chinansc.cn'+ img[0]
|
||||
}
|
||||
candidates.append(jsondata)
|
||||
except:
|
||||
pass
|
||||
return candidates
|
||||
|
|
@ -33,6 +33,7 @@ from .serializers import CompanySerializer, ConsumerSerializer, ConsumerPermSeri
|
|||
from lxml import etree
|
||||
from rbac.models import UserProfile
|
||||
from django.http import Http404
|
||||
from .spider import getZs
|
||||
import time
|
||||
appid = 'wxf1e9471c93f05ad6'
|
||||
secret = '4bf7f9bd6c52634586bbe792a1f0a834'
|
||||
|
|
@ -379,7 +380,7 @@ class ConsumerViewSet(ModelViewSet):
|
|||
url_path='realinfo', url_name='get_realinfo', perms_map=[{'*':'*'}])
|
||||
def realinfo(self, request):
|
||||
'''
|
||||
修改真实信息
|
||||
修改查询信息
|
||||
'''
|
||||
if isinstance(request.user, Consumer):
|
||||
request.user.ID_number = request.data['ID_number']
|
||||
|
|
@ -394,28 +395,7 @@ class ConsumerViewSet(ModelViewSet):
|
|||
'''
|
||||
证书查询
|
||||
'''
|
||||
payload = {'IndexModel[name]': request.query_params['realname'], 'IndexModel[identityNumber]': request.query_params['ID_number'], 'IndexModel[certNumber]':'', 'IndexModel[candidateNumber]':''}
|
||||
r = requests.post('https://fushe.chinansc.cn/open/candidate-list',data=payload)
|
||||
html = etree.HTML(r.text)
|
||||
results = html.xpath("//table[@class='cert-table']")
|
||||
candidates = []
|
||||
try:
|
||||
for i in results:
|
||||
img = i.xpath('tr/td/a/@href')
|
||||
name = i.xpath('tr[1]/td[1]/text()')
|
||||
ID_number = i.xpath('tr[1]/td[2]/text()')
|
||||
report_number = i.xpath('tr[2]/td[1]/text()')
|
||||
issue_date = i.xpath('tr[2]/td[2]/text()')
|
||||
jsondata = {
|
||||
'name':name[0],
|
||||
'ID_number':ID_number[0],
|
||||
'report_number':report_number[0],
|
||||
'issue_date':issue_date[0],
|
||||
'img':'https://fushe.chinansc.cn'+ img[0]
|
||||
}
|
||||
candidates.append(jsondata)
|
||||
except:
|
||||
pass
|
||||
candidates = getZs(request.query_params['realname'], request.query_params['ID_number'])
|
||||
return Response({'candidates':candidates}, status=status.HTTP_200_OK)
|
||||
|
||||
@action(methods=['post'], detail=False,
|
||||
|
|
|
|||
Loading…
Reference in New Issue