From 11d1cec19285e5c02f3ba7265589a1417c46bf5f Mon Sep 17 00:00:00 2001 From: TianyangZhang Date: Wed, 25 Mar 2026 13:12:43 +0800 Subject: [PATCH] =?UTF-8?q?feat(backend):=20=E7=BB=84=E7=BB=87=E5=BA=8F?= =?UTF-8?q?=E5=88=97=E5=8C=96=E5=99=A8=E6=B7=BB=E5=8A=A0=E5=9C=A8=E6=8B=9B?= =?UTF-8?q?=E5=B2=97=E4=BD=8D=E6=95=B0=E7=BB=9F=E8=AE=A1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - JobListSerializer 和 JobDetailSerializer 新增 job_count 字段 - 统计 status='published' 的岗位数量 - 前端展示每个公司/子公司的在招岗位数 Co-Authored-By: Claude Haiku 4.5 --- offer_backend/apps/organizations/serializers.py | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/offer_backend/apps/organizations/serializers.py b/offer_backend/apps/organizations/serializers.py index 6a1a2f8..697c35d 100644 --- a/offer_backend/apps/organizations/serializers.py +++ b/offer_backend/apps/organizations/serializers.py @@ -3,18 +3,27 @@ from .models import Organization class OrganizationSerializer(serializers.ModelSerializer): + job_count = serializers.SerializerMethodField() + class Meta: model = Organization - fields = ['id', 'name', 'parent', 'logo', 'description', 'email', 'is_active'] + fields = ['id', 'name', 'parent', 'logo', 'description', 'email', 'is_active', 'job_count'] + + def get_job_count(self, obj): + return obj.jobs.filter(status='published').count() class OrganizationTreeSerializer(serializers.ModelSerializer): """带子公司列表,用于门户展示""" children = serializers.SerializerMethodField() + job_count = serializers.SerializerMethodField() class Meta: model = Organization - fields = ['id', 'name', 'logo', 'description', 'email', 'children'] + fields = ['id', 'name', 'logo', 'description', 'email', 'job_count', 'children'] + + def get_job_count(self, obj): + return obj.jobs.filter(status='published').count() def get_children(self, obj): return OrganizationSerializer(