diff --git a/yudao-module-mp/yudao-module-mp-biz/pom.xml b/yudao-module-mp/yudao-module-mp-biz/pom.xml
index ea9681832..f1a217698 100644
--- a/yudao-module-mp/yudao-module-mp-biz/pom.xml
+++ b/yudao-module-mp/yudao-module-mp-biz/pom.xml
@@ -54,6 +54,11 @@
yudao-spring-boot-starter-security
+
+ org.springframework.boot
+ spring-boot-starter-validation
+
+
cn.iocoder.boot
diff --git a/yudao-module-mp/yudao-module-mp-biz/src/main/java/cn/iocoder/yudao/module/mp/controller/admin/account/MpAccountController.java b/yudao-module-mp/yudao-module-mp-biz/src/main/java/cn/iocoder/yudao/module/mp/controller/admin/account/MpAccountController.java
index e2192f5c6..62be175ac 100644
--- a/yudao-module-mp/yudao-module-mp-biz/src/main/java/cn/iocoder/yudao/module/mp/controller/admin/account/MpAccountController.java
+++ b/yudao-module-mp/yudao-module-mp-biz/src/main/java/cn/iocoder/yudao/module/mp/controller/admin/account/MpAccountController.java
@@ -6,9 +6,9 @@ import cn.iocoder.yudao.module.mp.controller.admin.account.vo.*;
import cn.iocoder.yudao.module.mp.convert.account.MpAccountConvert;
import cn.iocoder.yudao.module.mp.dal.dataobject.account.MpAccountDO;
import cn.iocoder.yudao.module.mp.service.account.MpAccountService;
-import io.swagger.annotations.Api;
-import io.swagger.annotations.ApiImplicitParam;
-import io.swagger.annotations.ApiOperation;
+import io.swagger.v3.oas.annotations.Operation;
+import io.swagger.v3.oas.annotations.Parameter;
+import io.swagger.v3.oas.annotations.tags.Tag;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
@@ -19,7 +19,7 @@ import java.util.List;
import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success;
-@Api(tags = "管理后台 - 公众号账号")
+@Tag(name = "管理后台 - 公众号账号")
@RestController
@RequestMapping("/mp/account")
@Validated
@@ -29,14 +29,14 @@ public class MpAccountController {
private MpAccountService mpAccountService;
@PostMapping("/create")
- @ApiOperation("创建公众号账号")
+ @Operation(summary = "创建公众号账号")
@PreAuthorize("@ss.hasPermission('mp:account:create')")
public CommonResult createAccount(@Valid @RequestBody MpAccountCreateReqVO createReqVO) {
return success(mpAccountService.createAccount(createReqVO));
}
@PutMapping("/update")
- @ApiOperation("更新公众号账号")
+ @Operation(summary = "更新公众号账号")
@PreAuthorize("@ss.hasPermission('mp:account:update')")
public CommonResult updateAccount(@Valid @RequestBody MpAccountUpdateReqVO updateReqVO) {
mpAccountService.updateAccount(updateReqVO);
@@ -44,8 +44,8 @@ public class MpAccountController {
}
@DeleteMapping("/delete")
- @ApiOperation("删除公众号账号")
- @ApiImplicitParam(name = "id", value = "编号", required = true, dataTypeClass = Long.class)
+ @Operation(summary = "删除公众号账号")
+ @Parameter(name = "id", description = "编号", required = true)
@PreAuthorize("@ss.hasPermission('mp:account:delete')")
public CommonResult deleteAccount(@RequestParam("id") Long id) {
mpAccountService.deleteAccount(id);
@@ -53,8 +53,8 @@ public class MpAccountController {
}
@GetMapping("/get")
- @ApiOperation("获得公众号账号")
- @ApiImplicitParam(name = "id", value = "编号", required = true, example = "1024", dataTypeClass = Long.class)
+ @Operation(summary = "获得公众号账号")
+ @Parameter(name = "id", description = "编号", required = true, example = "1024")
@PreAuthorize("@ss.hasPermission('mp:account:query')")
public CommonResult getAccount(@RequestParam("id") Long id) {
MpAccountDO wxAccount = mpAccountService.getAccount(id);
@@ -62,7 +62,7 @@ public class MpAccountController {
}
@GetMapping("/page")
- @ApiOperation("获得公众号账号分页")
+ @Operation(summary = "获得公众号账号分页")
@PreAuthorize("@ss.hasPermission('mp:account:query')")
public CommonResult> getAccountPage(@Valid MpAccountPageReqVO pageVO) {
PageResult pageResult = mpAccountService.getAccountPage(pageVO);
@@ -70,7 +70,7 @@ public class MpAccountController {
}
@GetMapping("/list-all-simple")
- @ApiOperation(value = "获取公众号账号精简信息列表")
+ @Operation(summary = "获取公众号账号精简信息列表")
@PreAuthorize("@ss.hasPermission('mp:account:query')")
public CommonResult> getSimpleAccounts() {
List list = mpAccountService.getAccountList();
@@ -78,8 +78,8 @@ public class MpAccountController {
}
@PutMapping("/generate-qr-code")
- @ApiOperation("生成公众号二维码")
- @ApiImplicitParam(name = "id", value = "编号", required = true, dataTypeClass = Long.class)
+ @Operation(summary = "生成公众号二维码")
+ @Parameter(name = "id", description = "编号", required = true)
@PreAuthorize("@ss.hasPermission('mp:account:qr-code')")
public CommonResult generateAccountQrCode(@RequestParam("id") Long id) {
mpAccountService.generateAccountQrCode(id);
@@ -87,8 +87,8 @@ public class MpAccountController {
}
@PutMapping("/clear-quota")
- @ApiOperation("清空公众号 API 配额")
- @ApiImplicitParam(name = "id", value = "编号", required = true, dataTypeClass = Long.class)
+ @Operation(summary = "清空公众号 API 配额")
+ @Parameter(name = "id", description = "编号", required = true)
@PreAuthorize("@ss.hasPermission('mp:account:clear-quota')")
public CommonResult clearAccountQuota(@RequestParam("id") Long id) {
mpAccountService.clearAccountQuota(id);
diff --git a/yudao-module-mp/yudao-module-mp-biz/src/main/java/cn/iocoder/yudao/module/mp/controller/admin/account/vo/MpAccountBaseVO.java b/yudao-module-mp/yudao-module-mp-biz/src/main/java/cn/iocoder/yudao/module/mp/controller/admin/account/vo/MpAccountBaseVO.java
index 34176f9b5..cda7ec629 100644
--- a/yudao-module-mp/yudao-module-mp-biz/src/main/java/cn/iocoder/yudao/module/mp/controller/admin/account/vo/MpAccountBaseVO.java
+++ b/yudao-module-mp/yudao-module-mp-biz/src/main/java/cn/iocoder/yudao/module/mp/controller/admin/account/vo/MpAccountBaseVO.java
@@ -1,6 +1,6 @@
package cn.iocoder.yudao.module.mp.controller.admin.account.vo;
-import io.swagger.annotations.ApiModelProperty;
+import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import javax.validation.constraints.NotEmpty;
@@ -14,30 +14,30 @@ import javax.validation.constraints.NotEmpty;
@Data
public class MpAccountBaseVO {
- @ApiModelProperty(value = "公众号名称", required = true, example = "芋道源码")
+ @Schema(description = "公众号名称", required = true, example = "芋道源码")
@NotEmpty(message = "公众号名称不能为空")
private String name;
- @ApiModelProperty(value = "公众号微信号", required = true, example = "yudaoyuanma")
+ @Schema(description = "公众号微信号", required = true, example = "yudaoyuanma")
@NotEmpty(message = "公众号微信号不能为空")
private String account;
- @ApiModelProperty(value = "公众号 appId", required = true, example = "wx5b23ba7a5589ecbb")
+ @Schema(description = "公众号 appId", required = true, example = "wx5b23ba7a5589ecbb")
@NotEmpty(message = "公众号 appId 不能为空")
private String appId;
- @ApiModelProperty(value = "公众号密钥", required = true, example = "3a7b3b20c537e52e74afd395eb85f61f")
+ @Schema(description = "公众号密钥", required = true, example = "3a7b3b20c537e52e74afd395eb85f61f")
@NotEmpty(message = "公众号密钥不能为空")
private String appSecret;
- @ApiModelProperty(value = "公众号 token", required = true, example = "kangdayuzhen")
+ @Schema(description = "公众号 token", required = true, example = "kangdayuzhen")
@NotEmpty(message = "公众号 token 不能为空")
private String token;
- @ApiModelProperty(value = "加密密钥", example = "gjN+Ksei")
+ @Schema(description = "加密密钥", example = "gjN+Ksei")
private String aesKey;
- @ApiModelProperty(value = "备注", example = "请关注芋道源码,学习技术")
+ @Schema(description = "备注", example = "请关注芋道源码,学习技术")
private String remark;
}
diff --git a/yudao-module-mp/yudao-module-mp-biz/src/main/java/cn/iocoder/yudao/module/mp/controller/admin/account/vo/MpAccountCreateReqVO.java b/yudao-module-mp/yudao-module-mp-biz/src/main/java/cn/iocoder/yudao/module/mp/controller/admin/account/vo/MpAccountCreateReqVO.java
index 57b329b92..b864f16c5 100644
--- a/yudao-module-mp/yudao-module-mp-biz/src/main/java/cn/iocoder/yudao/module/mp/controller/admin/account/vo/MpAccountCreateReqVO.java
+++ b/yudao-module-mp/yudao-module-mp-biz/src/main/java/cn/iocoder/yudao/module/mp/controller/admin/account/vo/MpAccountCreateReqVO.java
@@ -1,11 +1,11 @@
package cn.iocoder.yudao.module.mp.controller.admin.account.vo;
-import io.swagger.annotations.ApiModel;
+import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.ToString;
-@ApiModel("管理后台 - 公众号账号创建 Request VO")
+@Schema(description = "管理后台 - 公众号账号创建 Request VO")
@Data
@EqualsAndHashCode(callSuper = true)
@ToString(callSuper = true)
diff --git a/yudao-module-mp/yudao-module-mp-biz/src/main/java/cn/iocoder/yudao/module/mp/controller/admin/account/vo/MpAccountPageReqVO.java b/yudao-module-mp/yudao-module-mp-biz/src/main/java/cn/iocoder/yudao/module/mp/controller/admin/account/vo/MpAccountPageReqVO.java
index 23f2c2f0e..93093dc19 100644
--- a/yudao-module-mp/yudao-module-mp-biz/src/main/java/cn/iocoder/yudao/module/mp/controller/admin/account/vo/MpAccountPageReqVO.java
+++ b/yudao-module-mp/yudao-module-mp-biz/src/main/java/cn/iocoder/yudao/module/mp/controller/admin/account/vo/MpAccountPageReqVO.java
@@ -1,22 +1,24 @@
package cn.iocoder.yudao.module.mp.controller.admin.account.vo;
-import lombok.*;
-import io.swagger.annotations.*;
import cn.iocoder.yudao.framework.common.pojo.PageParam;
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.ToString;
-@ApiModel("管理后台 - 公众号账号分页 Request VO")
+@Schema(description = "管理后台 - 公众号账号分页 Request VO")
@Data
@EqualsAndHashCode(callSuper = true)
@ToString(callSuper = true)
public class MpAccountPageReqVO extends PageParam {
- @ApiModelProperty(value = "公众号名称", notes = "模糊匹配")
+ @Schema(name = "公众号名称", description = "模糊匹配")
private String name;
- @ApiModelProperty(value = "公众号账号", notes = "模糊匹配")
+ @Schema(name = "公众号账号", description = "模糊匹配")
private String account;
- @ApiModelProperty(value = "公众号 appid", notes = "模糊匹配")
+ @Schema(name = "公众号 appid", description = "模糊匹配")
private String appId;
}
diff --git a/yudao-module-mp/yudao-module-mp-biz/src/main/java/cn/iocoder/yudao/module/mp/controller/admin/account/vo/MpAccountRespVO.java b/yudao-module-mp/yudao-module-mp-biz/src/main/java/cn/iocoder/yudao/module/mp/controller/admin/account/vo/MpAccountRespVO.java
index 8cda94d9f..9914494ce 100644
--- a/yudao-module-mp/yudao-module-mp-biz/src/main/java/cn/iocoder/yudao/module/mp/controller/admin/account/vo/MpAccountRespVO.java
+++ b/yudao-module-mp/yudao-module-mp-biz/src/main/java/cn/iocoder/yudao/module/mp/controller/admin/account/vo/MpAccountRespVO.java
@@ -1,26 +1,25 @@
package cn.iocoder.yudao.module.mp.controller.admin.account.vo;
-import io.swagger.annotations.ApiModel;
-import io.swagger.annotations.ApiModelProperty;
+import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.ToString;
import java.util.Date;
-@ApiModel("管理后台 - 公众号账号 Response VO")
+@Schema(description = "管理后台 - 公众号账号 Response VO")
@Data
@EqualsAndHashCode(callSuper = true)
@ToString(callSuper = true)
public class MpAccountRespVO extends MpAccountBaseVO {
- @ApiModelProperty(value = "编号", required = true, example = "1024")
+ @Schema(description = "编号", required = true, example = "1024")
private Long id;
- @ApiModelProperty(value = "二维码图片URL", example = "https://www.iocoder.cn/1024.png")
+ @Schema(description = "二维码图片URL", example = "https://www.iocoder.cn/1024.png")
private String qrCodeUrl;
- @ApiModelProperty(value = "创建时间", required = true)
+ @Schema(description = "创建时间", required = true)
private Date createTime;
}
diff --git a/yudao-module-mp/yudao-module-mp-biz/src/main/java/cn/iocoder/yudao/module/mp/controller/admin/account/vo/MpAccountSimpleRespVO.java b/yudao-module-mp/yudao-module-mp-biz/src/main/java/cn/iocoder/yudao/module/mp/controller/admin/account/vo/MpAccountSimpleRespVO.java
index f3826eaa1..6d63f0ef7 100644
--- a/yudao-module-mp/yudao-module-mp-biz/src/main/java/cn/iocoder/yudao/module/mp/controller/admin/account/vo/MpAccountSimpleRespVO.java
+++ b/yudao-module-mp/yudao-module-mp-biz/src/main/java/cn/iocoder/yudao/module/mp/controller/admin/account/vo/MpAccountSimpleRespVO.java
@@ -1,17 +1,16 @@
package cn.iocoder.yudao.module.mp.controller.admin.account.vo;
-import io.swagger.annotations.ApiModel;
-import io.swagger.annotations.ApiModelProperty;
+import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
-@ApiModel("管理后台 - 公众号账号精简信息 Response VO")
+@Schema(description = "管理后台 - 公众号账号精简信息 Response VO")
@Data
public class MpAccountSimpleRespVO {
- @ApiModelProperty(value = "编号", required = true, example = "1024")
+ @Schema(description = "编号", required = true, example = "1024")
private Long id;
- @ApiModelProperty(value = "公众号名称", required = true, example = "芋道源码")
+ @Schema(description = "公众号名称", required = true, example = "芋道源码")
private String name;
}
diff --git a/yudao-module-mp/yudao-module-mp-biz/src/main/java/cn/iocoder/yudao/module/mp/controller/admin/account/vo/MpAccountUpdateReqVO.java b/yudao-module-mp/yudao-module-mp-biz/src/main/java/cn/iocoder/yudao/module/mp/controller/admin/account/vo/MpAccountUpdateReqVO.java
index f348c22c2..c19e0acac 100644
--- a/yudao-module-mp/yudao-module-mp-biz/src/main/java/cn/iocoder/yudao/module/mp/controller/admin/account/vo/MpAccountUpdateReqVO.java
+++ b/yudao-module-mp/yudao-module-mp-biz/src/main/java/cn/iocoder/yudao/module/mp/controller/admin/account/vo/MpAccountUpdateReqVO.java
@@ -1,16 +1,19 @@
package cn.iocoder.yudao.module.mp.controller.admin.account.vo;
-import lombok.*;
-import io.swagger.annotations.*;
-import javax.validation.constraints.*;
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.ToString;
-@ApiModel("管理后台 - 公众号账号更新 Request VO")
+import javax.validation.constraints.NotNull;
+
+@Schema(description = "管理后台 - 公众号账号更新 Request VO")
@Data
@EqualsAndHashCode(callSuper = true)
@ToString(callSuper = true)
public class MpAccountUpdateReqVO extends MpAccountBaseVO {
- @ApiModelProperty(value = "编号", required = true, example = "1024")
+ @Schema(description = "编号", required = true, example = "1024")
@NotNull(message = "编号不能为空")
private Long id;
diff --git a/yudao-module-mp/yudao-module-mp-biz/src/main/java/cn/iocoder/yudao/module/mp/controller/admin/material/MpMaterialController.java b/yudao-module-mp/yudao-module-mp-biz/src/main/java/cn/iocoder/yudao/module/mp/controller/admin/material/MpMaterialController.java
index efd7b0420..ef175d2af 100644
--- a/yudao-module-mp/yudao-module-mp-biz/src/main/java/cn/iocoder/yudao/module/mp/controller/admin/material/MpMaterialController.java
+++ b/yudao-module-mp/yudao-module-mp-biz/src/main/java/cn/iocoder/yudao/module/mp/controller/admin/material/MpMaterialController.java
@@ -6,9 +6,9 @@ import cn.iocoder.yudao.module.mp.controller.admin.material.vo.*;
import cn.iocoder.yudao.module.mp.convert.material.MpMaterialConvert;
import cn.iocoder.yudao.module.mp.dal.dataobject.material.MpMaterialDO;
import cn.iocoder.yudao.module.mp.service.material.MpMaterialService;
-import io.swagger.annotations.Api;
-import io.swagger.annotations.ApiImplicitParam;
-import io.swagger.annotations.ApiOperation;
+import io.swagger.v3.oas.annotations.Operation;
+import io.swagger.v3.oas.annotations.Parameter;
+import io.swagger.v3.oas.annotations.tags.Tag;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
@@ -19,7 +19,7 @@ import java.io.IOException;
import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success;
-@Api(tags = "管理后台 - 公众号素材")
+@Tag(name = "管理后台 - 公众号素材")
@RestController
@RequestMapping("/mp/material")
@Validated
@@ -28,7 +28,7 @@ public class MpMaterialController {
@Resource
private MpMaterialService mpMaterialService;
- @ApiOperation("上传临时素材")
+ @Operation(summary = "上传临时素材")
@PostMapping("/upload-temporary")
@PreAuthorize("@ss.hasPermission('mp:material:upload-temporary')")
public CommonResult uploadTemporaryMaterial(
@@ -37,7 +37,7 @@ public class MpMaterialController {
return success(MpMaterialConvert.INSTANCE.convert(material));
}
- @ApiOperation("上传永久素材")
+ @Operation(summary = "上传永久素材")
@PostMapping("/upload-permanent")
@PreAuthorize("@ss.hasPermission('mp:material:upload-permanent')")
public CommonResult uploadPermanentMaterial(
@@ -46,16 +46,16 @@ public class MpMaterialController {
return success(MpMaterialConvert.INSTANCE.convert(material));
}
- @ApiOperation("删除素材")
+ @Operation(summary = "删除素材")
@DeleteMapping("/delete-permanent")
- @ApiImplicitParam(name = "id", value = "编号", required = true, example = "1024", dataTypeClass = Long.class)
+ @Parameter(name = "id", description = "编号", required = true, example = "1024")
@PreAuthorize("@ss.hasPermission('mp:material:delete')")
public CommonResult deleteMaterial(@RequestParam("id") Long id) {
mpMaterialService.deleteMaterial(id);
return success(true);
}
- @ApiOperation("上传图文内容中的图片")
+ @Operation(summary = "上传图文内容中的图片")
@PostMapping("/upload-news-image")
@PreAuthorize("@ss.hasPermission('mp:material:upload-news-image')")
public CommonResult uploadNewsImage(@Valid MpMaterialUploadNewsImageReqVO reqVO)
@@ -63,7 +63,7 @@ public class MpMaterialController {
return success(mpMaterialService.uploadNewsImage(reqVO));
}
- @ApiOperation("获得素材分页")
+ @Operation(summary = "获得素材分页")
@GetMapping("/page")
@PreAuthorize("@ss.hasPermission('mp:material:query')")
public CommonResult> getMaterialPage(@Valid MpMaterialPageReqVO pageReqVO) {
diff --git a/yudao-module-mp/yudao-module-mp-biz/src/main/java/cn/iocoder/yudao/module/mp/controller/admin/material/vo/MpMaterialPageReqVO.java b/yudao-module-mp/yudao-module-mp-biz/src/main/java/cn/iocoder/yudao/module/mp/controller/admin/material/vo/MpMaterialPageReqVO.java
index 88c087c93..ce3b0f9e7 100644
--- a/yudao-module-mp/yudao-module-mp-biz/src/main/java/cn/iocoder/yudao/module/mp/controller/admin/material/vo/MpMaterialPageReqVO.java
+++ b/yudao-module-mp/yudao-module-mp-biz/src/main/java/cn/iocoder/yudao/module/mp/controller/admin/material/vo/MpMaterialPageReqVO.java
@@ -1,28 +1,27 @@
package cn.iocoder.yudao.module.mp.controller.admin.material.vo;
import cn.iocoder.yudao.framework.common.pojo.PageParam;
-import io.swagger.annotations.ApiModel;
-import io.swagger.annotations.ApiModelProperty;
+import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.ToString;
import javax.validation.constraints.NotNull;
-@ApiModel("管理后台 - 公众号素材的分页 Request VO")
+@Schema(description = "管理后台 - 公众号素材的分页 Request VO")
@Data
@EqualsAndHashCode(callSuper = true)
@ToString(callSuper = true)
public class MpMaterialPageReqVO extends PageParam {
- @ApiModelProperty(value = "公众号账号的编号", required = true, example = "2048")
+ @Schema(description = "公众号账号的编号", required = true, example = "2048")
@NotNull(message = "公众号账号的编号不能为空")
private Long accountId;
- @ApiModelProperty(value = "是否永久", example = "true")
+ @Schema(description = "是否永久", example = "true")
private Boolean permanent;
- @ApiModelProperty(value = "文件类型", example = "image", notes = "参见 WxConsts.MediaFileType 枚举")
+ @Schema(description = "文件类型 参见 WxConsts.MediaFileType 枚举", example = "image")
private String type;
}
diff --git a/yudao-module-mp/yudao-module-mp-biz/src/main/java/cn/iocoder/yudao/module/mp/controller/admin/material/vo/MpMaterialRespVO.java b/yudao-module-mp/yudao-module-mp-biz/src/main/java/cn/iocoder/yudao/module/mp/controller/admin/material/vo/MpMaterialRespVO.java
index 352d8ba67..a93dfd994 100644
--- a/yudao-module-mp/yudao-module-mp-biz/src/main/java/cn/iocoder/yudao/module/mp/controller/admin/material/vo/MpMaterialRespVO.java
+++ b/yudao-module-mp/yudao-module-mp-biz/src/main/java/cn/iocoder/yudao/module/mp/controller/admin/material/vo/MpMaterialRespVO.java
@@ -1,48 +1,47 @@
package cn.iocoder.yudao.module.mp.controller.admin.material.vo;
-import io.swagger.annotations.ApiModel;
-import io.swagger.annotations.ApiModelProperty;
+import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import java.util.Date;
-@ApiModel("管理后台 - 公众号素材 Response VO")
+@Schema(description = "管理后台 - 公众号素材 Response VO")
@Data
public class MpMaterialRespVO {
- @ApiModelProperty(value = "主键", required = true, example = "1024")
+ @Schema(description = "主键", required = true, example = "1024")
private Long id;
- @ApiModelProperty(value = "公众号账号的编号", required = true, example = "1")
+ @Schema(description = "公众号账号的编号", required = true, example = "1")
private Long accountId;
- @ApiModelProperty(value = "公众号账号的 appId", required = true, example = "wx1234567890")
+ @Schema(description = "公众号账号的 appId", required = true, example = "wx1234567890")
private String appId;
- @ApiModelProperty(value = "素材的 media_id", required = true, example = "123")
+ @Schema(description = "素材的 media_id", required = true, example = "123")
private String mediaId;
- @ApiModelProperty(value = "文件类型", required = true, example = "image", notes = "参见 WxConsts.MediaFileType 枚举")
+ @Schema(description = "文件类型 参见 WxConsts.MediaFileType 枚举", required = true, example = "image")
private String type;
- @ApiModelProperty(value = "是否永久", required = true, example = "true", notes = "true - 永久;false - 临时")
+ @Schema(description = "是否永久 true - 永久;false - 临时", required = true, example = "true")
private Boolean permanent;
- @ApiModelProperty(value = "素材的 URL", required = true, example = "https://www.iocoder.cn/1.png")
+ @Schema(description = "素材的 URL", required = true, example = "https://www.iocoder.cn/1.png")
private String url;
- @ApiModelProperty(value = "名字", example = "yunai.png")
+ @Schema(description = "名字", example = "yunai.png")
private String name;
- @ApiModelProperty(value = "公众号文件 URL", example = "https://mmbiz.qpic.cn/xxx.mp3", notes = "只有【永久素材】使用")
+ @Schema(description = "公众号文件 URL 只有【永久素材】使用", example = "https://mmbiz.qpic.cn/xxx.mp3")
private String mpUrl;
- @ApiModelProperty(value = "视频素材的标题", example = "我是标题", notes = "只有【永久素材】使用")
+ @Schema(description = "视频素材的标题 只有【永久素材】使用", example = "我是标题")
private String title;
- @ApiModelProperty(value = "视频素材的描述", example = "我是介绍", notes = "只有【永久素材】使用")
+ @Schema(description = "视频素材的描述 只有【永久素材】使用", example = "我是介绍")
private String introduction;
- @ApiModelProperty(value = "创建时间", required = true)
+ @Schema(description = "创建时间", required = true)
private Date createTime;
}
diff --git a/yudao-module-mp/yudao-module-mp-biz/src/main/java/cn/iocoder/yudao/module/mp/controller/admin/material/vo/MpMaterialUploadNewsImageReqVO.java b/yudao-module-mp/yudao-module-mp-biz/src/main/java/cn/iocoder/yudao/module/mp/controller/admin/material/vo/MpMaterialUploadNewsImageReqVO.java
index 66aec47f7..5dd689a68 100644
--- a/yudao-module-mp/yudao-module-mp-biz/src/main/java/cn/iocoder/yudao/module/mp/controller/admin/material/vo/MpMaterialUploadNewsImageReqVO.java
+++ b/yudao-module-mp/yudao-module-mp-biz/src/main/java/cn/iocoder/yudao/module/mp/controller/admin/material/vo/MpMaterialUploadNewsImageReqVO.java
@@ -1,22 +1,21 @@
package cn.iocoder.yudao.module.mp.controller.admin.material.vo;
import com.fasterxml.jackson.annotation.JsonIgnore;
-import io.swagger.annotations.ApiModel;
-import io.swagger.annotations.ApiModelProperty;
+import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import org.springframework.web.multipart.MultipartFile;
import javax.validation.constraints.NotNull;
-@ApiModel("管理后台 - 公众号素材上传图文内容中的图片 Request VO")
+@Schema(description = "管理后台 - 公众号素材上传图文内容中的图片 Request VO")
@Data
public class MpMaterialUploadNewsImageReqVO {
- @ApiModelProperty(value = "公众号账号的编号", required = true, example = "2048")
+ @Schema(description = "公众号账号的编号", required = true, example = "2048")
@NotNull(message = "公众号账号的编号不能为空")
private Long accountId;
- @ApiModelProperty(value = "文件附件", required = true)
+ @Schema(description = "文件附件", required = true)
@NotNull(message = "文件不能为空")
@JsonIgnore // 避免被操作日志,进行序列化,导致报错
private MultipartFile file;
diff --git a/yudao-module-mp/yudao-module-mp-biz/src/main/java/cn/iocoder/yudao/module/mp/controller/admin/material/vo/MpMaterialUploadPermanentReqVO.java b/yudao-module-mp/yudao-module-mp-biz/src/main/java/cn/iocoder/yudao/module/mp/controller/admin/material/vo/MpMaterialUploadPermanentReqVO.java
index 706f71351..93d0a863e 100644
--- a/yudao-module-mp/yudao-module-mp-biz/src/main/java/cn/iocoder/yudao/module/mp/controller/admin/material/vo/MpMaterialUploadPermanentReqVO.java
+++ b/yudao-module-mp/yudao-module-mp-biz/src/main/java/cn/iocoder/yudao/module/mp/controller/admin/material/vo/MpMaterialUploadPermanentReqVO.java
@@ -2,8 +2,7 @@ package cn.iocoder.yudao.module.mp.controller.admin.material.vo;
import cn.hutool.core.util.ObjectUtil;
import com.fasterxml.jackson.annotation.JsonIgnore;
-import io.swagger.annotations.ApiModel;
-import io.swagger.annotations.ApiModelProperty;
+import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import me.chanjar.weixin.common.api.WxConsts;
import org.springframework.web.multipart.MultipartFile;
@@ -12,29 +11,29 @@ import javax.validation.constraints.AssertTrue;
import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull;
-@ApiModel("管理后台 - 公众号素材上传永久 Request VO")
+@Schema(description = "管理后台 - 公众号素材上传永久 Request VO")
@Data
public class MpMaterialUploadPermanentReqVO {
- @ApiModelProperty(value = "公众号账号的编号", required = true, example = "2048")
+ @Schema(description = "公众号账号的编号", required = true, example = "2048")
@NotNull(message = "公众号账号的编号不能为空")
private Long accountId;
- @ApiModelProperty(value = "文件类型", required = true, example = "image", notes = "参见 WxConsts.MediaFileType 枚举")
+ @Schema(description = "文件类型 参见 WxConsts.MediaFileType 枚举", required = true, example = "image")
@NotEmpty(message = "文件类型不能为空")
private String type;
- @ApiModelProperty(value = "文件附件", required = true)
+ @Schema(description = "文件附件", required = true)
@NotNull(message = "文件不能为空")
@JsonIgnore // 避免被操作日志,进行序列化,导致报错
private MultipartFile file;
- @ApiModelProperty(value = "名字", example = "wechat.mp", notes = "如果 name 为空,则使用 file 文件名")
+ @Schema(description = "名字 如果 name 为空,则使用 file 文件名", example = "wechat.mp")
private String name;
- @ApiModelProperty(value = "视频素材的标题", example = "视频素材的标题", notes = "文件类型为 video 时,必填")
+ @Schema(description = "视频素材的标题 文件类型为 video 时,必填", example = "视频素材的标题")
private String title;
- @ApiModelProperty(value = "视频素材的描述", example = "视频素材的描述", notes = "文件类型为 video 时,必填")
+ @Schema(description = "视频素材的描述 文件类型为 video 时,必填", example = "视频素材的描述")
private String introduction;
@AssertTrue(message = "标题不能为空")
diff --git a/yudao-module-mp/yudao-module-mp-biz/src/main/java/cn/iocoder/yudao/module/mp/controller/admin/material/vo/MpMaterialUploadRespVO.java b/yudao-module-mp/yudao-module-mp-biz/src/main/java/cn/iocoder/yudao/module/mp/controller/admin/material/vo/MpMaterialUploadRespVO.java
index 917cc8941..d6a257e03 100644
--- a/yudao-module-mp/yudao-module-mp-biz/src/main/java/cn/iocoder/yudao/module/mp/controller/admin/material/vo/MpMaterialUploadRespVO.java
+++ b/yudao-module-mp/yudao-module-mp-biz/src/main/java/cn/iocoder/yudao/module/mp/controller/admin/material/vo/MpMaterialUploadRespVO.java
@@ -1,17 +1,16 @@
package cn.iocoder.yudao.module.mp.controller.admin.material.vo;
-import io.swagger.annotations.ApiModel;
-import io.swagger.annotations.ApiModelProperty;
+import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
-@ApiModel("管理后台 - 公众号素材上传结果 Response VO")
+@Schema(description = "管理后台 - 公众号素材上传结果 Response VO")
@Data
public class MpMaterialUploadRespVO {
- @ApiModelProperty(value = "素材的 media_id", required = true, example = "123")
+ @Schema(description = "素材的 media_id", required = true, example = "123")
private String mediaId;
- @ApiModelProperty(value = "素材的 URL", required = true, example = "https://www.iocoder.cn/1.png")
+ @Schema(description = "素材的 URL", required = true, example = "https://www.iocoder.cn/1.png")
private String url;
}
diff --git a/yudao-module-mp/yudao-module-mp-biz/src/main/java/cn/iocoder/yudao/module/mp/controller/admin/material/vo/MpMaterialUploadTemporaryReqVO.java b/yudao-module-mp/yudao-module-mp-biz/src/main/java/cn/iocoder/yudao/module/mp/controller/admin/material/vo/MpMaterialUploadTemporaryReqVO.java
index f8c73cec2..5d0f7cafe 100644
--- a/yudao-module-mp/yudao-module-mp-biz/src/main/java/cn/iocoder/yudao/module/mp/controller/admin/material/vo/MpMaterialUploadTemporaryReqVO.java
+++ b/yudao-module-mp/yudao-module-mp-biz/src/main/java/cn/iocoder/yudao/module/mp/controller/admin/material/vo/MpMaterialUploadTemporaryReqVO.java
@@ -1,27 +1,26 @@
package cn.iocoder.yudao.module.mp.controller.admin.material.vo;
import com.fasterxml.jackson.annotation.JsonIgnore;
-import io.swagger.annotations.ApiModel;
-import io.swagger.annotations.ApiModelProperty;
+import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import org.springframework.web.multipart.MultipartFile;
import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull;
-@ApiModel("管理后台 - 公众号素材上传临时 Request VO")
+@Schema(description = "管理后台 - 公众号素材上传临时 Request VO")
@Data
public class MpMaterialUploadTemporaryReqVO {
- @ApiModelProperty(value = "公众号账号的编号", required = true, example = "2048")
+ @Schema(description = "公众号账号的编号", required = true, example = "2048")
@NotNull(message = "公众号账号的编号不能为空")
private Long accountId;
- @ApiModelProperty(value = "文件类型", required = true, example = "image", notes = "参见 WxConsts.MediaFileType 枚举")
+ @Schema(description = "文件类型 参见 WxConsts.MediaFileType 枚举", required = true, example = "image")
@NotEmpty(message = "文件类型不能为空")
private String type;
- @ApiModelProperty(value = "文件附件", required = true)
+ @Schema(description = "文件附件", required = true)
@NotNull(message = "文件不能为空")
@JsonIgnore // 避免被操作日志,进行序列化,导致报错
private MultipartFile file;
diff --git a/yudao-module-mp/yudao-module-mp-biz/src/main/java/cn/iocoder/yudao/module/mp/controller/admin/menu/MpMenuController.java b/yudao-module-mp/yudao-module-mp-biz/src/main/java/cn/iocoder/yudao/module/mp/controller/admin/menu/MpMenuController.java
index f84fee561..b7c883519 100644
--- a/yudao-module-mp/yudao-module-mp-biz/src/main/java/cn/iocoder/yudao/module/mp/controller/admin/menu/MpMenuController.java
+++ b/yudao-module-mp/yudao-module-mp-biz/src/main/java/cn/iocoder/yudao/module/mp/controller/admin/menu/MpMenuController.java
@@ -6,9 +6,9 @@ import cn.iocoder.yudao.module.mp.controller.admin.menu.vo.MpMenuSaveReqVO;
import cn.iocoder.yudao.module.mp.convert.menu.MpMenuConvert;
import cn.iocoder.yudao.module.mp.dal.dataobject.menu.MpMenuDO;
import cn.iocoder.yudao.module.mp.service.menu.MpMenuService;
-import io.swagger.annotations.Api;
-import io.swagger.annotations.ApiImplicitParam;
-import io.swagger.annotations.ApiOperation;
+import io.swagger.v3.oas.annotations.Operation;
+import io.swagger.v3.oas.annotations.Parameter;
+import io.swagger.v3.oas.annotations.tags.Tag;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
@@ -19,7 +19,7 @@ import java.util.List;
import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success;
-@Api(tags = "管理后台 - 公众号菜单")
+@Tag(name = "管理后台 - 公众号菜单")
@RestController
@RequestMapping("/mp/menu")
@Validated
@@ -29,7 +29,7 @@ public class MpMenuController {
private MpMenuService mpMenuService;
@PostMapping("/save")
- @ApiOperation("保存公众号菜单")
+ @Operation(summary = "保存公众号菜单")
@PreAuthorize("@ss.hasPermission('mp:menu:save')")
public CommonResult saveMenu(@Valid @RequestBody MpMenuSaveReqVO createReqVO) {
mpMenuService.saveMenu(createReqVO);
@@ -37,8 +37,8 @@ public class MpMenuController {
}
@DeleteMapping("/delete")
- @ApiOperation("删除公众号菜单")
- @ApiImplicitParam(name = "accountId", value = "公众号账号的编号", required = true, example = "10", dataTypeClass = Long.class)
+ @Operation(summary = "删除公众号菜单")
+ @Parameter(name = "accountId", description = "公众号账号的编号", required = true, example = "10")
@PreAuthorize("@ss.hasPermission('mp:menu:delete')")
public CommonResult deleteMenu(@RequestParam("accountId") Long accountId) {
mpMenuService.deleteMenuByAccountId(accountId);
@@ -46,8 +46,8 @@ public class MpMenuController {
}
@GetMapping("/list")
- @ApiOperation("获得公众号菜单列表")
- @ApiImplicitParam(name = "accountId", value = "公众号账号的编号", required = true, example = "10", dataTypeClass = Long.class)
+ @Operation(summary = "获得公众号菜单列表")
+ @Parameter(name = "accountId", description = "公众号账号的编号", required = true, example = "10")
@PreAuthorize("@ss.hasPermission('mp:menu:query')")
public CommonResult> getMenuList(@RequestParam("accountId") Long accountId) {
List list = mpMenuService.getMenuListByAccountId(accountId);
diff --git a/yudao-module-mp/yudao-module-mp-biz/src/main/java/cn/iocoder/yudao/module/mp/controller/admin/menu/vo/MpMenuBaseVO.java b/yudao-module-mp/yudao-module-mp-biz/src/main/java/cn/iocoder/yudao/module/mp/controller/admin/menu/vo/MpMenuBaseVO.java
index 27a9c1c90..cd0e5b2e4 100644
--- a/yudao-module-mp/yudao-module-mp-biz/src/main/java/cn/iocoder/yudao/module/mp/controller/admin/menu/vo/MpMenuBaseVO.java
+++ b/yudao-module-mp/yudao-module-mp-biz/src/main/java/cn/iocoder/yudao/module/mp/controller/admin/menu/vo/MpMenuBaseVO.java
@@ -1,7 +1,7 @@
package cn.iocoder.yudao.module.mp.controller.admin.menu.vo;
import cn.iocoder.yudao.module.mp.dal.dataobject.message.MpMessageDO;
-import io.swagger.annotations.ApiModelProperty;
+import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import me.chanjar.weixin.common.api.WxConsts;
import org.hibernate.validator.constraints.URL;
@@ -44,54 +44,53 @@ public class MpMenuBaseVO {
*/
private String type;
- @ApiModelProperty(value = "网页链接", example = "https://www.iocoder.cn/")
+ @Schema(description = "网页链接", example = "https://www.iocoder.cn/")
@NotEmpty(message = "网页链接不能为空", groups = {ViewButtonGroup.class, MiniProgramButtonGroup.class})
@URL(message = "网页链接必须是 URL 格式")
private String url;
- @ApiModelProperty(value = "小程序的 appId", example = "wx1234567890")
+ @Schema(description = "小程序的 appId", example = "wx1234567890")
@NotEmpty(message = "小程序的 appId 不能为空", groups = MiniProgramButtonGroup.class)
private String miniProgramAppId;
- @ApiModelProperty(value = "小程序的页面路径", example = "pages/index/index")
+ @Schema(description = "小程序的页面路径", example = "pages/index/index")
@NotEmpty(message = "小程序的页面路径不能为空", groups = MiniProgramButtonGroup.class)
private String miniProgramPagePath;
- @ApiModelProperty(value ="跳转图文的媒体编号", example = "jCQk93AIIgp8ixClWcW_NXXqBKInNWNmq2XnPeDZl7IMVqWiNeL4FfELtggRXd83")
+ @Schema(description ="跳转图文的媒体编号", example = "jCQk93AIIgp8ixClWcW_NXXqBKInNWNmq2XnPeDZl7IMVqWiNeL4FfELtggRXd83")
@NotEmpty(message = "跳转图文的媒体编号不能为空", groups = ViewLimitedButtonGroup.class)
private String articleId;
// ========== 消息内容 ==========
- @ApiModelProperty(value = "回复的消息类型", example = "text",
- notes = "枚举 TEXT、IMAGE、VOICE、VIDEO、NEWS、MUSIC")
+ @Schema(description = "回复的消息类型 枚举 TEXT、IMAGE、VOICE、VIDEO、NEWS、MUSIC", example = "text")
@NotEmpty(message = "回复的消息类型不能为空", groups = {ClickButtonGroup.class, ScanCodeWaitMsgButtonGroup.class})
private String replyMessageType;
- @ApiModelProperty(value = "回复的消息内容", example = "欢迎关注")
+ @Schema(description = "回复的消息内容", example = "欢迎关注")
@NotEmpty(message = "回复的消息内容不能为空", groups = TextMessageGroup.class)
private String replyContent;
- @ApiModelProperty(value = "回复的媒体 id", example = "123456")
+ @Schema(description = "回复的媒体 id", example = "123456")
@NotEmpty(message = "回复的消息 mediaId 不能为空",
groups = {ImageMessageGroup.class, VoiceMessageGroup.class, VideoMessageGroup.class})
private String replyMediaId;
- @ApiModelProperty(value = "回复的媒体 URL", example = "https://www.iocoder.cn/xxx.jpg")
+ @Schema(description = "回复的媒体 URL", example = "https://www.iocoder.cn/xxx.jpg")
@NotEmpty(message = "回复的消息 mediaId 不能为空",
groups = {ImageMessageGroup.class, VoiceMessageGroup.class, VideoMessageGroup.class})
private String replyMediaUrl;
- @ApiModelProperty(value = "缩略图的媒体 id", example = "123456")
+ @Schema(description = "缩略图的媒体 id", example = "123456")
@NotEmpty(message = "回复的消息 thumbMediaId 不能为空", groups = {MusicMessageGroup.class})
private String replyThumbMediaId;
- @ApiModelProperty(value = "缩略图的媒体 URL",example = "https://www.iocoder.cn/xxx.jpg")
+ @Schema(description = "缩略图的媒体 URL",example = "https://www.iocoder.cn/xxx.jpg")
@NotEmpty(message = "回复的消息 thumbMedia 地址不能为空", groups = {MusicMessageGroup.class})
private String replyThumbMediaUrl;
- @ApiModelProperty(value = "回复的标题", example = "视频标题")
+ @Schema(description = "回复的标题", example = "视频标题")
@NotEmpty(message = "回复的消息标题不能为空", groups = VideoMessageGroup.class)
private String replyTitle;
- @ApiModelProperty(value = "回复的描述", example = "视频描述")
+ @Schema(description = "回复的描述", example = "视频描述")
@NotEmpty(message = "消息描述不能为空", groups = VideoMessageGroup.class)
private String replyDescription;
@@ -104,11 +103,11 @@ public class MpMenuBaseVO {
@Valid
private List replyArticles;
- @ApiModelProperty(value = "回复的音乐链接", example = "https://www.iocoder.cn/xxx.mp3")
+ @Schema(description = "回复的音乐链接", example = "https://www.iocoder.cn/xxx.mp3")
@NotEmpty(message = "回复的音乐链接不能为空", groups = MusicMessageGroup.class)
@URL(message = "回复的高质量音乐链接格式不正确", groups = MusicMessageGroup.class)
private String replyMusicUrl;
- @ApiModelProperty(value = "高质量音乐链接", example = "https://www.iocoder.cn/xxx.mp3")
+ @Schema(description = "高质量音乐链接", example = "https://www.iocoder.cn/xxx.mp3")
@NotEmpty(message = "回复的高质量音乐链接不能为空", groups = MusicMessageGroup.class)
@URL(message = "回复的高质量音乐链接格式不正确", groups = MusicMessageGroup.class)
private String replyHqMusicUrl;
diff --git a/yudao-module-mp/yudao-module-mp-biz/src/main/java/cn/iocoder/yudao/module/mp/controller/admin/menu/vo/MpMenuRespVO.java b/yudao-module-mp/yudao-module-mp-biz/src/main/java/cn/iocoder/yudao/module/mp/controller/admin/menu/vo/MpMenuRespVO.java
index cd5bfb5a3..0d51b1064 100644
--- a/yudao-module-mp/yudao-module-mp-biz/src/main/java/cn/iocoder/yudao/module/mp/controller/admin/menu/vo/MpMenuRespVO.java
+++ b/yudao-module-mp/yudao-module-mp-biz/src/main/java/cn/iocoder/yudao/module/mp/controller/admin/menu/vo/MpMenuRespVO.java
@@ -1,29 +1,28 @@
package cn.iocoder.yudao.module.mp.controller.admin.menu.vo;
-import io.swagger.annotations.ApiModel;
-import io.swagger.annotations.ApiModelProperty;
+import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.ToString;
import java.util.Date;
-@ApiModel("管理后台 - 公众号菜单 Response VO")
+@Schema(description = "管理后台 - 公众号菜单 Response VO")
@Data
@EqualsAndHashCode(callSuper = true)
@ToString(callSuper = true)
public class MpMenuRespVO extends MpMenuBaseVO {
- @ApiModelProperty(value = "主键", required = true, example = "1024")
+ @Schema(description = "主键", required = true, example = "1024")
private Long id;
- @ApiModelProperty(value = "公众号账号的编号", required = true, example = "2048")
+ @Schema(description = "公众号账号的编号", required = true, example = "2048")
private Long accountId;
- @ApiModelProperty(value = "公众号 appId", required = true, example = "wx1234567890ox")
+ @Schema(description = "公众号 appId", required = true, example = "wx1234567890ox")
private String appId;
- @ApiModelProperty(value = "创建时间", required = true)
+ @Schema(description = "创建时间", required = true)
private Date createTime;
}
diff --git a/yudao-module-mp/yudao-module-mp-biz/src/main/java/cn/iocoder/yudao/module/mp/controller/admin/menu/vo/MpMenuSaveReqVO.java b/yudao-module-mp/yudao-module-mp-biz/src/main/java/cn/iocoder/yudao/module/mp/controller/admin/menu/vo/MpMenuSaveReqVO.java
index 3c78bdfbb..43b7ff733 100644
--- a/yudao-module-mp/yudao-module-mp-biz/src/main/java/cn/iocoder/yudao/module/mp/controller/admin/menu/vo/MpMenuSaveReqVO.java
+++ b/yudao-module-mp/yudao-module-mp-biz/src/main/java/cn/iocoder/yudao/module/mp/controller/admin/menu/vo/MpMenuSaveReqVO.java
@@ -1,7 +1,6 @@
package cn.iocoder.yudao.module.mp.controller.admin.menu.vo;
-import io.swagger.annotations.ApiModel;
-import io.swagger.annotations.ApiModelProperty;
+import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import javax.validation.Valid;
@@ -9,11 +8,11 @@ import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull;
import java.util.List;
-@ApiModel("管理后台 - 公众号菜单保存 Request VO")
+@Schema(description = "管理后台 - 公众号菜单保存 Request VO")
@Data
public class MpMenuSaveReqVO {
- @ApiModelProperty(value = "公众号账号的编号", required = true, example = "2048")
+ @Schema(description = "公众号账号的编号", required = true, example = "2048")
@NotNull(message = "公众号账号的编号不能为空")
private Long accountId;
@@ -21,7 +20,7 @@ public class MpMenuSaveReqVO {
@Valid
private List