feat(backend): 组织序列化器添加在招岗位数统计

- JobListSerializer 和 JobDetailSerializer 新增 job_count 字段
- 统计 status='published' 的岗位数量
- 前端展示每个公司/子公司的在招岗位数

Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
This commit is contained in:
TianyangZhang 2026-03-25 13:12:43 +08:00
parent f56e562a78
commit 11d1cec192
1 changed files with 11 additions and 2 deletions

View File

@ -3,18 +3,27 @@ from .models import Organization
class OrganizationSerializer(serializers.ModelSerializer): class OrganizationSerializer(serializers.ModelSerializer):
job_count = serializers.SerializerMethodField()
class Meta: class Meta:
model = Organization 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): class OrganizationTreeSerializer(serializers.ModelSerializer):
"""带子公司列表,用于门户展示""" """带子公司列表,用于门户展示"""
children = serializers.SerializerMethodField() children = serializers.SerializerMethodField()
job_count = serializers.SerializerMethodField()
class Meta: class Meta:
model = Organization 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): def get_children(self, obj):
return OrganizationSerializer( return OrganizationSerializer(