feat: 增加菜地图片
This commit is contained in:
31
.idea/workspace.xml
generated
31
.idea/workspace.xml
generated
@@ -5,30 +5,9 @@
|
||||
</component>
|
||||
<component name="ChangeListManager">
|
||||
<list default="true" id="92592c29-2276-4c2c-bd45-9ab94e25491d" name="Changes" comment="">
|
||||
<change afterPath="$PROJECT_DIR$/.gitignore" afterDir="false" />
|
||||
<change afterPath="$PROJECT_DIR$/.idea/inspectionProfiles/profiles_settings.xml" afterDir="false" />
|
||||
<change afterPath="$PROJECT_DIR$/.idea/modules.xml" afterDir="false" />
|
||||
<change afterPath="$PROJECT_DIR$/.idea/patch-service.iml" afterDir="false" />
|
||||
<change afterPath="$PROJECT_DIR$/.idea/vcs.xml" afterDir="false" />
|
||||
<change afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" />
|
||||
<change afterPath="$PROJECT_DIR$/config/database.py" afterDir="false" />
|
||||
<change afterPath="$PROJECT_DIR$/config/rustfs.py" afterDir="false" />
|
||||
<change afterPath="$PROJECT_DIR$/main.py" afterDir="false" />
|
||||
<change afterPath="$PROJECT_DIR$/models/base.py" afterDir="false" />
|
||||
<change afterPath="$PROJECT_DIR$/models/patch.py" afterDir="false" />
|
||||
<change afterPath="$PROJECT_DIR$/requirements.txt" afterDir="false" />
|
||||
<change afterPath="$PROJECT_DIR$/routers/__init__.py" afterDir="false" />
|
||||
<change afterPath="$PROJECT_DIR$/routers/crop.py" afterDir="false" />
|
||||
<change afterPath="$PROJECT_DIR$/routers/file.py" afterDir="false" />
|
||||
<change afterPath="$PROJECT_DIR$/routers/patch.py" afterDir="false" />
|
||||
<change afterPath="$PROJECT_DIR$/routers/record.py" afterDir="false" />
|
||||
<change afterPath="$PROJECT_DIR$/schemas/patch.py" afterDir="false" />
|
||||
<change afterPath="$PROJECT_DIR$/service/crop_service.py" afterDir="false" />
|
||||
<change afterPath="$PROJECT_DIR$/service/file_service.py" afterDir="false" />
|
||||
<change afterPath="$PROJECT_DIR$/service/patch_service.py" afterDir="false" />
|
||||
<change afterPath="$PROJECT_DIR$/service/record_service.py" afterDir="false" />
|
||||
<change afterPath="$PROJECT_DIR$/test_main.http" afterDir="false" />
|
||||
<change afterPath="$PROJECT_DIR$/utils/common.py" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/schemas/patch.py" beforeDir="false" afterPath="$PROJECT_DIR$/schemas/patch.py" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/service/patch_service.py" beforeDir="false" afterPath="$PROJECT_DIR$/service/patch_service.py" afterDir="false" />
|
||||
</list>
|
||||
<option name="SHOW_DIALOG" value="false" />
|
||||
<option name="HIGHLIGHT_CONFLICTS" value="true" />
|
||||
@@ -111,7 +90,7 @@
|
||||
<option name="number" value="Default" />
|
||||
<option name="presentableId" value="Default" />
|
||||
<updated>1788917189828</updated>
|
||||
<workItem from="1788917190899" duration="17315000" />
|
||||
<workItem from="1788917190899" duration="18264000" />
|
||||
</task>
|
||||
<servers />
|
||||
</component>
|
||||
@@ -119,6 +98,6 @@
|
||||
<option name="version" value="3" />
|
||||
</component>
|
||||
<component name="com.intellij.coverage.CoverageDataManagerImpl">
|
||||
<SUITE FILE_PATH="coverage/patch_service$patch_service.coverage" NAME="patch-service Coverage Results" MODIFIED="1788950175309" SOURCE_PROVIDER="com.intellij.coverage.DefaultCoverageFileProvider" RUNNER="coverage.py" COVERAGE_BY_TEST_ENABLED="false" COVERAGE_TRACING_ENABLED="false" WORKING_DIRECTORY="" />
|
||||
<SUITE FILE_PATH="coverage/patch_service$patch_service.coverage" NAME="patch-service Coverage Results" MODIFIED="1788951341519" SOURCE_PROVIDER="com.intellij.coverage.DefaultCoverageFileProvider" RUNNER="coverage.py" COVERAGE_BY_TEST_ENABLED="false" COVERAGE_TRACING_ENABLED="false" WORKING_DIRECTORY="" />
|
||||
</component>
|
||||
</project>
|
||||
@@ -29,6 +29,7 @@ class CropUpdate(BaseModel):
|
||||
|
||||
class CropResponse(CropCreate):
|
||||
id: int
|
||||
images: Optional[list[str]] = None
|
||||
|
||||
model_config = {
|
||||
"from_attributes": True
|
||||
|
||||
@@ -21,13 +21,27 @@ def get_patches(db: Session) -> list[PatchResponse]:
|
||||
crop = db.execute(
|
||||
select(Crops).where(Crops.patch_id == p.id)
|
||||
).scalar_one_or_none()
|
||||
|
||||
data = PatchResponse.model_validate(p)
|
||||
data.crop = CropResponse.from_orm(crop) if crop else None
|
||||
|
||||
if crop:
|
||||
latest_record = db.execute(
|
||||
select(Records)
|
||||
.where(Records.crop_id == crop.id)
|
||||
.order_by(Records.date.desc())
|
||||
.limit(1)
|
||||
).scalar_one_or_none()
|
||||
|
||||
crop_data = CropResponse.from_orm(crop)
|
||||
crop_data.images = latest_record.images if latest_record else []
|
||||
data.crop = crop_data
|
||||
else:
|
||||
data.crop = None
|
||||
|
||||
result.append(data)
|
||||
|
||||
return result
|
||||
|
||||
|
||||
def get_patch(db: Session, patch_id: int) -> PatchResponse | None:
|
||||
patch = db.execute(
|
||||
select(Patches).where(Patches.id == patch_id)
|
||||
|
||||
Reference in New Issue
Block a user