用户名已存在的bug
This commit is contained in:
parent
2c2172e990
commit
dfd6ccef18
|
@ -1,3 +1,6 @@
|
|||
from enum import Enum
|
||||
|
||||
|
||||
NO_NEED_LEVEL_REMARK = {"code":"no_need_level_remark", "detail":"无需填写离岗说明"}
|
||||
PHONE_F_WRONG = {"code":"phone_f_wrong", "detail":"手机号格式错误"}
|
||||
PHONE_EXIST = {"code":"phone_exist", "detail":"手机号已存在"}
|
||||
|
|
|
@ -36,7 +36,7 @@ class Employee(CommonBModel):
|
|||
show_atwork = models.BooleanField('是否展示在岗状态', default=True)
|
||||
last_check_time = models.DateTimeField('打卡时间', null=True, blank=True)
|
||||
not_work_remark = models.CharField('当前未打卡说明', null=True, blank=True, max_length=200)
|
||||
third_info = models.JSONField('三方信息', default=dict, null=True, blank=True)
|
||||
third_info = models.JSONField('三方信息', default=dict, null=False, blank=True)
|
||||
class Meta:
|
||||
verbose_name = '员工补充信息'
|
||||
verbose_name_plural = verbose_name
|
||||
|
|
|
@ -161,7 +161,7 @@ class EmployeeCreateUpdateSerializer(EmployeeBaseSerializer):
|
|||
if not third_info.get('dh_face_card', None):
|
||||
_, res = dhClient.request(**dhapis['gen_card_id'])
|
||||
cardId = res['id']
|
||||
cardNumber = instance.id[:8] + rannum(2)
|
||||
cardNumber = instance.id[3:8] + rannum(5)
|
||||
now = datetime.now()
|
||||
startDate = now.strftime("%Y-%m-%d %H:%M:%S")
|
||||
endDate = (datetime(year=now.year+50,
|
||||
|
|
|
@ -83,7 +83,7 @@ class EmployeeViewSet(CustomModelViewSet):
|
|||
serializer = self.get_serializer(data=request.data)
|
||||
serializer.is_valid(raise_exception=True)
|
||||
vdata = serializer.validated_data
|
||||
objs = Employee.objects.filter(pk__in=vdata['pks'])
|
||||
objs = Employee.objects.filter(pk__in=vdata['pks'], third_info__dh_face_card__isnull=False)
|
||||
infos = objs.values('third_info')
|
||||
cards = []
|
||||
for i in infos:
|
||||
|
@ -95,13 +95,16 @@ class EmployeeViewSet(CustomModelViewSet):
|
|||
"privilegeType": 1,
|
||||
"resouceCode": i
|
||||
})
|
||||
json_data = {
|
||||
"cardNumbers": cards,
|
||||
"timeQuantumId": 1,
|
||||
"cardPrivilegeDetails": details
|
||||
}
|
||||
dhClient.request(**dhapis['card_door_authority'], json=json_data)
|
||||
objs.update(third_info__dh_channels = vdata['channels'])
|
||||
if cards and details:
|
||||
json_data = {
|
||||
"cardNumbers": cards,
|
||||
"timeQuantumId": 1,
|
||||
"cardPrivilegeDetails": details
|
||||
}
|
||||
dhClient.request(**dhapis['card_door_authority'], json=json_data)
|
||||
for i in objs:
|
||||
i.third_info['dh_channels'] = vdata['channels']
|
||||
Employee.objects.bulk_update(objs, fields = ['third_info'])
|
||||
return Response()
|
||||
|
||||
class ClockRecordViewSet(ListModelMixin, CustomGenericViewSet):
|
||||
|
|
|
@ -0,0 +1,3 @@
|
|||
from django.contrib import admin
|
||||
|
||||
# Register your models here.
|
|
@ -0,0 +1,5 @@
|
|||
from django.apps import AppConfig
|
||||
|
||||
|
||||
class MqConfig(AppConfig):
|
||||
name = 'mq'
|
|
@ -0,0 +1,3 @@
|
|||
from django.db import models
|
||||
|
||||
# Create your models here.
|
|
@ -0,0 +1,3 @@
|
|||
from django.test import TestCase
|
||||
|
||||
# Create your tests here.
|
|
@ -0,0 +1,3 @@
|
|||
from django.shortcuts import render
|
||||
|
||||
# Create your views here.
|
|
@ -269,11 +269,16 @@ class UserUpdateSerializer(CustomModelSerializer):
|
|||
"""
|
||||
用户编辑序列化
|
||||
"""
|
||||
username = serializers.CharField(required=True, validators=[user_exist])
|
||||
class Meta:
|
||||
model = User
|
||||
fields = ['username', 'name', 'avatar', 'is_active']
|
||||
|
||||
def update(self, instance, validated_data):
|
||||
if User.objects.filter(username=validated_data['username']
|
||||
).exclude(id=instance.id).exists():
|
||||
raise ParseError(**USERNAME_EXIST)
|
||||
return super().update(instance, validated_data)
|
||||
|
||||
|
||||
|
||||
|
||||
|
|
|
@ -56,6 +56,14 @@ dhapis = {
|
|||
"url":"/evo-apigw/evo-accesscontrol/1.0.0/card/accessControl/doorAuthority",
|
||||
"method":"post"
|
||||
},
|
||||
"mq_subscribe": {
|
||||
"url":"/evo-apigw/evo-event/1.0.0/subscribe/mqinfo",
|
||||
"method":"post"
|
||||
},
|
||||
"mq_unsubscribe": {
|
||||
"url":"/evo-apigw/evo-event/1.0.0/subscribe/mqinfo",
|
||||
"method":"delete"
|
||||
}
|
||||
}
|
||||
|
||||
# 寻息API接口
|
||||
|
|
|
@ -7,12 +7,13 @@ from apps.utils.mixins import MyLoggingMixin
|
|||
from apps.utils.xunxi import xxClient
|
||||
from rest_framework.response import Response
|
||||
from rest_framework.views import APIView
|
||||
from rest_framework.permissions import IsAuthenticated
|
||||
from rest_framework.permissions import IsAuthenticated, IsAdminUser
|
||||
from apps.utils.viewsets import CustomGenericViewSet
|
||||
from rest_framework.mixins import CreateModelMixin
|
||||
from rest_framework.decorators import action
|
||||
|
||||
from apps.third.serializers import RequestCommonSerializer
|
||||
from rest_framework import serializers
|
||||
# Create your views here.
|
||||
|
||||
|
||||
|
@ -25,9 +26,9 @@ class DahuaTestView(MyLoggingMixin, APIView):
|
|||
def get(self, request, *args, **kwargs):
|
||||
# file_path_rela = '/media/default/avatar.png'
|
||||
# _, res = dhClient.request(**dhapis['person_img_upload'], file_path_rela=file_path_rela)
|
||||
_,res = dhClient.request(
|
||||
url='/evo-apigw/evo-brm/1.0.0/person/subsystem/{}'.format(2059335),
|
||||
method='get')
|
||||
_, res = dhClient.request(
|
||||
url='/evo-apigw/evo-brm/1.0.0/person/subsystem/{}'.format(2059335),
|
||||
method='get')
|
||||
return Response(res)
|
||||
|
||||
|
||||
|
@ -81,6 +82,7 @@ class XxCommonViewSet(CreateModelMixin, CustomGenericViewSet):
|
|||
"""
|
||||
return Response(xxapis)
|
||||
|
||||
|
||||
class DhCommonViewSet(CreateModelMixin, CustomGenericViewSet):
|
||||
"""
|
||||
大华通用调用接口
|
||||
|
@ -113,3 +115,49 @@ class DhCommonViewSet(CreateModelMixin, CustomGenericViewSet):
|
|||
获取请求短标识
|
||||
"""
|
||||
return Response(dhapis)
|
||||
|
||||
@action(methods=['post'], detail=False, permission_classes=[IsAdminUser],
|
||||
serializer_class=serializers.Serializer)
|
||||
def subscribe(self, request, pk=None):
|
||||
"""事件订阅
|
||||
|
||||
事件订阅
|
||||
"""
|
||||
json_data = {
|
||||
"param": {
|
||||
"monitors": [
|
||||
{
|
||||
"monitor": "http://127.0.0.1:8000/test",
|
||||
"monitorType": "url",
|
||||
"events": [
|
||||
{
|
||||
"category": "business",
|
||||
},
|
||||
{
|
||||
"category": "alarm",
|
||||
},
|
||||
{
|
||||
"category": "state",
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"subsystem": {
|
||||
"subsystemType": 0,
|
||||
"name": "127.0.0.1_8000",
|
||||
"magic": "127.0.0.1_8000"
|
||||
}
|
||||
}
|
||||
}
|
||||
dhClient.request(**dhapis['mq_subscribe'], json=json_data)
|
||||
return Response()
|
||||
|
||||
@action(methods=['delete'], detail=False, permission_classes=[IsAdminUser],
|
||||
serializer_class=serializers.Serializer)
|
||||
def unsubscribe(self, request, pk=None):
|
||||
"""取消事件订阅
|
||||
|
||||
取消事件订阅
|
||||
"""
|
||||
dhClient.request(**dhapis['mq_unsubscribe'], params={'name':'127.0.0.1_8000'})
|
||||
return Response()
|
||||
|
|
|
@ -66,7 +66,7 @@ class DhClient:
|
|||
self.isRuning = False
|
||||
# self.t.join()
|
||||
|
||||
def request(self, url:str, method:str, params=dict(), json=dict(), timeout=4, file_path_rela=None, raise_exception=True):
|
||||
def request(self, url:str, method:str, params=dict(), json=dict(), timeout=10, file_path_rela=None, raise_exception=True):
|
||||
if self.isGetingToken:
|
||||
req_num = 0
|
||||
while True:
|
||||
|
@ -106,7 +106,7 @@ class DhClient:
|
|||
if raise_exception:
|
||||
raise ParseError(**err_detail)
|
||||
return 'fail', dict(detail=detail, code='dh_'+str(ret['code']))
|
||||
return 'success', ret['data']
|
||||
return 'success', ret['data'] if 'data' in ret else None
|
||||
if raise_exception:
|
||||
raise APIException(**DH_REQUEST_ERROR)
|
||||
return 'error', DH_REQUEST_ERROR
|
||||
|
|
Loading…
Reference in New Issue