三方错误日志记录
This commit is contained in:
parent
6c6ecc2619
commit
6eabca5314
|
@ -157,7 +157,7 @@ class HrmService:
|
||||||
if dh_dchannels:
|
if dh_dchannels:
|
||||||
pass
|
pass
|
||||||
else:
|
else:
|
||||||
# 查找可授予的门禁
|
# 查找可授予的门禁通道号
|
||||||
dh_dchannels = list(TDevice.objects.filter(type=TDevice.DEVICE_DCHANNEL,
|
dh_dchannels = list(TDevice.objects.filter(type=TDevice.DEVICE_DCHANNEL,
|
||||||
access_list__contains=ep.type).values_list('code', flat=True))
|
access_list__contains=ep.type).values_list('code', flat=True))
|
||||||
if dh_dchannels:
|
if dh_dchannels:
|
||||||
|
|
|
@ -1,6 +1,7 @@
|
||||||
import json
|
import json
|
||||||
import time
|
import time
|
||||||
from threading import Thread
|
from threading import Thread
|
||||||
|
import traceback
|
||||||
import uuid
|
import uuid
|
||||||
|
|
||||||
import requests
|
import requests
|
||||||
|
@ -79,7 +80,7 @@ class DhClient:
|
||||||
headers=self.headers, params=params, json=json,
|
headers=self.headers, params=params, json=json,
|
||||||
timeout=timeout, files=files, verify=False)
|
timeout=timeout, files=files, verify=False)
|
||||||
except Exception:
|
except Exception:
|
||||||
self.handle_log(result='error')
|
self.handle_log(result='error', errors=traceback.format_exc())
|
||||||
if raise_exception:
|
if raise_exception:
|
||||||
raise APIException(**DH_REQUEST_ERROR)
|
raise APIException(**DH_REQUEST_ERROR)
|
||||||
return 'error', DH_REQUEST_ERROR
|
return 'error', DH_REQUEST_ERROR
|
||||||
|
@ -99,7 +100,7 @@ class DhClient:
|
||||||
# self.handle_log(result='success', response=ret) # 成功的日志就不记录了
|
# self.handle_log(result='success', response=ret) # 成功的日志就不记录了
|
||||||
return 'success', ret['data'] if 'data' in ret else None
|
return 'success', ret['data'] if 'data' in ret else None
|
||||||
|
|
||||||
self.handle_log(result='error', response=None)
|
self.handle_log(result='error', errors=traceback.format_exc())
|
||||||
if raise_exception:
|
if raise_exception:
|
||||||
raise APIException(**DH_REQUEST_ERROR)
|
raise APIException(**DH_REQUEST_ERROR)
|
||||||
return 'error', DH_REQUEST_ERROR
|
return 'error', DH_REQUEST_ERROR
|
||||||
|
@ -113,11 +114,12 @@ class DhClient:
|
||||||
response_ms = int(response_timedelta.total_seconds() * 1000)
|
response_ms = int(response_timedelta.total_seconds() * 1000)
|
||||||
return max(response_ms, 0)
|
return max(response_ms, 0)
|
||||||
|
|
||||||
def handle_log(self, result, response=None):
|
def handle_log(self, result, response=None, errors=None):
|
||||||
self.log.update({
|
self.log.update({
|
||||||
"result": result,
|
"result": result,
|
||||||
"response": response,
|
"response": response,
|
||||||
"response_ms": self._get_response_ms()
|
"response_ms": self._get_response_ms(),
|
||||||
|
"errors": errors
|
||||||
})
|
})
|
||||||
Tlog(**self.log).save()
|
Tlog(**self.log).save()
|
||||||
|
|
||||||
|
|
|
@ -43,7 +43,8 @@ class TDevice(BaseModel):
|
||||||
employee = models.OneToOneField(Employee, verbose_name='当前绑定人员', on_delete=models.SET_NULL,
|
employee = models.OneToOneField(Employee, verbose_name='当前绑定人员', on_delete=models.SET_NULL,
|
||||||
null=True, blank=True)
|
null=True, blank=True)
|
||||||
is_clock = models.BooleanField('是否打卡设备', default=False)
|
is_clock = models.BooleanField('是否打卡设备', default=False)
|
||||||
access_list = models.JSONField('自动下发人员类型', default=list, null=False, blank=True, help_text='employee/remployee/visitor')
|
access_list = models.JSONField('自动下发人员类型', default=list,
|
||||||
|
null=False, blank=True, help_text='employee/remployee/visitor')
|
||||||
third_info = models.JSONField('三方信息', default=dict,
|
third_info = models.JSONField('三方信息', default=dict,
|
||||||
null=False, blank=True)
|
null=False, blank=True)
|
||||||
|
|
||||||
|
|
|
@ -24,6 +24,11 @@ class TDeviceUpdateSerializer(CustomModelSerializer):
|
||||||
model = TDevice
|
model = TDevice
|
||||||
fields = ['is_clock', 'access_list']
|
fields = ['is_clock', 'access_list']
|
||||||
|
|
||||||
|
def update(self, instance, validated_data):
|
||||||
|
if validated_data.get('access_list', []):
|
||||||
|
validated_data['access_list'] = ['employee', 'remployee', 'visitor']
|
||||||
|
return super().update(instance, validated_data)
|
||||||
|
|
||||||
|
|
||||||
class TDeviceSimpleSerializer(CustomModelSerializer):
|
class TDeviceSimpleSerializer(CustomModelSerializer):
|
||||||
class Meta:
|
class Meta:
|
||||||
|
|
|
@ -1,5 +1,6 @@
|
||||||
import time
|
import time
|
||||||
from threading import Thread
|
from threading import Thread
|
||||||
|
import traceback
|
||||||
import uuid
|
import uuid
|
||||||
|
|
||||||
import requests
|
import requests
|
||||||
|
@ -88,6 +89,7 @@ class SpClient:
|
||||||
headers=self.headers, params=params, json=json,
|
headers=self.headers, params=params, json=json,
|
||||||
timeout=timeout, files=files, verify=False)
|
timeout=timeout, files=files, verify=False)
|
||||||
except Exception:
|
except Exception:
|
||||||
|
self.handle_log(result='error', errors=traceback.format_exc())
|
||||||
if raise_exception:
|
if raise_exception:
|
||||||
raise APIException(**SP_REQUEST_ERROR)
|
raise APIException(**SP_REQUEST_ERROR)
|
||||||
return 'error', SP_REQUEST_ERROR
|
return 'error', SP_REQUEST_ERROR
|
||||||
|
@ -104,7 +106,7 @@ class SpClient:
|
||||||
return 'fail', dict(detail=detail, code='sp_'+str(ret['code']))
|
return 'fail', dict(detail=detail, code='sp_'+str(ret['code']))
|
||||||
# self.handle_log(result='success', response=ret)
|
# self.handle_log(result='success', response=ret)
|
||||||
return 'success', ret
|
return 'success', ret
|
||||||
self.handle_log(result='error', response=None)
|
self.handle_log(result='error', errors=traceback.format_exc())
|
||||||
if raise_exception:
|
if raise_exception:
|
||||||
raise APIException(**SP_REQUEST_ERROR)
|
raise APIException(**SP_REQUEST_ERROR)
|
||||||
return 'error', SP_REQUEST_ERROR
|
return 'error', SP_REQUEST_ERROR
|
||||||
|
@ -147,10 +149,11 @@ class SpClient:
|
||||||
response_ms = int(response_timedelta.total_seconds() * 1000)
|
response_ms = int(response_timedelta.total_seconds() * 1000)
|
||||||
return max(response_ms, 0)
|
return max(response_ms, 0)
|
||||||
|
|
||||||
def handle_log(self, result, response=None):
|
def handle_log(self, result, response=None, errors=None):
|
||||||
self.log.update({
|
self.log.update({
|
||||||
"result": result,
|
"result": result,
|
||||||
"response": response,
|
"response": response,
|
||||||
"response_ms": self._get_response_ms()
|
"response_ms": self._get_response_ms(),
|
||||||
|
"errors": errors
|
||||||
})
|
})
|
||||||
Tlog(**self.log).save()
|
Tlog(**self.log).save()
|
||||||
|
|
|
@ -233,7 +233,7 @@ class DhCommonViewSet(CreateModelMixin, CustomGenericViewSet):
|
||||||
取消事件订阅
|
取消事件订阅
|
||||||
"""
|
"""
|
||||||
dhClient.request(**dhapis['mq_unsubscribe'],
|
dhClient.request(**dhapis['mq_unsubscribe'],
|
||||||
params={'name': 'qyjy_ehs'})
|
params={'name': settings.DAHUA_SUBSCRIBE})
|
||||||
return Response()
|
return Response()
|
||||||
|
|
||||||
@action(methods=['post'], detail=False,
|
@action(methods=['post'], detail=False,
|
||||||
|
|
|
@ -1,5 +1,6 @@
|
||||||
import time
|
import time
|
||||||
from threading import Thread
|
from threading import Thread
|
||||||
|
import traceback
|
||||||
import uuid
|
import uuid
|
||||||
import requests
|
import requests
|
||||||
from django.conf import settings
|
from django.conf import settings
|
||||||
|
@ -86,7 +87,6 @@ class XxClient:
|
||||||
# print_roundtrip(r)
|
# print_roundtrip(r)
|
||||||
ret = r.json()
|
ret = r.json()
|
||||||
if ret.get('errorCode') in ['1060000', 1060000]:
|
if ret.get('errorCode') in ['1060000', 1060000]:
|
||||||
print(ret.get('errorCode'))
|
|
||||||
self.get_token() # 重新获取token
|
self.get_token() # 重新获取token
|
||||||
self.request(url, method, params, json, timeout, raise_exception) # 重新请求
|
self.request(url, method, params, json, timeout, raise_exception) # 重新请求
|
||||||
else:
|
else:
|
||||||
|
@ -99,7 +99,7 @@ class XxClient:
|
||||||
return 'fail', err_detail
|
return 'fail', err_detail
|
||||||
# self.handle_log(result='success', response=None)
|
# self.handle_log(result='success', response=None)
|
||||||
return 'success', ret['data']
|
return 'success', ret['data']
|
||||||
self.handle_log(result='error', response=None)
|
self.handle_log(result='error', errors=traceback.format_exc())
|
||||||
if raise_exception:
|
if raise_exception:
|
||||||
raise APIException(**XX_REQUEST_ERROR)
|
raise APIException(**XX_REQUEST_ERROR)
|
||||||
return 'error', XX_REQUEST_ERROR
|
return 'error', XX_REQUEST_ERROR
|
||||||
|
@ -113,10 +113,11 @@ class XxClient:
|
||||||
response_ms = int(response_timedelta.total_seconds() * 1000)
|
response_ms = int(response_timedelta.total_seconds() * 1000)
|
||||||
return max(response_ms, 0)
|
return max(response_ms, 0)
|
||||||
|
|
||||||
def handle_log(self, result, response=None):
|
def handle_log(self, result, response=None, errors=None):
|
||||||
self.log.update({
|
self.log.update({
|
||||||
"result": result,
|
"result": result,
|
||||||
"response": response,
|
"response": response,
|
||||||
"response_ms": self._get_response_ms()
|
"response_ms": self._get_response_ms(),
|
||||||
|
"errors": errors
|
||||||
})
|
})
|
||||||
Tlog(**self.log).save()
|
Tlog(**self.log).save()
|
||||||
|
|
Loading…
Reference in New Issue