添加 mapstruct 依赖
mp_app 添加 创建和更新时间字段
This commit is contained in:
parent
0b09e75eb7
commit
6094afbd1d
@ -71,5 +71,10 @@
|
|||||||
<groupId>org.liquibase</groupId>
|
<groupId>org.liquibase</groupId>
|
||||||
<artifactId>liquibase-core</artifactId>
|
<artifactId>liquibase-core</artifactId>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.springdoc</groupId>
|
||||||
|
<artifactId>springdoc-openapi-starter-common</artifactId>
|
||||||
|
</dependency>
|
||||||
</dependencies>
|
</dependencies>
|
||||||
</project>
|
</project>
|
||||||
|
@ -5,6 +5,8 @@ import com.baomidou.mybatisplus.annotation.TableId;
|
|||||||
import com.baomidou.mybatisplus.annotation.TableName;
|
import com.baomidou.mybatisplus.annotation.TableName;
|
||||||
import com.baomidou.mybatisplus.extension.activerecord.Model;
|
import com.baomidou.mybatisplus.extension.activerecord.Model;
|
||||||
import java.io.Serializable;
|
import java.io.Serializable;
|
||||||
|
import java.time.LocalDateTime;
|
||||||
|
import io.swagger.v3.oas.annotations.media.Schema;
|
||||||
import lombok.Getter;
|
import lombok.Getter;
|
||||||
import lombok.Setter;
|
import lombok.Setter;
|
||||||
import lombok.experimental.Accessors;
|
import lombok.experimental.Accessors;
|
||||||
@ -15,58 +17,51 @@ import lombok.experimental.Accessors;
|
|||||||
* </p>
|
* </p>
|
||||||
*
|
*
|
||||||
* @author shikong
|
* @author shikong
|
||||||
* @since 2024-12-07
|
* @since 2024-12-09
|
||||||
*/
|
*/
|
||||||
@Getter
|
@Getter
|
||||||
@Setter
|
@Setter
|
||||||
@Accessors(chain = true)
|
@Accessors(chain = true)
|
||||||
@TableName("mp_app")
|
@TableName("mp_app")
|
||||||
|
@Schema(name = "MpApp", description = "微信公众号记录表")
|
||||||
public class MpApp extends Model<MpApp> {
|
public class MpApp extends Model<MpApp> {
|
||||||
|
|
||||||
private static final long serialVersionUID = 1L;
|
private static final long serialVersionUID = 1L;
|
||||||
|
|
||||||
/**
|
@Schema(description = "公众号id")
|
||||||
* 公众号id
|
|
||||||
*/
|
|
||||||
@TableId("id")
|
@TableId("id")
|
||||||
private String id;
|
private String id;
|
||||||
|
|
||||||
/**
|
@Schema(description = "开发者id")
|
||||||
* 开发者id
|
|
||||||
*/
|
|
||||||
@TableField("app_id")
|
@TableField("app_id")
|
||||||
private String appId;
|
private String appId;
|
||||||
|
|
||||||
/**
|
@Schema(description = "名称")
|
||||||
* 名称
|
|
||||||
*/
|
|
||||||
@TableField("app_name")
|
@TableField("app_name")
|
||||||
private String appName;
|
private String appName;
|
||||||
|
|
||||||
/**
|
@Schema(description = "开发者密钥")
|
||||||
* 开发者密钥
|
|
||||||
*/
|
|
||||||
@TableField("app_secret")
|
@TableField("app_secret")
|
||||||
private String appSecret;
|
private String appSecret;
|
||||||
|
|
||||||
/**
|
@Schema(description = "令牌")
|
||||||
* 令牌
|
|
||||||
*/
|
|
||||||
@TableField("token")
|
@TableField("token")
|
||||||
private String token;
|
private String token;
|
||||||
|
|
||||||
/**
|
@Schema(description = "消息加密密钥")
|
||||||
* 消息加密密钥
|
|
||||||
*/
|
|
||||||
@TableField("encoding_aes_key")
|
@TableField("encoding_aes_key")
|
||||||
private String encodingAesKey;
|
private String encodingAesKey;
|
||||||
|
|
||||||
/**
|
@Schema(description = "是否启用")
|
||||||
* 是否启用
|
|
||||||
*/
|
|
||||||
@TableField("enable")
|
@TableField("enable")
|
||||||
private Boolean enable;
|
private Boolean enable;
|
||||||
|
|
||||||
|
@TableField("create_time")
|
||||||
|
private LocalDateTime createTime;
|
||||||
|
|
||||||
|
@TableField("update_time")
|
||||||
|
private LocalDateTime updateTime;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Serializable pkVal() {
|
public Serializable pkVal() {
|
||||||
return this.id;
|
return this.id;
|
||||||
|
@ -9,7 +9,7 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
|||||||
* </p>
|
* </p>
|
||||||
*
|
*
|
||||||
* @author shikong
|
* @author shikong
|
||||||
* @since 2024-12-07
|
* @since 2024-12-09
|
||||||
*/
|
*/
|
||||||
public interface MpAppMapper extends BaseMapper<MpApp> {
|
public interface MpAppMapper extends BaseMapper<MpApp> {
|
||||||
|
|
||||||
|
@ -8,4 +8,21 @@
|
|||||||
<changeSet id="1733576524057-1" author="shikong">
|
<changeSet id="1733576524057-1" author="shikong">
|
||||||
<sqlFile path="schema/0.init.sql"/>
|
<sqlFile path="schema/0.init.sql"/>
|
||||||
</changeSet>
|
</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>
|
</databaseChangeLog>
|
||||||
|
@ -61,6 +61,8 @@ public class OrmGenerator implements SmartLifecycle {
|
|||||||
FastAutoGenerator.create(dataSourceProperties.getUrl(), dataSourceProperties.getUsername(), dataSourceProperties.getPassword())
|
FastAutoGenerator.create(dataSourceProperties.getUrl(), dataSourceProperties.getUsername(), dataSourceProperties.getPassword())
|
||||||
.globalConfig(builder -> {
|
.globalConfig(builder -> {
|
||||||
builder.author(getGitUserName())
|
builder.author(getGitUserName())
|
||||||
|
.disableOpenDir()
|
||||||
|
.enableSpringdoc()
|
||||||
.outputDir(sourceDir)
|
.outputDir(sourceDir)
|
||||||
.commentDate(DatePattern.NORM_DATE_PATTERN);
|
.commentDate(DatePattern.NORM_DATE_PATTERN);
|
||||||
})
|
})
|
||||||
|
@ -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.json.JsonResponse;
|
||||||
import cn.skcks.docking.wx.common.page.PageWrapper;
|
import cn.skcks.docking.wx.common.page.PageWrapper;
|
||||||
import cn.skcks.docking.wx.orm.entity.MpApp;
|
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.service.app.MpAppService;
|
||||||
import cn.skcks.docking.wx.services.mp.vo.verify.SignatureVo;
|
import cn.skcks.docking.wx.services.mp.vo.verify.SignatureVo;
|
||||||
import io.swagger.v3.oas.annotations.Operation;
|
import io.swagger.v3.oas.annotations.Operation;
|
||||||
@ -28,9 +30,9 @@ public class MpAppController {
|
|||||||
|
|
||||||
@Operation(summary = "公众号列表")
|
@Operation(summary = "公众号列表")
|
||||||
@GetJson("/list")
|
@GetJson("/list")
|
||||||
public JsonResponse<List<MpApp>> getMpAppList() {
|
public JsonResponse<List<MpAppDto>> getMpAppList() {
|
||||||
List<MpApp> mpAppList = mpAppService.getMpAppList();
|
List<MpApp> mpAppList = mpAppService.getMpAppList();
|
||||||
return JsonResponse.success(mpAppList);
|
return JsonResponse.success(MpAppConvertor.INSTANCE.toMpAppDto(mpAppList));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Operation(summary = "公众号分页列表")
|
@Operation(summary = "公众号分页列表")
|
||||||
@ -39,8 +41,14 @@ public class MpAppController {
|
|||||||
@Parameter(name = "pageNo", description = "页数", example = "1"),
|
@Parameter(name = "pageNo", description = "页数", example = "1"),
|
||||||
@Parameter(name = "pageSize", description = "条数", example = "10")
|
@Parameter(name = "pageSize", description = "条数", example = "10")
|
||||||
})
|
})
|
||||||
public JsonResponse<PageWrapper<MpApp>> getMpAppListPage(@RequestParam Integer pageNo, @RequestParam Integer pageSize) {
|
public JsonResponse<PageWrapper<MpAppDto>> getMpAppListPage(@RequestParam Integer pageNo, @RequestParam Integer pageSize) {
|
||||||
return JsonResponse.success(mpAppService.getMpAppPageList(pageNo,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}")
|
@RequestMapping("/{appId}")
|
||||||
|
@ -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);
|
||||||
|
}
|
@ -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
21
pom.xml
@ -51,6 +51,7 @@
|
|||||||
<springboot.version>3.4.0</springboot.version>
|
<springboot.version>3.4.0</springboot.version>
|
||||||
<springdoc.version>2.7.0</springdoc.version>
|
<springdoc.version>2.7.0</springdoc.version>
|
||||||
<lombok.version>1.18.36</lombok.version>
|
<lombok.version>1.18.36</lombok.version>
|
||||||
|
<org.mapstruct.version>1.6.3</org.mapstruct.version>
|
||||||
</properties>
|
</properties>
|
||||||
|
|
||||||
<dependencies>
|
<dependencies>
|
||||||
@ -60,6 +61,12 @@
|
|||||||
<version>${lombok.version}</version>
|
<version>${lombok.version}</version>
|
||||||
<scope>provided</scope>
|
<scope>provided</scope>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.mapstruct</groupId>
|
||||||
|
<artifactId>mapstruct</artifactId>
|
||||||
|
<version>${org.mapstruct.version}</version>
|
||||||
|
</dependency>
|
||||||
</dependencies>
|
</dependencies>
|
||||||
|
|
||||||
<dependencyManagement>
|
<dependencyManagement>
|
||||||
@ -134,11 +141,25 @@
|
|||||||
<artifactId>maven-compiler-plugin</artifactId>
|
<artifactId>maven-compiler-plugin</artifactId>
|
||||||
<configuration>
|
<configuration>
|
||||||
<annotationProcessorPaths>
|
<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>
|
<path>
|
||||||
<groupId>org.projectlombok</groupId>
|
<groupId>org.projectlombok</groupId>
|
||||||
<artifactId>lombok</artifactId>
|
<artifactId>lombok</artifactId>
|
||||||
<version>${lombok.version}</version>
|
<version>${lombok.version}</version>
|
||||||
</path>
|
</path>
|
||||||
|
|
||||||
<path>
|
<path>
|
||||||
<groupId>org.springframework.boot</groupId>
|
<groupId>org.springframework.boot</groupId>
|
||||||
<artifactId>spring-boot-configuration-processor</artifactId>
|
<artifactId>spring-boot-configuration-processor</artifactId>
|
||||||
|
@ -8,6 +8,7 @@ import lombok.Data;
|
|||||||
import lombok.NoArgsConstructor;
|
import lombok.NoArgsConstructor;
|
||||||
|
|
||||||
import java.util.Collection;
|
import java.util.Collection;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
@AllArgsConstructor
|
@AllArgsConstructor
|
||||||
@NoArgsConstructor
|
@NoArgsConstructor
|
||||||
@ -30,6 +31,10 @@ public class PageWrapper<T> {
|
|||||||
return new PageWrapper<>(data, page, pageSize, pageTotal, total);
|
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) {
|
public static <T> PageWrapper<T> of(PageInfo<T> pageInfo) {
|
||||||
return new PageWrapper<>(pageInfo.getList(),
|
return new PageWrapper<>(pageInfo.getList(),
|
||||||
pageInfo.getPageNum(),
|
pageInfo.getPageNum(),
|
||||||
|
Loading…
Reference in New Issue
Block a user