fix: 修复增量同步时软删除用户导致的重复username错误
Some checks failed
continuous-integration/drone/push Build is failing

This commit is contained in:
yuliang_guo
2026-01-29 15:27:49 +08:00
parent c97a09de35
commit 9701bd4fd9

View File

@@ -246,15 +246,23 @@ class EmployeeSyncService:
logger.warning(f"员工 {full_name} 没有手机号,跳过")
return None
# 检查用户是否已存在(通过手机号)
stmt = select(User).where(
User.phone == phone,
User.is_deleted == False
)
# 检查用户是否已存在(通过手机号,包括已软删除的
stmt = select(User).where(User.phone == phone)
result = await self.db.execute(stmt)
existing_user = result.scalar_one_or_none()
if existing_user:
# 如果是软删除用户,恢复它
if existing_user.is_deleted:
existing_user.is_deleted = False
existing_user.full_name = full_name or existing_user.full_name
existing_user.is_active = True
dingtalk_id = employee_data.get('dingtalk_id')
if dingtalk_id:
existing_user.dingtalk_id = dingtalk_id
logger.info(f"恢复软删除用户: {phone} ({full_name})")
return existing_user
# 如果用户已存在但没有dingtalk_id则更新
dingtalk_id = employee_data.get('dingtalk_id')
if dingtalk_id and not existing_user.dingtalk_id: