1
0
forked from erp-dev/erp

feat: backend api

This commit is contained in:
2025-11-06 13:24:02 +08:00
parent 999fdfb136
commit 37c2e7d723
11 changed files with 264 additions and 45 deletions

0
api_man/__init__.py Normal file
View File

6
api_man/apps.py Normal file
View File

@@ -0,0 +1,6 @@
from django.apps import AppConfig
class ApiManConfig(AppConfig):
default_auto_field = 'django.db.models.BigAutoField'
name = 'api_man'

View File

66
api_man/serializers.py Normal file
View File

@@ -0,0 +1,66 @@
from rest_framework import serializers
from basic_info import models as basic_models
class ProductCategorySerializer(serializers.ModelSerializer):
class Meta:
model = basic_models.ProductCategory
fields = '__all__'
class ProductSerializer(serializers.ModelSerializer):
class Meta:
model = basic_models.Product
fields = '__all__'
depth = 1 # 展开外键关系
class WareHouseSerializer(serializers.ModelSerializer):
class Meta:
model = basic_models.WareHouse
fields = '__all__'
class SupplierSerializer(serializers.ModelSerializer):
class Meta:
model = basic_models.Supplier
fields = '__all__'
class EmployeeSerializer(serializers.ModelSerializer):
class Meta:
model = basic_models.Employee
fields = '__all__'
class CustomerSerializer(serializers.ModelSerializer):
class Meta:
model = basic_models.Customer
fields = '__all__'
class VehicleTypeSerializer(serializers.ModelSerializer):
class Meta:
model = basic_models.VehicleType
fields = '__all__'
class BankAccountSerializer(serializers.ModelSerializer):
class Meta:
model = basic_models.BankAccount
fields = '__all__'
class DeviceInfoSerializer(serializers.ModelSerializer):
class Meta:
model = basic_models.DeviceInfo
fields = '__all__'
class VehicleTransportRecordSerializer(serializers.ModelSerializer):
vehicle_type_name = serializers.CharField(source='vehicle_type.name', read_only=True)
class Meta:
model = basic_models.VehicleTransportRecord
fields = '__all__'
depth = 1 # 展开外键关系

3
api_man/tests.py Normal file
View File

@@ -0,0 +1,3 @@
from django.test import TestCase
# Create your tests here.

48
api_man/urls.py Normal file
View File

@@ -0,0 +1,48 @@
from django.urls import path, include
from rest_framework import routers
from . import views
product_router = routers.DefaultRouter()
product_router.register(prefix='', viewset=views.ProductViewSet)
warehouse_router = routers.DefaultRouter()
warehouse_router.register(prefix='', viewset=views.WareHouseViewSet)
product_category_router = routers.DefaultRouter()
product_category_router.register(prefix='', viewset=views.ProductCategoryViewSet)
supplier_router = routers.DefaultRouter()
supplier_router.register(prefix='', viewset=views.SupplierViewSet)
employee_router = routers.DefaultRouter()
employee_router.register(prefix='', viewset=views.EmployeeViewSet)
customer_router = routers.DefaultRouter()
customer_router.register(prefix='', viewset=views.CustomerViewSet)
vehicle_type_router = routers.DefaultRouter()
vehicle_type_router.register(prefix='', viewset=views.VehicleTypeViewSet)
bank_account_router = routers.DefaultRouter()
bank_account_router.register(prefix='', viewset=views.BankAccountViewSet)
device_info_router = routers.DefaultRouter()
device_info_router.register(prefix='', viewset=views.DeviceInfoViewSet)
vehicle_transport_record_router = routers.DefaultRouter()
vehicle_transport_record_router.register(prefix='', viewset=views.VehicleTransportRecordViewSet)
urlpatterns = [
path('products/', include(product_router.urls)),
path('warehouses/', include(warehouse_router.urls)),
path('product-categories/', include(product_category_router.urls)),
path('suppliers/', include(supplier_router.urls)),
path('employees/', include(employee_router.urls)),
path('customers/', include(customer_router.urls)),
path('vehicle-types/', include(vehicle_type_router.urls)),
path('bank-accounts/', include(bank_account_router.urls)),
path('device-info/', include(device_info_router.urls)),
path('vehicle-transport-records/', include(vehicle_transport_record_router.urls)),
]

56
api_man/views.py Normal file
View File

@@ -0,0 +1,56 @@
from rest_framework import viewsets
from . import serializers
class BaseViewSet(viewsets.ModelViewSet):
permission_classes = [] # 允许所有访问
class ProductViewSet(BaseViewSet):
queryset = serializers.basic_models.Product.objects
serializer_class = serializers.ProductSerializer
class WareHouseViewSet(BaseViewSet):
queryset = serializers.basic_models.WareHouse.objects
serializer_class = serializers.WareHouseSerializer
class ProductCategoryViewSet(BaseViewSet):
queryset = serializers.basic_models.ProductCategory.objects
serializer_class = serializers.ProductCategorySerializer
class SupplierViewSet(BaseViewSet):
queryset = serializers.basic_models.Supplier.objects
serializer_class = serializers.SupplierSerializer
class EmployeeViewSet(BaseViewSet):
queryset = serializers.basic_models.Employee.objects
serializer_class = serializers.EmployeeSerializer
class CustomerViewSet(BaseViewSet):
queryset = serializers.basic_models.Customer.objects
serializer_class = serializers.CustomerSerializer
class VehicleTypeViewSet(BaseViewSet):
queryset = serializers.basic_models.VehicleType.objects
serializer_class = serializers.VehicleTypeSerializer
class BankAccountViewSet(BaseViewSet):
queryset = serializers.basic_models.BankAccount.objects
serializer_class = serializers.BankAccountSerializer
class DeviceInfoViewSet(BaseViewSet):
queryset = serializers.basic_models.DeviceInfo.objects
serializer_class = serializers.DeviceInfoSerializer
class VehicleTransportRecordViewSet(BaseViewSet):
queryset = serializers.basic_models.VehicleTransportRecord.objects
serializer_class = serializers.VehicleTransportRecordSerializer