Falexom

Untitled

Jan 27th, 2022 (edited)
278
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1.  # maybe it works...
  2.    try:
  3.         try:
  4.             body_unicode = request.body.decode('utf-8')
  5.             body = json.loads(body_unicode)
  6.         except:
  7.             return JsonResponse({"status": 0})
  8.         worker_id = body["worker_id"]
  9.  
  10.         if not Workers.objects.filter(id=worker_id).exists():
  11.             return JsonResponse({"status": 0})
  12.  
  13.         # Определить обновления
  14.         changes_create = Updates_status.objects.filter(worker_id=worker_id, status=False, action=1)
  15.         changes_update = Updates_status.objects.filter(worker_id=worker_id, status=False, action=2)
  16.         changes_delete = Updates_status.objects.filter(worker_id=worker_id, status=False, action=3)
  17.  
  18.         if not changes_create.exists():
  19.             create_answer = {"Persons": [], "Rooms": [], "Person_cards": [], "Rules": [], "Room_keys": [],
  20.                              "Guards": []}
  21.         else:
  22.             _confirmed_id = changes_create.values_list('id', flat=True)
  23.  
  24.             First_table = changes_create.filter(table_id=1).values_list('row_id', flat=True)
  25.             Second_table = changes_create.filter(table_id=2).values_list('row_id', flat=True)
  26.             Third_table = changes_create.filter(table_id=3).values_list('row_id', flat=True)
  27.             Fourth_table = changes_create.filter(table_id=4).values_list('row_id', flat=True)
  28.             Fifth_table = changes_create.filter(table_id=5).values_list('row_id', flat=True)
  29.             Sixth_table = changes_create.filter(table_id=6).values_list('row_id', flat=True)
  30.  
  31.             # Забрать табельник,фамилию,имя,отчество
  32.             _persons = list(Persons.objects.filter(id__in=First_table).values('Confirmed_id', 'id', 'tab_id', 'surname', 'name', 'patronymic'))
  33.             _rooms = list(Rooms.objects.filter(id__in=Second_table).values('id', 'name'))
  34.             # Получить табельный номер человека,Хекс карты
  35.             pc_rel = Person_card_relations.objects.filter(id__in=Third_table)
  36.             # Получить табельник,номер комнаты и статус(можно или нельзя)
  37.             prr = Person_room_rules.objects.filter(id__in=Fourth_table)
  38.             _room_keys = list(Room_keys.objects.filter(id__in=Fifth_table).values('id', 'key_hex', 'room_id', 'key_status'))
  39.             _guard = list(Guards.objects.filter(id__in=Sixth_table).values('id', 'person_id'))
  40.  
  41.             _person_cards = []
  42.             for relation in pc_rel:
  43.                 master_id = relation.id
  44.                 tab_id = relation.person_id.tab_id
  45.                 card_hex = relation.card_id.key_hex
  46.                 _person_cards.append({"Confirmed_id": _confirmed_id, "id": master_id, "tab_id": tab_id, "card_hex": card_hex})
  47.  
  48.             _rules = []
  49.             for relation in prr:
  50.                 master_id = relation.id
  51.                 tab_id = relation.person_id.tab_id
  52.                 room_id = relation.room_id.id
  53.                 allowed_status = relation.allowed_status
  54.                 _rules.append(
  55.                     {"Confirmed_id": _confirmed_id, "id": master_id, "tab_id": tab_id, "room_id": room_id, "allowed_status": allowed_status})
  56.  
  57.             create_answer = {"Persons": _persons, "Rooms": _rooms, "Person_cards": _person_cards, "Rules": _rules,
  58.                              "Room_keys": _room_keys, "Guards": _guard}
  59.         if not changes_update.exists():
  60.             update_answer = {"Persons": [], "Rooms": [], "Person_cards": [], "Rules": [], "Room_keys": [],
  61.                              "Guards": []}
  62.         else:
  63.             _confirmed_id = changes_update.values_list('id', flat=True)
  64.  
  65.             First_table = changes_update.filter(table_id=1).values_list('row_id', flat=True)
  66.             Second_table = changes_update.filter(table_id=2).values_list('row_id', flat=True)
  67.             Third_table = changes_update.filter(table_id=3).values_list('row_id', flat=True)
  68.             Fourth_table = changes_update.filter(table_id=4).values_list('row_id', flat=True)
  69.             Fifth_table = changes_update.filter(table_id=5).values_list('row_id', flat=True)
  70.             Sixth_table = changes_update.filter(table_id=6).values_list('row_id', flat=True)
  71.  
  72.             _persons = list(Persons.objects.filter(id__in=First_table).values('Confirmed_id', 'id', 'tab_id', 'surname', 'name', 'patronymic'))
  73.             _rooms = list(Rooms.objects.filter(id__in=Second_table).values('id', 'name'))
  74.             pc_rel = Person_card_relations.objects.filter(id__in=Third_table)
  75.             prr = Person_room_rules.objects.filter(id__in=Fourth_table)
  76.             _room_keys = list(Room_keys.objects.filter(id__in=Fifth_table).values('id', 'key_hex', 'room_id', 'key_status'))
  77.             _guard = list(Guards.objects.filter(id__in=Sixth_table).values('id', 'person_id'))
  78.  
  79.             _person_cards = []
  80.             for relation in pc_rel:
  81.                 master_id = relation.id
  82.                 tab_id = relation.person_id.tab_id
  83.                 card_hex = relation.card_id.key_hex
  84.                 _person_cards.append({"Confirmed_id": _confirmed_id, "id": master_id, "tab_id": tab_id, "card_hex": card_hex})
  85.  
  86.             _rules = []
  87.             for relation in prr:
  88.                 master_id = relation.id
  89.                 tab_id = relation.person_id.tab_id
  90.                 room_id = relation.room_id.id
  91.                 allowed_status = relation.allowed_status
  92.                 _rules.append(
  93.                     {"Confirmed_id": _confirmed_id, "id": master_id, "tab_id": tab_id, "room_id": room_id, "allowed_status": allowed_status})
  94.  
  95.             update_answer = {"Persons": _persons, "Rooms": _rooms, "Person_cards": _person_cards, "Rules": _rules,
  96.                              "Room_keys": _room_keys, "Guards": _guard}
  97.         if not changes_delete.exists():
  98.             delete_answer = {"Persons": [], "Rooms": [], "Person_cards": [], "Rules": [], "Room_keys": [],
  99.                              "Guards": [], "Confirmed_id": []}
  100.         else:
  101.             _confirmed_id = changes_delete.values_list('id', flat=True)
  102.  
  103.             First_table = list(changes_delete.filter(table_id=1).values_list('row_id', flat=True))
  104.             Second_table = list(changes_delete.filter(table_id=2).values_list('row_id', flat=True))
  105.             Third_table = list(changes_delete.filter(table_id=3).values_list('row_id', flat=True))
  106.             Fourth_table = list(changes_delete.filter(table_id=4).values_list('row_id', flat=True))
  107.             Fifth_table = list(changes_delete.filter(table_id=5).values_list('row_id', flat=True))
  108.             Sixth_table = list(changes_delete.filter(table_id=6).values_list('row_id', flat=True))
  109.  
  110.             delete_answer = {"Persons": First_table, "Rooms": Second_table, "Person_cards": Third_table,
  111.                              "Rules": Fourth_table, "Room_keys": Fifth_table, "Guards": Sixth_table}
  112.         answer = {"create": create_answer, "delete": delete_answer, "update": update_answer}
  113.         json_data = json.dumps(answer, ensure_ascii=False)
  114.         return HttpResponse(json_data, content_type='application/json', status=200)
  115.     except Exception as e:
  116.         return JsonResponse({"status": 0})
  117.  
  118.  
  119.  
  120.  
  121.  
  122.  
  123.  
  124. # client
  125.     try:
  126.         response = requests.post(ac_url, data=json.dumps(data), headers=headers)
  127.         if response["status"] == 0:
  128.             return 0
  129.         else:
  130.             return 1
  131.     except requests.exceptions.RequestException:
  132.         return -1
  133.     response = response.json()
  134.  
RAW Paste Data Copied