Преглед изворни кода

feat: employee/info 补充 account_id/user_id/user_name/avatar

alphah пре 2 недеља
родитељ
комит
f60e2f3b1b

+ 4 - 0
backend/app/plugin/module_payment/employee/schema.py

@@ -49,6 +49,10 @@ class EmployeeOutSchema(BaseModel):
     # id: int = Field(description="主键ID")
     employee_id: Optional[str] = Field(default=None, description="员工ID(业务主键)")
     enterprise_id: Optional[str] = Field(default=None, description="企业ID")
+    account_id: Optional[str] = Field(default=None, description="企业账户ID")
+    user_id: Optional[int] = Field(default=None, description="关联系统用户ID")
+    user_name: Optional[str] = Field(default=None, description="用户姓名")
+    avatar: Optional[str] = Field(default=None, description="用户头像")
     employee_name: Optional[str] = Field(default=None, description="员工姓名")
     employee_no: Optional[str] = Field(default=None, description="员工工号")
     identity_type: Optional[str] = Field(default=None, description="身份类型")

+ 20 - 1
backend/app/plugin/module_payment/employee/service.py

@@ -152,7 +152,26 @@ class EmployeeService:
         out_data = await crud.get(employee_id=employee_id, employee_email=employee_email, employee_mobile=employee_mobile, enterprise_id=enterprise_id)
         if not out_data:
             raise CustomException(msg="员工不存在")
-        return EmployeeOutSchema.model_validate(out_data)
+        result = EmployeeOutSchema.model_validate(out_data)
+
+        # 补充 account_id
+        if enterprise_id:
+            from app.plugin.module_payment.enterprise.model import EnterpriseModel
+            from sqlalchemy import select
+            ent_stmt = select(EnterpriseModel).where(EnterpriseModel.enterprise_id == enterprise_id).limit(1)
+            ent_result = await auth.db.execute(ent_stmt)
+            ent = ent_result.scalar_one_or_none()
+            if ent and ent.account_id:
+                result.account_id = ent.account_id
+
+        # 补充 user_name / avatar
+        user = getattr(out_data, 'user', None)
+        if user:
+            result.user_id = user.id
+            result.user_name = user.name or user.username
+            result.avatar = getattr(user, 'avatar', None)
+
+        return result
 
     @classmethod
     async def detail_service(

BIN
frontend/dist.zip