|
|
@@ -181,6 +181,7 @@ class EmployeeService:
|
|
|
查询员工详情
|
|
|
|
|
|
调用: alipay.commerce.ec.employee.info.query
|
|
|
+ 合并本地DB数据补全字段
|
|
|
"""
|
|
|
from alipay.aop.api.request.AlipayCommerceEcEmployeeInfoQueryRequest import AlipayCommerceEcEmployeeInfoQueryRequest
|
|
|
from alipay.aop.api.domain.AlipayCommerceEcEmployeeInfoQueryModel import AlipayCommerceEcEmployeeInfoQueryModel
|
|
|
@@ -208,7 +209,46 @@ class EmployeeService:
|
|
|
log.error(f"支付宝接口调用失败: {result.code} - {result.msg}")
|
|
|
raise CustomException(msg=f"查询员工详情失败: {result.msg}")
|
|
|
|
|
|
- return EmployeeInfoDTO.to_alipay_dict(cast(EmployeeInfoDTO, result.employee_info))
|
|
|
+ # Alipay 原始字段 → 本地 schema 字段映射
|
|
|
+ raw = EmployeeInfoDTO.to_alipay_dict(cast(EmployeeInfoDTO, result.employee_info))
|
|
|
+ mapped = {
|
|
|
+ "employee_id": raw.get("employee_id"),
|
|
|
+ "employee_name": raw.get("employee_name"),
|
|
|
+ "employee_no": raw.get("employee_no"),
|
|
|
+ "employee_email": raw.get("email"),
|
|
|
+ "employee_mobile": raw.get("mobile"),
|
|
|
+ "employee_cert_type": raw.get("employee_cert_type"),
|
|
|
+ "employee_cert_no": raw.get("employee_cert_no"),
|
|
|
+ "identity_open_id": raw.get("open_id"),
|
|
|
+ "created_time": raw.get("gmt_create"),
|
|
|
+ "updated_time": raw.get("gmt_modified"),
|
|
|
+ "department_ids": raw.get("department_list"),
|
|
|
+ "label_names": raw.get("label_names"),
|
|
|
+ "enterprise_id": enterprise_id,
|
|
|
+ }
|
|
|
+
|
|
|
+ # 合并本地DB数据(补全 Alipay 不返回的字段)
|
|
|
+ try:
|
|
|
+ from .crud import EmployeeCRUD
|
|
|
+ local = await EmployeeCRUD(auth).get(
|
|
|
+ employee_id=employee_id,
|
|
|
+ employee_email=employee_email,
|
|
|
+ employee_mobile=employee_mobile,
|
|
|
+ enterprise_id=enterprise_id
|
|
|
+ )
|
|
|
+ if local:
|
|
|
+ for f in ("status", "identity_type", "identity", "iot_check_type",
|
|
|
+ "withholding_sign_str", "free_sign_token", "share_code",
|
|
|
+ "sign_url", "expire_time", "profiles", "department_ids",
|
|
|
+ "accounting_entity_ids", "role_list", "employee_cert_type",
|
|
|
+ "employee_cert_no", "employee_email", "employee_mobile"):
|
|
|
+ val = getattr(local, f, None)
|
|
|
+ if val is not None:
|
|
|
+ mapped[f] = val
|
|
|
+ except Exception as e:
|
|
|
+ log.warning(f"合并本地员工数据失败: {e}")
|
|
|
+
|
|
|
+ return mapped
|
|
|
|
|
|
@classmethod
|
|
|
async def delete_employee_service(
|