diff --git a/internal/domains/api/dto/api_request_dto.go b/internal/domains/api/dto/api_request_dto.go index 6a2b622..b6bf636 100644 --- a/internal/domains/api/dto/api_request_dto.go +++ b/internal/domains/api/dto/api_request_dto.go @@ -131,7 +131,8 @@ type QCXGA8V3Req struct { VinCode string `json:"vin_code" validate:"required"` } type QCXG8N4RReq struct { - PlateNo string `json:"plate_no" validate:"required"` + PlateNo string `json:"plate_no" validate:"omitempty"` + VinCode string `json:"vin_code" validate:"omitempty"` } type QCXGH3R8Req struct { VinCode string `json:"vin_code" validate:"required"` diff --git a/internal/domains/api/services/processors/qcxg/qcxg8n4r_processor.go b/internal/domains/api/services/processors/qcxg/qcxg8n4r_processor.go index d714b0d..a183eab 100644 --- a/internal/domains/api/services/processors/qcxg/qcxg8n4r_processor.go +++ b/internal/domains/api/services/processors/qcxg/qcxg8n4r_processor.go @@ -22,9 +22,17 @@ func ProcessQCXG8N4RRequest(ctx context.Context, params []byte, deps *processors return nil, errors.Join(processors.ErrInvalidParam, err) } + carNo := paramsDto.VinCode + if carNo == "" { + carNo = paramsDto.PlateNo + } + if carNo == "" { + return nil, errors.Join(processors.ErrInvalidParam, errors.New("plate_no、vin_code 至少需要传其中一个")) + } + reqParams := map[string]interface{}{ "key": "5d253801dbde7ccd75639449b6c91fe2", - "carNo": paramsDto.PlateNo, + "carNo": carNo, } apiPath := "/communication/personal/10186"