This commit is contained in:
Jane
2023-12-22 10:59:10 +08:00
parent 751c43e199
commit d1ede2d4aa
2774 changed files with 291509 additions and 0 deletions

View File

@@ -0,0 +1,46 @@
<?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>
<artifactId>common</artifactId>
<groupId>com.platform</groupId>
<version>0.4.x</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<version>0.4.x</version>
<artifactId>common-service-api</artifactId>
<dependencies>
<dependency>
<groupId>com.github.xiaoymin</groupId>
<artifactId>knife4j-micro-spring-boot-starter</artifactId>
<version>${knife4j.version}</version>
</dependency>
<!--feign 依赖-->
<dependency>
<groupId>io.github.openfeign</groupId>
<artifactId>feign-okhttp</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-openfeign</artifactId>
</dependency>
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-annotation</artifactId>
<version>3.3.2</version>
</dependency>
<dependency>
<groupId>org.springframework.security</groupId>
<artifactId>spring-security-core</artifactId>
</dependency>
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>1.2.49</version>
</dependency>
</dependencies>
</project>

View File

@@ -0,0 +1,58 @@
package cn.datax.common.base;
import com.baomidou.mybatisplus.annotation.*;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import java.io.Serializable;
import java.time.LocalDateTime;
@Data
public abstract class BaseEntity implements Serializable {
private static final long serialVersionUID = 1L;
/**
* 主键
*/
@TableId(value = "id", type = IdType.ASSIGN_ID)
private String id;
/**
* 创建时间
*/
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
@TableField(value = "create_time", fill = FieldFill.INSERT)
private LocalDateTime createTime;
/**
* 创建人
*/
@TableField(value = "create_by", fill = FieldFill.INSERT)
private String createBy;
/**
* 更新时间
*/
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
@TableField(value = "update_time", fill = FieldFill.INSERT_UPDATE)
private LocalDateTime updateTime;
/**
* 更新人
*/
@TableField(value = "update_by", fill = FieldFill.INSERT_UPDATE)
private String updateBy;
/**
* 状态0不启用1启用
*/
@TableField(value = "status", fill = FieldFill.INSERT)
private String status;
/**
* 备注
*/
@TableField(value = "remark")
private String remark;
}

View File

@@ -0,0 +1,29 @@
package cn.datax.common.base;
import lombok.Data;
import java.io.Serializable;
import java.util.List;
@Data
public class BaseQueryParams implements Serializable {
private static final long serialVersionUID = 1L;
// 关键字
private String keyword;
// 当前页码
private Integer pageNum = 1;
// 分页条数
private Integer pageSize = 20;
// 排序
private List<OrderItem> orderList;
// 数据权限
private String dataScope;
@Data
public class OrderItem{
private String column;
private boolean asc;
}
}

View File

@@ -0,0 +1,12 @@
package cn.datax.common.validate;
public class ValidationGroups {
public interface Insert{};
public interface Update{};
public interface Status{};
public interface Other{};
}

View File

@@ -0,0 +1,20 @@
package cn.datax.service.system.api.dto;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.springframework.security.core.GrantedAuthority;
/**
* 避免序列化问题
* @author AllDataDC
* @date 2023-01-27
*/
@Data
@NoArgsConstructor
@AllArgsConstructor
public class AuthorityDto implements GrantedAuthority {
private String authority;
}

View File

@@ -0,0 +1,41 @@
package cn.datax.service.system.api.dto;
import lombok.Getter;
import lombok.Setter;
import org.apache.commons.lang3.builder.ToStringBuilder;
import java.io.Serializable;
import java.lang.reflect.Field;
import java.sql.Timestamp;
/**
* @author AllDataDC
* @date 2023-01-27 20:48:53
*/
@Getter
@Setter
public class BaseDTO implements Serializable {
private String createBy;
private String updateBy;
private Timestamp createTime;
private Timestamp updateTime;
@Override
public String toString() {
ToStringBuilder builder = new ToStringBuilder(this);
Field[] fields = this.getClass().getDeclaredFields();
try {
for (Field f : fields) {
f.setAccessible(true);
builder.append(f.getName(), f.get(this)).append("\n");
}
} catch (Exception e) {
builder.append("toString builder encounter an error");
}
return builder.toString();
}
}

View File

@@ -0,0 +1,42 @@
package cn.datax.service.system.api.dto;
import cn.datax.common.validate.ValidationGroups;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.io.Serializable;
/**
* <p>
* 系统参数配置信息表 实体DTO
* </p>
*
* @author AllDataDC
* @since 2023-01-19
*/
@ApiModel(value = "系统参数配置信息表Model")
@Data
public class ConfigDto implements Serializable {
private static final long serialVersionUID=1L;
@ApiModelProperty(value = "主键ID")
@NotBlank(message = "主键ID不能为空", groups = {ValidationGroups.Update.class})
private String id;
@ApiModelProperty(value = "参数名称")
@NotBlank(message = "参数名称不能为空", groups = {ValidationGroups.Insert.class, ValidationGroups.Update.class})
private String configName;
@ApiModelProperty(value = "参数键名")
@NotBlank(message = "参数键名不能为空", groups = {ValidationGroups.Insert.class, ValidationGroups.Update.class})
private String configKey;
@ApiModelProperty(value = "参数键值")
@NotBlank(message = "参数键值不能为空", groups = {ValidationGroups.Insert.class, ValidationGroups.Update.class})
private String configValue;
@ApiModelProperty(value = "状态")
@NotNull(message = "状态不能为空", groups = {ValidationGroups.Insert.class, ValidationGroups.Update.class})
private String status;
@ApiModelProperty(value = "备注")
private String remark;
}

View File

@@ -0,0 +1,40 @@
package cn.datax.service.system.api.dto;
import cn.datax.common.validate.ValidationGroups;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.io.Serializable;
@ApiModel(value = "部门Model")
@Data
public class DeptDto implements Serializable {
private static final long serialVersionUID=1L;
@ApiModelProperty(value = "主键ID")
@NotBlank(message = "主键ID不能为空", groups = {ValidationGroups.Update.class})
private String id;
@ApiModelProperty(value = "父部门ID")
@NotBlank(message = "父部门ID不能为空", groups = {ValidationGroups.Insert.class, ValidationGroups.Update.class})
private String parentId;
@ApiModelProperty(value = "部门名称")
@NotBlank(message = "部门名称不能为空", groups = {ValidationGroups.Insert.class, ValidationGroups.Update.class})
private String deptName;
@ApiModelProperty(value = "部门编码")
@NotBlank(message = "部门编码不能为空", groups = {ValidationGroups.Insert.class, ValidationGroups.Update.class})
private String deptNo;
@ApiModelProperty(value = "状态")
@NotNull(message = "状态不能为空", groups = {ValidationGroups.Insert.class, ValidationGroups.Update.class})
private String status;
@ApiModelProperty(value = "备注")
private String remark;
}

View File

@@ -0,0 +1,18 @@
package cn.datax.service.system.api.dto;
import lombok.Data;
import java.io.Serializable;
/**
* @author AllDataDC
* @date 2023-01-27 16:32:18
*/
@Data
public class DeptSmallDto implements Serializable {
private Long id;
private String name;
}

View File

@@ -0,0 +1,39 @@
package cn.datax.service.system.api.dto;
import cn.datax.common.validate.ValidationGroups;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.io.Serializable;
/**
* <p>
* 字典编码信息表 实体DTO
* </p>
*
* @author AllDataDC
* @since 2023-01-17
*/
@ApiModel(value = "字典编码信息表Model")
@Data
public class DictDto implements Serializable {
private static final long serialVersionUID=1L;
@ApiModelProperty(value = "主键ID")
@NotBlank(message = "主键ID不能为空", groups = {ValidationGroups.Update.class})
private String id;
@ApiModelProperty(value = "字典名称")
@NotBlank(message = "字典名称不能为空", groups = {ValidationGroups.Insert.class, ValidationGroups.Update.class})
private String dictName;
@ApiModelProperty(value = "字典编码")
@NotBlank(message = "字典编码不能为空", groups = {ValidationGroups.Insert.class, ValidationGroups.Update.class})
private String dictCode;
@ApiModelProperty(value = "状态")
@NotNull(message = "状态不能为空", groups = {ValidationGroups.Insert.class, ValidationGroups.Update.class})
private String status;
@ApiModelProperty(value = "备注")
private String remark;
}

View File

@@ -0,0 +1,45 @@
package cn.datax.service.system.api.dto;
import cn.datax.common.validate.ValidationGroups;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.io.Serializable;
/**
* <p>
* 字典项信息表 实体DTO
* </p>
*
* @author AllDataDC
* @since 2023-01-17
*/
@ApiModel(value = "字典项信息表Model")
@Data
public class DictItemDto implements Serializable {
private static final long serialVersionUID=1L;
@ApiModelProperty(value = "主键ID")
@NotBlank(message = "主键ID不能为空", groups = {ValidationGroups.Update.class})
private String id;
@ApiModelProperty(value = "字典ID")
@NotBlank(message = "字典ID不能为空", groups = {ValidationGroups.Insert.class, ValidationGroups.Update.class})
private String dictId;
@ApiModelProperty(value = "字典项文本")
@NotBlank(message = "字典项文本不能为空", groups = {ValidationGroups.Insert.class, ValidationGroups.Update.class})
private String itemText;
@ApiModelProperty(value = "字典项值")
@NotBlank(message = "字典项值不能为空", groups = {ValidationGroups.Insert.class, ValidationGroups.Update.class})
private String itemValue;
@ApiModelProperty(value = "排序")
@NotNull(message = "排序不能为空", groups = {ValidationGroups.Insert.class, ValidationGroups.Update.class})
private Integer itemSort;
@ApiModelProperty(value = "状态")
@NotNull(message = "状态不能为空", groups = {ValidationGroups.Insert.class, ValidationGroups.Update.class})
private String status;
@ApiModelProperty(value = "备注")
private String remark;
}

View File

@@ -0,0 +1,18 @@
package cn.datax.service.system.api.dto;
import lombok.Getter;
import lombok.Setter;
import java.io.Serializable;
/**
* @author AllDataDC
* @date 2023-01-27
*/
@Getter
@Setter
public class DictSmallDto implements Serializable {
private Long id;
}

View File

@@ -0,0 +1,20 @@
package cn.datax.service.system.api.dto;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.io.Serializable;
/**
* @author AllDataDC
* @date 2023-01-27 16:32:18
*/
@Data
@NoArgsConstructor
public class JobSmallDto implements Serializable {
private Long id;
private String name;
}

View File

@@ -0,0 +1,66 @@
package cn.datax.service.system.api.dto;
import com.alibaba.fastjson.annotation.JSONField;
import lombok.AllArgsConstructor;
import lombok.Getter;
import org.springframework.security.core.userdetails.UserDetails;
import java.util.List;
import java.util.Set;
import java.util.stream.Collectors;
/**
* @author AllDataDC
* @date 2023-01-27
*/
@Getter
@AllArgsConstructor
public class JwtUserDto implements UserDetails {
public final UserLoginDto user;
private final List<Long> dataScopes;
private final List<AuthorityDto> authorities;
public Set<String> getRoles() {
return authorities.stream().map(AuthorityDto::getAuthority).collect(Collectors.toSet());
}
@Override
@JSONField(serialize = false)
public String getPassword() {
return user.getPassword();
}
@Override
@JSONField(serialize = false)
public String getUsername() {
return user.getUsername();
}
@JSONField(serialize = false)
@Override
public boolean isAccountNonExpired() {
return true;
}
@JSONField(serialize = false)
@Override
public boolean isAccountNonLocked() {
return true;
}
@JSONField(serialize = false)
@Override
public boolean isCredentialsNonExpired() {
return true;
}
@Override
@JSONField(serialize = false)
public boolean isEnabled() {
return user.getEnabled();
}
}

View File

@@ -0,0 +1,61 @@
package cn.datax.service.system.api.dto;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.experimental.Accessors;
import java.io.Serializable;
@ApiModel(value = "日志Model")
@Data
@Accessors(chain = true)
public class LogDto implements Serializable {
private static final long serialVersionUID=1L;
@ApiModelProperty(value = "主键ID")
private String id;
@ApiModelProperty(value = "所属模块")
private String module;
@ApiModelProperty(value = "日志标题")
private String title;
@ApiModelProperty(value = "用户ID")
private String userId;
@ApiModelProperty(value = "用户名称")
private String userName;
@ApiModelProperty(value = "请求IP")
private String remoteAddr;
@ApiModelProperty(value = "请求URI")
private String requestUri;
@ApiModelProperty(value = "方法类名")
private String className;
@ApiModelProperty(value = "方法名称")
private String methodName;
@ApiModelProperty(value = "请求参数")
private String params;
@ApiModelProperty(value = "请求耗时")
private String time;
@ApiModelProperty(value = "浏览器名称")
private String browser;
@ApiModelProperty(value = "操作系统")
private String os;
@ApiModelProperty(value = "错误类型")
private String exCode;
@ApiModelProperty(value = "错误信息")
private String exMsg;
}

View File

@@ -0,0 +1,38 @@
package cn.datax.service.system.api.dto;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.io.Serializable;
import java.time.LocalDateTime;
/**
* <p>
* 登录日志信息表 实体DTO
* </p>
*
* @author AllDataDC
* @since 2023-01-29
*/
@ApiModel(value = "登录日志信息表Model")
@Data
public class LoginLogDto implements Serializable {
private static final long serialVersionUID=1L;
@ApiModelProperty(value = "主键ID")
private String id;
@ApiModelProperty(value = "操作系统")
private String opOs;
@ApiModelProperty(value = "浏览器类型")
private String opBrowser;
@ApiModelProperty(value = "登录IP地址")
private String opIp;
@ApiModelProperty(value = "登录时间")
private LocalDateTime opDate;
@ApiModelProperty(value = "登录用户ID")
private String userId;
@ApiModelProperty(value = "登录用户名称")
private String userName;
}

View File

@@ -0,0 +1,66 @@
package cn.datax.service.system.api.dto;
import cn.datax.common.validate.ValidationGroups;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.io.Serializable;
@ApiModel(value = "资源Model")
@Data
public class MenuDto implements Serializable {
private static final long serialVersionUID=1L;
@ApiModelProperty(value = "主键ID")
@NotBlank(message = "主键ID不能为空", groups = {ValidationGroups.Update.class})
private String id;
@ApiModelProperty(value = "父资源ID")
@NotBlank(message = "父资源ID不能为空", groups = {ValidationGroups.Insert.class, ValidationGroups.Update.class})
private String parentId;
@ApiModelProperty(value = "资源名称")
@NotBlank(message = "资源名称不能为空", groups = {ValidationGroups.Insert.class, ValidationGroups.Update.class})
private String menuName;
@ApiModelProperty(value = "对应路由地址path")
private String menuPath;
@ApiModelProperty(value = "对应路由组件component")
private String menuComponent;
@ApiModelProperty(value = "对应路由默认跳转地址redirect")
private String menuRedirect;
@ApiModelProperty(value = "权限标识")
private String menuPerms;
@ApiModelProperty(value = "资源图标")
private String menuIcon;
@ApiModelProperty(value = "资源类型")
@NotNull(message = "类型不能为空", groups = {ValidationGroups.Insert.class, ValidationGroups.Update.class})
private String menuType;
@ApiModelProperty(value = "资源编码")
private String menuCode;
@ApiModelProperty(value = "隐藏")
@NotNull(message = "隐藏不能为空", groups = {ValidationGroups.Insert.class, ValidationGroups.Update.class})
private String menuHidden;
@ApiModelProperty(value = "排序")
@NotNull(message = "排序不能为空", groups = {ValidationGroups.Insert.class, ValidationGroups.Update.class})
private Integer menuSort;
@ApiModelProperty(value = "状态")
@NotNull(message = "状态不能为空", groups = {ValidationGroups.Insert.class, ValidationGroups.Update.class})
private String status;
@ApiModelProperty(value = "备注")
private String remark;
}

View File

@@ -0,0 +1,32 @@
package cn.datax.service.system.api.dto;
import cn.datax.common.validate.ValidationGroups;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.io.Serializable;
@ApiModel(value = "岗位Model")
@Data
public class PostDto implements Serializable {
private static final long serialVersionUID=1L;
@ApiModelProperty(value = "主键ID")
@NotBlank(message = "主键ID不能为空", groups = {ValidationGroups.Update.class})
private String id;
@ApiModelProperty(value = "岗位名称")
@NotBlank(message = "岗位名称不能为空", groups = {ValidationGroups.Insert.class, ValidationGroups.Update.class})
private String postName;
@ApiModelProperty(value = "状态")
@NotNull(message = "状态不能为空", groups = {ValidationGroups.Insert.class, ValidationGroups.Update.class})
private String status;
@ApiModelProperty(value = "备注")
private String remark;
}

View File

@@ -0,0 +1,49 @@
package cn.datax.service.system.api.dto;
import cn.datax.common.validate.ValidationGroups;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull;
import java.io.Serializable;
import java.util.List;
@ApiModel(value = "角色Model")
@Data
public class RoleDto implements Serializable {
private static final long serialVersionUID=1L;
@ApiModelProperty(value = "主键ID")
@NotBlank(message = "主键ID不能为空", groups = {ValidationGroups.Update.class})
private String id;
@ApiModelProperty(value = "角色名称")
@NotBlank(message = "角色名称不能为空", groups = {ValidationGroups.Insert.class, ValidationGroups.Update.class})
private String roleName;
@ApiModelProperty(value = "角色编码")
@NotBlank(message = "角色编码不能为空", groups = {ValidationGroups.Insert.class, ValidationGroups.Update.class})
private String roleCode;
@ApiModelProperty(value = "数据范围")
@NotNull(message = "数据范围不能为空", groups = {ValidationGroups.Insert.class, ValidationGroups.Update.class})
private String dataScope;
@ApiModelProperty(value = "资源")
@NotEmpty(message = "资源不能为空", groups = {ValidationGroups.Insert.class, ValidationGroups.Update.class})
private List<String> menuList;
@ApiModelProperty(value = "数据范围为2时自定义数据权限")
private List<String> deptList;
@ApiModelProperty(value = "状态")
@NotNull(message = "状态不能为空", groups = {ValidationGroups.Insert.class, ValidationGroups.Update.class})
private String status;
@ApiModelProperty(value = "备注")
private String remark;
}

View File

@@ -0,0 +1,22 @@
package cn.datax.service.system.api.dto;
import lombok.Data;
import java.io.Serializable;
/**
* @author AllDataDC
* @date 2023-01-27
*/
@Data
public class RoleSmallDto implements Serializable {
private Long id;
private String name;
private Integer level;
private String dataScope;
}

View File

@@ -0,0 +1,54 @@
package cn.datax.service.system.api.dto;
import com.alibaba.fastjson.annotation.JSONField;
import lombok.Getter;
import lombok.Setter;
import java.io.Serializable;
import java.util.Date;
import java.util.Set;
/**
* @author AllDataDC
* @date 2023-01-27
*/
@Getter
@Setter
public class UserDto extends BaseDTO implements Serializable {
private Long id;
private Set<RoleSmallDto> roles;
private Set<JobSmallDto> jobs;
private DeptSmallDto dept;
private Long deptId;
private String username;
private String nickName;
private String email;
private String phone;
private String gender;
private String avatarName;
private String avatarPath;
@JSONField(serialize = false)
private String password;
private Boolean enabled;
@JSONField(serialize = false)
private Boolean isAdmin = false;
private Date pwdResetTime;
}

View File

@@ -0,0 +1,14 @@
package cn.datax.service.system.api.dto;
/**
* @author AllDataDC
* @description 用户缓存时使用
* @date 2023-01-27
**/
public class UserLoginDto extends UserDto {
private String password;
public Boolean isAdmin;
}

View File

@@ -0,0 +1,26 @@
package cn.datax.service.system.api.dto;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.validation.constraints.NotBlank;
import java.io.Serializable;
@ApiModel(value = "用户密码Model")
@Data
public class UserPasswordDto implements Serializable {
private static final long serialVersionUID=1L;
@ApiModelProperty(value = "主键ID")
private String id;
@ApiModelProperty(value = "密码")
@NotBlank(message = "密码不能为空")
private String password;
@ApiModelProperty(value = "旧密码")
@NotBlank(message = "旧密码不能为空")
private String oldPassword;
}

View File

@@ -0,0 +1,41 @@
package cn.datax.service.system.api.entity;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import cn.datax.common.base.BaseEntity;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
/**
* <p>
* 系统参数配置信息表
* </p>
*
* @author AllDataDC
* @since 2023-01-19
*/
@Data
@EqualsAndHashCode(callSuper = true)
@Accessors(chain = true)
@TableName("sys_market_config")
public class ConfigEntity extends BaseEntity {
private static final long serialVersionUID=1L;
/**
* 参数名称
*/
private String configName;
/**
* 参数键名
*/
private String configKey;
/**
* 参数键值
*/
private String configValue;
}

View File

@@ -0,0 +1,42 @@
package cn.datax.service.system.api.entity;
import cn.datax.common.base.BaseEntity;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
/**
* <p>
*
* </p>
*
* @author AllDataDC
* @since 2023-01-11
*/
@Data
@EqualsAndHashCode(callSuper = true)
@Accessors(chain = true)
@TableName("sys_market_dept")
public class DeptEntity extends BaseEntity {
private static final long serialVersionUID=1L;
/**
* 父部门ID
*/
private String parentId;
/**
* 部门名称
*/
private String deptName;
/**
* 一级10
* 二级10 001、10 002
* 三级10 001 001、10 001 002、10 002 001
* 部门编码(数据权限优化查询速度 like '10001%'
*/
private String deptNo;
}

View File

@@ -0,0 +1,42 @@
package cn.datax.service.system.api.entity;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import lombok.Data;
import lombok.experimental.Accessors;
import java.io.Serializable;
/**
* <p>
* 部门关系表
* </p>
*
* @author AllDataDC
* @since 2023-01-22
*/
@Data
@Accessors(chain = true)
@TableName("sys_market_dept_relation")
public class DeptRelationEntity implements Serializable {
private static final long serialVersionUID=1L;
/**
* 主键
*/
@TableId(value = "id", type = IdType.ASSIGN_ID)
private String id;
/**
* 祖先节点
*/
private String ancestor;
/**
* 后代节点
*/
private String descendant;
}

View File

@@ -0,0 +1,42 @@
package cn.datax.service.system.api.entity;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import cn.datax.common.base.BaseEntity;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import java.util.List;
/**
* <p>
* 字典编码信息表
* </p>
*
* @author AllDataDC
* @since 2023-01-17
*/
@Data
@EqualsAndHashCode(callSuper = true)
@Accessors(chain = true)
@TableName("sys_market_dict")
public class DictEntity extends BaseEntity {
private static final long serialVersionUID=1L;
/**
* 字典名称
*/
private String dictName;
/**
* 字典编码
*/
private String dictCode;
@TableField(exist = false)
private List<DictItemEntity> items;
}

View File

@@ -0,0 +1,46 @@
package cn.datax.service.system.api.entity;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import cn.datax.common.base.BaseEntity;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
/**
* <p>
* 字典项信息表
* </p>
*
* @author AllDataDC
* @since 2023-01-17
*/
@Data
@EqualsAndHashCode(callSuper = true)
@Accessors(chain = true)
@TableName("sys_market_dict_item")
public class DictItemEntity extends BaseEntity {
private static final long serialVersionUID=1L;
/**
* 字典id
*/
private String dictId;
/**
* 字典项文本
*/
private String itemText;
/**
* 字典项值
*/
private String itemValue;
/**
* 排序
*/
private Integer itemSort;
}

View File

@@ -0,0 +1,108 @@
package cn.datax.service.system.api.entity;
import com.baomidou.mybatisplus.annotation.*;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import lombok.experimental.Accessors;
import java.io.Serializable;
import java.time.LocalDateTime;
/**
* <p>
*
* </p>
*
* @author AllDataDC
* @since 2023-01-11
*/
@Data
@Accessors(chain = true)
@TableName("sys_market_log")
public class LogEntity implements Serializable {
private static final long serialVersionUID=1L;
/**
* 主键
*/
@TableId(value = "id", type = IdType.ASSIGN_ID)
private String id;
/**
* 所属模块
*/
private String module;
/**
* 日志标题
*/
private String title;
/**
* 用户ID
*/
private String userId;
/**
* 用户名称
*/
private String userName;
/**
* 请求IP
*/
private String remoteAddr;
/**
* 请求URI
*/
private String requestUri;
/**
* 方法类名
*/
private String className;
/**
* 方法名称
*/
private String methodName;
/**
* 请求参数
*/
private String params;
/**
* 请求耗时
*/
private String time;
/**
* 浏览器名称
*/
private String browser;
/**
* 操作系统
*/
private String os;
/**
* 错误类型
*/
private String exCode;
/**
* 错误信息
*/
private String exMsg;
/**
* 创建时间
*/
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
@TableField(value = "create_time", fill = FieldFill.INSERT)
private LocalDateTime createTime;
}

View File

@@ -0,0 +1,62 @@
package cn.datax.service.system.api.entity;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.annotation.IdType;
import java.io.Serializable;
import java.time.LocalDateTime;
import com.baomidou.mybatisplus.annotation.TableId;
import lombok.Data;
import lombok.experimental.Accessors;
/**
* <p>
* 登录日志信息表
* </p>
*
* @author AllDataDC
* @since 2023-01-29
*/
@Data
@Accessors(chain = true)
@TableName("sys_market_login_log")
public class LoginLogEntity implements Serializable {
private static final long serialVersionUID=1L;
/**
* 主键
*/
@TableId(value = "id", type = IdType.ASSIGN_ID)
private String id;
/**
* 操作系统
*/
private String opOs;
/**
* 浏览器类型
*/
private String opBrowser;
/**
* 登录IP地址
*/
private String opIp;
/**
* 登录时间
*/
private LocalDateTime opDate;
/**
* 登录用户ID
*/
private String userId;
/**
* 登录用户名称
*/
private String userName;
}

View File

@@ -0,0 +1,80 @@
package cn.datax.service.system.api.entity;
import cn.datax.common.base.BaseEntity;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
/**
* <p>
*
* </p>
*
* @author AllDataDC
* @since 2023-01-11
*/
@Data
@EqualsAndHashCode(callSuper = true)
@Accessors(chain = true)
@TableName("sys_market_menu")
public class MenuEntity extends BaseEntity {
private static final long serialVersionUID=1L;
/**
* 父资源ID
*/
private String parentId;
/**
* 资源名称
*/
private String menuName;
/**
* 对应路由地址path
*/
private String menuPath;
/**
* 对应路由组件component
*/
private String menuComponent;
/**
* 对应路由默认跳转地址redirect
*/
private String menuRedirect;
/**
* 权限标识
*/
private String menuPerms;
/**
* 资源图标
*/
private String menuIcon;
/**
* 资源类型0模块1菜单2按钮
*/
private String menuType;
/**
* 资源编码
*/
private String menuCode;
/**
* 资源隐藏0否1是
*/
private String menuHidden;
/**
* 排序
*/
private Integer menuSort;
}

View File

@@ -0,0 +1,30 @@
package cn.datax.service.system.api.entity;
import cn.datax.common.base.BaseEntity;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
/**
* <p>
*
* </p>
*
* @author AllDataDC
* @since 2023-01-11
*/
@Data
@EqualsAndHashCode(callSuper = true)
@Accessors(chain = true)
@TableName("sys_market_post")
public class PostEntity extends BaseEntity {
private static final long serialVersionUID=1L;
/**
* 岗位名称
*/
private String postName;
}

View File

@@ -0,0 +1,42 @@
package cn.datax.service.system.api.entity;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import lombok.Data;
import lombok.experimental.Accessors;
import java.io.Serializable;
/**
* <p>
* 角色和部门关联表
* </p>
*
* @author AllDataDC
* @since 2023-01-22
*/
@Data
@Accessors(chain = true)
@TableName("sys_market_role_dept")
public class RoleDeptEntity implements Serializable {
private static final long serialVersionUID=1L;
/**
* 主键
*/
@TableId(value = "id", type = IdType.ASSIGN_ID)
private String id;
/**
* 角色ID
*/
private String roleId;
/**
* 部门ID
*/
private String deptId;
}

View File

@@ -0,0 +1,49 @@
package cn.datax.service.system.api.entity;
import cn.datax.common.base.BaseEntity;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import java.util.List;
/**
* <p>
*
* </p>
*
* @author AllDataDC
* @since 2023-01-11
*/
@Data
@EqualsAndHashCode(callSuper = true)
@Accessors(chain = true)
@TableName(value = "sys_market_role", autoResultMap = true)
public class RoleEntity extends BaseEntity {
private static final long serialVersionUID=1L;
/**
* 角色名称
*/
private String roleName;
/**
* 角色编码
*/
private String roleCode;
/**
* 数据范围1全部数据权限 2自定义数据权限 3本部门数据权限 4本部门及以下数据权限 5仅本人数据权限
*/
private String dataScope;
@TableField(exist = false)
private List<MenuEntity> menus;
@TableField(exist = false)
private List<DeptEntity> depts;
}

View File

@@ -0,0 +1,42 @@
package cn.datax.service.system.api.entity;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import lombok.Data;
import lombok.experimental.Accessors;
import java.io.Serializable;
/**
* <p>
*
* </p>
*
* @author AllDataDC
* @since 2023-01-11
*/
@Data
@Accessors(chain = true)
@TableName("sys_market_role_menu")
public class RoleMenuEntity implements Serializable {
private static final long serialVersionUID=1L;
/**
* 主键
*/
@TableId(value = "id", type = IdType.ASSIGN_ID)
private String id;
/**
* 角色ID
*/
private String roleId;
/**
* 菜单ID
*/
private String menuId;
}

View File

@@ -0,0 +1,72 @@
package cn.datax.service.system.api.entity;
import cn.datax.common.base.BaseEntity;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import java.time.LocalDate;
import java.util.List;
/**
* <p>
*
* </p>
*
* @author AllDataDC
* @since 2023-01-11
*/
@Data
@EqualsAndHashCode(callSuper = true)
@Accessors(chain = true)
@TableName(value = "sys_market_user", autoResultMap = true)
public class UserEntity extends BaseEntity {
private static final long serialVersionUID=1L;
/**
* 用户名称
*/
private String username;
/**
* 用户昵称
*/
private String nickname;
/**
* 用户密码
*/
private String password;
/**
* 电子邮箱
*/
private String email;
/**
* 手机号码
*/
private String phone;
/**
* 出生日期
*/
private LocalDate birthday;
/**
* 部门
*/
private String deptId;
@TableField(exist = false)
private DeptEntity dept;
@TableField(exist = false)
private List<RoleEntity> roles;
@TableField(exist = false)
private List<PostEntity> posts;
}

View File

@@ -0,0 +1,42 @@
package cn.datax.service.system.api.entity;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import lombok.Data;
import lombok.experimental.Accessors;
import java.io.Serializable;
/**
* <p>
*
* </p>
*
* @author AllDataDC
* @since 2023-01-11
*/
@Data
@Accessors(chain = true)
@TableName("sys_market_user_post")
public class UserPostEntity implements Serializable {
private static final long serialVersionUID=1L;
/**
* 主键
*/
@TableId(value = "id", type = IdType.ASSIGN_ID)
private String id;
/**
* 用户ID
*/
private String userId;
/**
* 岗位ID
*/
private String postId;
}

View File

@@ -0,0 +1,42 @@
package cn.datax.service.system.api.entity;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import lombok.Data;
import lombok.experimental.Accessors;
import java.io.Serializable;
/**
* <p>
*
* </p>
*
* @author AllDataDC
* @since 2023-01-11
*/
@Data
@Accessors(chain = true)
@TableName("sys_market_user_role")
public class UserRoleEntity implements Serializable {
private static final long serialVersionUID=1L;
/**
* 主键
*/
@TableId(value = "id", type = IdType.ASSIGN_ID)
private String id;
/**
* 用户ID
*/
private String userId;
/**
* 角色ID
*/
private String roleId;
}

View File

@@ -0,0 +1,14 @@
package cn.datax.service.system.api.feign;
import cn.datax.service.system.api.dto.JwtUserDto;
import cn.datax.service.system.api.feign.factory.UserServiceFeignFallbackFactory;
import cn.datax.service.system.api.vo.UserInfo;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
@FeignClient(contextId = "userServiceFeign", value = "service-system", fallbackFactory = UserServiceFeignFallbackFactory.class)
public interface UserServiceFeign {
@GetMapping("/api/users/{username}")
JwtUserDto loginByUsername(@PathVariable("username") String username);
}

View File

@@ -0,0 +1,17 @@
package cn.datax.service.system.api.feign.factory;
import cn.datax.service.system.api.feign.UserServiceFeign;
import cn.datax.service.system.api.feign.fallback.UserServiceFeignFallbackImpl;
import feign.hystrix.FallbackFactory;
import org.springframework.stereotype.Component;
@Component
public class UserServiceFeignFallbackFactory implements FallbackFactory<UserServiceFeign> {
@Override
public UserServiceFeign create(Throwable throwable) {
UserServiceFeignFallbackImpl userServiceFeignFallback = new UserServiceFeignFallbackImpl();
userServiceFeignFallback.setCause(throwable);
return userServiceFeignFallback;
}
}

View File

@@ -0,0 +1,21 @@
package cn.datax.service.system.api.feign.fallback;
import cn.datax.service.system.api.dto.JwtUserDto;
import cn.datax.service.system.api.feign.UserServiceFeign;
import lombok.Setter;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Component;
@Slf4j
@Component
public class UserServiceFeignFallbackImpl implements UserServiceFeign {
@Setter
private Throwable cause;
@Override
public JwtUserDto loginByUsername(String username) {
log.error("feign 调用{}出错", username, cause);
return null;
}
}

View File

@@ -0,0 +1,20 @@
package cn.datax.service.system.api.query;
import cn.datax.common.base.BaseQueryParams;
import lombok.Data;
import lombok.EqualsAndHashCode;
/**
* <p>
* 系统参数配置信息表 查询实体
* </p>
*
* @author AllDataDC
* @since 2023-01-19
*/
@Data
@EqualsAndHashCode(callSuper = true)
public class ConfigQuery extends BaseQueryParams {
private static final long serialVersionUID=1L;
}

View File

@@ -0,0 +1,27 @@
package cn.datax.service.system.api.query;
import cn.datax.common.base.BaseQueryParams;
import lombok.Data;
import lombok.EqualsAndHashCode;
/**
* <p>
* 字典项信息表 查询实体
* </p>
*
* @author AllDataDC
* @since 2023-01-17
*/
@Data
@EqualsAndHashCode(callSuper = true)
public class DictItemQuery extends BaseQueryParams {
private static final long serialVersionUID=1L;
/**
* 字典id
*/
private String dictId;
private String itemText;
private String itemValue;
}

View File

@@ -0,0 +1,23 @@
package cn.datax.service.system.api.query;
import cn.datax.common.base.BaseQueryParams;
import lombok.Data;
import lombok.EqualsAndHashCode;
/**
* <p>
* 字典编码信息表 查询实体
* </p>
*
* @author AllDataDC
* @since 2023-01-17
*/
@Data
@EqualsAndHashCode(callSuper = true)
public class DictQuery extends BaseQueryParams {
private static final long serialVersionUID=1L;
private String dictName;
private String dictCode;
}

View File

@@ -0,0 +1,27 @@
package cn.datax.service.system.api.query;
import cn.datax.common.base.BaseQueryParams;
import lombok.Data;
import lombok.EqualsAndHashCode;
@Data
@EqualsAndHashCode(callSuper = true)
public class LogQuery extends BaseQueryParams {
private static final long serialVersionUID=1L;
/**
* 日志标题
*/
private String title;
/**
* 所属模块
*/
private String module;
/**
* 用户名称
*/
private String userName;
}

View File

@@ -0,0 +1,25 @@
package cn.datax.service.system.api.query;
import cn.datax.common.base.BaseQueryParams;
import lombok.Data;
import lombok.EqualsAndHashCode;
/**
* <p>
* 登录日志信息表 查询实体
* </p>
*
* @author AllDataDC
* @since 2023-01-29
*/
@Data
@EqualsAndHashCode(callSuper = true)
public class LoginLogQuery extends BaseQueryParams {
private static final long serialVersionUID=1L;
/**
* 登录用户名称
*/
private String userName;
}

View File

@@ -0,0 +1,17 @@
package cn.datax.service.system.api.query;
import cn.datax.common.base.BaseQueryParams;
import lombok.Data;
import lombok.EqualsAndHashCode;
@Data
@EqualsAndHashCode(callSuper = true)
public class PostQuery extends BaseQueryParams {
private static final long serialVersionUID=1L;
/**
* 岗位名称
*/
private String postName;
}

View File

@@ -0,0 +1,17 @@
package cn.datax.service.system.api.query;
import cn.datax.common.base.BaseQueryParams;
import lombok.Data;
import lombok.EqualsAndHashCode;
@Data
@EqualsAndHashCode(callSuper = true)
public class RoleQuery extends BaseQueryParams {
private static final long serialVersionUID=1L;
/**
* 角色名称
*/
private String roleName;
}

View File

@@ -0,0 +1,25 @@
package cn.datax.service.system.api.query;
import cn.datax.common.base.BaseQueryParams;
import lombok.Data;
import lombok.EqualsAndHashCode;
@Data
@EqualsAndHashCode(callSuper = true)
public class UserQuery extends BaseQueryParams {
private static final long serialVersionUID=1L;
/**
* 用户名称
*/
private String username;
/**
* 用户昵称
*/
private String nickname;
/**
* 部门ID
*/
private String deptId;
}

View File

@@ -0,0 +1,30 @@
package cn.datax.service.system.api.vo;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import java.io.Serializable;
import java.time.LocalDateTime;
/**
* <p>
* 系统参数配置信息表 实体VO
* </p>
*
* @author AllDataDC
* @since 2023-01-19
*/
@Data
public class ConfigVo implements Serializable {
private static final long serialVersionUID=1L;
private String id;
private String status;
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
private LocalDateTime createTime;
private String remark;
private String configName;
private String configKey;
private String configValue;
}

View File

@@ -0,0 +1,24 @@
package cn.datax.service.system.api.vo;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import java.io.Serializable;
import java.time.LocalDateTime;
import java.util.List;
@Data
public class DeptVo implements Serializable {
private static final long serialVersionUID=1L;
private String id;
private String status;
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
private LocalDateTime createTime;
private String remark;
private String parentId;
private String deptName;
private String deptNo;
private List<DictItemVo> items;
}

View File

@@ -0,0 +1,31 @@
package cn.datax.service.system.api.vo;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import java.io.Serializable;
import java.time.LocalDateTime;
/**
* <p>
* 字典项信息表 实体VO
* </p>
*
* @author AllDataDC
* @since 2023-01-17
*/
@Data
public class DictItemVo implements Serializable {
private static final long serialVersionUID=1L;
private String id;
private String status;
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
private LocalDateTime createTime;
private String remark;
private String dictId;
private String itemText;
private String itemValue;
private Integer itemSort;
}

View File

@@ -0,0 +1,29 @@
package cn.datax.service.system.api.vo;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import java.io.Serializable;
import java.time.LocalDateTime;
/**
* <p>
* 字典编码信息表 实体VO
* </p>
*
* @author AllDataDC
* @since 2023-01-17
*/
@Data
public class DictVo implements Serializable {
private static final long serialVersionUID=1L;
private String id;
private String status;
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
private LocalDateTime createTime;
private String remark;
private String dictName;
private String dictCode;
}

View File

@@ -0,0 +1,31 @@
package cn.datax.service.system.api.vo;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import java.io.Serializable;
import java.time.LocalDateTime;
@Data
public class LogVo implements Serializable {
private static final long serialVersionUID=1L;
private String id;
private String module;
private String title;
private String userId;
private String userName;
private String remoteAddr;
private String requestUri;
private String className;
private String methodName;
private String params;
private String time;
private String browser;
private String os;
private String exCode;
private String exMsg;
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
private LocalDateTime createTime;
}

View File

@@ -0,0 +1,30 @@
package cn.datax.service.system.api.vo;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import java.io.Serializable;
import java.time.LocalDateTime;
/**
* <p>
* 登录日志信息表 实体VO
* </p>
*
* @author AllDataDC
* @since 2023-01-29
*/
@Data
public class LoginLogVo implements Serializable {
private static final long serialVersionUID=1L;
private String id;
private String opOs;
private String opBrowser;
private String opIp;
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
private LocalDateTime opDate;
private String userId;
private String userName;
}

View File

@@ -0,0 +1,30 @@
package cn.datax.service.system.api.vo;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import java.io.Serializable;
import java.time.LocalDateTime;
@Data
public class MenuVo implements Serializable {
private static final long serialVersionUID=1L;
private String id;
private String status;
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
private LocalDateTime createTime;
private String remark;
private String parentId;
private String menuName;
private String menuPath;
private String menuComponent;
private String menuRedirect;
private String menuPerms;
private String menuIcon;
private String menuType;
private String menuCode;
private String menuHidden;
private Integer menuSort;
}

View File

@@ -0,0 +1,20 @@
package cn.datax.service.system.api.vo;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import java.io.Serializable;
import java.time.LocalDateTime;
@Data
public class PostVo implements Serializable {
private static final long serialVersionUID=1L;
private String id;
private String status;
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
private LocalDateTime createTime;
private String remark;
private String postName;
}

View File

@@ -0,0 +1,25 @@
package cn.datax.service.system.api.vo;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import java.io.Serializable;
import java.time.LocalDateTime;
import java.util.List;
@Data
public class RoleVo implements Serializable {
private static final long serialVersionUID=1L;
private String id;
private String status;
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
private LocalDateTime createTime;
private String remark;
private String roleName;
private String roleCode;
private String dataScope;
private List<MenuVo> menus;
private List<DeptVo> depts;
}

View File

@@ -0,0 +1,22 @@
package cn.datax.service.system.api.vo;
import cn.datax.service.system.api.dto.UserDto;
import lombok.Data;
import java.io.Serializable;
@Data
public class UserInfo implements Serializable {
private static final long serialVersionUID=1L;
/**
* 用户基本信息
*/
private UserDto userVo;
/**
* 权限标识集合
*/
private String[] perms;
}

View File

@@ -0,0 +1,32 @@
package cn.datax.service.system.api.vo;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import java.io.Serializable;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.util.List;
@Data
public class UserVo implements Serializable {
private static final long serialVersionUID=1L;
private String id;
private String status;
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
private LocalDateTime createTime;
private String remark;
private String username;
private String nickname;
private String password;
private String email;
private String phone;
@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
private LocalDate birthday;
private String deptId;
private DeptVo dept;
private List<PostVo> posts;
private List<RoleVo> roles;
}

View File

@@ -0,0 +1,20 @@
package cn.datax.service.system.api.vo.route;
import lombok.Data;
import java.io.Serializable;
@Data
public class MetaVo implements Serializable {
private static final long serialVersionUID=1L;
/**
* 路由标题
*/
private String title;
/**
* 路由图标
*/
private String icon;
}

View File

@@ -0,0 +1,41 @@
package cn.datax.service.system.api.vo.route;
import lombok.Data;
import java.io.Serializable;
import java.util.List;
@Data
public class RouteVo implements Serializable {
private static final long serialVersionUID=1L;
/**
* 请求url
*/
private String path;
/**
* 对应组件
*/
private String component;
/**
* 父级菜单重定向地址
*/
private String redirect;
/**
* 路由名称
*/
private String name;
/**
* 路由附带内容
*/
private MetaVo meta;
/**
* 隐藏
*/
private Boolean hidden;
/**
* 子路由
*/
private List<RouteVo> children;
}

View File

@@ -0,0 +1,3 @@
org.springframework.boot.autoconfigure.EnableAutoConfiguration=\
cn.datax.service.system.api.feign.factory.UserServiceFeignFallbackFactory,\
cn.datax.service.system.api.feign.fallback.UserServiceFeignFallbackImpl