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 menus; - @ApiModel("管理后台 - 公众号菜单保存时的每个菜单") + @Schema(description = "管理后台 - 公众号菜单保存时的每个菜单") @Data public static class Menu extends MpMenuBaseVO { diff --git a/yudao-module-mp/yudao-module-mp-biz/src/main/java/cn/iocoder/yudao/module/mp/controller/admin/message/MpAutoReplyController.java b/yudao-module-mp/yudao-module-mp-biz/src/main/java/cn/iocoder/yudao/module/mp/controller/admin/message/MpAutoReplyController.java index 927103157..f6a8b9b38 100644 --- a/yudao-module-mp/yudao-module-mp-biz/src/main/java/cn/iocoder/yudao/module/mp/controller/admin/message/MpAutoReplyController.java +++ b/yudao-module-mp/yudao-module-mp-biz/src/main/java/cn/iocoder/yudao/module/mp/controller/admin/message/MpAutoReplyController.java @@ -9,9 +9,9 @@ import cn.iocoder.yudao.module.mp.controller.admin.message.vo.message.MpMessageP import cn.iocoder.yudao.module.mp.convert.message.MpAutoReplyConvert; import cn.iocoder.yudao.module.mp.dal.dataobject.message.MpAutoReplyDO; import cn.iocoder.yudao.module.mp.service.message.MpAutoReplyService; -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.*; @@ -21,7 +21,7 @@ import javax.validation.Valid; import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success; -@Api(tags = "管理后台 - 公众号自动回复") +@Tag(name = "管理后台 - 公众号自动回复") @RestController @RequestMapping("/mp/auto-reply") @Validated @@ -31,7 +31,7 @@ public class MpAutoReplyController { private MpAutoReplyService mpAutoReplyService; @GetMapping("/page") - @ApiOperation("获得公众号自动回复分页") + @Operation(summary = "获得公众号自动回复分页") @PreAuthorize("@ss.hasPermission('mp:auto-reply:query')") public CommonResult> getAutoReplyPage(@Valid MpMessagePageReqVO pageVO) { PageResult pageResult = mpAutoReplyService.getAutoReplyPage(pageVO); @@ -39,8 +39,8 @@ public class MpAutoReplyController { } @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:auto-reply:query')") public CommonResult getAutoReply(@RequestParam("id") Long id) { MpAutoReplyDO autoReply = mpAutoReplyService.getAutoReply(id); @@ -48,14 +48,14 @@ public class MpAutoReplyController { } @PostMapping("/create") - @ApiOperation("创建公众号自动回复") + @Operation(summary = "创建公众号自动回复") @PreAuthorize("@ss.hasPermission('mp:auto-reply:create')") public CommonResult createAutoReply(@Valid @RequestBody MpAutoReplyCreateReqVO createReqVO) { return success(mpAutoReplyService.createAutoReply(createReqVO)); } @PutMapping("/update") - @ApiOperation("更新公众号自动回复") + @Operation(summary = "更新公众号自动回复") @PreAuthorize("@ss.hasPermission('mp:auto-reply:update')") public CommonResult updateAutoReply(@Valid @RequestBody MpAutoReplyUpdateReqVO updateReqVO) { mpAutoReplyService.updateAutoReply(updateReqVO); @@ -63,8 +63,8 @@ public class MpAutoReplyController { } @DeleteMapping("/delete") - @ApiOperation("删除公众号自动回复") - @ApiImplicitParam(name = "id", value = "编号", required = true, dataTypeClass = Long.class) + @Operation(summary = "删除公众号自动回复") + @Parameter(name = "id", description = "编号", required = true) @PreAuthorize("@ss.hasPermission('mp:auto-reply:delete')") public CommonResult deleteAutoReply(@RequestParam("id") Long id) { mpAutoReplyService.deleteAutoReply(id); diff --git a/yudao-module-mp/yudao-module-mp-biz/src/main/java/cn/iocoder/yudao/module/mp/controller/admin/message/MpMessageController.java b/yudao-module-mp/yudao-module-mp-biz/src/main/java/cn/iocoder/yudao/module/mp/controller/admin/message/MpMessageController.java index 41b11c6f0..66befc65e 100644 --- a/yudao-module-mp/yudao-module-mp-biz/src/main/java/cn/iocoder/yudao/module/mp/controller/admin/message/MpMessageController.java +++ b/yudao-module-mp/yudao-module-mp-biz/src/main/java/cn/iocoder/yudao/module/mp/controller/admin/message/MpMessageController.java @@ -8,8 +8,8 @@ import cn.iocoder.yudao.module.mp.controller.admin.message.vo.message.MpMessageS import cn.iocoder.yudao.module.mp.convert.message.MpMessageConvert; import cn.iocoder.yudao.module.mp.dal.dataobject.message.MpMessageDO; import cn.iocoder.yudao.module.mp.service.message.MpMessageService; -import io.swagger.annotations.Api; -import io.swagger.annotations.ApiOperation; +import io.swagger.v3.oas.annotations.Operation; +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 javax.validation.Valid; import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success; -@Api(tags = "管理后台 - 公众号消息") +@Tag(name = "管理后台 - 公众号消息") @RestController @RequestMapping("/mp/message") @Validated @@ -29,7 +29,7 @@ public class MpMessageController { private MpMessageService mpMessageService; @GetMapping("/page") - @ApiOperation("获得公众号消息分页") + @Operation(summary = "获得公众号消息分页") @PreAuthorize("@ss.hasPermission('mp:message:query')") public CommonResult> getMessagePage(@Valid MpMessagePageReqVO pageVO) { PageResult pageResult = mpMessageService.getMessagePage(pageVO); @@ -37,7 +37,7 @@ public class MpMessageController { } @PostMapping("/send") - @ApiOperation("给粉丝发送消息") + @Operation(summary = "给粉丝发送消息") @PreAuthorize("@ss.hasPermission('mp:message:send')") public CommonResult sendMessage(@Valid @RequestBody MpMessageSendReqVO reqVO) { MpMessageDO message = mpMessageService.sendKefuMessage(reqVO); diff --git a/yudao-module-mp/yudao-module-mp-biz/src/main/java/cn/iocoder/yudao/module/mp/controller/admin/message/vo/autoreply/MpAutoReplyBaseVO.java b/yudao-module-mp/yudao-module-mp-biz/src/main/java/cn/iocoder/yudao/module/mp/controller/admin/message/vo/autoreply/MpAutoReplyBaseVO.java index fa9ae31c7..4b84254fe 100644 --- a/yudao-module-mp/yudao-module-mp-biz/src/main/java/cn/iocoder/yudao/module/mp/controller/admin/message/vo/autoreply/MpAutoReplyBaseVO.java +++ b/yudao-module-mp/yudao-module-mp-biz/src/main/java/cn/iocoder/yudao/module/mp/controller/admin/message/vo/autoreply/MpAutoReplyBaseVO.java @@ -4,7 +4,7 @@ import cn.hutool.core.util.ObjectUtil; import cn.iocoder.yudao.module.mp.dal.dataobject.message.MpMessageDO; import cn.iocoder.yudao.module.mp.enums.message.MpAutoReplyTypeEnum; import cn.iocoder.yudao.module.mp.framework.mp.core.util.MpUtils.*; -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; @@ -22,51 +22,50 @@ import java.util.List; @Data public class MpAutoReplyBaseVO { - @ApiModelProperty(value = "回复类型", example = "1", notes = "参见 MpAutoReplyTypeEnum 枚举") + @Schema(description = "回复类型 参见 MpAutoReplyTypeEnum 枚举", example = "1") @NotNull(message = "回复类型不能为空") private Integer type; // ==================== 请求消息 ==================== - @ApiModelProperty(value = "请求的关键字", example = "关键字", notes = "当 type 为 MpAutoReplyTypeEnum#KEYWORD 时,必填") + @Schema(description = "请求的关键字 当 type 为 MpAutoReplyTypeEnum#KEYWORD 时,必填", example = "关键字") private String requestKeyword; - @ApiModelProperty(value = "请求的匹配方式", example = "1", notes = "当 type 为 MpAutoReplyTypeEnum#KEYWORD 时,必填") + @Schema(description = "请求的匹配方式 当 type 为 MpAutoReplyTypeEnum#KEYWORD 时,必填", example = "1") private Integer requestMatch; - @ApiModelProperty(value = "请求的消息类型", example = "text", notes = "当 type 为 MpAutoReplyTypeEnum#MESSAGE 时,必填") + @Schema(description = "请求的消息类型 当 type 为 MpAutoReplyTypeEnum#MESSAGE 时,必填", example = "text") private String requestMessageType; // ==================== 响应消息 ==================== - @ApiModelProperty(value = "回复的消息类型", example = "text", - notes = "枚举 TEXT、IMAGE、VOICE、VIDEO、NEWS、MUSIC") + @Schema(description = "回复的消息类型 枚举 TEXT、IMAGE、VOICE、VIDEO、NEWS、MUSIC", example = "text") @NotEmpty(message = "回复的消息类型不能为空") private String responseMessageType; - @ApiModelProperty(value = "回复的消息内容", example = "欢迎关注") + @Schema(description = "回复的消息内容", example = "欢迎关注") @NotEmpty(message = "回复的消息内容不能为空", groups = TextMessageGroup.class) private String responseContent; - @ApiModelProperty(value = "回复的媒体 id", example = "123456") + @Schema(description = "回复的媒体 id", example = "123456") @NotEmpty(message = "回复的消息 mediaId 不能为空", groups = {ImageMessageGroup.class, VoiceMessageGroup.class, VideoMessageGroup.class}) private String responseMediaId; - @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 responseMediaUrl; - @ApiModelProperty(value = "缩略图的媒体 id", example = "123456") + @Schema(description = "缩略图的媒体 id", example = "123456") @NotEmpty(message = "回复的消息 thumbMediaId 不能为空", groups = {MusicMessageGroup.class}) private String responseThumbMediaId; - @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 responseThumbMediaUrl; - @ApiModelProperty(value = "回复的标题", example = "视频标题") + @Schema(description = "回复的标题", example = "视频标题") @NotEmpty(message = "回复的消息标题不能为空", groups = VideoMessageGroup.class) private String responseTitle; - @ApiModelProperty(value = "回复的描述", example = "视频描述") + @Schema(description = "回复的描述", example = "视频描述") @NotEmpty(message = "消息描述不能为空", groups = VideoMessageGroup.class) private String responseDescription; @@ -79,11 +78,11 @@ public class MpAutoReplyBaseVO { @Valid private List responseArticles; - @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 responseMusicUrl; - @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 responseHqMusicUrl; diff --git a/yudao-module-mp/yudao-module-mp-biz/src/main/java/cn/iocoder/yudao/module/mp/controller/admin/message/vo/autoreply/MpAutoReplyCreateReqVO.java b/yudao-module-mp/yudao-module-mp-biz/src/main/java/cn/iocoder/yudao/module/mp/controller/admin/message/vo/autoreply/MpAutoReplyCreateReqVO.java index a0020f429..1e2694886 100644 --- a/yudao-module-mp/yudao-module-mp-biz/src/main/java/cn/iocoder/yudao/module/mp/controller/admin/message/vo/autoreply/MpAutoReplyCreateReqVO.java +++ b/yudao-module-mp/yudao-module-mp-biz/src/main/java/cn/iocoder/yudao/module/mp/controller/admin/message/vo/autoreply/MpAutoReplyCreateReqVO.java @@ -1,20 +1,19 @@ package cn.iocoder.yudao.module.mp.controller.admin.message.vo.autoreply; -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 MpAutoReplyCreateReqVO extends MpAutoReplyBaseVO { - @ApiModelProperty(value = "公众号账号的编号", required = true, example = "1024") + @Schema(description = "公众号账号的编号", required = true, example = "1024") @NotNull(message = "公众号账号的编号不能为空") private Long accountId; diff --git a/yudao-module-mp/yudao-module-mp-biz/src/main/java/cn/iocoder/yudao/module/mp/controller/admin/message/vo/autoreply/MpAutoReplyPageReqVO.java b/yudao-module-mp/yudao-module-mp-biz/src/main/java/cn/iocoder/yudao/module/mp/controller/admin/message/vo/autoreply/MpAutoReplyPageReqVO.java index 20e6af0b3..ee3794f56 100644 --- a/yudao-module-mp/yudao-module-mp-biz/src/main/java/cn/iocoder/yudao/module/mp/controller/admin/message/vo/autoreply/MpAutoReplyPageReqVO.java +++ b/yudao-module-mp/yudao-module-mp-biz/src/main/java/cn/iocoder/yudao/module/mp/controller/admin/message/vo/autoreply/MpAutoReplyPageReqVO.java @@ -1,21 +1,20 @@ package cn.iocoder.yudao.module.mp.controller.admin.message.vo.autoreply; 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 MpAutoReplyPageReqVO extends PageParam { - @ApiModelProperty(value = "公众号账号的编号", required = true, example = "1") + @Schema(description = "公众号账号的编号", required = true, example = "1") @NotNull(message = "公众号账号的编号不能为空") private Long accountId; diff --git a/yudao-module-mp/yudao-module-mp-biz/src/main/java/cn/iocoder/yudao/module/mp/controller/admin/message/vo/autoreply/MpAutoReplyRespVO.java b/yudao-module-mp/yudao-module-mp-biz/src/main/java/cn/iocoder/yudao/module/mp/controller/admin/message/vo/autoreply/MpAutoReplyRespVO.java index cdef6a31b..9bd1aaaa7 100644 --- a/yudao-module-mp/yudao-module-mp-biz/src/main/java/cn/iocoder/yudao/module/mp/controller/admin/message/vo/autoreply/MpAutoReplyRespVO.java +++ b/yudao-module-mp/yudao-module-mp-biz/src/main/java/cn/iocoder/yudao/module/mp/controller/admin/message/vo/autoreply/MpAutoReplyRespVO.java @@ -1,28 +1,27 @@ package cn.iocoder.yudao.module.mp.controller.admin.message.vo.autoreply; -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 MpAutoReplyRespVO extends MpAutoReplyBaseVO { - @ApiModelProperty(value = "主键", required = true, example = "1024") + @Schema(description = "主键", required = true, example = "1024") private Long id; - @ApiModelProperty(value = "公众号账号的编号", required = true, example = "1024") + @Schema(description = "公众号账号的编号", required = true, example = "1024") private Long accountId; - @ApiModelProperty(value = "公众号 appId", required = true, example = "wx1234567890") + @Schema(description = "公众号 appId", required = true, example = "wx1234567890") 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/message/vo/autoreply/MpAutoReplyUpdateReqVO.java b/yudao-module-mp/yudao-module-mp-biz/src/main/java/cn/iocoder/yudao/module/mp/controller/admin/message/vo/autoreply/MpAutoReplyUpdateReqVO.java index f95ff0ce8..5478c687b 100644 --- a/yudao-module-mp/yudao-module-mp-biz/src/main/java/cn/iocoder/yudao/module/mp/controller/admin/message/vo/autoreply/MpAutoReplyUpdateReqVO.java +++ b/yudao-module-mp/yudao-module-mp-biz/src/main/java/cn/iocoder/yudao/module/mp/controller/admin/message/vo/autoreply/MpAutoReplyUpdateReqVO.java @@ -1,20 +1,19 @@ package cn.iocoder.yudao.module.mp.controller.admin.message.vo.autoreply; -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 MpAutoReplyUpdateReqVO extends MpAutoReplyBaseVO { - @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/message/vo/message/MpMessagePageReqVO.java b/yudao-module-mp/yudao-module-mp-biz/src/main/java/cn/iocoder/yudao/module/mp/controller/admin/message/vo/message/MpMessagePageReqVO.java index 4cf6190c4..b4ead5705 100644 --- a/yudao-module-mp/yudao-module-mp-biz/src/main/java/cn/iocoder/yudao/module/mp/controller/admin/message/vo/message/MpMessagePageReqVO.java +++ b/yudao-module-mp/yudao-module-mp-biz/src/main/java/cn/iocoder/yudao/module/mp/controller/admin/message/vo/message/MpMessagePageReqVO.java @@ -1,9 +1,10 @@ package cn.iocoder.yudao.module.mp.controller.admin.message.vo.message; -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; import org.springframework.format.annotation.DateTimeFormat; import javax.validation.constraints.NotNull; @@ -11,24 +12,24 @@ import java.time.LocalDateTime; import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND; -@ApiModel("管理后台 - 公众号消息分页 Request VO") +@Schema(description = "管理后台 - 公众号消息分页 Request VO") @Data @EqualsAndHashCode(callSuper = true) @ToString(callSuper = true) public class MpMessagePageReqVO extends PageParam { - @ApiModelProperty(value = "公众号账号的编号", required = true, example = "1024") + @Schema(description = "公众号账号的编号", required = true, example = "1024") @NotNull(message = "公众号账号的编号不能为空") private Long accountId; - @ApiModelProperty(value = "消息类型", example = "text", notes = "参见 WxConsts.XmlMsgType 枚举") + @Schema(description = "消息类型 参见 WxConsts.XmlMsgType 枚举", example = "text") private String type; - @ApiModelProperty(value = "公众号粉丝标识", example = "o6_bmjrPTlm6_2sgVt7hMZOPfL2M") + @Schema(description = "公众号粉丝标识", example = "o6_bmjrPTlm6_2sgVt7hMZOPfL2M") private String openid; @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) - @ApiModelProperty(value = "创建时间") + @Schema(description = "创建时间") private LocalDateTime[] createTime; } diff --git a/yudao-module-mp/yudao-module-mp-biz/src/main/java/cn/iocoder/yudao/module/mp/controller/admin/message/vo/message/MpMessageRespVO.java b/yudao-module-mp/yudao-module-mp-biz/src/main/java/cn/iocoder/yudao/module/mp/controller/admin/message/vo/message/MpMessageRespVO.java index 195e56fbd..3e2bfef60 100644 --- a/yudao-module-mp/yudao-module-mp-biz/src/main/java/cn/iocoder/yudao/module/mp/controller/admin/message/vo/message/MpMessageRespVO.java +++ b/yudao-module-mp/yudao-module-mp-biz/src/main/java/cn/iocoder/yudao/module/mp/controller/admin/message/vo/message/MpMessageRespVO.java @@ -2,80 +2,77 @@ package cn.iocoder.yudao.module.mp.controller.admin.message.vo.message; import cn.iocoder.yudao.module.mp.dal.dataobject.message.MpMessageDO; import com.baomidou.mybatisplus.annotation.TableField; -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 java.util.Date; import java.util.List; -@ApiModel("管理后台 - 公众号消息 Response VO") +@Schema(description = "管理后台 - 公众号消息 Response VO") @Data public class MpMessageRespVO { - @ApiModelProperty(value = "主键", required = true, example = "1024") + @Schema(description = "主键", required = true, example = "1024") private Integer id; - @ApiModelProperty(value = "微信公众号消息 id", required = true, example = "23953173569869169") + @Schema(description = "微信公众号消息 id", required = true, example = "23953173569869169") private Long msgId; - @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 = "公众号粉丝编号", required = true, example = "2048") + @Schema(description = "公众号粉丝编号", required = true, example = "2048") private Long userId; - @ApiModelProperty(value = "公众号粉丝标志", required = true, example = "o6_bmjrPTlm6_2sgVt7hMZOPfL2M") + @Schema(description = "公众号粉丝标志", required = true, example = "o6_bmjrPTlm6_2sgVt7hMZOPfL2M") private String openid; - @ApiModelProperty(value = "消息类型", required = true, example = "text", notes = "参见 WxConsts.XmlMsgType 枚举") + @Schema(description = "消息类型 参见 WxConsts.XmlMsgType 枚举", required = true, example = "text") private String type; - @ApiModelProperty(value = "消息来源", required = true, example = "1", notes = "参见 MpMessageSendFromEnum 枚举") + @Schema(description = "消息来源 参见 MpMessageSendFromEnum 枚举", required = true, example = "1") private Integer sendFrom; // ========= 普通消息内容 https://developers.weixin.qq.com/doc/offiaccount/Message_Management/Receiving_standard_messages.html - @ApiModelProperty(value = "消息内容", example = "你好呀", notes = "消息类型为 text 时,才有值") + @Schema(description = "消息内容 消息类型为 text 时,才有值", example = "你好呀") private String content; - @ApiModelProperty(value = "媒体素材的编号", example = "1234567890", notes = "消息类型为 image、voice、video 时,才有值") + @Schema(description = "媒体素材的编号 消息类型为 image、voice、video 时,才有值", example = "1234567890") private String mediaId; - @ApiModelProperty(value = "媒体文件的 URL", example = "https://www.iocoder.cn/xxx.png", - notes = "消息类型为 image、voice、video 时,才有值") + @Schema(description = "媒体文件的 URL 消息类型为 image、voice、video 时,才有值", example = "https://www.iocoder.cn/xxx.png") private String mediaUrl; - @ApiModelProperty(value = "语音识别后文本", example = "语音识别后文本", notes = "消息类型为 voice 时,才有值") + @Schema(description = "语音识别后文本 消息类型为 voice 时,才有值", example = "语音识别后文本") private String recognition; - @ApiModelProperty(value = "语音格式", example = "amr", notes = "消息类型为 voice 时,才有值") + @Schema(description = "语音格式 消息类型为 voice 时,才有值", example = "amr") private String format; - @ApiModelProperty(value = "标题", example = "我是标题", notes = "消息类型为 video、music、link 时,才有值") + @Schema(description = "标题 消息类型为 video、music、link 时,才有值", example = "我是标题") private String title; - @ApiModelProperty(value = "描述", example = "我是描述", notes = "消息类型为 video、music 时,才有值") + @Schema(description = "描述 消息类型为 video、music 时,才有值", example = "我是描述") private String description; - @ApiModelProperty(value = "缩略图的媒体 id", example = "1234567890", notes = "消息类型为 video、music 时,才有值") + @Schema(description = "缩略图的媒体 id 消息类型为 video、music 时,才有值", example = "1234567890") private String thumbMediaId; - @ApiModelProperty(value = "缩略图的媒体 URL", example = "https://www.iocoder.cn/xxx.png", - notes = "消息类型为 video、music 时,才有值") + @Schema(description = "缩略图的媒体 URL 消息类型为 video、music 时,才有值", example = "https://www.iocoder.cn/xxx.png") private String thumbMediaUrl; - @ApiModelProperty(value = "点击图文消息跳转链接", example = "https://www.iocoder.cn", notes = "消息类型为 link 时,才有值") + @Schema(description = "点击图文消息跳转链接 消息类型为 link 时,才有值", example = "https://www.iocoder.cn") private String url; - @ApiModelProperty(value = "地理位置维度", example = "23.137466", notes = "消息类型为 location 时,才有值") + @Schema(description = "地理位置维度 消息类型为 location 时,才有值", example = "23.137466") private Double locationX; - @ApiModelProperty(value = "地理位置经度", example = "113.352425", notes = "消息类型为 location 时,才有值") + @Schema(description = "地理位置经度 消息类型为 location 时,才有值", example = "113.352425") private Double locationY; - @ApiModelProperty(value = "地图缩放大小", example = "13", notes = "消息类型为 location 时,才有值") + @Schema(description = "地图缩放大小 消息类型为 location 时,才有值", example = "13") private Double scale; - @ApiModelProperty(value = "详细地址", example = "杨浦区黄兴路 221-4 号临", notes = "消息类型为 location 时,才有值") + @Schema(description = "详细地址 消息类型为 location 时,才有值", example = "杨浦区黄兴路 221-4 号临") private String label; /** @@ -86,19 +83,19 @@ public class MpMessageRespVO { @TableField(typeHandler = MpMessageDO.ArticleTypeHandler.class) private List articles; - @ApiModelProperty(value = "音乐链接", example = "https://www.iocoder.cn/xxx.mp3", notes = "消息类型为 music 时,才有值") + @Schema(description = "音乐链接 消息类型为 music 时,才有值", example = "https://www.iocoder.cn/xxx.mp3") private String musicUrl; - @ApiModelProperty(value = "高质量音乐链接", example = "https://www.iocoder.cn/xxx.mp3", notes = "消息类型为 music 时,才有值") + @Schema(description = "高质量音乐链接 消息类型为 music 时,才有值", example = "https://www.iocoder.cn/xxx.mp3") private String hqMusicUrl; // ========= 事件推送 https://developers.weixin.qq.com/doc/offiaccount/Message_Management/Receiving_event_pushes.html - @ApiModelProperty(value = "事件类型", example = "subscribe", notes = "参见 WxConsts.EventType 枚举") + @Schema(description = "事件类型 参见 WxConsts.EventType 枚举", example = "subscribe") private String event; - @ApiModelProperty(value = "事件 Key", example = "qrscene_123456", notes = "参见 WxConsts.EventType 枚举") + @Schema(description = "事件 Key 参见 WxConsts.EventType 枚举", example = "qrscene_123456") private String eventKey; - @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/message/vo/message/MpMessageSendReqVO.java b/yudao-module-mp/yudao-module-mp-biz/src/main/java/cn/iocoder/yudao/module/mp/controller/admin/message/vo/message/MpMessageSendReqVO.java index 8b6492484..465cbff60 100644 --- a/yudao-module-mp/yudao-module-mp-biz/src/main/java/cn/iocoder/yudao/module/mp/controller/admin/message/vo/message/MpMessageSendReqVO.java +++ b/yudao-module-mp/yudao-module-mp-biz/src/main/java/cn/iocoder/yudao/module/mp/controller/admin/message/vo/message/MpMessageSendReqVO.java @@ -2,8 +2,7 @@ package cn.iocoder.yudao.module.mp.controller.admin.message.vo.message; import cn.iocoder.yudao.module.mp.dal.dataobject.message.MpMessageDO; import cn.iocoder.yudao.module.mp.framework.mp.core.util.MpUtils.*; -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; @@ -11,49 +10,49 @@ import javax.validation.constraints.NotEmpty; import javax.validation.constraints.NotNull; import java.util.List; -@ApiModel("管理后台 - 公众号消息发送 Request VO") +@Schema(description = "管理后台 - 公众号消息发送 Request VO") @Data public class MpMessageSendReqVO { - @ApiModelProperty(value = "公众号粉丝的编号", required = true, example = "1024") + @Schema(description = "公众号粉丝的编号", required = true, example = "1024") @NotNull(message = "公众号粉丝的编号不能为空") private Long userId; // ========== 消息内容 ========== - @ApiModelProperty(value = "消息类型", required = true, example = "text", notes = "TEXT/IMAGE/VOICE/VIDEO/NEWS") + @Schema(description = "消息类型 TEXT/IMAGE/VOICE/VIDEO/NEWS", required = true, example = "text") @NotEmpty(message = "消息类型不能为空") public String type; - @ApiModelProperty(value = "消息内容", required = true, example = "你好呀") + @Schema(description = "消息内容", required = true, example = "你好呀") @NotEmpty(message = "消息内容不能为空", groups = TextMessageGroup.class) private String content; - @ApiModelProperty(value = "媒体 ID", required = true, example = "qqc_2Fot30Jse-HDoZmo5RrUDijz2nGUkP") + @Schema(description = "媒体 ID", required = true, example = "qqc_2Fot30Jse-HDoZmo5RrUDijz2nGUkP") @NotEmpty(message = "消息内容不能为空", groups = {ImageMessageGroup.class, VoiceMessageGroup.class, VideoMessageGroup.class}) private String mediaId; - @ApiModelProperty(value = "标题", required = true, example = "没有标题") + @Schema(description = "标题", required = true, example = "没有标题") @NotEmpty(message = "消息内容不能为空", groups = VideoMessageGroup.class) private String title; - @ApiModelProperty(value = "描述", required = true, example = "你猜") + @Schema(description = "描述", required = true, example = "你猜") @NotEmpty(message = "消息描述不能为空", groups = VideoMessageGroup.class) private String description; - @ApiModelProperty(value = "缩略图的媒体 id", required = true, example = "qqc_2Fot30Jse-HDoZmo5RrUDijz2nGUkP") + @Schema(description = "缩略图的媒体 id", required = true, example = "qqc_2Fot30Jse-HDoZmo5RrUDijz2nGUkP") @NotEmpty(message = "缩略图的媒体 id 不能为空", groups = MusicMessageGroup.class) private String thumbMediaId; - @ApiModelProperty(value = "图文消息", required = true) + @Schema(description = "图文消息", required = true) @Valid @NotNull(message = "图文消息不能为空", groups = NewsMessageGroup.class) private List articles; - @ApiModelProperty(value = "音乐链接", example = "https://www.iocoder.cn/music.mp3", notes = "消息类型为 MUSIC 时") + @Schema(description = "音乐链接 消息类型为 MUSIC 时", example = "https://www.iocoder.cn/music.mp3") private String musicUrl; - @ApiModelProperty(value = "高质量音乐链接", example = "https://www.iocoder.cn/music.mp3", notes = "消息类型为 MUSIC 时") + @Schema(description = "高质量音乐链接 消息类型为 MUSIC 时", example = "https://www.iocoder.cn/music.mp3") private String hqMusicUrl; } diff --git a/yudao-module-mp/yudao-module-mp-biz/src/main/java/cn/iocoder/yudao/module/mp/controller/admin/news/MpDraftController.java b/yudao-module-mp/yudao-module-mp-biz/src/main/java/cn/iocoder/yudao/module/mp/controller/admin/news/MpDraftController.java index 148b5a5fe..c43d6c5d7 100644 --- a/yudao-module-mp/yudao-module-mp-biz/src/main/java/cn/iocoder/yudao/module/mp/controller/admin/news/MpDraftController.java +++ b/yudao-module-mp/yudao-module-mp-biz/src/main/java/cn/iocoder/yudao/module/mp/controller/admin/news/MpDraftController.java @@ -9,10 +9,10 @@ import cn.iocoder.yudao.module.mp.controller.admin.news.vo.MpDraftPageReqVO; import cn.iocoder.yudao.module.mp.dal.dataobject.material.MpMaterialDO; import cn.iocoder.yudao.module.mp.framework.mp.core.MpServiceFactory; import cn.iocoder.yudao.module.mp.service.material.MpMaterialService; -import io.swagger.annotations.Api; -import io.swagger.annotations.ApiImplicitParam; -import io.swagger.annotations.ApiImplicitParams; -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.Parameters; +import io.swagger.v3.oas.annotations.tags.Tag; import me.chanjar.weixin.common.error.WxErrorException; import me.chanjar.weixin.mp.api.WxMpService; import me.chanjar.weixin.mp.bean.draft.*; @@ -31,7 +31,7 @@ import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success; import static cn.iocoder.yudao.framework.common.util.collection.MapUtils.findAndThen; import static cn.iocoder.yudao.module.mp.enums.ErrorCodeConstants.*; -@Api(tags = "管理后台 - 公众号草稿") +@Tag(name = "管理后台 - 公众号草稿") @RestController @RequestMapping("/mp/draft") @Validated @@ -44,7 +44,7 @@ public class MpDraftController { private MpMaterialService mpMaterialService; @GetMapping("/page") - @ApiOperation("获得草稿分页") + @Operation(summary = "获得草稿分页") @PreAuthorize("@ss.hasPermission('mp:draft:query')") public CommonResult> getDraftPage(MpDraftPageReqVO reqVO) { // 从公众号查询草稿箱 @@ -79,9 +79,8 @@ public class MpDraftController { } @PostMapping("/create") - @ApiOperation("创建草稿") - @ApiImplicitParam(name = "accountId", value = "公众号账号的编号", required = true, - example = "1024", dataTypeClass = Long.class) + @Operation(summary = "创建草稿") + @Parameter(name = "accountId", description = "公众号账号的编号", required = true, example = "1024") @PreAuthorize("@ss.hasPermission('mp:draft:create')") public CommonResult deleteDraft(@RequestParam("accountId") Long accountId, @RequestBody WxMpAddDraft draft) { @@ -95,12 +94,10 @@ public class MpDraftController { } @PutMapping("/update") - @ApiOperation("更新草稿") - @ApiImplicitParams({ - @ApiImplicitParam(name = "accountId", value = "公众号账号的编号", required = true, - example = "1024", dataTypeClass = Long.class), - @ApiImplicitParam(name = "mediaId", value = "草稿素材的编号", required = true, - example = "xxx", dataTypeClass = String.class), + @Operation(summary = "更新草稿") + @Parameters({ + @Parameter(name = "accountId", description = "公众号账号的编号", required = true, example = "1024"), + @Parameter(name = "mediaId", description = "草稿素材的编号", required = true, example = "xxx") }) @PreAuthorize("@ss.hasPermission('mp:draft:update')") public CommonResult deleteDraft(@RequestParam("accountId") Long accountId, @@ -119,12 +116,10 @@ public class MpDraftController { } @DeleteMapping("/delete") - @ApiOperation("删除草稿") - @ApiImplicitParams({ - @ApiImplicitParam(name = "accountId", value = "公众号账号的编号", required = true, - example = "1024", dataTypeClass = Long.class), - @ApiImplicitParam(name = "mediaId", value = "草稿素材的编号", required = true, - example = "xxx", dataTypeClass = String.class), + @Operation(summary = "删除草稿") + @Parameters({ + @Parameter(name = "accountId", description = "公众号账号的编号", required = true, example = "1024"), + @Parameter(name = "mediaId", description = "草稿素材的编号", required = true, example = "xxx") }) @PreAuthorize("@ss.hasPermission('mp:draft:delete')") public CommonResult deleteDraft(@RequestParam("accountId") Long accountId, diff --git a/yudao-module-mp/yudao-module-mp-biz/src/main/java/cn/iocoder/yudao/module/mp/controller/admin/news/MpFreePublishController.java b/yudao-module-mp/yudao-module-mp-biz/src/main/java/cn/iocoder/yudao/module/mp/controller/admin/news/MpFreePublishController.java index 6938e3274..e36d7343c 100644 --- a/yudao-module-mp/yudao-module-mp-biz/src/main/java/cn/iocoder/yudao/module/mp/controller/admin/news/MpFreePublishController.java +++ b/yudao-module-mp/yudao-module-mp-biz/src/main/java/cn/iocoder/yudao/module/mp/controller/admin/news/MpFreePublishController.java @@ -9,10 +9,10 @@ import cn.iocoder.yudao.module.mp.controller.admin.news.vo.MpFreePublishPageReqV import cn.iocoder.yudao.module.mp.dal.dataobject.material.MpMaterialDO; import cn.iocoder.yudao.module.mp.framework.mp.core.MpServiceFactory; import cn.iocoder.yudao.module.mp.service.material.MpMaterialService; -import io.swagger.annotations.Api; -import io.swagger.annotations.ApiImplicitParam; -import io.swagger.annotations.ApiImplicitParams; -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.Parameters; +import io.swagger.v3.oas.annotations.tags.Tag; import me.chanjar.weixin.common.error.WxErrorException; import me.chanjar.weixin.mp.api.WxMpService; import me.chanjar.weixin.mp.bean.freepublish.WxMpFreePublishItem; @@ -32,7 +32,7 @@ import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success; import static cn.iocoder.yudao.framework.common.util.collection.MapUtils.findAndThen; import static cn.iocoder.yudao.module.mp.enums.ErrorCodeConstants.*; -@Api(tags = "管理后台 - 公众号发布能力") +@Tag(name = "管理后台 - 公众号发布能力") @RestController @RequestMapping("/mp/free-publish") @Validated @@ -45,7 +45,7 @@ public class MpFreePublishController { private MpMaterialService mpMaterialService; @GetMapping("/page") - @ApiOperation("获得已发布的图文分页") + @Operation(summary = "获得已发布的图文分页") @PreAuthorize("@ss.hasPermission('mp:free-publish:query')") public CommonResult> getFreePublishPage(MpFreePublishPageReqVO reqVO) { // 从公众号查询已发布的图文列表 @@ -81,12 +81,10 @@ public class MpFreePublishController { } @PostMapping("/submit") - @ApiOperation("发布草稿") - @ApiImplicitParams({ - @ApiImplicitParam(name = "accountId", value = "公众号账号的编号", required = true, - example = "1024", dataTypeClass = Long.class), - @ApiImplicitParam(name = "mediaId", value = "要发布的草稿的 media_id", required = true, - example = "2048", dataTypeClass = String.class) + @Operation(summary = "发布草稿") + @Parameters({ + @Parameter(name = "accountId", description = "公众号账号的编号", required = true, example = "1024"), + @Parameter(name = "mediaId", description = "要发布的草稿的 media_id", required = true, example = "2048") }) @PreAuthorize("@ss.hasPermission('mp:free-publish:submit')") public CommonResult submitFreePublish(@RequestParam("accountId") Long accountId, @@ -101,12 +99,10 @@ public class MpFreePublishController { } @DeleteMapping("/delete") - @ApiOperation("删除草稿") - @ApiImplicitParams({ - @ApiImplicitParam(name = "accountId", value = "公众号账号的编号", required = true, - example = "1024", dataTypeClass = Long.class), - @ApiImplicitParam(name = "articleId", value = "发布记录的编号", required = true, - example = "2048", dataTypeClass = String.class) + @Operation(summary = "删除草稿") + @Parameters({ + @Parameter(name = "accountId", description = "公众号账号的编号", required = true, example = "1024"), + @Parameter(name = "articleId", description = "发布记录的编号", required = true, example = "2048") }) @PreAuthorize("@ss.hasPermission('mp:free-publish:delete')") public CommonResult deleteFreePublish(@RequestParam("accountId") Long accountId, diff --git a/yudao-module-mp/yudao-module-mp-biz/src/main/java/cn/iocoder/yudao/module/mp/controller/admin/news/vo/MpDraftPageReqVO.java b/yudao-module-mp/yudao-module-mp-biz/src/main/java/cn/iocoder/yudao/module/mp/controller/admin/news/vo/MpDraftPageReqVO.java index c6a5afbca..5c285f627 100644 --- a/yudao-module-mp/yudao-module-mp-biz/src/main/java/cn/iocoder/yudao/module/mp/controller/admin/news/vo/MpDraftPageReqVO.java +++ b/yudao-module-mp/yudao-module-mp-biz/src/main/java/cn/iocoder/yudao/module/mp/controller/admin/news/vo/MpDraftPageReqVO.java @@ -1,21 +1,20 @@ package cn.iocoder.yudao.module.mp.controller.admin.news.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 MpDraftPageReqVO extends PageParam { - @ApiModelProperty(value = "公众号账号的编号", required = true, example = "1024") + @Schema(description = "公众号账号的编号", required = true, example = "1024") @NotNull(message = "公众号账号的编号不能为空") private Long accountId; diff --git a/yudao-module-mp/yudao-module-mp-biz/src/main/java/cn/iocoder/yudao/module/mp/controller/admin/news/vo/MpFreePublishPageReqVO.java b/yudao-module-mp/yudao-module-mp-biz/src/main/java/cn/iocoder/yudao/module/mp/controller/admin/news/vo/MpFreePublishPageReqVO.java index 140e029ee..51f2c6c74 100644 --- a/yudao-module-mp/yudao-module-mp-biz/src/main/java/cn/iocoder/yudao/module/mp/controller/admin/news/vo/MpFreePublishPageReqVO.java +++ b/yudao-module-mp/yudao-module-mp-biz/src/main/java/cn/iocoder/yudao/module/mp/controller/admin/news/vo/MpFreePublishPageReqVO.java @@ -1,21 +1,20 @@ package cn.iocoder.yudao.module.mp.controller.admin.news.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 MpFreePublishPageReqVO extends PageParam { - @ApiModelProperty(value = "公众号账号的编号", required = true, example = "1024") + @Schema(description = "公众号账号的编号", required = true, example = "1024") @NotNull(message = "公众号账号的编号不能为空") private Long accountId; diff --git a/yudao-module-mp/yudao-module-mp-biz/src/main/java/cn/iocoder/yudao/module/mp/controller/admin/open/MpOpenController.java b/yudao-module-mp/yudao-module-mp-biz/src/main/java/cn/iocoder/yudao/module/mp/controller/admin/open/MpOpenController.java index 10954d80b..067102e11 100644 --- a/yudao-module-mp/yudao-module-mp-biz/src/main/java/cn/iocoder/yudao/module/mp/controller/admin/open/MpOpenController.java +++ b/yudao-module-mp/yudao-module-mp-biz/src/main/java/cn/iocoder/yudao/module/mp/controller/admin/open/MpOpenController.java @@ -10,8 +10,8 @@ import cn.iocoder.yudao.module.mp.dal.dataobject.account.MpAccountDO; import cn.iocoder.yudao.module.mp.framework.mp.core.MpServiceFactory; import cn.iocoder.yudao.module.mp.framework.mp.core.context.MpContextHolder; import cn.iocoder.yudao.module.mp.service.account.MpAccountService; -import io.swagger.annotations.Api; -import io.swagger.annotations.ApiOperation; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.tags.Tag; import lombok.extern.slf4j.Slf4j; import me.chanjar.weixin.mp.api.WxMpMessageRouter; import me.chanjar.weixin.mp.api.WxMpService; @@ -23,7 +23,7 @@ import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; import java.util.Objects; -@Api(tags = "管理后台 - 公众号回调") +@Tag(name = "管理后台 - 公众号回调") @RestController @RequestMapping("/mp/open") @Validated @@ -41,7 +41,7 @@ public class MpOpenController { * * 对应 文档 */ - @ApiOperation("校验签名") // 参见 + @Operation(summary = "校验签名") // 参见 @GetMapping(value = "/{appId}", produces = "text/plain;charset=utf-8") public String checkSignature(@PathVariable("appId") String appId, MpOpenCheckSignatureReqVO reqVO) { @@ -61,7 +61,7 @@ public class MpOpenController { * * 文档 */ - @ApiOperation("处理消息") + @Operation(summary = "处理消息") @PostMapping(value = "/{appId}", produces = "application/xml; charset=UTF-8") @OperateLog(enable = false) // 回调地址,无需记录操作日志 public String handleMessage(@PathVariable("appId") String appId, diff --git a/yudao-module-mp/yudao-module-mp-biz/src/main/java/cn/iocoder/yudao/module/mp/controller/admin/open/vo/MpOpenCheckSignatureReqVO.java b/yudao-module-mp/yudao-module-mp-biz/src/main/java/cn/iocoder/yudao/module/mp/controller/admin/open/vo/MpOpenCheckSignatureReqVO.java index 23c3ab01d..67dfa6232 100644 --- a/yudao-module-mp/yudao-module-mp-biz/src/main/java/cn/iocoder/yudao/module/mp/controller/admin/open/vo/MpOpenCheckSignatureReqVO.java +++ b/yudao-module-mp/yudao-module-mp-biz/src/main/java/cn/iocoder/yudao/module/mp/controller/admin/open/vo/MpOpenCheckSignatureReqVO.java @@ -1,32 +1,27 @@ package cn.iocoder.yudao.module.mp.controller.admin.open.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 org.springframework.web.bind.annotation.RequestParam; import javax.validation.constraints.NotEmpty; -@ApiModel("管理后台 - 公众号校验签名 Request VO") +@Schema(description = "管理后台 - 公众号校验签名 Request VO") @Data public class MpOpenCheckSignatureReqVO { - @ApiModelProperty(value = "微信加密签名", required = true, example = "490eb57f448b87bd5f20ccef58aa4de46aa1908e") + @Schema(description = "微信加密签名", required = true, example = "490eb57f448b87bd5f20ccef58aa4de46aa1908e") @NotEmpty(message = "微信加密签名不能为空") private String signature; - @ApiModelProperty(value = "时间戳", required = true, example = "1672587863") + @Schema(description = "时间戳", required = true, example = "1672587863") @NotEmpty(message = "时间戳不能为空") private String timestamp; - @ApiModelProperty(value = "随机数", required = true, example = "1827365808") + @Schema(description = "随机数", required = true, example = "1827365808") @NotEmpty(message = "随机数不能为空") private String nonce; - @ApiModelProperty(value = "随机字符串", required = true, example = "2721154047828672511") + @Schema(description = "随机字符串", required = true, example = "2721154047828672511") @NotEmpty(message = "随机字符串不能为空") @SuppressWarnings("SpellCheckingInspection") private String echostr; diff --git a/yudao-module-mp/yudao-module-mp-biz/src/main/java/cn/iocoder/yudao/module/mp/controller/admin/open/vo/MpOpenHandleMessageReqVO.java b/yudao-module-mp/yudao-module-mp-biz/src/main/java/cn/iocoder/yudao/module/mp/controller/admin/open/vo/MpOpenHandleMessageReqVO.java index 36310481a..4f9e51699 100644 --- a/yudao-module-mp/yudao-module-mp-biz/src/main/java/cn/iocoder/yudao/module/mp/controller/admin/open/vo/MpOpenHandleMessageReqVO.java +++ b/yudao-module-mp/yudao-module-mp-biz/src/main/java/cn/iocoder/yudao/module/mp/controller/admin/open/vo/MpOpenHandleMessageReqVO.java @@ -1,38 +1,37 @@ package cn.iocoder.yudao.module.mp.controller.admin.open.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.constraints.NotEmpty; -@ApiModel("管理后台 - 公众号处理消息 Request VO") +@Schema(description = "管理后台 - 公众号处理消息 Request VO") @Data public class MpOpenHandleMessageReqVO { public static final String ENCRYPT_TYPE_AES = "aes"; - @ApiModelProperty(value = "微信加密签名", required = true, example = "490eb57f448b87bd5f20ccef58aa4de46aa1908e") + @Schema(description = "微信加密签名", required = true, example = "490eb57f448b87bd5f20ccef58aa4de46aa1908e") @NotEmpty(message = "微信加密签名不能为空") private String signature; - @ApiModelProperty(value = "时间戳", required = true, example = "1672587863") + @Schema(description = "时间戳", required = true, example = "1672587863") @NotEmpty(message = "时间戳不能为空") private String timestamp; - @ApiModelProperty(value = "随机数", required = true, example = "1827365808") + @Schema(description = "随机数", required = true, example = "1827365808") @NotEmpty(message = "随机数不能为空") private String nonce; - @ApiModelProperty(value = "粉丝 openid", required = true, example = "oz-Jdtyn-WGm4C4I5Z-nvBMO_ZfY") + @Schema(description = "粉丝 openid", required = true, example = "oz-Jdtyn-WGm4C4I5Z-nvBMO_ZfY") @NotEmpty(message = "粉丝 openid 不能为空") private String openid; - @ApiModelProperty(value = "消息加密类型", example = "aes") + @Schema(description = "消息加密类型", example = "aes") private String encrypt_type; - @ApiModelProperty(value = "微信签名", example = "QW5kcm9pZCBUaGUgQmFzZTY0IGlzIGEgZ2VuZXJhdGVkIHN0cmluZw==") + @Schema(description = "微信签名", example = "QW5kcm9pZCBUaGUgQmFzZTY0IGlzIGEgZ2VuZXJhdGVkIHN0cmluZw==") private String msg_signature; } diff --git a/yudao-module-mp/yudao-module-mp-biz/src/main/java/cn/iocoder/yudao/module/mp/controller/admin/statistics/MpStatisticsController.java b/yudao-module-mp/yudao-module-mp-biz/src/main/java/cn/iocoder/yudao/module/mp/controller/admin/statistics/MpStatisticsController.java index 3a5380ec9..8a9df53c3 100644 --- a/yudao-module-mp/yudao-module-mp-biz/src/main/java/cn/iocoder/yudao/module/mp/controller/admin/statistics/MpStatisticsController.java +++ b/yudao-module-mp/yudao-module-mp-biz/src/main/java/cn/iocoder/yudao/module/mp/controller/admin/statistics/MpStatisticsController.java @@ -4,8 +4,8 @@ import cn.iocoder.yudao.framework.common.pojo.CommonResult; import cn.iocoder.yudao.module.mp.controller.admin.statistics.vo.*; import cn.iocoder.yudao.module.mp.convert.statistics.MpStatisticsConvert; import cn.iocoder.yudao.module.mp.service.statistics.MpStatisticsService; -import io.swagger.annotations.Api; -import io.swagger.annotations.ApiOperation; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.tags.Tag; import me.chanjar.weixin.mp.bean.datacube.WxDataCubeInterfaceResult; import me.chanjar.weixin.mp.bean.datacube.WxDataCubeMsgResult; import me.chanjar.weixin.mp.bean.datacube.WxDataCubeUserCumulate; @@ -21,7 +21,7 @@ import java.util.List; import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success; -@Api(tags = "管理后台 - 公众号统计") +@Tag(name = "管理后台 - 公众号统计") @RestController @RequestMapping("/mp/statistics") @Validated @@ -31,7 +31,7 @@ public class MpStatisticsController { private MpStatisticsService mpStatisticsService; @GetMapping("/user-summary") - @ApiOperation("获得粉丝增减数据") + @Operation(summary = "获得粉丝增减数据") @PreAuthorize("@ss.hasPermission('mp:statistics:query')") public CommonResult> getUserSummary(MpStatisticsGetReqVO getReqVO) { List list = mpStatisticsService.getUserSummary( @@ -40,7 +40,7 @@ public class MpStatisticsController { } @GetMapping("/user-cumulate") - @ApiOperation("获得粉丝累计数据") + @Operation(summary = "获得粉丝累计数据") @PreAuthorize("@ss.hasPermission('mp:statistics:query')") public CommonResult> getUserCumulate(MpStatisticsGetReqVO getReqVO) { List list = mpStatisticsService.getUserCumulate( @@ -49,7 +49,7 @@ public class MpStatisticsController { } @GetMapping("/upstream-message") - @ApiOperation("获取消息发送概况数据") + @Operation(summary = "获取消息发送概况数据") @PreAuthorize("@ss.hasPermission('mp:statistics:query')") public CommonResult> getUpstreamMessage(MpStatisticsGetReqVO getReqVO) { List list = mpStatisticsService.getUpstreamMessage( @@ -58,7 +58,7 @@ public class MpStatisticsController { } @GetMapping("/interface-summary") - @ApiOperation("获取消息发送概况数据") + @Operation(summary = "获取消息发送概况数据") @PreAuthorize("@ss.hasPermission('mp:statistics:query')") public CommonResult> getInterfaceSummary(MpStatisticsGetReqVO getReqVO) { List list = mpStatisticsService.getInterfaceSummary( diff --git a/yudao-module-mp/yudao-module-mp-biz/src/main/java/cn/iocoder/yudao/module/mp/controller/admin/statistics/vo/MpStatisticsGetReqVO.java b/yudao-module-mp/yudao-module-mp-biz/src/main/java/cn/iocoder/yudao/module/mp/controller/admin/statistics/vo/MpStatisticsGetReqVO.java index 63b514887..19b8537e6 100644 --- a/yudao-module-mp/yudao-module-mp-biz/src/main/java/cn/iocoder/yudao/module/mp/controller/admin/statistics/vo/MpStatisticsGetReqVO.java +++ b/yudao-module-mp/yudao-module-mp-biz/src/main/java/cn/iocoder/yudao/module/mp/controller/admin/statistics/vo/MpStatisticsGetReqVO.java @@ -1,7 +1,6 @@ package cn.iocoder.yudao.module.mp.controller.admin.statistics.vo; -import io.swagger.annotations.ApiModel; -import io.swagger.annotations.ApiModelProperty; +import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; import org.springframework.format.annotation.DateTimeFormat; @@ -10,15 +9,15 @@ import java.time.LocalDateTime; import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND; -@ApiModel("管理后台 - 获得统计数据 Request VO") +@Schema(description = "管理后台 - 获得统计数据 Request VO") @Data public class MpStatisticsGetReqVO { - @ApiModelProperty(value = "公众号账号的编号", required = true, example = "1024") + @Schema(description = "公众号账号的编号", required = true, example = "1024") @NotNull(message = "公众号账号的编号不能为空") private Long accountId; - @ApiModelProperty(value = "查询时间范围") + @Schema(description = "查询时间范围") @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) @NotNull(message = "查询时间范围不能为空") private LocalDateTime[] date; diff --git a/yudao-module-mp/yudao-module-mp-biz/src/main/java/cn/iocoder/yudao/module/mp/controller/admin/statistics/vo/MpStatisticsInterfaceSummaryRespVO.java b/yudao-module-mp/yudao-module-mp-biz/src/main/java/cn/iocoder/yudao/module/mp/controller/admin/statistics/vo/MpStatisticsInterfaceSummaryRespVO.java index dfcf45fa3..78db7666c 100644 --- a/yudao-module-mp/yudao-module-mp-biz/src/main/java/cn/iocoder/yudao/module/mp/controller/admin/statistics/vo/MpStatisticsInterfaceSummaryRespVO.java +++ b/yudao-module-mp/yudao-module-mp-biz/src/main/java/cn/iocoder/yudao/module/mp/controller/admin/statistics/vo/MpStatisticsInterfaceSummaryRespVO.java @@ -1,28 +1,27 @@ package cn.iocoder.yudao.module.mp.controller.admin.statistics.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 MpStatisticsInterfaceSummaryRespVO { - @ApiModelProperty(value = "日期", required = true) + @Schema(description = "日期", required = true) private Date refDate; - @ApiModelProperty(value = "通过服务器配置地址获得消息后,被动回复粉丝消息的次数", required = true, example = "10") + @Schema(description = "通过服务器配置地址获得消息后,被动回复粉丝消息的次数", required = true, example = "10") private Integer callbackCount; - @ApiModelProperty(value = "上述动作的失败次数", required = true, example = "20") + @Schema(description = "上述动作的失败次数", required = true, example = "20") private Integer failCount; - @ApiModelProperty(value = "总耗时,除以 callback_count 即为平均耗时", required = true, example = "30") + @Schema(description = "总耗时,除以 callback_count 即为平均耗时", required = true, example = "30") private Integer totalTimeCost; - @ApiModelProperty(value = "最大耗时", required = true, example = "40") + @Schema(description = "最大耗时", required = true, example = "40") private Integer maxTimeCost; } diff --git a/yudao-module-mp/yudao-module-mp-biz/src/main/java/cn/iocoder/yudao/module/mp/controller/admin/statistics/vo/MpStatisticsUpstreamMessageRespVO.java b/yudao-module-mp/yudao-module-mp-biz/src/main/java/cn/iocoder/yudao/module/mp/controller/admin/statistics/vo/MpStatisticsUpstreamMessageRespVO.java index 8a0386165..0f2a71916 100644 --- a/yudao-module-mp/yudao-module-mp-biz/src/main/java/cn/iocoder/yudao/module/mp/controller/admin/statistics/vo/MpStatisticsUpstreamMessageRespVO.java +++ b/yudao-module-mp/yudao-module-mp-biz/src/main/java/cn/iocoder/yudao/module/mp/controller/admin/statistics/vo/MpStatisticsUpstreamMessageRespVO.java @@ -1,22 +1,21 @@ package cn.iocoder.yudao.module.mp.controller.admin.statistics.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 MpStatisticsUpstreamMessageRespVO { - @ApiModelProperty(value = "日期", required = true) + @Schema(description = "日期", required = true) private Date refDate; - @ApiModelProperty(value = "上行发送了(向公众号发送了)消息的粉丝数", required = true, example = "10") + @Schema(description = "上行发送了(向公众号发送了)消息的粉丝数", required = true, example = "10") private Integer messageUser; - @ApiModelProperty(value = "上行发送了消息的消息总数", required = true, example = "20") + @Schema(description = "上行发送了消息的消息总数", required = true, example = "20") private Integer messageCount; } diff --git a/yudao-module-mp/yudao-module-mp-biz/src/main/java/cn/iocoder/yudao/module/mp/controller/admin/statistics/vo/MpStatisticsUserCumulateRespVO.java b/yudao-module-mp/yudao-module-mp-biz/src/main/java/cn/iocoder/yudao/module/mp/controller/admin/statistics/vo/MpStatisticsUserCumulateRespVO.java index 0db34a790..630c193b5 100644 --- a/yudao-module-mp/yudao-module-mp-biz/src/main/java/cn/iocoder/yudao/module/mp/controller/admin/statistics/vo/MpStatisticsUserCumulateRespVO.java +++ b/yudao-module-mp/yudao-module-mp-biz/src/main/java/cn/iocoder/yudao/module/mp/controller/admin/statistics/vo/MpStatisticsUserCumulateRespVO.java @@ -1,19 +1,18 @@ package cn.iocoder.yudao.module.mp.controller.admin.statistics.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 MpStatisticsUserCumulateRespVO { - @ApiModelProperty(value = "日期", required = true) + @Schema(description = "日期", required = true) private Date refDate; - @ApiModelProperty(value = "累计粉丝量", required = true, example = "10") + @Schema(description = "累计粉丝量", required = true, example = "10") private Integer cumulateUser; } diff --git a/yudao-module-mp/yudao-module-mp-biz/src/main/java/cn/iocoder/yudao/module/mp/controller/admin/statistics/vo/MpStatisticsUserSummaryRespVO.java b/yudao-module-mp/yudao-module-mp-biz/src/main/java/cn/iocoder/yudao/module/mp/controller/admin/statistics/vo/MpStatisticsUserSummaryRespVO.java index c65247cce..b99f554ab 100644 --- a/yudao-module-mp/yudao-module-mp-biz/src/main/java/cn/iocoder/yudao/module/mp/controller/admin/statistics/vo/MpStatisticsUserSummaryRespVO.java +++ b/yudao-module-mp/yudao-module-mp-biz/src/main/java/cn/iocoder/yudao/module/mp/controller/admin/statistics/vo/MpStatisticsUserSummaryRespVO.java @@ -1,25 +1,24 @@ package cn.iocoder.yudao.module.mp.controller.admin.statistics.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 MpStatisticsUserSummaryRespVO { - @ApiModelProperty(value = "日期", required = true) + @Schema(description = "日期", required = true) private Date refDate; - @ApiModelProperty(value = "粉丝来源", required = true, example = "0") + @Schema(description = "粉丝来源", required = true, example = "0") private Integer userSource; - @ApiModelProperty(value = "新关注的粉丝数量", required = true, example = "10") + @Schema(description = "新关注的粉丝数量", required = true, example = "10") private Integer newUser; - @ApiModelProperty(value = "取消关注的粉丝数量", required = true, example = "20") + @Schema(description = "取消关注的粉丝数量", required = true, example = "20") private Integer cancelUser; } diff --git a/yudao-module-mp/yudao-module-mp-biz/src/main/java/cn/iocoder/yudao/module/mp/controller/admin/tag/MpTagController.java b/yudao-module-mp/yudao-module-mp-biz/src/main/java/cn/iocoder/yudao/module/mp/controller/admin/tag/MpTagController.java index 1ae7751fe..d7237d282 100644 --- a/yudao-module-mp/yudao-module-mp-biz/src/main/java/cn/iocoder/yudao/module/mp/controller/admin/tag/MpTagController.java +++ b/yudao-module-mp/yudao-module-mp-biz/src/main/java/cn/iocoder/yudao/module/mp/controller/admin/tag/MpTagController.java @@ -6,9 +6,9 @@ import cn.iocoder.yudao.module.mp.controller.admin.tag.vo.*; import cn.iocoder.yudao.module.mp.convert.tag.MpTagConvert; import cn.iocoder.yudao.module.mp.dal.dataobject.tag.MpTagDO; import cn.iocoder.yudao.module.mp.service.tag.MpTagService; -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/tag") @Validated @@ -29,14 +29,14 @@ public class MpTagController { private MpTagService mpTagService; @PostMapping("/create") - @ApiOperation("创建公众号标签") + @Operation(summary = "创建公众号标签") @PreAuthorize("@ss.hasPermission('mp:tag:create')") public CommonResult createTag(@Valid @RequestBody MpTagCreateReqVO createReqVO) { return success(mpTagService.createTag(createReqVO)); } @PutMapping("/update") - @ApiOperation("更新公众号标签") + @Operation(summary = "更新公众号标签") @PreAuthorize("@ss.hasPermission('mp:tag:update')") public CommonResult updateTag(@Valid @RequestBody MpTagUpdateReqVO updateReqVO) { mpTagService.updateTag(updateReqVO); @@ -44,8 +44,8 @@ public class MpTagController { } @DeleteMapping("/delete") - @ApiOperation("删除公众号标签") - @ApiImplicitParam(name = "id", value = "编号", required = true, dataTypeClass = Long.class) + @Operation(summary = "删除公众号标签") + @Parameter(name = "id", description = "编号", required = true) @PreAuthorize("@ss.hasPermission('mp:tag:delete')") public CommonResult deleteTag(@RequestParam("id") Long id) { mpTagService.deleteTag(id); @@ -53,7 +53,7 @@ public class MpTagController { } @GetMapping("/page") - @ApiOperation("获取公众号标签分页") + @Operation(summary = "获取公众号标签分页") @PreAuthorize("@ss.hasPermission('mp:tag:query')") public CommonResult> getTagPage(MpTagPageReqVO pageReqVO) { PageResult pageResult = mpTagService.getTagPage(pageReqVO); @@ -61,7 +61,7 @@ public class MpTagController { } @GetMapping("/list-all-simple") - @ApiOperation(value = "获取公众号账号精简信息列表") + @Operation(summary = "获取公众号账号精简信息列表") @PreAuthorize("@ss.hasPermission('mp:account:query')") public CommonResult> getSimpleTags() { List list = mpTagService.getTagList(); @@ -69,8 +69,8 @@ public class MpTagController { } @PostMapping("/sync") - @ApiOperation("同步公众号标签") - @ApiImplicitParam(name = "accountId", value = "公众号账号的编号", required = true, dataTypeClass = Long.class) + @Operation(summary = "同步公众号标签") + @Parameter(name = "accountId", description = "公众号账号的编号", required = true) @PreAuthorize("@ss.hasPermission('mp:tag:sync')") public CommonResult syncTag(@RequestParam("accountId") Long accountId) { mpTagService.syncTag(accountId); diff --git a/yudao-module-mp/yudao-module-mp-biz/src/main/java/cn/iocoder/yudao/module/mp/controller/admin/tag/vo/MpTagBaseVO.java b/yudao-module-mp/yudao-module-mp-biz/src/main/java/cn/iocoder/yudao/module/mp/controller/admin/tag/vo/MpTagBaseVO.java index 832faf535..f9cc47c35 100644 --- a/yudao-module-mp/yudao-module-mp-biz/src/main/java/cn/iocoder/yudao/module/mp/controller/admin/tag/vo/MpTagBaseVO.java +++ b/yudao-module-mp/yudao-module-mp-biz/src/main/java/cn/iocoder/yudao/module/mp/controller/admin/tag/vo/MpTagBaseVO.java @@ -1,6 +1,6 @@ package cn.iocoder.yudao.module.mp.controller.admin.tag.vo; -import io.swagger.annotations.ApiModelProperty; +import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; import javax.validation.constraints.NotEmpty; @@ -14,7 +14,7 @@ import javax.validation.constraints.NotEmpty; @Data public class MpTagBaseVO { - @ApiModelProperty(value = "标签名", required = true, example = "土豆") + @Schema(description = "标签名", required = true, example = "土豆") @NotEmpty(message = "标签名不能为空") private String name; diff --git a/yudao-module-mp/yudao-module-mp-biz/src/main/java/cn/iocoder/yudao/module/mp/controller/admin/tag/vo/MpTagCreateReqVO.java b/yudao-module-mp/yudao-module-mp-biz/src/main/java/cn/iocoder/yudao/module/mp/controller/admin/tag/vo/MpTagCreateReqVO.java index 24eb0167b..25fc2093e 100644 --- a/yudao-module-mp/yudao-module-mp-biz/src/main/java/cn/iocoder/yudao/module/mp/controller/admin/tag/vo/MpTagCreateReqVO.java +++ b/yudao-module-mp/yudao-module-mp-biz/src/main/java/cn/iocoder/yudao/module/mp/controller/admin/tag/vo/MpTagCreateReqVO.java @@ -1,20 +1,19 @@ package cn.iocoder.yudao.module.mp.controller.admin.tag.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 javax.validation.constraints.NotNull; -@ApiModel("管理后台 - 公众号标签创建 Request VO") +@Schema(description = "管理后台 - 公众号标签创建 Request VO") @Data @EqualsAndHashCode(callSuper = true) @ToString(callSuper = true) public class MpTagCreateReqVO extends MpTagBaseVO { - @ApiModelProperty(value = "公众号账号的编号", required = true, example = "2048") + @Schema(description = "公众号账号的编号", required = true, example = "2048") @NotNull(message = "公众号账号的编号不能为空") private Long accountId; diff --git a/yudao-module-mp/yudao-module-mp-biz/src/main/java/cn/iocoder/yudao/module/mp/controller/admin/tag/vo/MpTagPageReqVO.java b/yudao-module-mp/yudao-module-mp-biz/src/main/java/cn/iocoder/yudao/module/mp/controller/admin/tag/vo/MpTagPageReqVO.java index b48481fc2..b2e3a8643 100644 --- a/yudao-module-mp/yudao-module-mp-biz/src/main/java/cn/iocoder/yudao/module/mp/controller/admin/tag/vo/MpTagPageReqVO.java +++ b/yudao-module-mp/yudao-module-mp-biz/src/main/java/cn/iocoder/yudao/module/mp/controller/admin/tag/vo/MpTagPageReqVO.java @@ -1,25 +1,24 @@ package cn.iocoder.yudao.module.mp.controller.admin.tag.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.NotEmpty; -@ApiModel("管理后台 - 公众号标签分页 Request VO") +@Schema(description = "管理后台 - 公众号标签分页 Request VO") @Data @EqualsAndHashCode(callSuper = true) @ToString(callSuper = true) public class MpTagPageReqVO extends PageParam { - @ApiModelProperty(value = "公众号账号的编号", required = true, example = "2048") + @Schema(description = "公众号账号的编号", required = true, example = "2048") @NotEmpty(message = "公众号账号的编号不能为空") private Long accountId; - @ApiModelProperty(value = "标签名", example = "哈哈", notes = "模糊匹配") + @Schema(description = "标签名 模糊匹配", example = "哈哈") private String name; } diff --git a/yudao-module-mp/yudao-module-mp-biz/src/main/java/cn/iocoder/yudao/module/mp/controller/admin/tag/vo/MpTagRespVO.java b/yudao-module-mp/yudao-module-mp-biz/src/main/java/cn/iocoder/yudao/module/mp/controller/admin/tag/vo/MpTagRespVO.java index cae0dab16..3a9a1cd9e 100644 --- a/yudao-module-mp/yudao-module-mp-biz/src/main/java/cn/iocoder/yudao/module/mp/controller/admin/tag/vo/MpTagRespVO.java +++ b/yudao-module-mp/yudao-module-mp-biz/src/main/java/cn/iocoder/yudao/module/mp/controller/admin/tag/vo/MpTagRespVO.java @@ -1,26 +1,25 @@ package cn.iocoder.yudao.module.mp.controller.admin.tag.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 MpTagRespVO extends MpTagBaseVO { - @ApiModelProperty(value = "编号", required = true, example = "1024") + @Schema(description = "编号", required = true, example = "1024") private Long id; - @ApiModelProperty(value = "此标签下粉丝数量", required = true, example = "0") + @Schema(description = "此标签下粉丝数量", required = true, example = "0") private Integer count; - @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/tag/vo/MpTagSimpleRespVO.java b/yudao-module-mp/yudao-module-mp-biz/src/main/java/cn/iocoder/yudao/module/mp/controller/admin/tag/vo/MpTagSimpleRespVO.java index 75f68a6c9..9918ef563 100644 --- a/yudao-module-mp/yudao-module-mp-biz/src/main/java/cn/iocoder/yudao/module/mp/controller/admin/tag/vo/MpTagSimpleRespVO.java +++ b/yudao-module-mp/yudao-module-mp-biz/src/main/java/cn/iocoder/yudao/module/mp/controller/admin/tag/vo/MpTagSimpleRespVO.java @@ -1,20 +1,19 @@ package cn.iocoder.yudao.module.mp.controller.admin.tag.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 MpTagSimpleRespVO { - @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 tagId; - @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/tag/vo/MpTagUpdateReqVO.java b/yudao-module-mp/yudao-module-mp-biz/src/main/java/cn/iocoder/yudao/module/mp/controller/admin/tag/vo/MpTagUpdateReqVO.java index 873871fd4..c8032ca96 100644 --- a/yudao-module-mp/yudao-module-mp-biz/src/main/java/cn/iocoder/yudao/module/mp/controller/admin/tag/vo/MpTagUpdateReqVO.java +++ b/yudao-module-mp/yudao-module-mp-biz/src/main/java/cn/iocoder/yudao/module/mp/controller/admin/tag/vo/MpTagUpdateReqVO.java @@ -1,17 +1,19 @@ package cn.iocoder.yudao.module.mp.controller.admin.tag.vo; -import lombok.*; -import io.swagger.annotations.*; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.ToString; -import javax.validation.constraints.*; +import javax.validation.constraints.NotNull; -@ApiModel("管理后台 - 公众号标签更新 Request VO") +@Schema(description = "管理后台 - 公众号标签更新 Request VO") @Data @EqualsAndHashCode(callSuper = true) @ToString(callSuper = true) public class MpTagUpdateReqVO extends MpTagBaseVO { - @ApiModelProperty(value = "编号", required = true) + @Schema(description = "编号", required = true) @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/user/MpUserController.java b/yudao-module-mp/yudao-module-mp-biz/src/main/java/cn/iocoder/yudao/module/mp/controller/admin/user/MpUserController.java index d446c1cfe..7098bc57e 100644 --- a/yudao-module-mp/yudao-module-mp-biz/src/main/java/cn/iocoder/yudao/module/mp/controller/admin/user/MpUserController.java +++ b/yudao-module-mp/yudao-module-mp-biz/src/main/java/cn/iocoder/yudao/module/mp/controller/admin/user/MpUserController.java @@ -8,9 +8,9 @@ import cn.iocoder.yudao.module.mp.controller.admin.user.vo.MpUserUpdateReqVO; import cn.iocoder.yudao.module.mp.convert.user.MpUserConvert; import cn.iocoder.yudao.module.mp.dal.dataobject.user.MpUserDO; import cn.iocoder.yudao.module.mp.service.user.MpUserService; -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.*; @@ -20,7 +20,7 @@ import javax.validation.Valid; import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success; -@Api(tags = "管理后台 - 公众号粉丝") +@Tag(name = "管理后台 - 公众号粉丝") @RestController @RequestMapping("/mp/user") @Validated @@ -30,7 +30,7 @@ public class MpUserController { private MpUserService mpUserService; @GetMapping("/page") - @ApiOperation("获得公众号粉丝分页") + @Operation(summary = "获得公众号粉丝分页") @PreAuthorize("@ss.hasPermission('mp:user:query')") public CommonResult> getUserPage(@Valid MpUserPageReqVO pageVO) { PageResult pageResult = mpUserService.getUserPage(pageVO); @@ -38,15 +38,15 @@ public class MpUserController { } @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:user:query')") public CommonResult getUser(@RequestParam("id") Long id) { return success(MpUserConvert.INSTANCE.convert(mpUserService.getUser(id))); } @PutMapping("/update") - @ApiOperation("更新公众号粉丝") + @Operation(summary = "更新公众号粉丝") @PreAuthorize("@ss.hasPermission('mp:user:update')") public CommonResult updateUser(@Valid @RequestBody MpUserUpdateReqVO updateReqVO) { mpUserService.updateUser(updateReqVO); @@ -54,8 +54,8 @@ public class MpUserController { } @PostMapping("/sync") - @ApiOperation("同步公众号粉丝") - @ApiImplicitParam(name = "accountId", value = "公众号账号的编号", required = true, dataTypeClass = Long.class) + @Operation(summary = "同步公众号粉丝") + @Parameter(name = "accountId", description = "公众号账号的编号", required = true) @PreAuthorize("@ss.hasPermission('mp:user:sync')") public CommonResult syncUser(@RequestParam("accountId") Long accountId) { mpUserService.syncUser(accountId); diff --git a/yudao-module-mp/yudao-module-mp-biz/src/main/java/cn/iocoder/yudao/module/mp/controller/admin/user/vo/MpUserPageReqVO.java b/yudao-module-mp/yudao-module-mp-biz/src/main/java/cn/iocoder/yudao/module/mp/controller/admin/user/vo/MpUserPageReqVO.java index 96b8d7412..c6ef1fad3 100644 --- a/yudao-module-mp/yudao-module-mp-biz/src/main/java/cn/iocoder/yudao/module/mp/controller/admin/user/vo/MpUserPageReqVO.java +++ b/yudao-module-mp/yudao-module-mp-biz/src/main/java/cn/iocoder/yudao/module/mp/controller/admin/user/vo/MpUserPageReqVO.java @@ -1,28 +1,27 @@ package cn.iocoder.yudao.module.mp.controller.admin.user.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 MpUserPageReqVO extends PageParam { - @ApiModelProperty(value = "公众号账号的编号", required = true, example = "2048") + @Schema(description = "公众号账号的编号", required = true, example = "2048") @NotNull(message = "公众号账号的编号不能为空") private Long accountId; - @ApiModelProperty(value = "公众号粉丝标识", example = "o6_bmjrPTlm6_2sgVt7hMZOPfL2M", notes = "模糊匹配") + @Schema(description = "公众号粉丝标识 模糊匹配", example = "o6_bmjrPTlm6_2sgVt7hMZOPfL2M") private String openid; - @ApiModelProperty(value = "公众号粉丝昵称", example = "芋艿", notes = "模糊匹配") + @Schema(description = "公众号粉丝昵称 模糊匹配", example = "芋艿") private String nickname; } diff --git a/yudao-module-mp/yudao-module-mp-biz/src/main/java/cn/iocoder/yudao/module/mp/controller/admin/user/vo/MpUserRespVO.java b/yudao-module-mp/yudao-module-mp-biz/src/main/java/cn/iocoder/yudao/module/mp/controller/admin/user/vo/MpUserRespVO.java index 4fb73840c..af2b1de74 100644 --- a/yudao-module-mp/yudao-module-mp-biz/src/main/java/cn/iocoder/yudao/module/mp/controller/admin/user/vo/MpUserRespVO.java +++ b/yudao-module-mp/yudao-module-mp-biz/src/main/java/cn/iocoder/yudao/module/mp/controller/admin/user/vo/MpUserRespVO.java @@ -1,54 +1,53 @@ package cn.iocoder.yudao.module.mp.controller.admin.user.vo; -import io.swagger.annotations.ApiModel; -import io.swagger.annotations.ApiModelProperty; +import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; import java.time.LocalDateTime; import java.util.Date; import java.util.List; -@ApiModel("管理后台 - 公众号粉丝 Response VO") +@Schema(description = "管理后台 - 公众号粉丝 Response VO") @Data public class MpUserRespVO { - @ApiModelProperty(value = "编号", required = true, example = "1024") + @Schema(description = "编号", required = true, example = "1024") private Long id; - @ApiModelProperty(value = "公众号粉丝标识", required = true, example = "o6_bmjrPTlm6_2sgVt7hMZOPfL2M") + @Schema(description = "公众号粉丝标识", required = true, example = "o6_bmjrPTlm6_2sgVt7hMZOPfL2M") private String openid; - @ApiModelProperty(value = "关注状态", required = true, example = "1", notes = "参见 CommonStatusEnum 枚举") + @Schema(description = "关注状态 参见 CommonStatusEnum 枚举", required = true, example = "1") private Integer subscribeStatus; - @ApiModelProperty(value = "关注时间", required = true) + @Schema(description = "关注时间", required = true) private LocalDateTime subscribeTime; - @ApiModelProperty(value = "取消关注时间") + @Schema(description = "取消关注时间") private LocalDateTime unsubscribeTime; - @ApiModelProperty(value = "昵称", example = "芋道") + @Schema(description = "昵称", example = "芋道") private String nickname; - @ApiModelProperty(value = "头像地址", example = "https://www.iocoder.cn/1.png") + @Schema(description = "头像地址", example = "https://www.iocoder.cn/1.png") private String headImageUrl; - @ApiModelProperty(value = "语言", example = "zh_CN") + @Schema(description = "语言", example = "zh_CN") private String language; - @ApiModelProperty(value = "国家", example = "中国") + @Schema(description = "国家", example = "中国") private String country; - @ApiModelProperty(value = "省份", example = "广东省") + @Schema(description = "省份", example = "广东省") private String province; - @ApiModelProperty(value = "城市", example = "广州市") + @Schema(description = "城市", example = "广州市") private String city; - @ApiModelProperty(value = "备注", example = "你是一个芋头嘛") + @Schema(description = "备注", example = "你是一个芋头嘛") private String remark; - @ApiModelProperty(value = "标签编号数组", example = "1,2,3") + @Schema(description = "标签编号数组", example = "1,2,3") private List tagIds; - @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 = "创建时间", 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/user/vo/MpUserUpdateReqVO.java b/yudao-module-mp/yudao-module-mp-biz/src/main/java/cn/iocoder/yudao/module/mp/controller/admin/user/vo/MpUserUpdateReqVO.java index e367a3ee0..6174f6c4c 100644 --- a/yudao-module-mp/yudao-module-mp-biz/src/main/java/cn/iocoder/yudao/module/mp/controller/admin/user/vo/MpUserUpdateReqVO.java +++ b/yudao-module-mp/yudao-module-mp-biz/src/main/java/cn/iocoder/yudao/module/mp/controller/admin/user/vo/MpUserUpdateReqVO.java @@ -1,27 +1,26 @@ package cn.iocoder.yudao.module.mp.controller.admin.user.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.constraints.NotNull; import java.util.List; -@ApiModel("管理后台 - 公众号粉丝更新 Request VO") +@Schema(description = "管理后台 - 公众号粉丝更新 Request VO") @Data public class MpUserUpdateReqVO { - @ApiModelProperty(value = "编号", required = true, example = "1024") + @Schema(description = "编号", required = true, example = "1024") @NotNull(message = "编号不能为空") private Long id; - @ApiModelProperty(value = "昵称", example = "芋道") + @Schema(description = "昵称", example = "芋道") private String nickname; - @ApiModelProperty(value = "备注", example = "你是一个芋头嘛") + @Schema(description = "备注", example = "你是一个芋头嘛") private String remark; - @ApiModelProperty(value = "标签编号数组", example = "1,2,3") + @Schema(description = "标签编号数组", example = "1,2,3") private List tagIds; } diff --git a/yudao-server/src/main/resources/application-local.yaml b/yudao-server/src/main/resources/application-local.yaml index 547efa69a..fc45b357d 100644 --- a/yudao-server/src/main/resources/application-local.yaml +++ b/yudao-server/src/main/resources/application-local.yaml @@ -44,34 +44,34 @@ spring: primary: master datasource: master: - name: ruoyi-vue-pro - url: jdbc:mysql://127.0.0.1:3306/${spring.datasource.dynamic.datasource.master.name}?allowMultiQueries=true&useUnicode=true&useSSL=false&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai&autoReconnect=true&nullCatalogMeansCurrent=true # MySQL Connector/J 8.X 连接的示例 + name: pro + url: jdbc:mysql://101.201.151.212:3306/${spring.datasource.dynamic.datasource.master.name}?allowMultiQueries=true&useUnicode=true&useSSL=false&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai&autoReconnect=true&nullCatalogMeansCurrent=true # MySQL Connector/J 8.X 连接的示例 # url: jdbc:mysql://127.0.0.1:3306/${spring.datasource.dynamic.datasource.master.name}?useSSL=false&allowPublicKeyRetrieval=true&useUnicode=true&characterEncoding=UTF-8&serverTimezone=CTT # MySQL Connector/J 5.X 连接的示例 # url: jdbc:postgresql://127.0.0.1:5432/${spring.datasource.dynamic.datasource.slave.name} # PostgreSQL 连接的示例 # url: jdbc:oracle:thin:@127.0.0.1:1521:xe # Oracle 连接的示例 # url: jdbc:sqlserver://127.0.0.1:1433;DatabaseName=${spring.datasource.dynamic.datasource.master.name} # SQLServer 连接的示例 - username: root - password: 123456 + username: luoqi + password: luoqikeji # username: sa # password: JSm:g(*%lU4ZAkz06cd52KqT3)i1?H7W slave: # 模拟从库,可根据自己需要修改 - name: ruoyi-vue-pro - url: jdbc:mysql://127.0.0.1:3306/${spring.datasource.dynamic.datasource.slave.name}?allowMultiQueries=true&useUnicode=true&useSSL=false&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai&autoReconnect=true&nullCatalogMeansCurrent=true # MySQL Connector/J 8.X 连接的示例 + name: pro + url: jdbc:mysql://101.201.151.212:3306/${spring.datasource.dynamic.datasource.slave.name}?allowMultiQueries=true&useUnicode=true&useSSL=false&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai&autoReconnect=true&nullCatalogMeansCurrent=true # MySQL Connector/J 8.X 连接的示例 # url: jdbc:mysql://127.0.0.1:3306/${spring.datasource.dynamic.datasource.slave.name}?useSSL=false&allowPublicKeyRetrieval=true&useUnicode=true&characterEncoding=UTF-8&serverTimezone=CTT # MySQL Connector/J 5.X 连接的示例 # url: jdbc:postgresql://127.0.0.1:5432/${spring.datasource.dynamic.datasource.slave.name} # PostgreSQL 连接的示例 # url: jdbc:oracle:thin:@127.0.0.1:1521:xe # Oracle 连接的示例 # url: jdbc:sqlserver://127.0.0.1:1433;DatabaseName=${spring.datasource.dynamic.datasource.slave.name} # SQLServer 连接的示例 - username: root - password: 123456 + username: luoqi + password: luoqikeji # username: sa # password: JSm:g(*%lU4ZAkz06cd52KqT3)i1?H7W # Redis 配置。Redisson 默认的配置足够使用,一般不需要进行调优 redis: - host: 127.0.0.1 # 地址 + host: 39.107.87.6 # 地址 port: 6379 # 端口 - database: 0 # 数据库索引 -# password: 123456 # 密码,建议生产环境开启 + database: 5 # 数据库索引 + password: xingyu4j # 密码,建议生产环境开启 --- #################### 定时任务相关配置 ####################