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(),