feat: 初始化工程
This commit is contained in:
42
service/crop_service.py
Normal file
42
service/crop_service.py
Normal file
@@ -0,0 +1,42 @@
|
||||
from sqlalchemy import select, delete
|
||||
from sqlalchemy.orm import Session
|
||||
|
||||
from models.patch import Crops, Records
|
||||
from schemas.patch import CropCreate, CropUpdate
|
||||
|
||||
|
||||
def create_crop(db: Session, data: CropCreate) -> bool:
|
||||
crop = Crops(**data.model_dump())
|
||||
db.add(crop)
|
||||
db.commit()
|
||||
db.refresh(crop)
|
||||
|
||||
return True
|
||||
|
||||
|
||||
def update_crop(db: Session, crop_id: int, data: CropUpdate) -> bool:
|
||||
result = db.execute(select(Crops).where(Crops.id == crop_id))
|
||||
crop = result.scalar_one_or_none()
|
||||
if not crop:
|
||||
return False
|
||||
|
||||
for k, v in data.model_dump(exclude_unset=True).items():
|
||||
setattr(crop, k, v)
|
||||
db.commit()
|
||||
db.refresh(crop)
|
||||
|
||||
return True
|
||||
|
||||
|
||||
def delete_crop(db: Session, crop_id: int) -> bool:
|
||||
result = db.execute(select(Crops).where(Crops.id == crop_id))
|
||||
crop = result.scalar_one_or_none()
|
||||
if not crop:
|
||||
return False
|
||||
|
||||
db.execute(delete(Records).where(Records.crop_id == crop_id))
|
||||
|
||||
db.delete(crop)
|
||||
db.commit()
|
||||
|
||||
return True
|
||||
Reference in New Issue
Block a user