| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485 |
- from redis.asyncio import Redis
- from app.api.v1.module_system.auth.schema import AuthSchema
- from app.core.logger import log
- from ..schemas import EmployeeChangeContent
- from ..enums import EmployeeActionEnum
- from .base_handler import BaseHandler
- class EmployeeHandler(BaseHandler[dict]):
- """员工变更通知处理器"""
- async def handle(self, method: str, content: dict, auth: AuthSchema, redis: Redis) -> bool:
- """
- 处理员工变更通知
- 动作类型:
- - EMPLOYEE_ADD: 员工新增
- - EMPLOYEE_ACTIVATE: 员工激活
- - EMPLOYEE_UPDATE: 员工信息修改
- - EMPLOYEE_DEPARTMENT_CHANGE: 部门修改
- - EMPLOYEE_ROLE_CHANGE: 角色修改
- - EMPLOYEE_DELETE: 员工删除
- """
- try:
- notify_data = EmployeeChangeContent(**content)
- except Exception as e:
- log.error(f"解析员工通知内容失败: {e}")
- return False
- action = notify_data.action
- employee_id = notify_data.employee_id
- log.info(f"处理员工变更通知: action={action}, employee_id={employee_id}")
- try:
- if action == EmployeeActionEnum.EMPLOYEE_ADD.value:
- return await self._handle_add(notify_data, auth)
- elif action == EmployeeActionEnum.EMPLOYEE_ACTIVATE.value:
- return await self._handle_activate(notify_data, auth)
- elif action == EmployeeActionEnum.EMPLOYEE_UPDATE.value:
- return await self._handle_update(notify_data, auth)
- elif action == EmployeeActionEnum.EMPLOYEE_DEPARTMENT_CHANGE.value:
- return await self._handle_department_change(notify_data, auth)
- elif action == EmployeeActionEnum.EMPLOYEE_ROLE_CHANGE.value:
- return await self._handle_role_change(notify_data, auth)
- elif action == EmployeeActionEnum.EMPLOYEE_DELETE.value:
- return await self._handle_delete(notify_data, auth)
- else:
- log.warning(f"未知的员工变更动作: {action}")
- return True
- except Exception as e:
- log.error(f"支付宝通知消息 - 处理员工变更通知消息异常: {e}")
- return False
- async def _handle_add(self, data: EmployeeChangeContent, auth: AuthSchema) -> bool:
- """处理员工新增"""
- log.info(f"员工新增: employee_id={data.employee_id}, enterprise_id={data.enterprise_id}")
- return True
- async def _handle_activate(self, data: EmployeeChangeContent, auth: AuthSchema) -> bool:
- """处理员工激活"""
- log.info(f"员工激活: employee_id={data.employee_id}")
- return True
- async def _handle_update(self, data: EmployeeChangeContent, auth: AuthSchema) -> bool:
- """处理员工信息修改"""
- log.info(f"员工信息修改: employee_id={data.employee_id}")
- return True
- async def _handle_department_change(self, data: EmployeeChangeContent, auth: AuthSchema) -> bool:
- """处理部门修改"""
- log.info(f"部门修改: employee_id={data.employee_id}, department_id={data.department_id}")
- return True
- async def _handle_role_change(self, data: EmployeeChangeContent, auth: AuthSchema) -> bool:
- """处理角色修改"""
- log.info(f"角色修改: employee_id={data.employee_id}, role_id={data.role_id}")
- return True
- async def _handle_delete(self, data: EmployeeChangeContent, auth: AuthSchema) -> bool:
- """处理员工删除"""
- log.info(f"员工删除: employee_id={data.employee_id}")
- return True
|