Download apps/contracts/services/assignment/contract_assignment_query_service.py from jun2024/fc: direct link, hf CLI and curl.
- Browser
- Download file 1.2 kB
-
https://huggingface.co/spaces/jun2024/fc/resolve/main/apps/contracts/services/assignment/contract_assignment_query_service.py
- Command line
-
hf download hf://spaces/jun2024/fc/apps/contracts/services/assignment/contract_assignment_query_service.py
-
curl -L -o contract_assignment_query_service.py https://huggingface.co/spaces/jun2024/fc/resolve/main/apps/contracts/services/assignment/contract_assignment_query_service.py
1.2 kB
| """Business logic services.""" | |
| from __future__ import annotations | |
| from apps.contracts.models import Contract, ContractAssignment | |
| class ContractAssignmentQueryService: | |
| def list_lawyer_ids_by_contract_internal(self, contract_id: int) -> list[int]: | |
| if not Contract.objects.filter(id=contract_id).exists(): | |
| return [] | |
| return list( | |
| ContractAssignment.objects.filter(contract_id=contract_id) | |
| .order_by("-is_primary", "order", "id") | |
| .values_list("lawyer_id", flat=True) | |
| ) | |
| def get_primary_lawyer(self, contract_id: int) -> ContractAssignment | None: | |
| """获取合同的主办律师指派记录。""" | |
| return ( | |
| ContractAssignment.objects.filter(contract_id=contract_id, is_primary=True).select_related("lawyer").first() | |
| ) | |
| def get_all_lawyers(self, contract_id: int) -> list[ContractAssignment]: | |
| """获取合同的所有律师指派记录(按 is_primary 降序、order 升序)。""" | |
| return list( | |
| ContractAssignment.objects.filter(contract_id=contract_id) | |
| .select_related("lawyer") | |
| .order_by("-is_primary", "order", "id") | |
| ) | |