添加 mapstruct 依赖

mp_app 添加 创建和更新时间字段
This commit is contained in:
shikong 2024-12-09 16:37:23 +08:00
parent 0b09e75eb7
commit 6094afbd1d
Signed by: Shikong
GPG Key ID: BD85FF18B373C341
10 changed files with 153 additions and 27 deletions

View File

@ -71,5 +71,10 @@
<groupId>org.liquibase</groupId>
<artifactId>liquibase-core</artifactId>
</dependency>
<dependency>
<groupId>org.springdoc</groupId>
<artifactId>springdoc-openapi-starter-common</artifactId>
</dependency>
</dependencies>
</project>

View File

@ -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;
* </p>
*
* @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<MpApp> {
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;

View File

@ -9,7 +9,7 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
* </p>
*
* @author shikong
* @since 2024-12-07
* @since 2024-12-09
*/
public interface MpAppMapper extends BaseMapper<MpApp> {

View File

@ -8,4 +8,21 @@
<changeSet id="1733576524057-1" author="shikong">
<sqlFile path="schema/0.init.sql"/>
</changeSet>
<changeSet id="1733731383678-1" author="shikong">
<addColumn tableName="mp_app">
<column name="create_time"
type="datetime"
defaultValueComputed="CURRENT_TIMESTAMP">
<constraints nullable="false"/>
</column>
</addColumn>
<addColumn tableName="mp_app">
<column name="update_time"
type="datetime"
defaultValueComputed="CURRENT_TIMESTAMP">
<constraints nullable="false"/>
</column>
</addColumn>
</changeSet>
</databaseChangeLog>

View File

@ -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);
})

View File

@ -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<List<MpApp>> getMpAppList() {
public JsonResponse<List<MpAppDto>> getMpAppList() {
List<MpApp> 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<PageWrapper<MpApp>> getMpAppListPage(@RequestParam Integer pageNo, @RequestParam Integer pageSize) {
return JsonResponse.success(mpAppService.getMpAppPageList(pageNo,pageSize));
public JsonResponse<PageWrapper<MpAppDto>> getMpAppListPage(@RequestParam Integer pageNo, @RequestParam Integer pageSize) {
PageWrapper<MpApp> mpAppPageList = mpAppService.getMpAppPageList(pageNo, pageSize);
PageWrapper<MpAppDto> mpAppDtoPageList = PageWrapper.of(MpAppConvertor.INSTANCE.toMpAppDto(mpAppPageList.getData()),
mpAppPageList.getPage(),
mpAppPageList.getPageSize(),
mpAppPageList.getPageTotal(),
mpAppPageList.getTotal());
return JsonResponse.success(mpAppDtoPageList);
}
@RequestMapping("/{appId}")

View File

@ -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<MpAppDto> toMpAppDto(List<MpApp> mpApp);
abstract public Collection<MpAppDto> toMpAppDto(Collection<MpApp> mpApp);
}

View File

@ -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;
}

21
pom.xml
View File

@ -51,6 +51,7 @@
<springboot.version>3.4.0</springboot.version>
<springdoc.version>2.7.0</springdoc.version>
<lombok.version>1.18.36</lombok.version>
<org.mapstruct.version>1.6.3</org.mapstruct.version>
</properties>
<dependencies>
@ -60,6 +61,12 @@
<version>${lombok.version}</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.mapstruct</groupId>
<artifactId>mapstruct</artifactId>
<version>${org.mapstruct.version}</version>
</dependency>
</dependencies>
<dependencyManagement>
@ -134,11 +141,25 @@
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<annotationProcessorPaths>
<path>
<groupId>org.mapstruct</groupId>
<artifactId>mapstruct-processor</artifactId>
<version>${org.mapstruct.version}</version>
</path>
<!-- https://mvnrepository.com/artifact/org.projectlombok/lombok-mapstruct-binding -->
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok-mapstruct-binding</artifactId>
<version>0.2.0</version>
</dependency>
<path>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>${lombok.version}</version>
</path>
<path>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-configuration-processor</artifactId>

View File

@ -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<T> {
return new PageWrapper<>(data, page, pageSize, pageTotal, total);
}
public static <T> PageWrapper<T> of(List<T> data, long page, long pageSize, long pageTotal, long total) {
return new PageWrapper<>(data, page, pageSize, pageTotal, total);
}
public static <T> PageWrapper<T> of(PageInfo<T> pageInfo) {
return new PageWrapper<>(pageInfo.getList(),
pageInfo.getPageNum(),