项目构建

This commit is contained in:
2023-04-17 23:02:30 +08:00
commit ae0b2dcd6e
95 changed files with 4594 additions and 0 deletions

View File

@@ -0,0 +1,29 @@
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<parent>
<groupId>com.yxt.demo</groupId>
<artifactId>demo-common</artifactId>
<version>0.0.1</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>demo-common-core</artifactId>
<version>0.0.1</version>
<dependencies>
<dependency>
<groupId>cn.hutool</groupId>
<artifactId>hutool-core</artifactId>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<optional>true</optional>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
</dependencies>
</project>

View File

@@ -0,0 +1,116 @@
package com.yxt.demo.common.core.constant;
/**
* 通用常量信息
*/
public class Constants {
/**
* UTF-8 字符集
*/
public static final String UTF8 = "UTF-8";
/**
* GBK 字符集
*/
public static final String GBK = "GBK";
/**
* RMI 远程方法调用
*/
public static final String LOOKUP_RMI = "rmi://";
/**
* LDAP 远程方法调用
*/
public static final String LOOKUP_LDAP = "ldap://";
/**
* http请求
*/
public static final String HTTP = "http://";
/**
* https请求
*/
public static final String HTTPS = "https://";
/**
* 成功标记
*/
public static final Integer SUCCESS = 200;
/**
* 失败标记
*/
public static final Integer FAIL = 500;
/**
* 登录成功
*/
public static final String LOGIN_SUCCESS = "Success";
/**
* 注销
*/
public static final String LOGOUT = "Logout";
/**
* 注册
*/
public static final String REGISTER = "Register";
/**
* 登录失败
*/
public static final String LOGIN_FAIL = "Error";
/**
* 当前记录起始索引
*/
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";
/**
* 验证码 redis key
*/
public static final String CAPTCHA_CODE_KEY = "captcha_codes:";
/**
* 验证码有效期(分钟)
*/
public static final long CAPTCHA_EXPIRATION = 2;
/**
* 令牌有效期(分钟)
*/
public final static long TOKEN_EXPIRE = 720;
/**
* 参数管理 cache key
*/
public static final String SYS_CONFIG_KEY = "sys_config:";
/**
* 字典管理 cache key
*/
public static final String SYS_DICT_KEY = "sys_dict:";
/**
* 资源映射路径 前缀
*/
public static final String RESOURCE_PREFIX = "/profile";
}

View File

@@ -0,0 +1,34 @@
package com.yxt.demo.common.core.constant;
/**
* @Author dimengzhe
* @Date 2022/7/23 22:37
* @Description
*/
public enum StatusEnum {
/**
* 状态分类
*/
SUCCESS(200, "成功"),
FAIL(500, "失败"),
OVERDUE(5000, "登录状态已过期");
private int code;
private String msg;
public int getCode() {
return code;
}
public String getMsg() {
return msg;
}
StatusEnum(int code, String msg) {
this.code = code;
this.msg = msg;
}
}

View File

@@ -0,0 +1,127 @@
package com.yxt.demo.common.core.domain;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModelProperty;
import java.util.Date;
import java.util.UUID;
/**
* @author dimengzhe
* @date 2021/9/3 16:06
* @description
*/
public class BaseEntity extends Entity {
@ApiModelProperty("字符型编号")
private String sid = UUID.randomUUID().toString();
@ApiModelProperty("记录版本,锁")
private Integer lockVersion = 0;
@ApiModelProperty("记录创建时间")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
private Date createTime = new Date();
@ApiModelProperty("记录最后修改时间")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
private Date modifyTime = new Date();
@ApiModelProperty("记录状态值")
private Integer state = 0;
@ApiModelProperty("记录是否可用0:可用(默认)1:不可用")
private Integer isEnable = 0;
@ApiModelProperty("记录是否被删除0:未删除(默认)1:已经删除")
private Integer isDelete = 0;
@ApiModelProperty("备注信息")
private String remarks;
@ApiModelProperty("创建者")
private String createBySid;
@ApiModelProperty("更新者")
private String updateBySid;
public String getSid() {
return sid;
}
public void setSid(String sid) {
this.sid = sid;
}
public Integer getLockVersion() {
return lockVersion;
}
public void setLockVersion(Integer lockVersion) {
this.lockVersion = lockVersion;
}
public Date getCreateTime() {
return createTime;
}
public void setCreateTime(Date createTime) {
this.createTime = createTime;
}
public Date getModifyTime() {
return modifyTime;
}
public void setModifyTime(Date modifyTime) {
this.modifyTime = modifyTime;
}
public Integer getState() {
return state;
}
public void setState(Integer state) {
this.state = state;
}
public Integer getIsEnable() {
return isEnable;
}
public void setIsEnable(Integer isEnable) {
this.isEnable = isEnable;
}
public Integer getIsDelete() {
return isDelete;
}
public void setIsDelete(Integer isDelete) {
this.isDelete = isDelete;
}
public String getRemarks() {
return remarks;
}
public void setRemarks(String remarks) {
this.remarks = remarks;
}
public String getCreateBySid() {
return createBySid;
}
public void setCreateBySid(String createBySid) {
this.createBySid = createBySid;
}
public String getUpdateBySid() {
return updateBySid;
}
public void setUpdateBySid(String updateBySid) {
this.updateBySid = updateBySid;
}
}

View File

@@ -0,0 +1,55 @@
package com.yxt.demo.common.core.domain;
import io.swagger.annotations.ApiModelProperty;
import java.io.Serializable;
/**
* @author dimengzhe
* @date 2021/9/3 16:06
* @description
*/
public class Entity implements Serializable {
@ApiModelProperty("ID唯一编号")
private Integer id;
@ApiModelProperty("ID值的字符串形式")
public String getIdStr() {
if (null == id) {
return "";
}
return "" + id;
}
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
@Override
public String toString() {
return "ClassName:" + getClass().getName() + ";id:" + getId();
}
@Override
public int hashCode() {
int id2 = Long.hashCode(getId());
return super.hashCode() + id2;
}
@Override
public boolean equals(Object obj) {
if (this == obj) {
return true;
}
if (!(obj instanceof Entity)) {
return false;
}
Entity entity = (Entity) obj;
return this.getId().equals(entity.getId());
}
}

View File

@@ -0,0 +1,8 @@
package com.yxt.demo.common.core.dto;
import com.yxt.demo.common.core.vo.Vo;
public interface Dto extends Vo {
}

View File

@@ -0,0 +1,77 @@
package com.yxt.demo.common.core.query;
import io.swagger.annotations.ApiModelProperty;
import java.io.Serializable;
/**
* @author dimengzhe
* @date 2021/9/3 16:41
* @description
*/
public class PagerQuery<T extends Query> implements Serializable {
@ApiModelProperty(value = "当前页号", example = "1")
private long current = 1L;
@ApiModelProperty(value = "每页记录数", example = "10")
private long size = 10L;
@ApiModelProperty(value = "标识符")
private Integer identifier;
@ApiModelProperty("查询条件的项")
private T params;
public PagerQuery() {
}
public PagerQuery(long current) {
this.current = current;
}
public PagerQuery(long current, long size) {
this.size = size;
this.current = current;
}
public long getSize() {
return size;
}
public PagerQuery setSize(long size) {
this.size = size;
return this;
}
public long getCurrent() {
return current;
}
public PagerQuery setCurrent(long current) {
this.current = current;
return this;
}
public T getParams() {
return params;
}
public PagerQuery setParams(T params) {
this.params = params;
return this;
}
public Integer getIdentifier() {
return identifier;
}
public void setIdentifier(Integer identifier) {
this.identifier = identifier;
}
public void fromPagerQuery(PagerQuery s_query) {
this.setCurrent(s_query.getCurrent()).setSize(s_query.getSize()).setParams(params.fromMap(s_query.getParams().toMap()));
}
}

View File

@@ -0,0 +1,12 @@
package com.yxt.demo.common.core.query;
import com.yxt.demo.common.core.vo.Vo;
/**
* @author dimengzhe
* @date 2021/9/3 16:41
* @description
*/
public interface Query extends Vo {
}

View File

@@ -0,0 +1,141 @@
package com.yxt.demo.common.core.result;
import com.yxt.demo.common.core.constant.Constants;
import com.yxt.demo.common.core.constant.StatusEnum;
import java.io.Serializable;
/**
* @Author dimengzhe
* @Date 2021/8/23 16:42
* @Description 返回结果
*/
public class ResultBean<T> implements Serializable {
private static final long serialVersionUID = 1L;
/**
* 成功
*/
public static final int SUCCESS = Constants.SUCCESS;
/**
* 失败
*/
public static final int FAIL = Constants.FAIL;
private int code;
private String msg;
private T data;
private Boolean success;
public ResultBean() {
}
public ResultBean(boolean success) {
this.success = success;
}
public ResultBean(boolean success, String msg) {
this.success = success;
this.msg = msg;
}
public ResultBean(boolean success, String msg, int code) {
this.success = success;
this.msg = msg;
this.code = code;
}
public ResultBean(T data) {
this.success = true;
this.data = data;
}
public ResultBean(int code, T data) {
this.success = true;
this.code = code;
this.data = data;
}
public ResultBean(int code, String msg, T data) {
this.success = true;
this.code = code;
this.msg = msg;
this.data = data;
}
public boolean getSuccess() {
return success;
}
public ResultBean<T> setSuccess(boolean success) {
this.success = success;
return this;
}
public String getMsg() {
return msg;
}
public ResultBean<T> setMsg(String msg) {
this.msg = msg;
return this;
}
public int getCode() {
return code;
}
public ResultBean<T> setCode(int code) {
this.code = code;
return this;
}
public T getData() {
return data;
}
public ResultBean<T> setData(T data) {
this.data = data;
return this;
}
/**
* 1.类实例化的非静态方法调用 2.类不实例化的静态方法调用
*
* @return
*/
public ResultBean<T> success() {
this.setSuccess(true);
this.setCode(StatusEnum.SUCCESS.getCode());
this.setMsg("操作成功!");
return this;
}
public ResultBean<T> fail() {
this.setSuccess(false);
this.setCode(StatusEnum.FAIL.getCode());
this.setMsg("操作失败!");
return this;
}
public static <T> ResultBean<T> fireSuccess() {
ResultBean<T> rb = new ResultBean<T>();
rb.setSuccess(true);
rb.setCode(StatusEnum.SUCCESS.getCode());
rb.setMsg("操作成功!");
return rb;
}
public static <T> ResultBean<T> fireFail() {
ResultBean<T> rb = new ResultBean<T>();
rb.setSuccess(false);
rb.setCode(StatusEnum.FAIL.getCode());
rb.setMsg("操作失败!");
return rb;
}
}

View File

@@ -0,0 +1,100 @@
package com.yxt.demo.common.core.vo;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import java.io.Serializable;
import java.util.Collections;
import java.util.List;
/**
* @author dimengzhe
* @date 2021/9/3 16:24
* @description
*/
@ApiModel(description = "返回的分页结果")
public class PagerVo<T> implements Serializable {
@ApiModelProperty("总页数")
private long pages = 1L;
@ApiModelProperty("总记录数")
private long total = 0L;
@ApiModelProperty("每页记录数")
private long size = 15L;
@ApiModelProperty("当前页号")
private long current = 1L;
@ApiModelProperty(value = "标识符")
private Integer identifier;
@ApiModelProperty("当前页的数据")
private List<T> records = Collections.emptyList();
public PagerVo() {
this.pages = 1L;
this.total = 0L;
this.size = 10L;
this.current = 1L;
this.records = Collections.emptyList();
}
public PagerVo(long current) {
this.pages = 1L;
this.total = 0L;
this.size = 10L;
this.current = current;
this.records = Collections.emptyList();
}
public long getPages() {
return pages;
}
public PagerVo<T> setPages(long pages) {
this.pages = pages;
return this;
}
public long getTotal() {
return total;
}
public PagerVo<T> setTotal(long total) {
this.total = total;
return this;
}
public long getSize() {
return size;
}
public PagerVo<T> setSize(long size) {
this.size = size;
return this;
}
public long getCurrent() {
return current;
}
public PagerVo<T> setCurrent(long current) {
this.current = current;
return this;
}
public List<T> getRecords() {
return records;
}
public PagerVo<T> setRecords(List<T> records) {
this.records = records;
return this;
}
public Integer getIdentifier() {
return identifier;
}
public void setIdentifier(Integer identifier) {
this.identifier = identifier;
}
}

View File

@@ -0,0 +1,28 @@
package com.yxt.demo.common.core.vo;
import cn.hutool.core.bean.BeanUtil;
import com.yxt.demo.common.core.domain.Entity;
import java.io.Serializable;
import java.util.Map;
/**
* @author dimengzhe
* @date 2021/9/3 16:21
* @description
*/
public interface Vo extends Serializable {
default Map<String, Object> toMap() {
return BeanUtil.beanToMap(this);
}
default <V extends Vo> V fromMap(Map<String, Object> map) {
return (V) BeanUtil.fillBeanWithMap(map, this, false);
}
default <E extends Entity> void fromEntity(E e) {
BeanUtil.copyProperties(e, this);
}
}