доработка активации поздравлений с ДР

This commit is contained in:
2026-01-03 14:17:06 +03:00
parent d18fc6b1a8
commit 16cd274221
3 changed files with 47 additions and 38 deletions
BIN
View File
Binary file not shown.
+1
View File
@@ -351,6 +351,7 @@ def api_birthdate():
userData = userUpdate["userData"]
try:
userDB = UsersBirthdate.query.filter_by(id=userId).first()
userDB.enabled = userData["enabled"]
userDB.photo_link = userData["photoLink"]
userDB.congratulations = userData["congratulations"]
db.session.commit()
+46 -38
View File
@@ -22,7 +22,7 @@ def updateUsersBirthdate() -> bool:
logger.error("Ответ не получен")
return False
responseData = response.json()
usersFromDB = []
usersFromMedods = list[dict]()
for user in responseData["data"]:
if user["birthdate"] is None:
continue
@@ -35,45 +35,53 @@ def updateUsersBirthdate() -> bool:
"birthdate": datetime.date.fromisoformat(user["birthdate"]),
"specialties": [spec["title"] for spec in user["specialties"]],
}
usersFromDB.append(userDict)
if user["status"] != "active":
logger.info(f"Сотрудник {userDict['name']} отключен")
actualUsersIds = [user["id"] for user in usersFromDB]
allExistingUsers = UsersBirthdate.query.all()
for user in allExistingUsers:
if user.id not in actualUsersIds:
logger.info(f"Удален сотрудник {user.name} {user.surname}")
db.session.delete(user)
usersFromMedods.append(userDict)
birthdateUsers = UsersBirthdate.query.all()
for birthdateUser in birthdateUsers:
medodsUser = None
for userFromMedods in usersFromMedods:
if userFromMedods["id"] == birthdateUser.id:
medodsUser = userFromMedods.copy()
usersFromMedods.remove(userFromMedods)
break
if medodsUser is None:
logger.info(f"Удален сотрудник {birthdateUser.short_name}")
db.session.delete(birthdateUser)
db.session.commit()
continue
isUpdated = False
if birthdateUser.name != medodsUser["name"]:
birthdateUser.name = medodsUser["name"]
birthdateUser.short_name = medodsUser["short_name"]
isUpdated = True
if birthdateUser.birthdate != medodsUser["birthdate"]:
birthdateUser.birthdate = medodsUser["birthdate"]
isUpdated = True
if birthdateUser.specialties != medodsUser["specialties"]:
birthdateUser.specialties = medodsUser["specialties"]
isUpdated = True
if isUpdated:
logger.info(f"Обновлен сотрудник {birthdateUser.short_name}")
db.session.commit()
for user in usersFromDB:
existingUser = UsersBirthdate.query.filter_by(id=user["id"]).first()
if existingUser:
changes = False
if existingUser.name != user["name"]:
existingUser.name = user["name"]
existingUser.short_name = user["short_name"]
changes = True
if existingUser.birthdate != user["birthdate"]:
existingUser.birthdate = user["birthdate"]
changes = True
if existingUser.specialties != user["specialties"]:
existingUser.specialties = user["specialties"]
changes = True
if changes:
db.session.commit()
else:
newUser = UsersBirthdate(
id=user["id"],
name=user["name"],
short_name=user["short_name"],
sex=user["sex"],
birthdate=user["birthdate"],
specialties=user["specialties"],
)
db.session.add(newUser)
db.session.commit()
for user in usersFromMedods:
logger.info(f"Добавлен сотрудник {user['short_name']}")
newUser = UsersBirthdate(
id=user["id"],
enabled=user["enabled"],
name=user["name"],
short_name=user["short_name"],
sex=user["sex"],
birthdate=user["birthdate"],
specialties=user["specialties"],
)
db.session.add(newUser)
db.session.commit()
return True
except Exception as e: