package com.talentcard.server.business.portal;
|
|
import java.util.Map;
|
|
import com.talentcard.server.common.ApiResponse;
|
import com.talentcard.server.request.ParkingPlateSubmitRequest;
|
import com.talentcard.server.service.ParkingPlateSubmissionService;
|
import io.swagger.v3.oas.annotations.Operation;
|
import io.swagger.v3.oas.annotations.Parameter;
|
import io.swagger.v3.oas.annotations.tags.Tag;
|
import jakarta.validation.Valid;
|
import org.springframework.web.bind.annotation.GetMapping;
|
import org.springframework.web.bind.annotation.PostMapping;
|
import org.springframework.web.bind.annotation.RequestBody;
|
import org.springframework.web.bind.annotation.RequestHeader;
|
import org.springframework.web.bind.annotation.RequestMapping;
|
import org.springframework.web.bind.annotation.RequestParam;
|
import org.springframework.web.bind.annotation.RestController;
|
|
@Tag(name = "小程序-停车车牌", description = "小程序查询停车权益商家和提交车牌号")
|
@RestController
|
@RequestMapping("/api/app/parking-plate-submissions")
|
public class ParkingPlateSubmissionController {
|
private final ParkingPlateSubmissionService service;
|
|
public ParkingPlateSubmissionController(ParkingPlateSubmissionService service) {
|
this.service = service;
|
}
|
|
@Operation(summary = "查询可提交车牌的停车商家", description = "根据持卡人的人才卡等级返回可用停车商家、停车场和选择规则")
|
@GetMapping("/options")
|
public ApiResponse<Map<String, Object>> options(
|
@Parameter(description = "持卡人ID") @RequestParam(required = false) Long talentId,
|
@Parameter(description = "人才卡ID;不传时取有效主卡") @RequestParam(required = false) Long cardId
|
) {
|
return ApiResponse.success(service.options(talentId, cardId));
|
}
|
|
@Operation(summary = "提交车牌号", description = "保存车牌、持卡人、提交时间和待处理状态;按卡等级配置校验停车商家和停车场选择规则")
|
@PostMapping
|
public ApiResponse<Map<String, Object>> submit(
|
@Valid @RequestBody ParkingPlateSubmitRequest request,
|
@RequestHeader(value = "X-Idempotency-Key", required = false) String idempotencyKey
|
) {
|
return ApiResponse.success(service.submit(request, idempotencyKey));
|
}
|
}
|