package com.youlai.boot.mini.controller; import com.youlai.boot.common.annotation.Log; import com.youlai.boot.common.annotation.RepeatSubmit; import com.youlai.boot.common.enums.ActionTypeEnum; import com.youlai.boot.common.enums.LogModuleEnum; import com.youlai.boot.common.result.PageResult; import com.youlai.boot.common.result.Result; import com.youlai.boot.mini.model.query.AdoptionApplicationQuery; import com.youlai.boot.mini.model.vo.AdoptionApplicationVO; import com.youlai.boot.mini.service.AdoptionApplicationService; import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.tags.Tag; import lombok.RequiredArgsConstructor; import org.springframework.http.MediaType; import org.springframework.web.bind.annotation.*; import org.springframework.web.multipart.MultipartFile; @Tag(name = "领养申请相关接口") @RestController @RequestMapping("/api/v1/mini/adoptionApplication") @RequiredArgsConstructor public class AdoptionApplicationController { private final AdoptionApplicationService adoptionApplicationService; @Operation(summary = "提交领养申请") @PostMapping(value = "/submit", consumes = MediaType.MULTIPART_FORM_DATA_VALUE) @RepeatSubmit @Log(module = LogModuleEnum.ADOPTION_APPLICATION, value = ActionTypeEnum.INSERT) public Result submitApplication( @RequestParam("strayAnimalUuId") String strayAnimalUuId, @RequestParam(value = "reason", required = false) String reason, @RequestPart("photo") MultipartFile photo ) { String applicationUuid = adoptionApplicationService.submitApplication(strayAnimalUuId, reason, photo); return Result.success(applicationUuid); } @Operation(summary = "获取我的领养申请列表") @GetMapping("/myApplications") public PageResult getMyApplications(AdoptionApplicationQuery query) { return PageResult.success(adoptionApplicationService.getMyApplications(query)); } @Operation(summary = "获取领养申请详情") @GetMapping("/detail/{applicationUuid}") public Result getApplicationDetail(@PathVariable String applicationUuid) { return Result.success(adoptionApplicationService.getApplicationDetail(applicationUuid)); } }