mirror of
https://github.com/ccmjga/zhilu-admin
synced 2026-03-25 21:03:43 +08:00
init
This commit is contained in:
129
backend/src/main/java/com/zl/mjga/dto/PageRequestDto.java
Normal file
129
backend/src/main/java/com/zl/mjga/dto/PageRequestDto.java
Normal file
@@ -0,0 +1,129 @@
|
||||
package com.zl.mjga.dto;
|
||||
|
||||
import static org.jooq.impl.DSL.field;
|
||||
import static org.jooq.impl.DSL.name;
|
||||
|
||||
import java.util.*;
|
||||
import java.util.regex.Matcher;
|
||||
import java.util.regex.Pattern;
|
||||
import lombok.*;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.jooq.SortField;
|
||||
import org.jooq.SortOrder;
|
||||
|
||||
@Data
|
||||
@NoArgsConstructor
|
||||
public class PageRequestDto {
|
||||
|
||||
public static final String REGEX = "^[a-zA-Z][a-zA-Z0-9_]*$";
|
||||
|
||||
public static final String SPACE = " ";
|
||||
|
||||
private long page;
|
||||
private long size;
|
||||
|
||||
private Map<String, Direction> sortBy = new HashMap<>();
|
||||
|
||||
public PageRequestDto(int page, int size) {
|
||||
checkPageAndSize(page, size);
|
||||
this.page = page;
|
||||
this.size = size;
|
||||
}
|
||||
|
||||
public PageRequestDto(int page, int size, Map<String, Direction> sortBy) {
|
||||
checkPageAndSize(page, size);
|
||||
this.page = page;
|
||||
this.size = size;
|
||||
this.sortBy = sortBy;
|
||||
}
|
||||
|
||||
@AllArgsConstructor
|
||||
@Getter
|
||||
public enum Direction {
|
||||
ASC("ASC"),
|
||||
DESC("DESC");
|
||||
|
||||
private final String keyword;
|
||||
|
||||
public static Direction fromString(String value) {
|
||||
try {
|
||||
return Direction.valueOf(value.toUpperCase(Locale.US));
|
||||
} catch (Exception e) {
|
||||
throw new IllegalArgumentException(
|
||||
String.format(
|
||||
"Invalid value '%s' for orders given; Has to be either 'desc' or 'asc' (case"
|
||||
+ " insensitive)",
|
||||
value),
|
||||
e);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public static PageRequestDto of(int page, int size) {
|
||||
return new PageRequestDto(page, size);
|
||||
}
|
||||
|
||||
public static PageRequestDto of(int page, int size, Map<String, Direction> sortBy) {
|
||||
return new PageRequestDto(page, size, sortBy);
|
||||
}
|
||||
|
||||
public List<SortField<Object>> getSortFields() {
|
||||
return sortBy.entrySet().stream()
|
||||
.map(
|
||||
(entry) ->
|
||||
field(name(entry.getKey())).sort(SortOrder.valueOf(entry.getValue().getKeyword())))
|
||||
.toList();
|
||||
}
|
||||
|
||||
private void checkPageAndSize(int page, int size) {
|
||||
if (page < 0) {
|
||||
throw new IllegalArgumentException("Page index must not be less than zero");
|
||||
}
|
||||
|
||||
if (size < 1) {
|
||||
throw new IllegalArgumentException("Page size must not be less than one");
|
||||
}
|
||||
}
|
||||
|
||||
public long getOffset() {
|
||||
if (page == 0) {
|
||||
return 0;
|
||||
} else {
|
||||
return (page - 1) * size;
|
||||
}
|
||||
}
|
||||
|
||||
public void setSortBy(String sortBy) {
|
||||
this.sortBy = convertSortBy(sortBy);
|
||||
}
|
||||
|
||||
private Map<String, Direction> convertSortBy(String sortBy) {
|
||||
Map<String, Direction> result = new HashMap<>();
|
||||
if (StringUtils.isEmpty(sortBy)) {
|
||||
return result;
|
||||
}
|
||||
for (String fieldSpaceDirection : sortBy.split(",")) {
|
||||
String[] fieldDirectionArray = fieldSpaceDirection.split(SPACE);
|
||||
if (fieldDirectionArray.length != 2) {
|
||||
throw new IllegalArgumentException(
|
||||
String.format(
|
||||
"Invalid sortBy field format %s. The expect format is [col1 asc,col2 desc]",
|
||||
sortBy));
|
||||
}
|
||||
String field = fieldDirectionArray[0];
|
||||
if (!verifySortField(field)) {
|
||||
throw new IllegalArgumentException(
|
||||
String.format("Invalid Sort field %s. Sort field must match %s", sortBy, REGEX));
|
||||
}
|
||||
String direction = fieldDirectionArray[1];
|
||||
result.put(field, Direction.fromString(direction));
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
private static boolean verifySortField(String sortField) {
|
||||
Pattern pattern = Pattern.compile(REGEX);
|
||||
Matcher matcher = pattern.matcher(sortField);
|
||||
return matcher.matches();
|
||||
}
|
||||
}
|
||||
22
backend/src/main/java/com/zl/mjga/dto/PageResponseDto.java
Normal file
22
backend/src/main/java/com/zl/mjga/dto/PageResponseDto.java
Normal file
@@ -0,0 +1,22 @@
|
||||
package com.zl.mjga.dto;
|
||||
|
||||
import jakarta.annotation.Nullable;
|
||||
import lombok.*;
|
||||
|
||||
@Data
|
||||
public class PageResponseDto<T> {
|
||||
private long total;
|
||||
private T data;
|
||||
|
||||
public PageResponseDto(long total, @Nullable T data) {
|
||||
if (total < 0) {
|
||||
throw new IllegalArgumentException("total must not be less than zero");
|
||||
}
|
||||
this.total = total;
|
||||
this.data = data;
|
||||
}
|
||||
|
||||
public static <T> PageResponseDto<T> empty() {
|
||||
return new PageResponseDto<>(0, null);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,6 @@
|
||||
package com.zl.mjga.dto.department;
|
||||
|
||||
import jakarta.validation.constraints.NotNull;
|
||||
import java.util.List;
|
||||
|
||||
public record DepartmentBindDto(@NotNull Long userId, @NotNull List<Long> departmentIds) {}
|
||||
@@ -0,0 +1,16 @@
|
||||
package com.zl.mjga.dto.department;
|
||||
|
||||
import com.zl.mjga.model.urp.BindState;
|
||||
import lombok.*;
|
||||
|
||||
@Getter
|
||||
@Setter
|
||||
@ToString
|
||||
@AllArgsConstructor
|
||||
@NoArgsConstructor
|
||||
public class DepartmentQueryDto {
|
||||
private Long userId;
|
||||
private String name;
|
||||
private Boolean enable;
|
||||
private BindState bindState = BindState.ALL;
|
||||
}
|
||||
@@ -0,0 +1,20 @@
|
||||
package com.zl.mjga.dto.department;
|
||||
|
||||
import jakarta.validation.constraints.NotEmpty;
|
||||
import jakarta.validation.constraints.NotNull;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Builder;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
||||
@Data
|
||||
@AllArgsConstructor
|
||||
@NoArgsConstructor
|
||||
@Builder
|
||||
public class DepartmentRespDto {
|
||||
@NotNull private Long id;
|
||||
@NotEmpty private String name;
|
||||
private Long parentId;
|
||||
private String parentName;
|
||||
private Boolean isBound;
|
||||
}
|
||||
@@ -0,0 +1,17 @@
|
||||
package com.zl.mjga.dto.department;
|
||||
|
||||
import jakarta.validation.constraints.NotEmpty;
|
||||
import jakarta.validation.constraints.NotNull;
|
||||
import lombok.*;
|
||||
|
||||
@Getter
|
||||
@Setter
|
||||
@ToString
|
||||
@AllArgsConstructor
|
||||
@NoArgsConstructor
|
||||
public class DepartmentUpsertDto {
|
||||
private Long id;
|
||||
@NotEmpty private String name;
|
||||
private Long parentId;
|
||||
@NotNull private Boolean enable;
|
||||
}
|
||||
@@ -0,0 +1,8 @@
|
||||
package com.zl.mjga.dto.permission;
|
||||
|
||||
import jakarta.validation.constraints.NotEmpty;
|
||||
import jakarta.validation.constraints.NotNull;
|
||||
import java.util.List;
|
||||
|
||||
public record PermissionBindDto(
|
||||
@NotNull Long roleId, @NotEmpty(message = "权限不能为空") List<Long> permissionIds) {}
|
||||
@@ -0,0 +1,6 @@
|
||||
package com.zl.mjga.dto.position;
|
||||
|
||||
import jakarta.validation.constraints.NotNull;
|
||||
import java.util.List;
|
||||
|
||||
public record PositionBindDto(@NotNull Long userId, @NotNull List<Long> positionIds) {}
|
||||
@@ -0,0 +1,15 @@
|
||||
package com.zl.mjga.dto.position;
|
||||
|
||||
import com.zl.mjga.model.urp.BindState;
|
||||
import lombok.*;
|
||||
|
||||
@Getter
|
||||
@Setter
|
||||
@ToString
|
||||
@AllArgsConstructor
|
||||
@NoArgsConstructor
|
||||
public class PositionQueryDto {
|
||||
private Long userId;
|
||||
private String name;
|
||||
private BindState bindState = BindState.ALL;
|
||||
}
|
||||
@@ -0,0 +1,19 @@
|
||||
package com.zl.mjga.dto.position;
|
||||
|
||||
import jakarta.validation.constraints.NotEmpty;
|
||||
import jakarta.validation.constraints.NotNull;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Builder;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
||||
@Data
|
||||
@AllArgsConstructor
|
||||
@NoArgsConstructor
|
||||
@Builder
|
||||
public class PositionRespDto {
|
||||
@NotNull private Long id;
|
||||
@NotEmpty private String name;
|
||||
private Long parentId;
|
||||
private Boolean isBound;
|
||||
}
|
||||
@@ -0,0 +1,17 @@
|
||||
package com.zl.mjga.dto.position;
|
||||
|
||||
import jakarta.validation.constraints.NotEmpty;
|
||||
import jakarta.validation.constraints.NotNull;
|
||||
import lombok.*;
|
||||
|
||||
@Getter
|
||||
@Setter
|
||||
@ToString
|
||||
@AllArgsConstructor
|
||||
@NoArgsConstructor
|
||||
public class PositionUpsertDto {
|
||||
private Long id;
|
||||
@NotEmpty private String name;
|
||||
private Long parentId;
|
||||
@NotNull private Boolean enable;
|
||||
}
|
||||
@@ -0,0 +1,8 @@
|
||||
package com.zl.mjga.dto.role;
|
||||
|
||||
import jakarta.validation.constraints.NotEmpty;
|
||||
import jakarta.validation.constraints.NotNull;
|
||||
import java.util.List;
|
||||
|
||||
public record RoleBindDto(
|
||||
@NotNull(message = "用户不能为空") Long userId, @NotEmpty(message = "角色不能为空") List<Long> roleIds) {}
|
||||
@@ -0,0 +1,5 @@
|
||||
package com.zl.mjga.dto.scheduler;
|
||||
|
||||
import jakarta.validation.constraints.NotEmpty;
|
||||
|
||||
public record JobKeyDto(@NotEmpty String name, @NotEmpty String group) {}
|
||||
@@ -0,0 +1,26 @@
|
||||
package com.zl.mjga.dto.scheduler;
|
||||
|
||||
import java.util.Map;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
||||
@Data
|
||||
@AllArgsConstructor
|
||||
@NoArgsConstructor
|
||||
public class JobTriggerDto {
|
||||
private String name;
|
||||
private String group;
|
||||
private String className;
|
||||
private Map jobDataMap;
|
||||
private String triggerName;
|
||||
private String triggerGroup;
|
||||
private String schedulerType;
|
||||
private String cronExpression;
|
||||
private long startTime;
|
||||
private long endTime;
|
||||
private long nextFireTime;
|
||||
private long previousFireTime;
|
||||
private String triggerState;
|
||||
private Map triggerJobDataMap;
|
||||
}
|
||||
@@ -0,0 +1,3 @@
|
||||
package com.zl.mjga.dto.scheduler;
|
||||
|
||||
public record QueryDto(String name) {}
|
||||
@@ -0,0 +1,21 @@
|
||||
package com.zl.mjga.dto.scheduler;
|
||||
|
||||
import java.util.Map;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
||||
@Data
|
||||
@AllArgsConstructor
|
||||
@NoArgsConstructor
|
||||
public class TriggerDto {
|
||||
private String name;
|
||||
private String group;
|
||||
private String schedulerType;
|
||||
private String cronExpression;
|
||||
private long startTime;
|
||||
private long endTime;
|
||||
private long nextFireTime;
|
||||
private long previousFireTime;
|
||||
private Map jobDataMap;
|
||||
}
|
||||
@@ -0,0 +1,5 @@
|
||||
package com.zl.mjga.dto.scheduler;
|
||||
|
||||
import jakarta.validation.constraints.NotEmpty;
|
||||
|
||||
public record TriggerKeyDto(@NotEmpty String name, @NotEmpty String group) {}
|
||||
16
backend/src/main/java/com/zl/mjga/dto/sign/SignInDto.java
Normal file
16
backend/src/main/java/com/zl/mjga/dto/sign/SignInDto.java
Normal file
@@ -0,0 +1,16 @@
|
||||
package com.zl.mjga.dto.sign;
|
||||
|
||||
import jakarta.validation.constraints.NotEmpty;
|
||||
import lombok.*;
|
||||
|
||||
@Getter
|
||||
@Setter
|
||||
@ToString
|
||||
@AllArgsConstructor
|
||||
@NoArgsConstructor
|
||||
public class SignInDto {
|
||||
|
||||
@NotEmpty private String username;
|
||||
|
||||
@NotEmpty private String password;
|
||||
}
|
||||
15
backend/src/main/java/com/zl/mjga/dto/sign/SignUpDto.java
Normal file
15
backend/src/main/java/com/zl/mjga/dto/sign/SignUpDto.java
Normal file
@@ -0,0 +1,15 @@
|
||||
package com.zl.mjga.dto.sign;
|
||||
|
||||
import jakarta.validation.constraints.NotEmpty;
|
||||
import lombok.*;
|
||||
|
||||
@Getter
|
||||
@Setter
|
||||
@ToString
|
||||
@NoArgsConstructor
|
||||
@AllArgsConstructor
|
||||
public class SignUpDto {
|
||||
@NotEmpty private String username;
|
||||
|
||||
@NotEmpty private String password;
|
||||
}
|
||||
@@ -0,0 +1,18 @@
|
||||
package com.zl.mjga.dto.urp;
|
||||
|
||||
import com.zl.mjga.model.urp.BindState;
|
||||
import java.util.List;
|
||||
import lombok.*;
|
||||
|
||||
@AllArgsConstructor
|
||||
@NoArgsConstructor
|
||||
@Data
|
||||
public class PermissionQueryDto {
|
||||
|
||||
private Long roleId;
|
||||
private Long permissionId;
|
||||
private String permissionCode;
|
||||
private String permissionName;
|
||||
private List<Long> permissionIdList;
|
||||
private BindState bindState = BindState.ALL;
|
||||
}
|
||||
@@ -0,0 +1,14 @@
|
||||
package com.zl.mjga.dto.urp;
|
||||
|
||||
import lombok.*;
|
||||
|
||||
@AllArgsConstructor
|
||||
@NoArgsConstructor
|
||||
@Data
|
||||
@Builder
|
||||
public class PermissionRespDto {
|
||||
private Long id;
|
||||
private String code;
|
||||
private String name;
|
||||
private Boolean isBound;
|
||||
}
|
||||
@@ -0,0 +1,15 @@
|
||||
package com.zl.mjga.dto.urp;
|
||||
|
||||
import jakarta.validation.constraints.NotEmpty;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
||||
@AllArgsConstructor
|
||||
@NoArgsConstructor
|
||||
@Data
|
||||
public class PermissionUpsertDto {
|
||||
private Long id;
|
||||
@NotEmpty private String code;
|
||||
@NotEmpty private String name;
|
||||
}
|
||||
17
backend/src/main/java/com/zl/mjga/dto/urp/RoleDto.java
Normal file
17
backend/src/main/java/com/zl/mjga/dto/urp/RoleDto.java
Normal file
@@ -0,0 +1,17 @@
|
||||
package com.zl.mjga.dto.urp;
|
||||
|
||||
import java.util.LinkedList;
|
||||
import java.util.List;
|
||||
import lombok.*;
|
||||
|
||||
@AllArgsConstructor
|
||||
@NoArgsConstructor
|
||||
@Data
|
||||
@Builder
|
||||
public class RoleDto {
|
||||
private Long id;
|
||||
private String code;
|
||||
private String name;
|
||||
private Boolean isBound;
|
||||
@Builder.Default List<PermissionRespDto> permissions = new LinkedList<>();
|
||||
}
|
||||
18
backend/src/main/java/com/zl/mjga/dto/urp/RoleQueryDto.java
Normal file
18
backend/src/main/java/com/zl/mjga/dto/urp/RoleQueryDto.java
Normal file
@@ -0,0 +1,18 @@
|
||||
package com.zl.mjga.dto.urp;
|
||||
|
||||
import com.zl.mjga.model.urp.BindState;
|
||||
import java.util.List;
|
||||
import lombok.*;
|
||||
|
||||
@AllArgsConstructor
|
||||
@NoArgsConstructor
|
||||
@Data
|
||||
public class RoleQueryDto {
|
||||
|
||||
private Long userId;
|
||||
private Long roleId;
|
||||
private String roleCode;
|
||||
private String roleName;
|
||||
private List<Long> roleIdList;
|
||||
private BindState bindState = BindState.ALL;
|
||||
}
|
||||
15
backend/src/main/java/com/zl/mjga/dto/urp/RoleUpsertDto.java
Normal file
15
backend/src/main/java/com/zl/mjga/dto/urp/RoleUpsertDto.java
Normal file
@@ -0,0 +1,15 @@
|
||||
package com.zl.mjga.dto.urp;
|
||||
|
||||
import jakarta.validation.constraints.NotEmpty;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
||||
@AllArgsConstructor
|
||||
@NoArgsConstructor
|
||||
@Data
|
||||
public class RoleUpsertDto {
|
||||
private Long id;
|
||||
@NotEmpty private String code;
|
||||
@NotEmpty private String name;
|
||||
}
|
||||
10
backend/src/main/java/com/zl/mjga/dto/urp/UserQueryDto.java
Normal file
10
backend/src/main/java/com/zl/mjga/dto/urp/UserQueryDto.java
Normal file
@@ -0,0 +1,10 @@
|
||||
package com.zl.mjga.dto.urp;
|
||||
|
||||
import lombok.*;
|
||||
|
||||
@AllArgsConstructor
|
||||
@NoArgsConstructor
|
||||
@Data
|
||||
public class UserQueryDto {
|
||||
private String username;
|
||||
}
|
||||
@@ -0,0 +1,34 @@
|
||||
package com.zl.mjga.dto.urp;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||
import com.fasterxml.jackson.annotation.JsonProperty;
|
||||
import java.time.OffsetDateTime;
|
||||
import java.util.LinkedList;
|
||||
import java.util.List;
|
||||
import java.util.Set;
|
||||
import java.util.stream.Collectors;
|
||||
import lombok.*;
|
||||
|
||||
@AllArgsConstructor
|
||||
@NoArgsConstructor
|
||||
@Data
|
||||
@Builder
|
||||
public class UserRolePermissionDto {
|
||||
private Long id;
|
||||
private String username;
|
||||
|
||||
@JsonProperty(access = JsonProperty.Access.WRITE_ONLY)
|
||||
private String password;
|
||||
|
||||
private Boolean enable;
|
||||
@Builder.Default private List<RoleDto> roles = new LinkedList<>();
|
||||
|
||||
@JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd HH:mm:ss")
|
||||
private OffsetDateTime createTime;
|
||||
|
||||
public Set<PermissionRespDto> getPermissions() {
|
||||
return roles.stream()
|
||||
.flatMap((roleDto) -> roleDto.getPermissions().stream())
|
||||
.collect(Collectors.toSet());
|
||||
}
|
||||
}
|
||||
17
backend/src/main/java/com/zl/mjga/dto/urp/UserUpsertDto.java
Normal file
17
backend/src/main/java/com/zl/mjga/dto/urp/UserUpsertDto.java
Normal file
@@ -0,0 +1,17 @@
|
||||
package com.zl.mjga.dto.urp;
|
||||
|
||||
import jakarta.validation.constraints.NotEmpty;
|
||||
import jakarta.validation.constraints.NotNull;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
||||
@AllArgsConstructor
|
||||
@NoArgsConstructor
|
||||
@Data
|
||||
public class UserUpsertDto {
|
||||
private Long id;
|
||||
@NotEmpty private String username;
|
||||
private String password;
|
||||
@NotNull private Boolean enable;
|
||||
}
|
||||
Reference in New Issue
Block a user