Bladeren bron

删除过期访客信息

李莎 2 jaren geleden
bovenliggende
commit
7a13bd5e79
3 gewijzigde bestanden met toevoegingen van 56 en 9 verwijderingen
  1. 31 0
      Utils/HikDeletevisitor.py
  2. 18 8
      Utils/HikGetUserlist.py
  3. 7 1
      main.py

+ 31 - 0
Utils/HikDeletevisitor.py

@@ -0,0 +1,31 @@
+import requests
+import json
+from Utils.HikAccessToken import hik_access_token
+
+
+
+def hik_delete_visitor(hik_accesstoken,expire_visitor):
+    for employeeNo in expire_visitor:
+        requests.post(
+            url="https://api2.hik-cloud.com/api/v1/open/basic/persons/delete?access_token=%s&employeeNo=%s" %(hik_accesstoken,employeeNo)
+        )
+
+    return
+
+# if __name__ == '__main__':
+#     with open("../config.json") as f:
+#         data = json.load(f)
+#         client_id = data["client_id"]
+#         client_secret = data["client_secret"]
+#         groupId = data["groupId"]
+#     expire_visitor = ['visitor202209161700221863039', 'visitor202209161658221423088']
+#     hik_accesstoken = hik_access_token(client_id, client_secret)
+#     print("开始删除过期访客信息")
+#     hik_delete_visitor(hik_accesstoken, expire_visitor)
+#     print("删除过期访客信息成功")
+
+
+
+
+
+

+ 18 - 8
Utils/HikGetUserlist.py

@@ -1,3 +1,5 @@
+import datetime,json
+from datetime import timedelta
 import requests
 import math
 from Utils.HikAccessToken import hik_access_token
@@ -8,7 +10,7 @@ def is_token(response,client_id,client_secret):
         return hik_accesstoken
 
 
-def resp(hik_accesstoken,pageNo,person_dict):
+def resp(hik_accesstoken,pageNo,person_dict,expire_visitor):
     response = requests.get(
         url="https://api2.hik-cloud.com/api/v1/open/basic/persons/list?access_token=%s&pageNo=%s&pageSize=999" %(hik_accesstoken,pageNo)
     )
@@ -19,27 +21,35 @@ def resp(hik_accesstoken,pageNo,person_dict):
         personId = person["employeeNo"]
         personName = person["personName"]
         person_dict[personId] = personName
-    return totalsize,person_dict
+        if person["personType"] == "visitor":
+            validEndTime = person["validEndTime"]
+            validEndTime = datetime.datetime.strptime(validEndTime,"%Y-%m-%dT%H:%M:%S+08:00")
+            nowTime = datetime.datetime.utcnow()+timedelta(hours=8)
+            if validEndTime < nowTime:
+                expire_visitor.append(personId)
+    return totalsize,person_dict,expire_visitor
 
 def hik_getuserlist(hik_accesstoken):
     person_dict = {}
+    expire_visitor = []
     pageNo = 1
-    totalsize,person_dict = resp(hik_accesstoken,pageNo,person_dict)
+    totalsize,person_dict,expire_visitor = resp(hik_accesstoken,pageNo,person_dict,expire_visitor)
 
 
     page = math.ceil(int(totalsize)/999)
     while pageNo < page:
         pageNo = pageNo +1
-        resp(hik_accesstoken, pageNo, person_dict)
+        resp(hik_accesstoken, pageNo, person_dict,expire_visitor)
     # print(person_dict)
-    return person_dict
+    return person_dict,expire_visitor
 
 # if __name__ == '__main__':
-#     with open("config.json") as f:
+#     with open("../config.json") as f:
 #         data = json.load(f)
 #         client_id = data["client_id"]
 #         client_secret = data["client_secret"]
 #         groupId = data["groupId"]
 #     hik_accesstoken = hik_access_token(client_id, client_secret)
-#     aa = hik_getuserlist(hik_accesstoken)
-#     print(aa)
+#     person_dict,expire_visitor = hik_getuserlist(hik_accesstoken)
+#     print(person_dict)
+#     print(expire_visitor)

+ 7 - 1
main.py

@@ -7,6 +7,7 @@ from Utils.JobId import jobid
 from Utils.HikAccessToken import hik_access_token
 from Utils.HikGetUserlist import hik_getuserlist
 from Utils.HikAdduser import hik_adduser
+from Utils.HikDeletevisitor import hik_delete_visitor
 from Utils.HikPermissionGroupsPersons import hik_permissiongroupspersons
 from Utils.HikAddcard import hik_addcard
 from Utils.Hik_isToken import hik_is_token
@@ -60,9 +61,14 @@ while True:
     # print(hik_accesstoken)
 
     #获取Hik 用户列表
-    hik_userlists = hik_getuserlist(hik_accesstoken)
+    hik_userlists,expire_visitor = hik_getuserlist(hik_accesstoken)
     # print(hik_userlists)
 
+    #删除过期访客信息
+    hik_delete_visitor(hik_accesstoken, expire_visitor)
+    print("%s,删除过期访客信息成功,共计%s个"%(datetime_now(),len(expire_visitor)))
+
+
     #钉钉用户数据同步到海康云眸