From 6094afbd1d5698eb4b554a15432135204c7d2e22 Mon Sep 17 00:00:00 2001 From: shikong <919411476@qq.com> Date: Mon, 9 Dec 2024 16:37:23 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=20mapstruct=20=E4=BE=9D?= =?UTF-8?q?=E8=B5=96=20mp=5Fapp=20=E6=B7=BB=E5=8A=A0=20=E5=88=9B=E5=BB=BA?= =?UTF-8?q?=E5=92=8C=E6=9B=B4=E6=96=B0=E6=97=B6=E9=97=B4=E5=AD=97=E6=AE=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- platform-orm/pom.xml | 5 ++ .../cn/skcks/docking/wx/orm/entity/MpApp.java | 39 ++++++-------- .../docking/wx/orm/mapper/MpAppMapper.java | 2 +- .../main/resources/db/changelog-master.xml | 17 ++++++ .../wx/orm/generator/OrmGenerator.java | 2 + .../mp/controller/MpAppController.java | 16 ++++-- .../services/mp/convertor/MpAppConvertor.java | 20 +++++++ .../wx/services/mp/dto/app/MpAppDto.java | 53 +++++++++++++++++++ pom.xml | 21 ++++++++ .../docking/wx/common/page/PageWrapper.java | 5 ++ 10 files changed, 153 insertions(+), 27 deletions(-) create mode 100644 platform-services/wx-mp-service/src/main/java/cn/skcks/docking/wx/services/mp/convertor/MpAppConvertor.java create mode 100644 platform-services/wx-mp-service/src/main/java/cn/skcks/docking/wx/services/mp/dto/app/MpAppDto.java diff --git a/platform-orm/pom.xml b/platform-orm/pom.xml index 4e001c5..30ec6f4 100644 --- a/platform-orm/pom.xml +++ b/platform-orm/pom.xml @@ -71,5 +71,10 @@ org.liquibase liquibase-core + + + org.springdoc + springdoc-openapi-starter-common + diff --git a/platform-orm/src/main/java/cn/skcks/docking/wx/orm/entity/MpApp.java b/platform-orm/src/main/java/cn/skcks/docking/wx/orm/entity/MpApp.java index 83774da..a40c1f6 100644 --- a/platform-orm/src/main/java/cn/skcks/docking/wx/orm/entity/MpApp.java +++ b/platform-orm/src/main/java/cn/skcks/docking/wx/orm/entity/MpApp.java @@ -5,6 +5,8 @@ import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import com.baomidou.mybatisplus.extension.activerecord.Model; import java.io.Serializable; +import java.time.LocalDateTime; +import io.swagger.v3.oas.annotations.media.Schema; import lombok.Getter; import lombok.Setter; import lombok.experimental.Accessors; @@ -15,58 +17,51 @@ import lombok.experimental.Accessors; *

* * @author shikong - * @since 2024-12-07 + * @since 2024-12-09 */ @Getter @Setter @Accessors(chain = true) @TableName("mp_app") +@Schema(name = "MpApp", description = "微信公众号记录表") public class MpApp extends Model { private static final long serialVersionUID = 1L; - /** - * 公众号id - */ + @Schema(description = "公众号id") @TableId("id") private String id; - /** - * 开发者id - */ + @Schema(description = "开发者id") @TableField("app_id") private String appId; - /** - * 名称 - */ + @Schema(description = "名称") @TableField("app_name") private String appName; - /** - * 开发者密钥 - */ + @Schema(description = "开发者密钥") @TableField("app_secret") private String appSecret; - /** - * 令牌 - */ + @Schema(description = "令牌") @TableField("token") private String token; - /** - * 消息加密密钥 - */ + @Schema(description = "消息加密密钥") @TableField("encoding_aes_key") private String encodingAesKey; - /** - * 是否启用 - */ + @Schema(description = "是否启用") @TableField("enable") private Boolean enable; + @TableField("create_time") + private LocalDateTime createTime; + + @TableField("update_time") + private LocalDateTime updateTime; + @Override public Serializable pkVal() { return this.id; diff --git a/platform-orm/src/main/java/cn/skcks/docking/wx/orm/mapper/MpAppMapper.java b/platform-orm/src/main/java/cn/skcks/docking/wx/orm/mapper/MpAppMapper.java index 9a90674..9670fa8 100644 --- a/platform-orm/src/main/java/cn/skcks/docking/wx/orm/mapper/MpAppMapper.java +++ b/platform-orm/src/main/java/cn/skcks/docking/wx/orm/mapper/MpAppMapper.java @@ -9,7 +9,7 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper; *

* * @author shikong - * @since 2024-12-07 + * @since 2024-12-09 */ public interface MpAppMapper extends BaseMapper { diff --git a/platform-orm/src/main/resources/db/changelog-master.xml b/platform-orm/src/main/resources/db/changelog-master.xml index 10ecb23..40b9bf8 100644 --- a/platform-orm/src/main/resources/db/changelog-master.xml +++ b/platform-orm/src/main/resources/db/changelog-master.xml @@ -8,4 +8,21 @@ + + + + + + + + + + + + + diff --git a/platform-orm/src/test/java/cn/skcks/docking/wx/orm/generator/OrmGenerator.java b/platform-orm/src/test/java/cn/skcks/docking/wx/orm/generator/OrmGenerator.java index 55acaf3..85919bc 100644 --- a/platform-orm/src/test/java/cn/skcks/docking/wx/orm/generator/OrmGenerator.java +++ b/platform-orm/src/test/java/cn/skcks/docking/wx/orm/generator/OrmGenerator.java @@ -61,6 +61,8 @@ public class OrmGenerator implements SmartLifecycle { FastAutoGenerator.create(dataSourceProperties.getUrl(), dataSourceProperties.getUsername(), dataSourceProperties.getPassword()) .globalConfig(builder -> { builder.author(getGitUserName()) + .disableOpenDir() + .enableSpringdoc() .outputDir(sourceDir) .commentDate(DatePattern.NORM_DATE_PATTERN); }) diff --git a/platform-services/wx-mp-service/src/main/java/cn/skcks/docking/wx/services/mp/controller/MpAppController.java b/platform-services/wx-mp-service/src/main/java/cn/skcks/docking/wx/services/mp/controller/MpAppController.java index ebc090f..821f409 100644 --- a/platform-services/wx-mp-service/src/main/java/cn/skcks/docking/wx/services/mp/controller/MpAppController.java +++ b/platform-services/wx-mp-service/src/main/java/cn/skcks/docking/wx/services/mp/controller/MpAppController.java @@ -4,6 +4,8 @@ import cn.skcks.docking.wx.annotation.web.methods.GetJson; import cn.skcks.docking.wx.common.json.JsonResponse; import cn.skcks.docking.wx.common.page.PageWrapper; import cn.skcks.docking.wx.orm.entity.MpApp; +import cn.skcks.docking.wx.services.mp.convertor.MpAppConvertor; +import cn.skcks.docking.wx.services.mp.dto.app.MpAppDto; import cn.skcks.docking.wx.services.mp.service.app.MpAppService; import cn.skcks.docking.wx.services.mp.vo.verify.SignatureVo; import io.swagger.v3.oas.annotations.Operation; @@ -28,9 +30,9 @@ public class MpAppController { @Operation(summary = "公众号列表") @GetJson("/list") - public JsonResponse> getMpAppList() { + public JsonResponse> getMpAppList() { List mpAppList = mpAppService.getMpAppList(); - return JsonResponse.success(mpAppList); + return JsonResponse.success(MpAppConvertor.INSTANCE.toMpAppDto(mpAppList)); } @Operation(summary = "公众号分页列表") @@ -39,8 +41,14 @@ public class MpAppController { @Parameter(name = "pageNo", description = "页数", example = "1"), @Parameter(name = "pageSize", description = "条数", example = "10") }) - public JsonResponse> getMpAppListPage(@RequestParam Integer pageNo, @RequestParam Integer pageSize) { - return JsonResponse.success(mpAppService.getMpAppPageList(pageNo,pageSize)); + public JsonResponse> getMpAppListPage(@RequestParam Integer pageNo, @RequestParam Integer pageSize) { + PageWrapper mpAppPageList = mpAppService.getMpAppPageList(pageNo, pageSize); + PageWrapper mpAppDtoPageList = PageWrapper.of(MpAppConvertor.INSTANCE.toMpAppDto(mpAppPageList.getData()), + mpAppPageList.getPage(), + mpAppPageList.getPageSize(), + mpAppPageList.getPageTotal(), + mpAppPageList.getTotal()); + return JsonResponse.success(mpAppDtoPageList); } @RequestMapping("/{appId}") diff --git a/platform-services/wx-mp-service/src/main/java/cn/skcks/docking/wx/services/mp/convertor/MpAppConvertor.java b/platform-services/wx-mp-service/src/main/java/cn/skcks/docking/wx/services/mp/convertor/MpAppConvertor.java new file mode 100644 index 0000000..f10cc25 --- /dev/null +++ b/platform-services/wx-mp-service/src/main/java/cn/skcks/docking/wx/services/mp/convertor/MpAppConvertor.java @@ -0,0 +1,20 @@ +package cn.skcks.docking.wx.services.mp.convertor; + +import cn.skcks.docking.wx.orm.entity.MpApp; +import cn.skcks.docking.wx.services.mp.dto.app.MpAppDto; +import org.mapstruct.Mapper; +import org.mapstruct.factory.Mappers; + +import java.util.Collection; +import java.util.List; + +@Mapper +public abstract class MpAppConvertor { + public static MpAppConvertor INSTANCE = Mappers.getMapper(MpAppConvertor.class); + + abstract public MpAppDto toMpAppDto(MpApp mpApp); + abstract public MpApp toMpApp(MpAppDto mpAppDto); + + abstract public List toMpAppDto(List mpApp); + abstract public Collection toMpAppDto(Collection mpApp); +} diff --git a/platform-services/wx-mp-service/src/main/java/cn/skcks/docking/wx/services/mp/dto/app/MpAppDto.java b/platform-services/wx-mp-service/src/main/java/cn/skcks/docking/wx/services/mp/dto/app/MpAppDto.java new file mode 100644 index 0000000..7fe2f51 --- /dev/null +++ b/platform-services/wx-mp-service/src/main/java/cn/skcks/docking/wx/services/mp/dto/app/MpAppDto.java @@ -0,0 +1,53 @@ +package cn.skcks.docking.wx.services.mp.dto.app; + +import cn.hutool.core.date.DatePattern; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.fasterxml.jackson.annotation.JsonFormat; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; +import org.springframework.format.annotation.DateTimeFormat; + +import java.time.LocalDateTime; + +@Schema(name = "MpApp", description = "微信公众号记录表") +@Data +public class MpAppDto { + @Schema(description = "公众号id") + @TableId("id") + private String id; + + @Schema(description = "开发者id") + @TableField("app_id") + private String appId; + + @Schema(description = "名称") + @TableField("app_name") + private String appName; + + @Schema(description = "开发者密钥") + @TableField("app_secret") + private String appSecret; + + @Schema(description = "令牌") + @TableField("token") + private String token; + + @Schema(description = "消息加密密钥") + @TableField("encoding_aes_key") + private String encodingAesKey; + + @Schema(description = "是否启用") + @TableField("enable") + private Boolean enable; + + @DateTimeFormat(pattern= DatePattern.NORM_DATETIME_PATTERN) + @JsonFormat(pattern=DatePattern.NORM_DATETIME_PATTERN) + @Schema(description = "创建时间") + private LocalDateTime createTime; + + @DateTimeFormat(pattern= DatePattern.NORM_DATETIME_PATTERN) + @JsonFormat(pattern=DatePattern.NORM_DATETIME_PATTERN) + @Schema(description = "更新时间") + private LocalDateTime updateTime; +} diff --git a/pom.xml b/pom.xml index 09de5fa..6925ebc 100644 --- a/pom.xml +++ b/pom.xml @@ -51,6 +51,7 @@ 3.4.0 2.7.0 1.18.36 + 1.6.3 @@ -60,6 +61,12 @@ ${lombok.version} provided + + + org.mapstruct + mapstruct + ${org.mapstruct.version} + @@ -134,11 +141,25 @@ maven-compiler-plugin + + org.mapstruct + mapstruct-processor + ${org.mapstruct.version} + + + + + org.projectlombok + lombok-mapstruct-binding + 0.2.0 + + org.projectlombok lombok ${lombok.version} + org.springframework.boot spring-boot-configuration-processor diff --git a/wx-docking-platform-common/src/main/java/cn/skcks/docking/wx/common/page/PageWrapper.java b/wx-docking-platform-common/src/main/java/cn/skcks/docking/wx/common/page/PageWrapper.java index 7a5a9ef..7f88814 100644 --- a/wx-docking-platform-common/src/main/java/cn/skcks/docking/wx/common/page/PageWrapper.java +++ b/wx-docking-platform-common/src/main/java/cn/skcks/docking/wx/common/page/PageWrapper.java @@ -8,6 +8,7 @@ import lombok.Data; import lombok.NoArgsConstructor; import java.util.Collection; +import java.util.List; @AllArgsConstructor @NoArgsConstructor @@ -30,6 +31,10 @@ public class PageWrapper { return new PageWrapper<>(data, page, pageSize, pageTotal, total); } + public static PageWrapper of(List data, long page, long pageSize, long pageTotal, long total) { + return new PageWrapper<>(data, page, pageSize, pageTotal, total); + } + public static PageWrapper of(PageInfo pageInfo) { return new PageWrapper<>(pageInfo.getList(), pageInfo.getPageNum(),