employee_handler.py 3.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485
  1. from redis.asyncio import Redis
  2. from app.api.v1.module_system.auth.schema import AuthSchema
  3. from app.core.logger import log
  4. from ..schemas import EmployeeChangeContent
  5. from ..enums import EmployeeActionEnum
  6. from .base_handler import BaseHandler
  7. class EmployeeHandler(BaseHandler[dict]):
  8. """员工变更通知处理器"""
  9. async def handle(self, method: str, content: dict, auth: AuthSchema, redis: Redis) -> bool:
  10. """
  11. 处理员工变更通知
  12. 动作类型:
  13. - EMPLOYEE_ADD: 员工新增
  14. - EMPLOYEE_ACTIVATE: 员工激活
  15. - EMPLOYEE_UPDATE: 员工信息修改
  16. - EMPLOYEE_DEPARTMENT_CHANGE: 部门修改
  17. - EMPLOYEE_ROLE_CHANGE: 角色修改
  18. - EMPLOYEE_DELETE: 员工删除
  19. """
  20. try:
  21. notify_data = EmployeeChangeContent(**content)
  22. except Exception as e:
  23. log.error(f"解析员工通知内容失败: {e}")
  24. return False
  25. action = notify_data.action
  26. employee_id = notify_data.employee_id
  27. log.info(f"处理员工变更通知: action={action}, employee_id={employee_id}")
  28. try:
  29. if action == EmployeeActionEnum.EMPLOYEE_ADD.value:
  30. return await self._handle_add(notify_data, auth)
  31. elif action == EmployeeActionEnum.EMPLOYEE_ACTIVATE.value:
  32. return await self._handle_activate(notify_data, auth)
  33. elif action == EmployeeActionEnum.EMPLOYEE_UPDATE.value:
  34. return await self._handle_update(notify_data, auth)
  35. elif action == EmployeeActionEnum.EMPLOYEE_DEPARTMENT_CHANGE.value:
  36. return await self._handle_department_change(notify_data, auth)
  37. elif action == EmployeeActionEnum.EMPLOYEE_ROLE_CHANGE.value:
  38. return await self._handle_role_change(notify_data, auth)
  39. elif action == EmployeeActionEnum.EMPLOYEE_DELETE.value:
  40. return await self._handle_delete(notify_data, auth)
  41. else:
  42. log.warning(f"未知的员工变更动作: {action}")
  43. return True
  44. except Exception as e:
  45. log.error(f"支付宝通知消息 - 处理员工变更通知消息异常: {e}")
  46. return False
  47. async def _handle_add(self, data: EmployeeChangeContent, auth: AuthSchema) -> bool:
  48. """处理员工新增"""
  49. log.info(f"员工新增: employee_id={data.employee_id}, enterprise_id={data.enterprise_id}")
  50. return True
  51. async def _handle_activate(self, data: EmployeeChangeContent, auth: AuthSchema) -> bool:
  52. """处理员工激活"""
  53. log.info(f"员工激活: employee_id={data.employee_id}")
  54. return True
  55. async def _handle_update(self, data: EmployeeChangeContent, auth: AuthSchema) -> bool:
  56. """处理员工信息修改"""
  57. log.info(f"员工信息修改: employee_id={data.employee_id}")
  58. return True
  59. async def _handle_department_change(self, data: EmployeeChangeContent, auth: AuthSchema) -> bool:
  60. """处理部门修改"""
  61. log.info(f"部门修改: employee_id={data.employee_id}, department_id={data.department_id}")
  62. return True
  63. async def _handle_role_change(self, data: EmployeeChangeContent, auth: AuthSchema) -> bool:
  64. """处理角色修改"""
  65. log.info(f"角色修改: employee_id={data.employee_id}, role_id={data.role_id}")
  66. return True
  67. async def _handle_delete(self, data: EmployeeChangeContent, auth: AuthSchema) -> bool:
  68. """处理员工删除"""
  69. log.info(f"员工删除: employee_id={data.employee_id}")
  70. return True