From 72e45dc2c7d07e01a2d92d37e4db1dd5b9e0306e Mon Sep 17 00:00:00 2001 From: ximu-tao Date: Sat, 22 Mar 2025 23:26:17 +0800 Subject: [PATCH] =?UTF-8?q?=E5=93=8D=E5=BA=94=E7=B1=BB=E5=9E=8B=E5=B0=81?= =?UTF-8?q?=E8=A3=85=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/cool/core/base/BaseController.java | 19 ++----- .../core/exception/CoolExceptionHandler.java | 6 +- .../com/cool/core/request/PageResult.java | 30 ++++++++-- src/main/java/com/cool/core/request/R.java | 55 +++++++++++++++---- 4 files changed, 80 insertions(+), 30 deletions(-) diff --git a/src/main/java/com/cool/core/base/BaseController.java b/src/main/java/com/cool/core/base/BaseController.java index 51caa4c..29dae1b 100644 --- a/src/main/java/com/cool/core/base/BaseController.java +++ b/src/main/java/com/cool/core/base/BaseController.java @@ -152,9 +152,9 @@ public abstract class BaseController, T extends BaseEnt */ @Operation(summary = "信息", description = "根据ID查询单个信息") @GetMapping("/info") - protected R info(@RequestAttribute() JSONObject requestParams, + protected R info(@RequestAttribute() JSONObject requestParams, @RequestParam() Long id) { - return R.ok(service.info(requestParams, id)); + return R.ok((T) service.info(requestParams, id)); } /** @@ -164,7 +164,7 @@ public abstract class BaseController, T extends BaseEnt */ @Operation(summary = "查询", description = "查询多个信息") @PostMapping("/list") - protected R list(@RequestAttribute() JSONObject requestParams, + protected R> list(@RequestAttribute() JSONObject requestParams, @RequestAttribute(COOL_LIST_OP) CrudOption option) { QueryModeEnum queryModeEnum = option.getQueryModeEnum(); List list = (List) switch (queryModeEnum) { @@ -183,7 +183,7 @@ public abstract class BaseController, T extends BaseEnt */ @Operation(summary = "分页", description = "分页查询多个信息") @PostMapping("/page") - protected R page(@RequestAttribute() JSONObject requestParams, + protected R> page(@RequestAttribute() JSONObject requestParams, @RequestAttribute(COOL_PAGE_OP) CrudOption option) { Integer page = requestParams.getInt("page", 1); Integer size = requestParams.getInt("size", 20); @@ -218,15 +218,8 @@ public abstract class BaseController, T extends BaseEnt * * @param page 分页返回数据 */ - protected PageResult pageResult(Page page) { - PageResult result = new PageResult(); - Map pagination = new HashMap<>(); - pagination.put("size", page.getPageSize()); - pagination.put("page", page.getPageNumber()); - pagination.put("total", page.getTotalRow()); - result.setList(page.getRecords()); - result.setPagination(pagination); - return result; + protected PageResult pageResult(Page page) { + return PageResult.of( page ); } public Class currentEntityClass() { diff --git a/src/main/java/com/cool/core/exception/CoolExceptionHandler.java b/src/main/java/com/cool/core/exception/CoolExceptionHandler.java index c18bbd2..01dec57 100644 --- a/src/main/java/com/cool/core/exception/CoolExceptionHandler.java +++ b/src/main/java/com/cool/core/exception/CoolExceptionHandler.java @@ -21,10 +21,10 @@ public class CoolExceptionHandler { public R handleRRException(CoolException e) { R r = new R(); if (ObjUtil.isNotEmpty(e.getData())) { - r.put("data", e.getData()); + r.setData( e.getData() ); } else { - r.put("code", e.getCode()); - r.put("message", e.getMessage()); + r.setCode( e.getCode() ); + r.setMessage( e.getMessage() ); } if (ObjUtil.isNotEmpty(e.getCause())) { log.error(e.getCause().getMessage(), e.getCause()); diff --git a/src/main/java/com/cool/core/request/PageResult.java b/src/main/java/com/cool/core/request/PageResult.java index 553b458..314a96f 100644 --- a/src/main/java/com/cool/core/request/PageResult.java +++ b/src/main/java/com/cool/core/request/PageResult.java @@ -1,11 +1,33 @@ package com.cool.core.request; import java.util.List; -import java.util.Map; +import com.mybatisflex.core.paginate.Page; +import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; @Data -public class PageResult { - private List list; - private Map pagination; +@Schema( title = "分页数据模型" ) +public class PageResult { + @Schema( title = "分页数据" ) + private List list; + private Pagination pagination = new Pagination(); + + @Data + public static class Pagination { + @Schema( title = "页码" ) + private Long page; + @Schema( title = "本页数量" ) + private Long size; + @Schema( title = "总页数" ) + private Long total; + } + + static public PageResult of(Page page ){ + PageResult result = new PageResult(); + result.setList(page.getRecords()); + result.pagination.setPage( page.getPageNumber() ); + result.pagination.setSize( page.getPageSize() ); + result.pagination.setTotal( page.getTotalRow() ); + return result; + } } \ No newline at end of file diff --git a/src/main/java/com/cool/core/request/R.java b/src/main/java/com/cool/core/request/R.java index fe86175..66e2d6a 100644 --- a/src/main/java/com/cool/core/request/R.java +++ b/src/main/java/com/cool/core/request/R.java @@ -1,16 +1,42 @@ package com.cool.core.request; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +import java.io.Serializable; import java.util.HashMap; +import java.util.Map; /** * 返回信息 */ -public class R extends HashMap { +@Schema(title = "响应数据结构") +@Data +public class R implements Serializable { private static final long serialVersionUID = 1L; + + @Schema(title = "编码:1000表示成功,其他值表示失败") + private int code = 1000; + + @Schema(title = "消息内容") + private String message = "success"; + + @Schema(title = "响应数据") + private T data; + + @Schema(title = "响应数据") + private Map dataMap = new HashMap(); + + public R() { - put("code", 1000); - put("message", "success"); + + } + + public R( int code, String message, T data ) { + this.code = code; + this.message = message; + this.data = data; } public static R error() { @@ -23,14 +49,14 @@ public class R extends HashMap { public static R error(int code, String msg) { R r = new R(); - r.put("code", code); - r.put("message", msg); + r.code = code; + r.message = msg; return r; } public static R okMsg(String msg) { R r = new R(); - r.put("message", msg); + r.message = msg; return r; } @@ -38,12 +64,21 @@ public class R extends HashMap { return new R(); } - public static R ok(Object data) { - return new R().put("data", data); + public static R ok(B data) { + return new R(1000 , "ok", data); } - public R put(String key, Object value) { - super.put(key, value); + + public R put(String key, Object value) { + if ( key.equals( "code") ) { + this.code = (int)value; + } else if ( key.equals( "message") ) { + this.message = (String)value; + } else if ( key.equals( "data") ) { + this.data = (T) value; + } else { + dataMap.put(key, value); + } return this; } } \ No newline at end of file