From abaa737d23910022dba4e9d179bded4b1581c839 Mon Sep 17 00:00:00 2001 From: lzh Date: Sat, 14 Feb 2026 12:33:44 +0800 Subject: [PATCH] =?UTF-8?q?fix(ops):=20=E5=8F=96=E6=B6=88=E5=B7=A5?= =?UTF-8?q?=E5=8D=95=E6=8E=A5=E5=8F=A3=E6=94=B9=E7=94=A8=20@RequestBody=20?= =?UTF-8?q?=E6=8E=A5=E6=94=B6=20JSON=20=E5=8F=82=E6=95=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 前端以 JSON body 传参,@RequestParam 无法读取导致 400 "请求参数缺失"。 新增 OpsOrderCancelReqDTO,Controller 改为 @RequestBody 风格, 与 create/assign/complete 等接口保持一致。 Co-Authored-By: Claude Opus 4.6 --- .../dataobject/dto/OpsOrderCancelReqDTO.java | 25 +++++++++++++++++++ .../controller/admin/OpsOrderController.java | 7 ++---- 2 files changed, 27 insertions(+), 5 deletions(-) create mode 100644 viewsh-module-ops/viewsh-module-ops-biz/src/main/java/com/viewsh/module/ops/dal/dataobject/dto/OpsOrderCancelReqDTO.java diff --git a/viewsh-module-ops/viewsh-module-ops-biz/src/main/java/com/viewsh/module/ops/dal/dataobject/dto/OpsOrderCancelReqDTO.java b/viewsh-module-ops/viewsh-module-ops-biz/src/main/java/com/viewsh/module/ops/dal/dataobject/dto/OpsOrderCancelReqDTO.java new file mode 100644 index 0000000..e10cff2 --- /dev/null +++ b/viewsh-module-ops/viewsh-module-ops-biz/src/main/java/com/viewsh/module/ops/dal/dataobject/dto/OpsOrderCancelReqDTO.java @@ -0,0 +1,25 @@ +package com.viewsh.module.ops.dal.dataobject.dto; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.constraints.NotBlank; +import jakarta.validation.constraints.NotNull; +import lombok.Data; + +/** + * 工单取消请求 DTO + * + * @author lzh + */ +@Schema(description = "管理后台 - 工单取消 Request DTO") +@Data +public class OpsOrderCancelReqDTO { + + @Schema(description = "工单ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "1001") + @NotNull(message = "工单ID不能为空") + private Long id; + + @Schema(description = "取消原因", requiredMode = Schema.RequiredMode.REQUIRED, example = "客户要求取消") + @NotBlank(message = "取消原因不能为空") + private String reason; + +} diff --git a/viewsh-module-ops/viewsh-module-ops-server/src/main/java/com/viewsh/module/ops/controller/admin/OpsOrderController.java b/viewsh-module-ops/viewsh-module-ops-server/src/main/java/com/viewsh/module/ops/controller/admin/OpsOrderController.java index 18c291d..03ce9e6 100644 --- a/viewsh-module-ops/viewsh-module-ops-server/src/main/java/com/viewsh/module/ops/controller/admin/OpsOrderController.java +++ b/viewsh-module-ops/viewsh-module-ops-server/src/main/java/com/viewsh/module/ops/controller/admin/OpsOrderController.java @@ -132,12 +132,9 @@ public class OpsOrderController { @PostMapping("/cancel") @Operation(summary = "取消工单") - @Parameter(name = "id", description = "工单ID", required = true) - @Parameter(name = "reason", description = "取消原因", required = true) @PreAuthorize("@ss.hasPermission('ops:order:cancel')") - public CommonResult cancelOrder(@RequestParam("id") Long id, - @RequestParam("reason") String reason) { - opsOrderService.cancelOrder(id, reason, OperatorTypeEnum.ADMIN, null); + public CommonResult cancelOrder(@Valid @RequestBody OpsOrderCancelReqDTO cancelReq) { + opsOrderService.cancelOrder(cancelReq.getId(), cancelReq.getReason(), OperatorTypeEnum.ADMIN, null); return success(true); }