| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374 | import datetimeimport jsonimport threadingfrom django.utils.timezone import utcfrom Model.models import Access_Logfrom Object.TokenObject import TokenObjectfrom Service.CommonService import CommonServicefrom Service.TemplateService import TemplateServiceclass MiscellService:    @staticmethod    def add_access_log(request, status_code):        asy = threading.Thread(target=add_log_thread, args=(request, status_code))        asy.start()def add_log_thread(request, status_code):    try:        request.encoding = 'utf-8'        if request.method == 'GET':            request_dict = request.GET        elif request.method == 'POST':            request_dict = request.POST        else:            return        api_list = TemplateService.log_api()        request_path = request.path.strip().strip('/')        if request_path in api_list:            user = get_access_name(request_dict=request_dict)            ip = CommonService.get_ip_address(request)            now_time = datetime.datetime.utcnow().replace(tzinfo=utc).astimezone(utc)            password = request_dict.get('userPwd', None)            if password is not None:                request_dict = dict(request_dict)                request_dict.pop('userPwd')            content = json.dumps(request_dict)            add_data = {                'user': user,                'ip': ip,                'status': status_code,                'url': request.META['SERVER_PROTOCOL'] + '-' + request.method + '-' + request.path,                'operation': request_path,                'time': now_time,                'content': content            }            Access_Log.objects.create(**add_data)    except Exception as e:        print(repr(e))        passdef get_access_name(request_dict):    user_name = request_dict.get('userName', None)    if user_name:        return user_name    email = request_dict.get('email', None)    if email:        return email    phone = request_dict.get('phone', None)    if phone:        return phone    token = request_dict.get('token', None)    user = ''    if token is not None:        tko = TokenObject(token)        if tko.code == 0:            user = tko.user    return user
 |