增加前端增删改查

This commit is contained in:
cjw
2026-03-15 13:50:23 +08:00
parent 191ac77d15
commit e13104e792
4 changed files with 777 additions and 101 deletions
+40 -2
View File
@@ -4,17 +4,19 @@
提供客户信息的管理功能,包括:
- 客户列表查询(支持分页、搜索)
- 创建新客户(自动生成客户编码)
- 更新客户信息
- 删除客户(软删除)
路由前缀: /api/customers
"""
from fastapi import APIRouter, Depends, Query
from fastapi import APIRouter, Depends, Query, HTTPException
from sqlalchemy.ext.asyncio import AsyncSession
from sqlalchemy import select
from typing import Optional, List
from datetime import datetime
from database.database import get_db_session
from services.auth_service import get_current_active_user
from services.auth_service import get_current_active_user, get_current_admin_user
from models.database import User, Customer
from .schemas import CustomerCreate, CustomerResponse
@@ -52,3 +54,39 @@ async def create_customer(
await db_session.commit()
await db_session.refresh(customer)
return CustomerResponse.from_orm(customer)
@router.put("/{customer_id}", response_model=CustomerResponse)
async def update_customer(
customer_id: int,
customer_data: CustomerCreate,
db_session: AsyncSession = Depends(get_db_session),
current_user: User = Depends(get_current_active_user)
):
result = await db_session.execute(select(Customer).where(Customer.id == customer_id))
customer = result.scalar_one_or_none()
if not customer:
raise HTTPException(status_code=404, detail="客户不存在")
for key, value in customer_data.dict().items():
setattr(customer, key, value)
await db_session.commit()
await db_session.refresh(customer)
return CustomerResponse.from_orm(customer)
@router.delete("/{customer_id}")
async def delete_customer(
customer_id: int,
db_session: AsyncSession = Depends(get_db_session),
current_user: User = Depends(get_current_admin_user)
):
result = await db_session.execute(select(Customer).where(Customer.id == customer_id))
customer = result.scalar_one_or_none()
if not customer:
raise HTTPException(status_code=404, detail="客户不存在")
customer.is_active = False
await db_session.commit()
return {"message": "客户已删除"}
+40 -2
View File
@@ -4,17 +4,19 @@
提供供应商信息的管理功能,包括:
- 供应商列表查询(支持分页、搜索)
- 创建新供应商(自动生成供应商编码)
- 更新供应商信息
- 删除供应商(软删除)
路由前缀: /api/suppliers
"""
from fastapi import APIRouter, Depends, Query
from fastapi import APIRouter, Depends, Query, HTTPException
from sqlalchemy.ext.asyncio import AsyncSession
from sqlalchemy import select
from typing import Optional, List
from datetime import datetime
from database.database import get_db_session
from services.auth_service import get_current_active_user
from services.auth_service import get_current_active_user, get_current_admin_user
from models.database import User, Supplier
from .schemas import SupplierCreate, SupplierResponse
@@ -52,3 +54,39 @@ async def create_supplier(
await db_session.commit()
await db_session.refresh(supplier)
return SupplierResponse.from_orm(supplier)
@router.put("/{supplier_id}", response_model=SupplierResponse)
async def update_supplier(
supplier_id: int,
supplier_data: SupplierCreate,
db_session: AsyncSession = Depends(get_db_session),
current_user: User = Depends(get_current_active_user)
):
result = await db_session.execute(select(Supplier).where(Supplier.id == supplier_id))
supplier = result.scalar_one_or_none()
if not supplier:
raise HTTPException(status_code=404, detail="供应商不存在")
for key, value in supplier_data.dict().items():
setattr(supplier, key, value)
await db_session.commit()
await db_session.refresh(supplier)
return SupplierResponse.from_orm(supplier)
@router.delete("/{supplier_id}")
async def delete_supplier(
supplier_id: int,
db_session: AsyncSession = Depends(get_db_session),
current_user: User = Depends(get_current_admin_user)
):
result = await db_session.execute(select(Supplier).where(Supplier.id == supplier_id))
supplier = result.scalar_one_or_none()
if not supplier:
raise HTTPException(status_code=404, detail="供应商不存在")
supplier.is_active = False
await db_session.commit()
return {"message": "供应商已删除"}