//ServerResponse.java
import enums.SysCodeEnum;
import lombok.Data;
import java.io.Serializable;
/**
* @author limy
* @date 2022/10/10 17:14
*/
@Data
public class ServerResponse<T> implements Serializable {
private static final long serialVersionUID = 1L;
/**
* 返回码
*/
private Integer code;
/**
* 返回信息
*/
private String msg;
/**
* 分页查询总条数
*/
private Long total;
/**
* 返回对象
*/
private T data;
public static final int SUCCESS = 1;
public static final int ERROR = 0;
public ServerResponse() {
}
public ServerResponse(Integer code, String msg) {
this.code = code;
this.msg = msg;
}
public ServerResponse(Integer code, String msg, T data) {
this.code = code;
this.msg = msg;
this.data = data;
}
public ServerResponse(Integer code, String msg, Long total, T data) {
this.code = code;
this.msg = msg;
this.total = total;
this.data = data;
}
public static <T> ServerResponse<T> success() {
return create(SysCodeEnum.S_BASE_SUCCESS.getCode(), SysCodeEnum.S_BASE_SUCCESS.getMsg(), null, null);
}
public static <T> ServerResponse<T> success(T data) {
return create(SysCodeEnum.S_BASE_SUCCESS.getCode(), SysCodeEnum.S_BASE_SUCCESS.getMsg(), null, data);
}
public static <T> ServerResponse<T> success(Long total, T data) {
return create(SysCodeEnum.S_BASE_SUCCESS.getCode(), SysCodeEnum.S_BASE_SUCCESS.getMsg(), total, data);
}
public static <T> ServerResponse<T> error() {
return create(SysCodeEnum.S_BASE_ERROR.getCode(), SysCodeEnum.S_BASE_ERROR.getMsg(), null, null);
}
public static <T> ServerResponse<T> error(String msg) {
return create(SysCodeEnum.S_BASE_ERROR.getCode(), msg, null, null);
}
public static <T> ServerResponse<T> error(Integer code, String msg) {
return create(code, msg, null, null);
}
public static <T> ServerResponse<T> error(String msg, T data) {
return create(SysCodeEnum.S_BASE_ERROR.getCode(), msg, null, data);
}
private static <T> ServerResponse<T> create(Integer code, String msg, Long total, T data) {
return new ServerResponse<>(code, msg, total, data);
}
}
//SysCodeEnum.java
import lombok.AllArgsConstructor;
import lombok.Getter;
/**
* @author limy
*/
@AllArgsConstructor
public enum SysCodeEnum implements StringEnum {
S_BASE_SUCCESS(1000,"成功"),
S_BASE_ERROR(1001, "失败"),
S_ENUM_NOT_FOUND(1002,"枚举值不存在"),
S_PARAM_CHECK_ERROR(1003,"参数校验失败");
private final Integer code;
@Getter
private String msg;
@Override
public Integer getCode() {
return code;
}
}
//BaseEntity.java
/**
* @author :limy
* @date :2022/4/1 11:50
*/
@Data
@Accessors(chain = true)
public class BaseEntity implements Serializable {
private static final long serialVersionUID = 1L;
@JsonDeserialize(using = LocalDateTimeDeserializer.class)
@JsonSerialize(using = LocalDateTimeSerializer.class)
private LocalDateTime createTime;
@JsonDeserialize(using = LocalDateTimeDeserializer.class)
@JsonSerialize(using = LocalDateTimeSerializer.class)
private LocalDateTime updateTime;
}
//LocalDateTimeSerializer.java
public class LocalDateTimeSerializer extends JsonSerializer<LocalDateTime> {
@Override
public void serialize(LocalDateTime localDateTime, JsonGenerator jsonGenerator, SerializerProvider serializerProvider) throws IOException {
jsonGenerator.writeNumber(localDateTime.toInstant(ZoneOffset.ofHours(8)).toEpochMilli());
}
}
//LocalDateTimeDeserializer.java
public class LocalDateTimeDeserializer extends JsonDeserializer<LocalDateTime> {
@Override
public LocalDateTime deserialize(JsonParser jsonParser, DeserializationContext deserializationContext) throws IOException {
long timestamp = jsonParser.getLongValue();
return LocalDateTime.ofEpochSecond(timestamp / 1000, 0, ZoneOffset.ofHours(8));
}
}
//TableSupport.java
public class TableSupport
{
/**
* 当前记录起始索引
*/
public static final String PAGE_NUM = "pageNum";
/**
* 每页显示记录数
*/
public static final String PAGE_SIZE = "pageSize";
/**
* 排序列
*/
public static final String ORDER_BY_COLUMN = "orderByColumn";
/**
* 排序的方向 "desc" 或者 "asc".
*/
public static final String IS_ASC = "isAsc";
/**
* 分页参数合理化
*/
public static final String REASONABLE = "reasonable";
/**
* 封装分页对象
*/
public static PageDomain getPageDomain(){
PageDomain pageDomain = new PageDomain();
pageDomain.setPageNum(Convert.toInt(ServletUtils.getParameter(PAGE_NUM), 1));
pageDomain.setPageSize(Convert.toInt(ServletUtils.getParameter(PAGE_SIZE), 10));
pageDomain.setOrderByColumn(ServletUtils.getParameter(ORDER_BY_COLUMN));
pageDomain.setIsAsc(ServletUtils.getParameter(IS_ASC));
pageDomain.setReasonable(ServletUtils.getParameterToBool(REASONABLE));
return pageDomain;
}
public static PageDomain buildPageRequest()
{
return getPageDomain();
}
}
//PageDomain.java
import lombok.Data;
/**
* 分页数据
*
* @author ruoyi
*/
@Data
public class PageDomain {
/**
* 当前记录起始索引
*/
private Integer pageNum;
/**
* 每页显示记录数
*/
private Integer pageSize;
/**
* 排序列
*/
private String orderByColumn;
/**
* 排序的方向desc或者asc
*/
private String isAsc = "asc";
/**
* 分页参数合理化
*/
private Boolean reasonable = true;
public String getOrderBy() {
if (StringUtils.isEmpty(orderByColumn)) {
return "";
}
return StringUtils.toUnderScoreCase(orderByColumn) + " " + isAsc;
}
public void setIsAsc(String isAsc) {
if (StringUtils.isNotEmpty(isAsc)) {
// 兼容前端排序类型
if ("ascending".equals(isAsc)) {
isAsc = "asc";
} else if ("descending".equals(isAsc)) {
isAsc = "desc";
}
this.isAsc = isAsc;
}
}
public Boolean getReasonable() {
if (StringUtils.isNull(reasonable)) {
return Boolean.TRUE;
}
return reasonable;
}
}
//ServletUtils.java
import java.io.IOException;
import java.io.UnsupportedEncodingException;
import java.net.URLDecoder;
import java.net.URLEncoder;
import java.util.Enumeration;
import java.util.Map;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import org.springframework.core.io.buffer.DataBuffer;
import org.springframework.http.HttpHeaders;
import org.springframework.http.HttpStatus;
import org.springframework.http.MediaType;
import org.springframework.http.server.reactive.ServerHttpResponse;
import org.springframework.util.LinkedCaseInsensitiveMap;
import org.springframework.web.context.request.RequestAttributes;
import org.springframework.web.context.request.RequestContextHolder;
import org.springframework.web.context.request.ServletRequestAttributes;
import com.alibaba.fastjson2.JSON;
import com.ruoyi.common.core.constant.Constants;
import com.ruoyi.common.core.domain.R;
import com.ruoyi.common.core.text.Convert;
import reactor.core.publisher.Mono;
/**
* 客户端工具类
*
* @author ruoyi
*/
![avatar](https://profile-avatar.csdnimg.cn/5ff375021c9b404e91680dc4b111f27d_weixin_43965349.jpg!1)
没有什么是应该
- 粉丝: 369
- 资源: 2
最新资源
- 抖音电商操盘手实战项目玩法教程:从商品卡到直播间
- 店铺动销经营项目玩法教程:起店实操精准拉新0基础开店运营店铺动销全面升级
- #_ssm_159_mysql_高校在线请假与审批系统_.zip
- #_ssm_166_mysql_个人健康信息管理系统_.zip
- #_ssm_168_mysql_树品种资源数据管理系统_.zip
- #_ssm_103_mysql_团员管理系统_.zip
- #_ssm_107_mysql_医院收费系统_.zip
- 文博高一寒假作业英语及答案.zip
- #_ssm_111_mysql_编程类在线答题系统_.zip
- #_ssm_113_mysql_非遗视域下喀什旅游网_.zip
- Dify 是一个易用的 LLMOps 平台,旨在让更多人可以创建可持续运营的原生 AI 应用
- Video-2024-11-12晚上-项目提交规范+PPT.wmv
- 用HTML代码实现国际象棋
- #_ssm_119_mysql_大美新疆在线论坛交流系统_ 该这个.zip
- #_ssm_124_mysql_期末考试考务管理系统wlw_.zip
- #_ssm_122_mysql_喀什古城旅游网_.zip
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
![feedback](https://img-home.csdnimg.cn/images/20220527035711.png)
![feedback](https://img-home.csdnimg.cn/images/20220527035711.png)
![feedback-tip](https://img-home.csdnimg.cn/images/20220527035111.png)