Compare commits
1 Commits
1ec345e18d
...
jdk17
| Author | SHA1 | Date | |
|---|---|---|---|
| 6eacbfddd4 |
5
.idea/jarRepositories.xml
generated
5
.idea/jarRepositories.xml
generated
@@ -1,6 +1,11 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
<project version="4">
|
<project version="4">
|
||||||
<component name="RemoteRepositoriesConfiguration">
|
<component name="RemoteRepositoriesConfiguration">
|
||||||
|
<remote-repository>
|
||||||
|
<option name="id" value="central" />
|
||||||
|
<option name="name" value="Central Repository" />
|
||||||
|
<option name="url" value="https://repo.maven.apache.org/maven2" />
|
||||||
|
</remote-repository>
|
||||||
<remote-repository>
|
<remote-repository>
|
||||||
<option name="id" value="mavenCentral" />
|
<option name="id" value="mavenCentral" />
|
||||||
<option name="name" value="mavenCentral" />
|
<option name="name" value="mavenCentral" />
|
||||||
|
|||||||
2
.idea/misc.xml
generated
2
.idea/misc.xml
generated
@@ -8,7 +8,7 @@
|
|||||||
</list>
|
</list>
|
||||||
</option>
|
</option>
|
||||||
</component>
|
</component>
|
||||||
<component name="ProjectRootManager" version="2" languageLevel="JDK_11" default="true" project-jdk-name="corretto-11" project-jdk-type="JavaSDK">
|
<component name="ProjectRootManager" version="2" languageLevel="JDK_17" default="true" project-jdk-name="temurin-17" project-jdk-type="JavaSDK">
|
||||||
<output url="file://$PROJECT_DIR$/out" />
|
<output url="file://$PROJECT_DIR$/out" />
|
||||||
</component>
|
</component>
|
||||||
<component name="ProjectType">
|
<component name="ProjectType">
|
||||||
|
|||||||
@@ -43,7 +43,7 @@
|
|||||||
</dependency>
|
</dependency>
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>cn.dev33</groupId>
|
<groupId>cn.dev33</groupId>
|
||||||
<artifactId>sa-token-spring-boot-starter</artifactId>
|
<artifactId>sa-token-spring-boot3-starter</artifactId>
|
||||||
</dependency>
|
</dependency>
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>org.springframework.retry</groupId>
|
<groupId>org.springframework.retry</groupId>
|
||||||
|
|||||||
@@ -18,7 +18,7 @@
|
|||||||
</dependency>
|
</dependency>
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>com.dtflys.forest</groupId>
|
<groupId>com.dtflys.forest</groupId>
|
||||||
<artifactId>forest-spring-boot-starter</artifactId>
|
<artifactId>forest-spring-boot3-starter</artifactId>
|
||||||
</dependency>
|
</dependency>
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>org.springframework.cloud</groupId>
|
<groupId>org.springframework.cloud</groupId>
|
||||||
|
|||||||
@@ -98,7 +98,6 @@ export function inputFileFormItemCommonOptions(accept = '*', maxSize = size5MB)
|
|||||||
accept: accept,
|
accept: accept,
|
||||||
maxSize: maxSize,
|
maxSize: maxSize,
|
||||||
autoUpload: false,
|
autoUpload: false,
|
||||||
drag: true,
|
|
||||||
startChunkApi: apiPost('${base}/upload/start'),
|
startChunkApi: apiPost('${base}/upload/start'),
|
||||||
chunkApi: apiPost('${base}/upload/slice'),
|
chunkApi: apiPost('${base}/upload/slice'),
|
||||||
finishChunkApi: apiPost('${base}/upload/finish'),
|
finishChunkApi: apiPost('${base}/upload/finish'),
|
||||||
@@ -198,7 +197,7 @@ export function stringField(field, label, width = undefined, wrap = false) {
|
|||||||
if (width) {
|
if (width) {
|
||||||
data['width'] = width
|
data['width'] = width
|
||||||
}
|
}
|
||||||
if (!wrap) {
|
if (wrap) {
|
||||||
data['className'] = 'nowrap'
|
data['className'] = 'nowrap'
|
||||||
}
|
}
|
||||||
return data
|
return data
|
||||||
@@ -248,11 +247,10 @@ export const userStateMapping = [
|
|||||||
mappingItem('禁用', 'DISABLED', 'bg-danger'),
|
mappingItem('禁用', 'DISABLED', 'bg-danger'),
|
||||||
]
|
]
|
||||||
|
|
||||||
export const permissionStateMapping = [
|
export const confirmationStateMapping = [
|
||||||
mappingItem('未确权', 'NONE'),
|
mappingItem('未确权', 'NONE'),
|
||||||
mappingItem('草稿', 'DRAFT', 'bg-primary'),
|
mappingItem('草稿', 'DRAFT', 'bg-primary'),
|
||||||
mappingItem('审查中', 'CHECKING', 'bg-warning'),
|
mappingItem('审查中', 'CHECKING', 'bg-warning'),
|
||||||
mappingItem('用户审查中', 'USER_CHECKING', 'bg-warning'),
|
|
||||||
mappingItem('通过', 'NORMAL', 'bg-success'),
|
mappingItem('通过', 'NORMAL', 'bg-success'),
|
||||||
mappingItem('驳回', 'REJECT', 'bg-danger'),
|
mappingItem('驳回', 'REJECT', 'bg-danger'),
|
||||||
]
|
]
|
||||||
|
|||||||
@@ -12,12 +12,8 @@ import {
|
|||||||
import {resourceList} from "../../pages/index/tab-data.js";
|
import {resourceList} from "../../pages/index/tab-data.js";
|
||||||
import {resourceDetailDialog} from "../resource/dialog-resource.js";
|
import {resourceDetailDialog} from "../resource/dialog-resource.js";
|
||||||
|
|
||||||
const CONFIRMATION_TYPE = 'confirmation'
|
|
||||||
const AUTHENTICATION_TYPE = 'authentication'
|
|
||||||
|
|
||||||
function detailForm(showCreatedUserAndModifiedUser = false) {
|
function detailForm(showCreatedUserAndModifiedUser = false) {
|
||||||
return {
|
return {
|
||||||
debug: true,
|
|
||||||
id: 'permission_form',
|
id: 'permission_form',
|
||||||
type: 'form',
|
type: 'form',
|
||||||
...horizontalFormOptions(),
|
...horizontalFormOptions(),
|
||||||
@@ -74,38 +70,12 @@ function detailForm(showCreatedUserAndModifiedUser = false) {
|
|||||||
joinValues: false,
|
joinValues: false,
|
||||||
...inputFileFormItemCommonOptions(undefined, size100MB),
|
...inputFileFormItemCommonOptions(undefined, size100MB),
|
||||||
},
|
},
|
||||||
{
|
|
||||||
visibleOn: `\${${AUTHENTICATION_TYPE}}`,
|
|
||||||
type: 'input-datetime-range',
|
|
||||||
name: 'activeTime',
|
|
||||||
extraName: 'expiredTime',
|
|
||||||
label: '授权时间',
|
|
||||||
required: true,
|
|
||||||
format: 'YYYY-MM-DD HH:mm:ss',
|
|
||||||
shortcuts: [
|
|
||||||
'7dayslater',
|
|
||||||
'14dayslater',
|
|
||||||
'30dayslater',
|
|
||||||
'180dayslater',
|
|
||||||
'365dayslater',
|
|
||||||
]
|
|
||||||
},
|
|
||||||
...(showCreatedUserAndModifiedUser ? formCreatedUserAndModifiedUser() : [])
|
...(showCreatedUserAndModifiedUser ? formCreatedUserAndModifiedUser() : [])
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
export function confirmationAddDialog() {
|
export function permissionAddDialog() {
|
||||||
return permissionAddDialog(CONFIRMATION_TYPE)
|
|
||||||
}
|
|
||||||
|
|
||||||
export function authenticationAddDialog() {
|
|
||||||
return permissionAddDialog(AUTHENTICATION_TYPE)
|
|
||||||
}
|
|
||||||
|
|
||||||
function permissionAddDialog(type) {
|
|
||||||
let data = {add: true}
|
|
||||||
data[type] = true
|
|
||||||
return {
|
return {
|
||||||
actionType: 'dialog',
|
actionType: 'dialog',
|
||||||
dialog: {
|
dialog: {
|
||||||
@@ -124,24 +94,16 @@ function permissionAddDialog(type) {
|
|||||||
],
|
],
|
||||||
body: {
|
body: {
|
||||||
...detailForm(),
|
...detailForm(),
|
||||||
api: apiPost(`\${base}/${type}/save`),
|
api: apiPost('${base}/confirmation/save'),
|
||||||
data: data,
|
data: {
|
||||||
|
add: true,
|
||||||
|
},
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
export function confirmationDetailDialog(field = 'id', actions = []) {
|
export function permissionDetailDialog(field = 'id', actions = []) {
|
||||||
return permissionDetailDialog(CONFIRMATION_TYPE, field, actions)
|
|
||||||
}
|
|
||||||
|
|
||||||
export function authenticationDetailDialog(field = 'id', actions = []) {
|
|
||||||
return permissionDetailDialog(AUTHENTICATION_TYPE, field, actions)
|
|
||||||
}
|
|
||||||
|
|
||||||
function permissionDetailDialog(type, field = 'id', actions = []) {
|
|
||||||
let data = {detail: true}
|
|
||||||
data[type] = true
|
|
||||||
return {
|
return {
|
||||||
actionType: 'dialog',
|
actionType: 'dialog',
|
||||||
dialog: {
|
dialog: {
|
||||||
@@ -150,25 +112,17 @@ function permissionDetailDialog(type, field = 'id', actions = []) {
|
|||||||
actions: actions,
|
actions: actions,
|
||||||
body: {
|
body: {
|
||||||
...detailForm(true),
|
...detailForm(true),
|
||||||
initApi: apiGet(`\${base}/${type}/detail/\${${field}}`),
|
initApi: apiGet(`\${base}/confirmation/detail/\${${field}}`),
|
||||||
static: true,
|
static: true,
|
||||||
data: data,
|
data: {
|
||||||
|
detail: true,
|
||||||
|
},
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
export function confirmationEditeDialog(field = 'id') {
|
export function permissionEditeDialog(field = 'id') {
|
||||||
return permissionEditeDialog(CONFIRMATION_TYPE, field)
|
|
||||||
}
|
|
||||||
|
|
||||||
export function authenticationEditeDialog(field = 'id') {
|
|
||||||
return permissionEditeDialog(CONFIRMATION_TYPE, field)
|
|
||||||
}
|
|
||||||
|
|
||||||
function permissionEditeDialog(type, field = 'id') {
|
|
||||||
let data = {edit: true}
|
|
||||||
data[type] = true
|
|
||||||
return {
|
return {
|
||||||
actionType: 'dialog',
|
actionType: 'dialog',
|
||||||
dialog: {
|
dialog: {
|
||||||
@@ -187,9 +141,11 @@ function permissionEditeDialog(type, field = 'id') {
|
|||||||
],
|
],
|
||||||
body: {
|
body: {
|
||||||
...detailForm(),
|
...detailForm(),
|
||||||
api: apiPost(`\${base}/${type}/save`),
|
api: apiPost('${base}/confirmation/save'),
|
||||||
initApi: apiGet(`\${base}/${type}/detail/\${${field}}`),
|
initApi: apiGet(`\${base}/confirmation/detail/\${${field}}`),
|
||||||
data: data,
|
data: {
|
||||||
|
edit: true,
|
||||||
|
}
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -59,9 +59,9 @@ useAmis(information => {
|
|||||||
tabs: [
|
tabs: [
|
||||||
// tabOverview(),
|
// tabOverview(),
|
||||||
// tabMarket(),
|
// tabMarket(),
|
||||||
tabPermissions(),
|
|
||||||
tabCheck(),
|
tabCheck(),
|
||||||
tabData(),
|
tabData(),
|
||||||
|
tabPermissions(),
|
||||||
tabUser(),
|
tabUser(),
|
||||||
tabSettings(),
|
tabSettings(),
|
||||||
]
|
]
|
||||||
|
|||||||
@@ -9,7 +9,7 @@ import {
|
|||||||
stringField,
|
stringField,
|
||||||
timeField,
|
timeField,
|
||||||
} from "../../components/constants.js";
|
} from "../../components/constants.js";
|
||||||
import {confirmationDetailDialog} from "../../components/permission/dialog-permission.js";
|
import {permissionDetailDialog} from "../../components/permission/dialog-permission.js";
|
||||||
|
|
||||||
export function tabCheck() {
|
export function tabCheck() {
|
||||||
return {
|
return {
|
||||||
@@ -40,7 +40,7 @@ export function tabCheck() {
|
|||||||
type: 'action',
|
type: 'action',
|
||||||
label: '处理',
|
label: '处理',
|
||||||
level: 'link',
|
level: 'link',
|
||||||
...confirmationDetailDialog(
|
...permissionDetailDialog(
|
||||||
'parameters.confirmationId',
|
'parameters.confirmationId',
|
||||||
[
|
[
|
||||||
{
|
{
|
||||||
@@ -67,7 +67,7 @@ export function tabCheck() {
|
|||||||
type: 'action',
|
type: 'action',
|
||||||
label: '查看',
|
label: '查看',
|
||||||
level: 'link',
|
level: 'link',
|
||||||
...confirmationDetailDialog('parameters.confirmationId'),
|
...permissionDetailDialog('parameters.confirmationId'),
|
||||||
},
|
},
|
||||||
]),
|
]),
|
||||||
],
|
],
|
||||||
|
|||||||
@@ -8,10 +8,10 @@ import {
|
|||||||
arrayInCheck,
|
arrayInCheck,
|
||||||
arrayOutCheck,
|
arrayOutCheck,
|
||||||
confirmationState,
|
confirmationState,
|
||||||
|
confirmationStateMapping,
|
||||||
crudCommonOptions,
|
crudCommonOptions,
|
||||||
mappingField,
|
mappingField,
|
||||||
operationField,
|
operationField,
|
||||||
permissionStateMapping,
|
|
||||||
timeField,
|
timeField,
|
||||||
userOnly
|
userOnly
|
||||||
} from "../../components/constants.js";
|
} from "../../components/constants.js";
|
||||||
@@ -40,7 +40,7 @@ export function resourceList() {
|
|||||||
label: '描述',
|
label: '描述',
|
||||||
name: 'description',
|
name: 'description',
|
||||||
},
|
},
|
||||||
mappingField('confirmationState', '确权状态', permissionStateMapping),
|
mappingField('confirmationState', '确权状态', confirmationStateMapping),
|
||||||
timeField('createdTime', '创建时间'),
|
timeField('createdTime', '创建时间'),
|
||||||
operationField('操作', undefined, [
|
operationField('操作', undefined, [
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -1,10 +1,9 @@
|
|||||||
import {
|
import {
|
||||||
apiGet,
|
apiGet,
|
||||||
|
confirmationStateMapping,
|
||||||
crudCommonOptions,
|
crudCommonOptions,
|
||||||
customerOnly,
|
|
||||||
mappingField,
|
mappingField,
|
||||||
operationField,
|
operationField,
|
||||||
permissionStateMapping,
|
|
||||||
providerOnly,
|
providerOnly,
|
||||||
stringField,
|
stringField,
|
||||||
stringWrapField,
|
stringWrapField,
|
||||||
@@ -12,12 +11,9 @@ import {
|
|||||||
userOnly,
|
userOnly,
|
||||||
} from "../../components/constants.js";
|
} from "../../components/constants.js";
|
||||||
import {
|
import {
|
||||||
authenticationAddDialog,
|
permissionAddDialog,
|
||||||
authenticationDetailDialog,
|
permissionDetailDialog,
|
||||||
authenticationEditeDialog,
|
permissionEditeDialog,
|
||||||
confirmationAddDialog,
|
|
||||||
confirmationDetailDialog,
|
|
||||||
confirmationEditeDialog,
|
|
||||||
} from "../../components/permission/dialog-permission.js";
|
} from "../../components/permission/dialog-permission.js";
|
||||||
|
|
||||||
export function tabPermissions() {
|
export function tabPermissions() {
|
||||||
@@ -29,85 +25,6 @@ export function tabPermissions() {
|
|||||||
body: {
|
body: {
|
||||||
type: 'tabs',
|
type: 'tabs',
|
||||||
tabs: [
|
tabs: [
|
||||||
{
|
|
||||||
visibleOn: customerOnly,
|
|
||||||
title: '授权管理',
|
|
||||||
body: {
|
|
||||||
type: 'crud',
|
|
||||||
api: {
|
|
||||||
...apiGet('${base}/authentication/list')
|
|
||||||
},
|
|
||||||
...crudCommonOptions(),
|
|
||||||
headerToolbar: [
|
|
||||||
'reload',
|
|
||||||
{
|
|
||||||
type: 'action',
|
|
||||||
label: '',
|
|
||||||
icon: 'fa fa-plus',
|
|
||||||
...authenticationAddDialog()
|
|
||||||
},
|
|
||||||
],
|
|
||||||
columns: [
|
|
||||||
stringField('name', '名称', 200),
|
|
||||||
stringWrapField('description', '描述'),
|
|
||||||
mappingField('state', '状态', permissionStateMapping),
|
|
||||||
timeField('createdTime', '创建时间'),
|
|
||||||
operationField('操作', undefined, [
|
|
||||||
{
|
|
||||||
type: 'action',
|
|
||||||
label: '查看',
|
|
||||||
level: 'link',
|
|
||||||
...authenticationDetailDialog(),
|
|
||||||
},
|
|
||||||
{
|
|
||||||
visibleOn: "${state === 'CHECKING'}",
|
|
||||||
type: 'action',
|
|
||||||
label: '撤销',
|
|
||||||
level: 'link',
|
|
||||||
confirmTitle: '确认撤销',
|
|
||||||
confirmText: '确认撤销名称为「${name}」的确权申请吗?',
|
|
||||||
actionType: 'ajax',
|
|
||||||
api: apiGet('${base}/authentication/retract/${id}'),
|
|
||||||
},
|
|
||||||
{
|
|
||||||
visibleOn: "${state === 'DRAFT' || state === 'REJECT'}",
|
|
||||||
type: 'action',
|
|
||||||
label: '提交',
|
|
||||||
level: 'link',
|
|
||||||
confirmTitle: '确认提交',
|
|
||||||
confirmText: '确认提交名称为「${name}」的确权申请吗?',
|
|
||||||
actionType: 'ajax',
|
|
||||||
api: apiGet('${base}/authentication/submit/${id}'),
|
|
||||||
},
|
|
||||||
{
|
|
||||||
type: 'dropdown-button',
|
|
||||||
level: 'link',
|
|
||||||
icon: 'fa fa-ellipsis-h',
|
|
||||||
hideCaret: true,
|
|
||||||
trigger: 'hover',
|
|
||||||
buttons: [
|
|
||||||
{
|
|
||||||
disabledOn: "${state !== 'DRAFT'}",
|
|
||||||
type: 'action',
|
|
||||||
label: '编辑',
|
|
||||||
level: 'link',
|
|
||||||
...authenticationEditeDialog(),
|
|
||||||
},
|
|
||||||
{
|
|
||||||
disabledOn: "${state === 'CHECKING'}",
|
|
||||||
type: 'action',
|
|
||||||
label: "删除",
|
|
||||||
confirmTitle: '确认删除',
|
|
||||||
confirmText: '确认删除名称为「${name}」的确权申请吗?删除后对应的数据资源处于未确权状态。',
|
|
||||||
actionType: 'ajax',
|
|
||||||
api: apiGet('${base}/authentication/remove/${id}'),
|
|
||||||
},
|
|
||||||
]
|
|
||||||
},
|
|
||||||
]),
|
|
||||||
]
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
visibleOn: providerOnly,
|
visibleOn: providerOnly,
|
||||||
title: '确权管理',
|
title: '确权管理',
|
||||||
@@ -123,20 +40,20 @@ export function tabPermissions() {
|
|||||||
type: 'action',
|
type: 'action',
|
||||||
label: '',
|
label: '',
|
||||||
icon: 'fa fa-plus',
|
icon: 'fa fa-plus',
|
||||||
...confirmationAddDialog()
|
...permissionAddDialog()
|
||||||
},
|
},
|
||||||
],
|
],
|
||||||
columns: [
|
columns: [
|
||||||
stringField('name', '名称', 200),
|
stringField('name', '名称', 200),
|
||||||
stringWrapField('description', '描述'),
|
stringWrapField('description', '描述'),
|
||||||
mappingField('state', '状态', permissionStateMapping),
|
mappingField('state', '状态', confirmationStateMapping),
|
||||||
timeField('createdTime', '创建时间'),
|
timeField('createdTime', '创建时间'),
|
||||||
operationField('操作', undefined, [
|
operationField('操作', undefined, [
|
||||||
{
|
{
|
||||||
type: 'action',
|
type: 'action',
|
||||||
label: '查看',
|
label: '查看',
|
||||||
level: 'link',
|
level: 'link',
|
||||||
...confirmationDetailDialog(),
|
...permissionDetailDialog(),
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
visibleOn: "${state === 'CHECKING'}",
|
visibleOn: "${state === 'CHECKING'}",
|
||||||
@@ -170,7 +87,7 @@ export function tabPermissions() {
|
|||||||
type: 'action',
|
type: 'action',
|
||||||
label: '编辑',
|
label: '编辑',
|
||||||
level: 'link',
|
level: 'link',
|
||||||
...confirmationEditeDialog(),
|
...permissionEditeDialog(),
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
disabledOn: "${state === 'CHECKING'}",
|
disabledOn: "${state === 'CHECKING'}",
|
||||||
@@ -187,6 +104,10 @@ export function tabPermissions() {
|
|||||||
]
|
]
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
title: '授权管理',
|
||||||
|
body: []
|
||||||
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -19,6 +19,12 @@
|
|||||||
<dependency>
|
<dependency>
|
||||||
<groupId>com.eshore</groupId>
|
<groupId>com.eshore</groupId>
|
||||||
<artifactId>gringotts-forest</artifactId>
|
<artifactId>gringotts-forest</artifactId>
|
||||||
|
<exclusions>
|
||||||
|
<exclusion>
|
||||||
|
<groupId>commons-logging</groupId>
|
||||||
|
<artifactId>commons-logging</artifactId>
|
||||||
|
</exclusion>
|
||||||
|
</exclusions>
|
||||||
</dependency>
|
</dependency>
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>org.springframework.boot</groupId>
|
<groupId>org.springframework.boot</groupId>
|
||||||
|
|||||||
@@ -1,87 +0,0 @@
|
|||||||
package com.eshore.gringotts.web.domain.authentication.controller;
|
|
||||||
|
|
||||||
import com.eshore.gringotts.web.domain.authentication.entity.Authentication;
|
|
||||||
import com.eshore.gringotts.web.domain.authentication.service.AuthenticationService;
|
|
||||||
import com.eshore.gringotts.web.domain.base.controller.SimpleControllerSupport;
|
|
||||||
import com.eshore.gringotts.web.domain.base.entity.FileInfo;
|
|
||||||
import com.eshore.gringotts.web.domain.base.entity.SimpleListItem;
|
|
||||||
import com.eshore.gringotts.web.domain.base.entity.SimpleSaveItem;
|
|
||||||
import com.eshore.gringotts.web.domain.resource.service.DataResourceService;
|
|
||||||
import com.eshore.gringotts.web.domain.upload.service.DataFileService;
|
|
||||||
import java.time.LocalDateTime;
|
|
||||||
import lombok.Data;
|
|
||||||
import lombok.EqualsAndHashCode;
|
|
||||||
import lombok.extern.slf4j.Slf4j;
|
|
||||||
import org.eclipse.collections.api.set.ImmutableSet;
|
|
||||||
import org.springframework.web.bind.annotation.RequestMapping;
|
|
||||||
import org.springframework.web.bind.annotation.RestController;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @author lanyuanxiaoyao
|
|
||||||
* @date 2024-12-02
|
|
||||||
*/
|
|
||||||
@Slf4j
|
|
||||||
@RestController
|
|
||||||
@RequestMapping("authentication")
|
|
||||||
public class AuthenticationController extends SimpleControllerSupport<Authentication, AuthenticationController.SaveItem, AuthenticationController.ListItem, AuthenticationController.DetailItem> {
|
|
||||||
private final AuthenticationService authenticationService;
|
|
||||||
private final DataResourceService dataResourceService;
|
|
||||||
private final DataFileService dataFileService;
|
|
||||||
|
|
||||||
public AuthenticationController(AuthenticationService service, DataResourceService dataResourceService, DataFileService dataFileService) {
|
|
||||||
super(service);
|
|
||||||
this.authenticationService = service;
|
|
||||||
this.dataResourceService = dataResourceService;
|
|
||||||
this.dataFileService = dataFileService;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
protected Authentication fromSaveItem(SaveItem item) {
|
|
||||||
Authentication authentication = new Authentication();
|
|
||||||
authentication.setId(item.getId());
|
|
||||||
authentication.setDescription(item.getDescription());
|
|
||||||
authentication.setTarget(dataResourceService.detailOrThrow(item.getTargetId()));
|
|
||||||
authentication.setEvidences(dataFileService.list(item.getEvidenceFiles().collect(FileInfo::getValue)).toSet());
|
|
||||||
authentication.setActiveTime(item.getActiveTime());
|
|
||||||
authentication.setExpiredTime(item.getExpiredTime());
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
protected ListItem toListItem(Authentication entity) {
|
|
||||||
ListItem item = new ListItem();
|
|
||||||
item.setId(entity.getId());
|
|
||||||
item.setName(entity.getTarget().getName());
|
|
||||||
item.setDescription(entity.getDescription());
|
|
||||||
item.setState(entity.getState().name());
|
|
||||||
item.setCreatedUsername(entity.getCreatedUser().getUsername());
|
|
||||||
item.setCreatedTime(entity.getCreatedTime());
|
|
||||||
return item;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
protected DetailItem toDetailItem(Authentication entity) {
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Data
|
|
||||||
@EqualsAndHashCode(callSuper = true)
|
|
||||||
public static final class SaveItem extends SimpleSaveItem<Authentication> {
|
|
||||||
private Long targetId;
|
|
||||||
private String description;
|
|
||||||
private ImmutableSet<FileInfo> evidenceFiles;
|
|
||||||
private LocalDateTime activeTime;
|
|
||||||
private LocalDateTime expiredTime;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Data
|
|
||||||
@EqualsAndHashCode(callSuper = true)
|
|
||||||
public static final class ListItem extends SimpleListItem<Authentication> {
|
|
||||||
private String name;
|
|
||||||
private String description;
|
|
||||||
private String state;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Data
|
|
||||||
public static final class DetailItem {}
|
|
||||||
}
|
|
||||||
@@ -2,30 +2,26 @@ package com.eshore.gringotts.web.domain.authentication.entity;
|
|||||||
|
|
||||||
import com.eshore.gringotts.core.Constants;
|
import com.eshore.gringotts.core.Constants;
|
||||||
import com.eshore.gringotts.web.domain.base.entity.CheckingNeededEntity;
|
import com.eshore.gringotts.web.domain.base.entity.CheckingNeededEntity;
|
||||||
import com.eshore.gringotts.web.domain.base.entity.LogicDeleteEntity;
|
|
||||||
import com.eshore.gringotts.web.domain.resource.entity.DataResource;
|
import com.eshore.gringotts.web.domain.resource.entity.DataResource;
|
||||||
import com.eshore.gringotts.web.domain.upload.entity.DataFile;
|
import com.eshore.gringotts.web.domain.upload.entity.DataFile;
|
||||||
import java.time.LocalDateTime;
|
import jakarta.persistence.CascadeType;
|
||||||
|
import jakarta.persistence.ConstraintMode;
|
||||||
|
import jakarta.persistence.Entity;
|
||||||
|
import jakarta.persistence.EntityListeners;
|
||||||
|
import jakarta.persistence.FetchType;
|
||||||
|
import jakarta.persistence.ForeignKey;
|
||||||
|
import jakarta.persistence.JoinColumn;
|
||||||
|
import jakarta.persistence.JoinTable;
|
||||||
|
import jakarta.persistence.ManyToOne;
|
||||||
|
import jakarta.persistence.NamedAttributeNode;
|
||||||
|
import jakarta.persistence.NamedEntityGraph;
|
||||||
|
import jakarta.persistence.OneToMany;
|
||||||
|
import jakarta.persistence.Table;
|
||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
import javax.persistence.CascadeType;
|
|
||||||
import javax.persistence.Column;
|
|
||||||
import javax.persistence.ConstraintMode;
|
|
||||||
import javax.persistence.Entity;
|
|
||||||
import javax.persistence.EntityListeners;
|
|
||||||
import javax.persistence.FetchType;
|
|
||||||
import javax.persistence.ForeignKey;
|
|
||||||
import javax.persistence.JoinColumn;
|
|
||||||
import javax.persistence.JoinTable;
|
|
||||||
import javax.persistence.ManyToOne;
|
|
||||||
import javax.persistence.NamedAttributeNode;
|
|
||||||
import javax.persistence.NamedEntityGraph;
|
|
||||||
import javax.persistence.OneToMany;
|
|
||||||
import javax.persistence.Table;
|
|
||||||
import lombok.Getter;
|
import lombok.Getter;
|
||||||
import lombok.Setter;
|
import lombok.Setter;
|
||||||
import lombok.ToString;
|
import lombok.ToString;
|
||||||
import org.hibernate.annotations.DynamicUpdate;
|
import org.hibernate.annotations.DynamicUpdate;
|
||||||
import org.hibernate.annotations.Where;
|
|
||||||
import org.springframework.data.jpa.domain.support.AuditingEntityListener;
|
import org.springframework.data.jpa.domain.support.AuditingEntityListener;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -54,21 +50,9 @@ import org.springframework.data.jpa.domain.support.AuditingEntityListener;
|
|||||||
public class Authentication extends CheckingNeededEntity {
|
public class Authentication extends CheckingNeededEntity {
|
||||||
@ManyToOne(fetch = FetchType.EAGER)
|
@ManyToOne(fetch = FetchType.EAGER)
|
||||||
@JoinColumn(nullable = false, foreignKey = @ForeignKey(ConstraintMode.NO_CONSTRAINT))
|
@JoinColumn(nullable = false, foreignKey = @ForeignKey(ConstraintMode.NO_CONSTRAINT))
|
||||||
@Where(clause = LogicDeleteEntity.LOGIC_DELETE_CLAUSE)
|
|
||||||
private DataResource target;
|
private DataResource target;
|
||||||
@OneToMany(cascade = CascadeType.ALL, fetch = FetchType.LAZY)
|
@OneToMany(cascade = CascadeType.ALL, fetch = FetchType.LAZY)
|
||||||
@JoinTable(foreignKey = @ForeignKey(ConstraintMode.NO_CONSTRAINT), inverseForeignKey = @ForeignKey(ConstraintMode.NO_CONSTRAINT))
|
@JoinTable(foreignKey = @ForeignKey(ConstraintMode.NO_CONSTRAINT), inverseForeignKey = @ForeignKey(ConstraintMode.NO_CONSTRAINT))
|
||||||
@ToString.Exclude
|
@ToString.Exclude
|
||||||
@Where(clause = LogicDeleteEntity.LOGIC_DELETE_CLAUSE)
|
|
||||||
private Set<DataFile> evidences;
|
private Set<DataFile> evidences;
|
||||||
/**
|
|
||||||
* 生效时间
|
|
||||||
*/
|
|
||||||
@Column(nullable = false)
|
|
||||||
private LocalDateTime activeTime = LocalDateTime.now();
|
|
||||||
/**
|
|
||||||
* 过期时间
|
|
||||||
*/
|
|
||||||
@Column(nullable = false)
|
|
||||||
private LocalDateTime expiredTime = LocalDateTime.now().plusDays(1);
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,13 +0,0 @@
|
|||||||
package com.eshore.gringotts.web.domain.authentication.repository;
|
|
||||||
|
|
||||||
import com.eshore.gringotts.web.domain.authentication.entity.Authentication;
|
|
||||||
import com.eshore.gringotts.web.domain.base.repository.SimpleRepository;
|
|
||||||
import org.springframework.stereotype.Repository;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @author lanyuanxiaoyao
|
|
||||||
* @date 2024-12-02
|
|
||||||
*/
|
|
||||||
@Repository
|
|
||||||
public interface AuthenticationRepository extends SimpleRepository<Authentication, Long> {
|
|
||||||
}
|
|
||||||
@@ -1,31 +0,0 @@
|
|||||||
package com.eshore.gringotts.web.domain.authentication.service;
|
|
||||||
|
|
||||||
import com.eshore.gringotts.web.domain.authentication.entity.Authentication;
|
|
||||||
import com.eshore.gringotts.web.domain.authentication.repository.AuthenticationRepository;
|
|
||||||
import com.eshore.gringotts.web.domain.base.service.CheckingService;
|
|
||||||
import com.eshore.gringotts.web.domain.base.service.LogicDeleteService;
|
|
||||||
import com.eshore.gringotts.web.domain.check.entity.CheckOrder;
|
|
||||||
import com.eshore.gringotts.web.domain.user.service.UserService;
|
|
||||||
import javax.persistence.EntityManager;
|
|
||||||
import lombok.extern.slf4j.Slf4j;
|
|
||||||
import org.eclipse.collections.api.map.ImmutableMap;
|
|
||||||
import org.springframework.stereotype.Service;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @author lanyuanxiaoyao
|
|
||||||
* @date 2024-12-02
|
|
||||||
*/
|
|
||||||
@Slf4j
|
|
||||||
@Service
|
|
||||||
public class AuthenticationService extends LogicDeleteService<Authentication> implements CheckingService {
|
|
||||||
private final AuthenticationRepository authenticationRepository;
|
|
||||||
|
|
||||||
public AuthenticationService(AuthenticationRepository repository, UserService userService, EntityManager manager) {
|
|
||||||
super(repository, userService, manager);
|
|
||||||
this.authenticationRepository = repository;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onChecked(CheckOrder order, CheckOrder.Operation operation, ImmutableMap<String, Object> parameters) {
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,10 +1,10 @@
|
|||||||
package com.eshore.gringotts.web.domain.base.entity;
|
package com.eshore.gringotts.web.domain.base.entity;
|
||||||
|
|
||||||
import javax.persistence.Column;
|
import jakarta.persistence.Column;
|
||||||
import javax.persistence.EntityListeners;
|
import jakarta.persistence.EntityListeners;
|
||||||
import javax.persistence.EnumType;
|
import jakarta.persistence.EnumType;
|
||||||
import javax.persistence.Enumerated;
|
import jakarta.persistence.Enumerated;
|
||||||
import javax.persistence.MappedSuperclass;
|
import jakarta.persistence.MappedSuperclass;
|
||||||
import lombok.Getter;
|
import lombok.Getter;
|
||||||
import lombok.Setter;
|
import lombok.Setter;
|
||||||
import lombok.ToString;
|
import lombok.ToString;
|
||||||
@@ -35,10 +35,6 @@ public class CheckingNeededEntity extends LogicDeleteEntity {
|
|||||||
* 审查中
|
* 审查中
|
||||||
*/
|
*/
|
||||||
CHECKING,
|
CHECKING,
|
||||||
/**
|
|
||||||
* 用户审核
|
|
||||||
*/
|
|
||||||
USER_CHECKING,
|
|
||||||
/**
|
/**
|
||||||
* 正常
|
* 正常
|
||||||
*/
|
*/
|
||||||
|
|||||||
@@ -1,9 +1,9 @@
|
|||||||
package com.eshore.gringotts.web.domain.base.entity;
|
package com.eshore.gringotts.web.domain.base.entity;
|
||||||
|
|
||||||
import javax.persistence.EntityListeners;
|
import jakarta.persistence.EntityListeners;
|
||||||
import javax.persistence.GeneratedValue;
|
import jakarta.persistence.GeneratedValue;
|
||||||
import javax.persistence.Id;
|
import jakarta.persistence.Id;
|
||||||
import javax.persistence.MappedSuperclass;
|
import jakarta.persistence.MappedSuperclass;
|
||||||
import lombok.Getter;
|
import lombok.Getter;
|
||||||
import lombok.Setter;
|
import lombok.Setter;
|
||||||
import lombok.ToString;
|
import lombok.ToString;
|
||||||
|
|||||||
@@ -1,11 +1,12 @@
|
|||||||
package com.eshore.gringotts.web.domain.base.entity;
|
package com.eshore.gringotts.web.domain.base.entity;
|
||||||
|
|
||||||
import javax.persistence.Column;
|
import jakarta.persistence.Column;
|
||||||
import javax.persistence.EntityListeners;
|
import jakarta.persistence.EntityListeners;
|
||||||
import javax.persistence.MappedSuperclass;
|
import jakarta.persistence.MappedSuperclass;
|
||||||
import lombok.Getter;
|
import lombok.Getter;
|
||||||
import lombok.Setter;
|
import lombok.Setter;
|
||||||
import lombok.ToString;
|
import lombok.ToString;
|
||||||
|
import org.hibernate.annotations.SoftDelete;
|
||||||
import org.springframework.data.jpa.domain.support.AuditingEntityListener;
|
import org.springframework.data.jpa.domain.support.AuditingEntityListener;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -19,9 +20,8 @@ import org.springframework.data.jpa.domain.support.AuditingEntityListener;
|
|||||||
@ToString(callSuper = true)
|
@ToString(callSuper = true)
|
||||||
@MappedSuperclass
|
@MappedSuperclass
|
||||||
@EntityListeners(AuditingEntityListener.class)
|
@EntityListeners(AuditingEntityListener.class)
|
||||||
|
@SoftDelete(columnName = "delete")
|
||||||
public class LogicDeleteEntity extends SimpleEntity {
|
public class LogicDeleteEntity extends SimpleEntity {
|
||||||
public static final String LOGIC_DELETE_CLAUSE = "deleted = false";
|
|
||||||
|
|
||||||
@Column(nullable = false)
|
@Column(nullable = false)
|
||||||
private Boolean deleted = false;
|
private Boolean deleted = false;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,11 +1,12 @@
|
|||||||
package com.eshore.gringotts.web.domain.base.entity;
|
package com.eshore.gringotts.web.domain.base.entity;
|
||||||
|
|
||||||
import javax.persistence.Column;
|
import jakarta.persistence.Column;
|
||||||
import javax.persistence.EntityListeners;
|
import jakarta.persistence.EntityListeners;
|
||||||
import javax.persistence.MappedSuperclass;
|
import jakarta.persistence.MappedSuperclass;
|
||||||
import lombok.Getter;
|
import lombok.Getter;
|
||||||
import lombok.Setter;
|
import lombok.Setter;
|
||||||
import lombok.ToString;
|
import lombok.ToString;
|
||||||
|
import org.hibernate.annotations.SoftDelete;
|
||||||
import org.springframework.data.jpa.domain.support.AuditingEntityListener;
|
import org.springframework.data.jpa.domain.support.AuditingEntityListener;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -19,9 +20,8 @@ import org.springframework.data.jpa.domain.support.AuditingEntityListener;
|
|||||||
@ToString(callSuper = true)
|
@ToString(callSuper = true)
|
||||||
@MappedSuperclass
|
@MappedSuperclass
|
||||||
@EntityListeners(AuditingEntityListener.class)
|
@EntityListeners(AuditingEntityListener.class)
|
||||||
|
@SoftDelete(columnName = "delete")
|
||||||
public class LogicDeleteIdOnlyEntity extends IdOnlyEntity {
|
public class LogicDeleteIdOnlyEntity extends IdOnlyEntity {
|
||||||
public static final String LOGIC_DELETE_CLAUSE = "deleted = false";
|
|
||||||
|
|
||||||
@Column(nullable = false)
|
@Column(nullable = false)
|
||||||
private Boolean deleted = false;
|
private Boolean deleted = false;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,14 +1,14 @@
|
|||||||
package com.eshore.gringotts.web.domain.base.entity;
|
package com.eshore.gringotts.web.domain.base.entity;
|
||||||
|
|
||||||
import com.eshore.gringotts.web.domain.user.entity.User;
|
import com.eshore.gringotts.web.domain.user.entity.User;
|
||||||
|
import jakarta.persistence.ConstraintMode;
|
||||||
|
import jakarta.persistence.EntityListeners;
|
||||||
|
import jakarta.persistence.FetchType;
|
||||||
|
import jakarta.persistence.ForeignKey;
|
||||||
|
import jakarta.persistence.JoinColumn;
|
||||||
|
import jakarta.persistence.MappedSuperclass;
|
||||||
|
import jakarta.persistence.OneToOne;
|
||||||
import java.time.LocalDateTime;
|
import java.time.LocalDateTime;
|
||||||
import javax.persistence.ConstraintMode;
|
|
||||||
import javax.persistence.EntityListeners;
|
|
||||||
import javax.persistence.FetchType;
|
|
||||||
import javax.persistence.ForeignKey;
|
|
||||||
import javax.persistence.JoinColumn;
|
|
||||||
import javax.persistence.MappedSuperclass;
|
|
||||||
import javax.persistence.OneToOne;
|
|
||||||
import lombok.Getter;
|
import lombok.Getter;
|
||||||
import lombok.Setter;
|
import lombok.Setter;
|
||||||
import lombok.ToString;
|
import lombok.ToString;
|
||||||
|
|||||||
@@ -5,13 +5,13 @@ import cn.hutool.core.util.StrUtil;
|
|||||||
import com.eshore.gringotts.web.domain.base.entity.LogicDeleteEntity;
|
import com.eshore.gringotts.web.domain.base.entity.LogicDeleteEntity;
|
||||||
import com.eshore.gringotts.web.domain.base.repository.SimpleRepository;
|
import com.eshore.gringotts.web.domain.base.repository.SimpleRepository;
|
||||||
import com.eshore.gringotts.web.domain.user.service.UserService;
|
import com.eshore.gringotts.web.domain.user.service.UserService;
|
||||||
import javax.persistence.EntityManager;
|
import jakarta.persistence.EntityManager;
|
||||||
import javax.persistence.Query;
|
import jakarta.persistence.Query;
|
||||||
import javax.persistence.criteria.CriteriaBuilder;
|
import jakarta.persistence.criteria.CriteriaBuilder;
|
||||||
import javax.persistence.criteria.CriteriaQuery;
|
import jakarta.persistence.criteria.CriteriaQuery;
|
||||||
import javax.persistence.criteria.Predicate;
|
import jakarta.persistence.criteria.Predicate;
|
||||||
import javax.persistence.criteria.Root;
|
import jakarta.persistence.criteria.Root;
|
||||||
import javax.transaction.Transactional;
|
import jakarta.transaction.Transactional;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.eclipse.collections.api.factory.Lists;
|
import org.eclipse.collections.api.factory.Lists;
|
||||||
import org.eclipse.collections.api.list.ImmutableList;
|
import org.eclipse.collections.api.list.ImmutableList;
|
||||||
|
|||||||
@@ -8,12 +8,12 @@ import com.eshore.gringotts.web.domain.base.entity.SimpleEntity;
|
|||||||
import com.eshore.gringotts.web.domain.base.repository.SimpleRepository;
|
import com.eshore.gringotts.web.domain.base.repository.SimpleRepository;
|
||||||
import com.eshore.gringotts.web.domain.user.entity.User;
|
import com.eshore.gringotts.web.domain.user.entity.User;
|
||||||
import com.eshore.gringotts.web.domain.user.service.UserService;
|
import com.eshore.gringotts.web.domain.user.service.UserService;
|
||||||
|
import jakarta.persistence.criteria.CriteriaBuilder;
|
||||||
|
import jakarta.persistence.criteria.CriteriaQuery;
|
||||||
|
import jakarta.persistence.criteria.Predicate;
|
||||||
|
import jakarta.persistence.criteria.Root;
|
||||||
|
import jakarta.transaction.Transactional;
|
||||||
import java.util.Optional;
|
import java.util.Optional;
|
||||||
import javax.persistence.criteria.CriteriaBuilder;
|
|
||||||
import javax.persistence.criteria.CriteriaQuery;
|
|
||||||
import javax.persistence.criteria.Predicate;
|
|
||||||
import javax.persistence.criteria.Root;
|
|
||||||
import javax.transaction.Transactional;
|
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.eclipse.collections.api.factory.Lists;
|
import org.eclipse.collections.api.factory.Lists;
|
||||||
import org.eclipse.collections.api.list.ImmutableList;
|
import org.eclipse.collections.api.list.ImmutableList;
|
||||||
|
|||||||
@@ -3,19 +3,19 @@ package com.eshore.gringotts.web.domain.check.entity;
|
|||||||
import com.eshore.gringotts.core.Constants;
|
import com.eshore.gringotts.core.Constants;
|
||||||
import com.eshore.gringotts.web.domain.base.entity.SimpleEntity;
|
import com.eshore.gringotts.web.domain.base.entity.SimpleEntity;
|
||||||
import com.eshore.gringotts.web.domain.user.entity.User;
|
import com.eshore.gringotts.web.domain.user.entity.User;
|
||||||
import javax.persistence.Column;
|
import jakarta.persistence.Column;
|
||||||
import javax.persistence.ConstraintMode;
|
import jakarta.persistence.ConstraintMode;
|
||||||
import javax.persistence.Entity;
|
import jakarta.persistence.Entity;
|
||||||
import javax.persistence.EntityListeners;
|
import jakarta.persistence.EntityListeners;
|
||||||
import javax.persistence.EnumType;
|
import jakarta.persistence.EnumType;
|
||||||
import javax.persistence.Enumerated;
|
import jakarta.persistence.Enumerated;
|
||||||
import javax.persistence.FetchType;
|
import jakarta.persistence.FetchType;
|
||||||
import javax.persistence.ForeignKey;
|
import jakarta.persistence.ForeignKey;
|
||||||
import javax.persistence.JoinColumn;
|
import jakarta.persistence.JoinColumn;
|
||||||
import javax.persistence.NamedAttributeNode;
|
import jakarta.persistence.NamedAttributeNode;
|
||||||
import javax.persistence.NamedEntityGraph;
|
import jakarta.persistence.NamedEntityGraph;
|
||||||
import javax.persistence.OneToOne;
|
import jakarta.persistence.OneToOne;
|
||||||
import javax.persistence.Table;
|
import jakarta.persistence.Table;
|
||||||
import lombok.Getter;
|
import lombok.Getter;
|
||||||
import lombok.NoArgsConstructor;
|
import lombok.NoArgsConstructor;
|
||||||
import lombok.Setter;
|
import lombok.Setter;
|
||||||
|
|||||||
@@ -3,9 +3,9 @@ package com.eshore.gringotts.web.domain.check.repository;
|
|||||||
import com.eshore.gringotts.web.domain.base.repository.SimpleRepository;
|
import com.eshore.gringotts.web.domain.base.repository.SimpleRepository;
|
||||||
import com.eshore.gringotts.web.domain.check.entity.CheckOrder;
|
import com.eshore.gringotts.web.domain.check.entity.CheckOrder;
|
||||||
import com.eshore.gringotts.web.domain.user.entity.User;
|
import com.eshore.gringotts.web.domain.user.entity.User;
|
||||||
|
import jakarta.transaction.Transactional;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Optional;
|
import java.util.Optional;
|
||||||
import javax.transaction.Transactional;
|
|
||||||
import org.springframework.data.domain.Sort;
|
import org.springframework.data.domain.Sort;
|
||||||
import org.springframework.data.jpa.domain.Specification;
|
import org.springframework.data.jpa.domain.Specification;
|
||||||
import org.springframework.data.jpa.repository.EntityGraph;
|
import org.springframework.data.jpa.repository.EntityGraph;
|
||||||
|
|||||||
@@ -2,29 +2,26 @@ package com.eshore.gringotts.web.domain.confirmation.entity;
|
|||||||
|
|
||||||
import com.eshore.gringotts.core.Constants;
|
import com.eshore.gringotts.core.Constants;
|
||||||
import com.eshore.gringotts.web.domain.base.entity.CheckingNeededEntity;
|
import com.eshore.gringotts.web.domain.base.entity.CheckingNeededEntity;
|
||||||
import com.eshore.gringotts.web.domain.base.entity.LogicDeleteEntity;
|
|
||||||
import com.eshore.gringotts.web.domain.resource.entity.DataResource;
|
import com.eshore.gringotts.web.domain.resource.entity.DataResource;
|
||||||
import com.eshore.gringotts.web.domain.upload.entity.DataFile;
|
import com.eshore.gringotts.web.domain.upload.entity.DataFile;
|
||||||
|
import jakarta.persistence.CascadeType;
|
||||||
|
import jakarta.persistence.ConstraintMode;
|
||||||
|
import jakarta.persistence.Entity;
|
||||||
|
import jakarta.persistence.EntityListeners;
|
||||||
|
import jakarta.persistence.FetchType;
|
||||||
|
import jakarta.persistence.ForeignKey;
|
||||||
|
import jakarta.persistence.JoinColumn;
|
||||||
|
import jakarta.persistence.JoinTable;
|
||||||
|
import jakarta.persistence.NamedAttributeNode;
|
||||||
|
import jakarta.persistence.NamedEntityGraph;
|
||||||
|
import jakarta.persistence.OneToMany;
|
||||||
|
import jakarta.persistence.OneToOne;
|
||||||
|
import jakarta.persistence.Table;
|
||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
import javax.persistence.CascadeType;
|
|
||||||
import javax.persistence.ConstraintMode;
|
|
||||||
import javax.persistence.Entity;
|
|
||||||
import javax.persistence.EntityListeners;
|
|
||||||
import javax.persistence.FetchType;
|
|
||||||
import javax.persistence.ForeignKey;
|
|
||||||
import javax.persistence.JoinColumn;
|
|
||||||
import javax.persistence.JoinTable;
|
|
||||||
import javax.persistence.NamedAttributeNode;
|
|
||||||
import javax.persistence.NamedEntityGraph;
|
|
||||||
import javax.persistence.OneToMany;
|
|
||||||
import javax.persistence.OneToOne;
|
|
||||||
import javax.persistence.Table;
|
|
||||||
import lombok.Getter;
|
import lombok.Getter;
|
||||||
import lombok.Setter;
|
import lombok.Setter;
|
||||||
import lombok.ToString;
|
import lombok.ToString;
|
||||||
import org.hibernate.annotations.DynamicUpdate;
|
import org.hibernate.annotations.DynamicUpdate;
|
||||||
import org.hibernate.annotations.SQLDelete;
|
|
||||||
import org.hibernate.annotations.Where;
|
|
||||||
import org.springframework.data.jpa.domain.support.AuditingEntityListener;
|
import org.springframework.data.jpa.domain.support.AuditingEntityListener;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -50,16 +47,12 @@ import org.springframework.data.jpa.domain.support.AuditingEntityListener;
|
|||||||
@NamedAttributeNode(value = "createdUser"),
|
@NamedAttributeNode(value = "createdUser"),
|
||||||
@NamedAttributeNode(value = "modifiedUser"),
|
@NamedAttributeNode(value = "modifiedUser"),
|
||||||
})
|
})
|
||||||
@SQLDelete(sql = "update " + Constants.TABLE_PREFIX + "confirmation" + " set deleted = true where id = ?")
|
|
||||||
@Where(clause = LogicDeleteEntity.LOGIC_DELETE_CLAUSE)
|
|
||||||
public class Confirmation extends CheckingNeededEntity {
|
public class Confirmation extends CheckingNeededEntity {
|
||||||
@OneToOne(fetch = FetchType.EAGER)
|
@OneToOne(fetch = FetchType.EAGER)
|
||||||
@JoinColumn(nullable = false, foreignKey = @ForeignKey(ConstraintMode.NO_CONSTRAINT))
|
@JoinColumn(nullable = false, foreignKey = @ForeignKey(ConstraintMode.NO_CONSTRAINT))
|
||||||
@Where(clause = LogicDeleteEntity.LOGIC_DELETE_CLAUSE)
|
|
||||||
private DataResource target;
|
private DataResource target;
|
||||||
@OneToMany(cascade = CascadeType.ALL, fetch = FetchType.LAZY)
|
@OneToMany(cascade = CascadeType.ALL, fetch = FetchType.LAZY)
|
||||||
@JoinTable(foreignKey = @ForeignKey(ConstraintMode.NO_CONSTRAINT), inverseForeignKey = @ForeignKey(ConstraintMode.NO_CONSTRAINT))
|
@JoinTable(foreignKey = @ForeignKey(ConstraintMode.NO_CONSTRAINT), inverseForeignKey = @ForeignKey(ConstraintMode.NO_CONSTRAINT))
|
||||||
@ToString.Exclude
|
@ToString.Exclude
|
||||||
@Where(clause = LogicDeleteEntity.LOGIC_DELETE_CLAUSE)
|
|
||||||
private Set<DataFile> evidences;
|
private Set<DataFile> evidences;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -3,9 +3,9 @@ package com.eshore.gringotts.web.domain.confirmation.repository;
|
|||||||
import com.eshore.gringotts.web.domain.base.repository.SimpleRepository;
|
import com.eshore.gringotts.web.domain.base.repository.SimpleRepository;
|
||||||
import com.eshore.gringotts.web.domain.confirmation.entity.Confirmation;
|
import com.eshore.gringotts.web.domain.confirmation.entity.Confirmation;
|
||||||
import com.eshore.gringotts.web.domain.user.entity.User;
|
import com.eshore.gringotts.web.domain.user.entity.User;
|
||||||
|
import jakarta.transaction.Transactional;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Optional;
|
import java.util.Optional;
|
||||||
import javax.transaction.Transactional;
|
|
||||||
import org.springframework.data.domain.Sort;
|
import org.springframework.data.domain.Sort;
|
||||||
import org.springframework.data.jpa.domain.Specification;
|
import org.springframework.data.jpa.domain.Specification;
|
||||||
import org.springframework.data.jpa.repository.EntityGraph;
|
import org.springframework.data.jpa.repository.EntityGraph;
|
||||||
|
|||||||
@@ -12,7 +12,7 @@ import com.eshore.gringotts.web.domain.user.entity.User;
|
|||||||
import com.eshore.gringotts.web.domain.user.service.UserService;
|
import com.eshore.gringotts.web.domain.user.service.UserService;
|
||||||
import com.fasterxml.jackson.core.JsonProcessingException;
|
import com.fasterxml.jackson.core.JsonProcessingException;
|
||||||
import com.fasterxml.jackson.databind.ObjectMapper;
|
import com.fasterxml.jackson.databind.ObjectMapper;
|
||||||
import javax.transaction.Transactional;
|
import jakarta.transaction.Transactional;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.eclipse.collections.api.factory.Maps;
|
import org.eclipse.collections.api.factory.Maps;
|
||||||
import org.eclipse.collections.api.map.ImmutableMap;
|
import org.eclipse.collections.api.map.ImmutableMap;
|
||||||
|
|||||||
@@ -7,26 +7,24 @@ import com.eshore.gringotts.web.domain.confirmation.entity.Confirmation;
|
|||||||
import com.eshore.gringotts.web.domain.resource.entity.format.ResourceFormat;
|
import com.eshore.gringotts.web.domain.resource.entity.format.ResourceFormat;
|
||||||
import com.eshore.gringotts.web.domain.resource.entity.type.ResourceType;
|
import com.eshore.gringotts.web.domain.resource.entity.type.ResourceType;
|
||||||
import com.eshore.gringotts.web.domain.upload.entity.DataFile;
|
import com.eshore.gringotts.web.domain.upload.entity.DataFile;
|
||||||
|
import jakarta.persistence.CascadeType;
|
||||||
|
import jakarta.persistence.Column;
|
||||||
|
import jakarta.persistence.ConstraintMode;
|
||||||
|
import jakarta.persistence.Entity;
|
||||||
|
import jakarta.persistence.EntityListeners;
|
||||||
|
import jakarta.persistence.FetchType;
|
||||||
|
import jakarta.persistence.ForeignKey;
|
||||||
|
import jakarta.persistence.JoinColumn;
|
||||||
|
import jakarta.persistence.NamedAttributeNode;
|
||||||
|
import jakarta.persistence.NamedEntityGraph;
|
||||||
|
import jakarta.persistence.OneToMany;
|
||||||
|
import jakarta.persistence.OneToOne;
|
||||||
|
import jakarta.persistence.Table;
|
||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
import javax.persistence.CascadeType;
|
|
||||||
import javax.persistence.Column;
|
|
||||||
import javax.persistence.ConstraintMode;
|
|
||||||
import javax.persistence.Entity;
|
|
||||||
import javax.persistence.EntityListeners;
|
|
||||||
import javax.persistence.FetchType;
|
|
||||||
import javax.persistence.ForeignKey;
|
|
||||||
import javax.persistence.JoinColumn;
|
|
||||||
import javax.persistence.NamedAttributeNode;
|
|
||||||
import javax.persistence.NamedEntityGraph;
|
|
||||||
import javax.persistence.OneToMany;
|
|
||||||
import javax.persistence.OneToOne;
|
|
||||||
import javax.persistence.Table;
|
|
||||||
import lombok.Getter;
|
import lombok.Getter;
|
||||||
import lombok.Setter;
|
import lombok.Setter;
|
||||||
import lombok.ToString;
|
import lombok.ToString;
|
||||||
import org.hibernate.annotations.DynamicUpdate;
|
import org.hibernate.annotations.DynamicUpdate;
|
||||||
import org.hibernate.annotations.SQLDelete;
|
|
||||||
import org.hibernate.annotations.Where;
|
|
||||||
import org.springframework.data.jpa.domain.support.AuditingEntityListener;
|
import org.springframework.data.jpa.domain.support.AuditingEntityListener;
|
||||||
|
|
||||||
@Getter
|
@Getter
|
||||||
@@ -50,33 +48,26 @@ import org.springframework.data.jpa.domain.support.AuditingEntityListener;
|
|||||||
@NamedAttributeNode(value = "createdUser"),
|
@NamedAttributeNode(value = "createdUser"),
|
||||||
@NamedAttributeNode(value = "modifiedUser"),
|
@NamedAttributeNode(value = "modifiedUser"),
|
||||||
})
|
})
|
||||||
@SQLDelete(sql = "update " + Constants.TABLE_PREFIX + "data_resource" + " set deleted = true where id = ?")
|
|
||||||
@Where(clause = LogicDeleteEntity.LOGIC_DELETE_CLAUSE)
|
|
||||||
public class DataResource extends LogicDeleteEntity {
|
public class DataResource extends LogicDeleteEntity {
|
||||||
@Column(nullable = false)
|
@Column(nullable = false)
|
||||||
private String name;
|
private String name;
|
||||||
private String description;
|
private String description;
|
||||||
@OneToOne(cascade = CascadeType.REMOVE, fetch = FetchType.LAZY)
|
@OneToOne(cascade = CascadeType.REMOVE)
|
||||||
@JoinColumn(nullable = false, foreignKey = @ForeignKey(ConstraintMode.NO_CONSTRAINT))
|
@JoinColumn(nullable = false, foreignKey = @ForeignKey(ConstraintMode.NO_CONSTRAINT))
|
||||||
@ToString.Exclude
|
@ToString.Exclude
|
||||||
@Where(clause = LogicDeleteEntity.LOGIC_DELETE_CLAUSE)
|
|
||||||
private ResourceType type;
|
private ResourceType type;
|
||||||
@OneToOne(cascade = CascadeType.REMOVE, fetch = FetchType.LAZY)
|
@OneToOne(cascade = CascadeType.REMOVE)
|
||||||
@JoinColumn(nullable = false, foreignKey = @ForeignKey(ConstraintMode.NO_CONSTRAINT))
|
@JoinColumn(nullable = false, foreignKey = @ForeignKey(ConstraintMode.NO_CONSTRAINT))
|
||||||
@ToString.Exclude
|
@ToString.Exclude
|
||||||
@Where(clause = LogicDeleteEntity.LOGIC_DELETE_CLAUSE)
|
|
||||||
private ResourceFormat format;
|
private ResourceFormat format;
|
||||||
@OneToOne(fetch = FetchType.LAZY)
|
@OneToOne(cascade = CascadeType.REMOVE)
|
||||||
@JoinColumn(foreignKey = @ForeignKey(ConstraintMode.NO_CONSTRAINT))
|
@JoinColumn(foreignKey = @ForeignKey(ConstraintMode.NO_CONSTRAINT))
|
||||||
@ToString.Exclude
|
@ToString.Exclude
|
||||||
@Where(clause = LogicDeleteEntity.LOGIC_DELETE_CLAUSE)
|
|
||||||
private DataFile example;
|
private DataFile example;
|
||||||
@OneToOne(cascade = CascadeType.REMOVE, fetch = FetchType.EAGER, mappedBy = "target")
|
@OneToOne(cascade = CascadeType.REMOVE, fetch = FetchType.EAGER, mappedBy = "target")
|
||||||
@ToString.Exclude
|
@ToString.Exclude
|
||||||
@Where(clause = LogicDeleteEntity.LOGIC_DELETE_CLAUSE)
|
|
||||||
private Confirmation confirmation;
|
private Confirmation confirmation;
|
||||||
@OneToMany(cascade = CascadeType.REMOVE, fetch = FetchType.EAGER, mappedBy = "target")
|
@OneToMany(cascade = CascadeType.REMOVE, fetch = FetchType.EAGER, mappedBy = "target")
|
||||||
@ToString.Exclude
|
@ToString.Exclude
|
||||||
@Where(clause = LogicDeleteEntity.LOGIC_DELETE_CLAUSE)
|
|
||||||
private Set<Authentication> authentications;
|
private Set<Authentication> authentications;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,16 +1,12 @@
|
|||||||
package com.eshore.gringotts.web.domain.resource.entity.format;
|
package com.eshore.gringotts.web.domain.resource.entity.format;
|
||||||
|
|
||||||
import com.eshore.gringotts.core.Constants;
|
import jakarta.persistence.DiscriminatorValue;
|
||||||
import com.eshore.gringotts.web.domain.base.entity.LogicDeleteIdOnlyEntity;
|
import jakarta.persistence.Entity;
|
||||||
import javax.persistence.DiscriminatorValue;
|
|
||||||
import javax.persistence.Entity;
|
|
||||||
import lombok.AllArgsConstructor;
|
import lombok.AllArgsConstructor;
|
||||||
import lombok.Getter;
|
import lombok.Getter;
|
||||||
import lombok.NoArgsConstructor;
|
import lombok.NoArgsConstructor;
|
||||||
import lombok.Setter;
|
import lombok.Setter;
|
||||||
import lombok.ToString;
|
import lombok.ToString;
|
||||||
import org.hibernate.annotations.SQLDelete;
|
|
||||||
import org.hibernate.annotations.Where;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* CSV格式
|
* CSV格式
|
||||||
@@ -25,8 +21,6 @@ import org.hibernate.annotations.Where;
|
|||||||
@NoArgsConstructor
|
@NoArgsConstructor
|
||||||
@Entity
|
@Entity
|
||||||
@DiscriminatorValue("CSV")
|
@DiscriminatorValue("CSV")
|
||||||
@SQLDelete(sql = "update " + Constants.TABLE_PREFIX + "resource_format" + " set deleted = true where id = ?")
|
|
||||||
@Where(clause = LogicDeleteIdOnlyEntity.LOGIC_DELETE_CLAUSE)
|
|
||||||
public class CsvResourceFormat extends ResourceFormat {
|
public class CsvResourceFormat extends ResourceFormat {
|
||||||
private String schema;
|
private String schema;
|
||||||
|
|
||||||
|
|||||||
@@ -1,16 +1,12 @@
|
|||||||
package com.eshore.gringotts.web.domain.resource.entity.format;
|
package com.eshore.gringotts.web.domain.resource.entity.format;
|
||||||
|
|
||||||
import com.eshore.gringotts.core.Constants;
|
import jakarta.persistence.DiscriminatorValue;
|
||||||
import com.eshore.gringotts.web.domain.base.entity.LogicDeleteIdOnlyEntity;
|
import jakarta.persistence.Entity;
|
||||||
import javax.persistence.DiscriminatorValue;
|
|
||||||
import javax.persistence.Entity;
|
|
||||||
import lombok.AllArgsConstructor;
|
import lombok.AllArgsConstructor;
|
||||||
import lombok.Getter;
|
import lombok.Getter;
|
||||||
import lombok.NoArgsConstructor;
|
import lombok.NoArgsConstructor;
|
||||||
import lombok.Setter;
|
import lombok.Setter;
|
||||||
import lombok.ToString;
|
import lombok.ToString;
|
||||||
import org.hibernate.annotations.SQLDelete;
|
|
||||||
import org.hibernate.annotations.Where;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* JSON line格式
|
* JSON line格式
|
||||||
@@ -25,8 +21,6 @@ import org.hibernate.annotations.Where;
|
|||||||
@NoArgsConstructor
|
@NoArgsConstructor
|
||||||
@Entity
|
@Entity
|
||||||
@DiscriminatorValue("JSON_LINE")
|
@DiscriminatorValue("JSON_LINE")
|
||||||
@SQLDelete(sql = "update " + Constants.TABLE_PREFIX + "resource_format" + " set deleted = true where id = ?")
|
|
||||||
@Where(clause = LogicDeleteIdOnlyEntity.LOGIC_DELETE_CLAUSE)
|
|
||||||
public class JsonLineResourceFormat extends ResourceFormat {
|
public class JsonLineResourceFormat extends ResourceFormat {
|
||||||
private String schema;
|
private String schema;
|
||||||
|
|
||||||
|
|||||||
@@ -1,16 +1,12 @@
|
|||||||
package com.eshore.gringotts.web.domain.resource.entity.format;
|
package com.eshore.gringotts.web.domain.resource.entity.format;
|
||||||
|
|
||||||
import com.eshore.gringotts.core.Constants;
|
import jakarta.persistence.DiscriminatorValue;
|
||||||
import com.eshore.gringotts.web.domain.base.entity.LogicDeleteIdOnlyEntity;
|
import jakarta.persistence.Entity;
|
||||||
import javax.persistence.DiscriminatorValue;
|
|
||||||
import javax.persistence.Entity;
|
|
||||||
import lombok.AllArgsConstructor;
|
import lombok.AllArgsConstructor;
|
||||||
import lombok.Getter;
|
import lombok.Getter;
|
||||||
import lombok.NoArgsConstructor;
|
import lombok.NoArgsConstructor;
|
||||||
import lombok.Setter;
|
import lombok.Setter;
|
||||||
import lombok.ToString;
|
import lombok.ToString;
|
||||||
import org.hibernate.annotations.SQLDelete;
|
|
||||||
import org.hibernate.annotations.Where;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 一个文件就是一个JSON
|
* 一个文件就是一个JSON
|
||||||
@@ -25,8 +21,6 @@ import org.hibernate.annotations.Where;
|
|||||||
@NoArgsConstructor
|
@NoArgsConstructor
|
||||||
@Entity
|
@Entity
|
||||||
@DiscriminatorValue("JSON")
|
@DiscriminatorValue("JSON")
|
||||||
@SQLDelete(sql = "update " + Constants.TABLE_PREFIX + "resource_format" + " set deleted = true where id = ?")
|
|
||||||
@Where(clause = LogicDeleteIdOnlyEntity.LOGIC_DELETE_CLAUSE)
|
|
||||||
public class JsonResourceFormat extends ResourceFormat {
|
public class JsonResourceFormat extends ResourceFormat {
|
||||||
private String schema;
|
private String schema;
|
||||||
|
|
||||||
|
|||||||
@@ -1,14 +1,10 @@
|
|||||||
package com.eshore.gringotts.web.domain.resource.entity.format;
|
package com.eshore.gringotts.web.domain.resource.entity.format;
|
||||||
|
|
||||||
import com.eshore.gringotts.core.Constants;
|
import jakarta.persistence.DiscriminatorValue;
|
||||||
import com.eshore.gringotts.web.domain.base.entity.LogicDeleteIdOnlyEntity;
|
import jakarta.persistence.Entity;
|
||||||
import javax.persistence.DiscriminatorValue;
|
|
||||||
import javax.persistence.Entity;
|
|
||||||
import lombok.Getter;
|
import lombok.Getter;
|
||||||
import lombok.Setter;
|
import lombok.Setter;
|
||||||
import lombok.ToString;
|
import lombok.ToString;
|
||||||
import org.hibernate.annotations.SQLDelete;
|
|
||||||
import org.hibernate.annotations.Where;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 无格式,文件每行就是一份数据
|
* 无格式,文件每行就是一份数据
|
||||||
@@ -21,8 +17,6 @@ import org.hibernate.annotations.Where;
|
|||||||
@ToString
|
@ToString
|
||||||
@Entity
|
@Entity
|
||||||
@DiscriminatorValue("LINE")
|
@DiscriminatorValue("LINE")
|
||||||
@SQLDelete(sql = "update " + Constants.TABLE_PREFIX + "resource_format" + " set deleted = true where id = ?")
|
|
||||||
@Where(clause = LogicDeleteIdOnlyEntity.LOGIC_DELETE_CLAUSE)
|
|
||||||
public class LineResourceFormat extends ResourceFormat {
|
public class LineResourceFormat extends ResourceFormat {
|
||||||
@Override
|
@Override
|
||||||
public Type getFormatType() {
|
public Type getFormatType() {
|
||||||
|
|||||||
@@ -1,14 +1,10 @@
|
|||||||
package com.eshore.gringotts.web.domain.resource.entity.format;
|
package com.eshore.gringotts.web.domain.resource.entity.format;
|
||||||
|
|
||||||
import com.eshore.gringotts.core.Constants;
|
import jakarta.persistence.DiscriminatorValue;
|
||||||
import com.eshore.gringotts.web.domain.base.entity.LogicDeleteIdOnlyEntity;
|
import jakarta.persistence.Entity;
|
||||||
import javax.persistence.DiscriminatorValue;
|
|
||||||
import javax.persistence.Entity;
|
|
||||||
import lombok.Getter;
|
import lombok.Getter;
|
||||||
import lombok.Setter;
|
import lombok.Setter;
|
||||||
import lombok.ToString;
|
import lombok.ToString;
|
||||||
import org.hibernate.annotations.SQLDelete;
|
|
||||||
import org.hibernate.annotations.Where;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 无格式,整个文件就是一份数据
|
* 无格式,整个文件就是一份数据
|
||||||
@@ -21,8 +17,6 @@ import org.hibernate.annotations.Where;
|
|||||||
@ToString
|
@ToString
|
||||||
@Entity
|
@Entity
|
||||||
@DiscriminatorValue("NONE")
|
@DiscriminatorValue("NONE")
|
||||||
@SQLDelete(sql = "update " + Constants.TABLE_PREFIX + "resource_format" + " set deleted = true where id = ?")
|
|
||||||
@Where(clause = LogicDeleteIdOnlyEntity.LOGIC_DELETE_CLAUSE)
|
|
||||||
public class NoneResourceFormat extends ResourceFormat {
|
public class NoneResourceFormat extends ResourceFormat {
|
||||||
@Override
|
@Override
|
||||||
public Type getFormatType() {
|
public Type getFormatType() {
|
||||||
|
|||||||
@@ -2,15 +2,13 @@ package com.eshore.gringotts.web.domain.resource.entity.format;
|
|||||||
|
|
||||||
import com.eshore.gringotts.core.Constants;
|
import com.eshore.gringotts.core.Constants;
|
||||||
import com.eshore.gringotts.web.domain.base.entity.LogicDeleteIdOnlyEntity;
|
import com.eshore.gringotts.web.domain.base.entity.LogicDeleteIdOnlyEntity;
|
||||||
import javax.persistence.Entity;
|
import jakarta.persistence.Entity;
|
||||||
import javax.persistence.Inheritance;
|
import jakarta.persistence.Inheritance;
|
||||||
import javax.persistence.InheritanceType;
|
import jakarta.persistence.InheritanceType;
|
||||||
import javax.persistence.Table;
|
import jakarta.persistence.Table;
|
||||||
import lombok.Getter;
|
import lombok.Getter;
|
||||||
import lombok.Setter;
|
import lombok.Setter;
|
||||||
import lombok.ToString;
|
import lombok.ToString;
|
||||||
import org.hibernate.annotations.SQLDelete;
|
|
||||||
import org.hibernate.annotations.Where;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 资源格式
|
* 资源格式
|
||||||
@@ -24,8 +22,6 @@ import org.hibernate.annotations.Where;
|
|||||||
@Entity
|
@Entity
|
||||||
@Table(name = Constants.TABLE_PREFIX + "resource_format")
|
@Table(name = Constants.TABLE_PREFIX + "resource_format")
|
||||||
@Inheritance(strategy = InheritanceType.SINGLE_TABLE)
|
@Inheritance(strategy = InheritanceType.SINGLE_TABLE)
|
||||||
@SQLDelete(sql = "update " + Constants.TABLE_PREFIX + "resource_format" + " set deleted = true where id = ?")
|
|
||||||
@Where(clause = LogicDeleteIdOnlyEntity.LOGIC_DELETE_CLAUSE)
|
|
||||||
public abstract class ResourceFormat extends LogicDeleteIdOnlyEntity {
|
public abstract class ResourceFormat extends LogicDeleteIdOnlyEntity {
|
||||||
public enum Type {
|
public enum Type {
|
||||||
NONE,
|
NONE,
|
||||||
|
|||||||
@@ -1,17 +1,14 @@
|
|||||||
package com.eshore.gringotts.web.domain.resource.entity.type;
|
package com.eshore.gringotts.web.domain.resource.entity.type;
|
||||||
|
|
||||||
import com.eshore.gringotts.core.Constants;
|
import com.eshore.gringotts.core.Constants;
|
||||||
import com.eshore.gringotts.web.domain.base.entity.LogicDeleteIdOnlyEntity;
|
import jakarta.persistence.Column;
|
||||||
import javax.persistence.Column;
|
import jakarta.persistence.Entity;
|
||||||
import javax.persistence.Entity;
|
import jakarta.persistence.Table;
|
||||||
import javax.persistence.Table;
|
|
||||||
import lombok.AllArgsConstructor;
|
import lombok.AllArgsConstructor;
|
||||||
import lombok.Getter;
|
import lombok.Getter;
|
||||||
import lombok.NoArgsConstructor;
|
import lombok.NoArgsConstructor;
|
||||||
import lombok.Setter;
|
import lombok.Setter;
|
||||||
import lombok.ToString;
|
import lombok.ToString;
|
||||||
import org.hibernate.annotations.SQLDelete;
|
|
||||||
import org.hibernate.annotations.Where;
|
|
||||||
|
|
||||||
@Getter
|
@Getter
|
||||||
@Setter
|
@Setter
|
||||||
@@ -20,8 +17,6 @@ import org.hibernate.annotations.Where;
|
|||||||
@NoArgsConstructor
|
@NoArgsConstructor
|
||||||
@Entity
|
@Entity
|
||||||
@Table(name = Constants.TABLE_PREFIX + "resource_type_api")
|
@Table(name = Constants.TABLE_PREFIX + "resource_type_api")
|
||||||
@SQLDelete(sql = "update " + Constants.TABLE_PREFIX + "resource_type_api" + " set deleted = true where id = ?")
|
|
||||||
@Where(clause = LogicDeleteIdOnlyEntity.LOGIC_DELETE_CLAUSE)
|
|
||||||
public class ApiResourceType extends ResourceType {
|
public class ApiResourceType extends ResourceType {
|
||||||
@Column(nullable = false)
|
@Column(nullable = false)
|
||||||
private String url;
|
private String url;
|
||||||
|
|||||||
@@ -1,19 +1,16 @@
|
|||||||
package com.eshore.gringotts.web.domain.resource.entity.type;
|
package com.eshore.gringotts.web.domain.resource.entity.type;
|
||||||
|
|
||||||
import com.eshore.gringotts.core.Constants;
|
import com.eshore.gringotts.core.Constants;
|
||||||
import com.eshore.gringotts.web.domain.base.entity.LogicDeleteIdOnlyEntity;
|
import jakarta.persistence.Column;
|
||||||
import javax.persistence.Column;
|
import jakarta.persistence.Entity;
|
||||||
import javax.persistence.Entity;
|
import jakarta.persistence.EnumType;
|
||||||
import javax.persistence.EnumType;
|
import jakarta.persistence.Enumerated;
|
||||||
import javax.persistence.Enumerated;
|
import jakarta.persistence.Table;
|
||||||
import javax.persistence.Table;
|
|
||||||
import lombok.AllArgsConstructor;
|
import lombok.AllArgsConstructor;
|
||||||
import lombok.Getter;
|
import lombok.Getter;
|
||||||
import lombok.NoArgsConstructor;
|
import lombok.NoArgsConstructor;
|
||||||
import lombok.Setter;
|
import lombok.Setter;
|
||||||
import lombok.ToString;
|
import lombok.ToString;
|
||||||
import org.hibernate.annotations.SQLDelete;
|
|
||||||
import org.hibernate.annotations.Where;
|
|
||||||
|
|
||||||
@Getter
|
@Getter
|
||||||
@Setter
|
@Setter
|
||||||
@@ -22,8 +19,6 @@ import org.hibernate.annotations.Where;
|
|||||||
@NoArgsConstructor
|
@NoArgsConstructor
|
||||||
@Entity
|
@Entity
|
||||||
@Table(name = Constants.TABLE_PREFIX + "resource_type_database")
|
@Table(name = Constants.TABLE_PREFIX + "resource_type_database")
|
||||||
@SQLDelete(sql = "update " + Constants.TABLE_PREFIX + "resource_type_database" + " set deleted = true where id = ?")
|
|
||||||
@Where(clause = LogicDeleteIdOnlyEntity.LOGIC_DELETE_CLAUSE)
|
|
||||||
public class DatabaseResourceType extends ResourceType {
|
public class DatabaseResourceType extends ResourceType {
|
||||||
@Column(nullable = false)
|
@Column(nullable = false)
|
||||||
private String jdbc;
|
private String jdbc;
|
||||||
|
|||||||
@@ -1,21 +1,18 @@
|
|||||||
package com.eshore.gringotts.web.domain.resource.entity.type;
|
package com.eshore.gringotts.web.domain.resource.entity.type;
|
||||||
|
|
||||||
import com.eshore.gringotts.core.Constants;
|
import com.eshore.gringotts.core.Constants;
|
||||||
import com.eshore.gringotts.web.domain.base.entity.LogicDeleteIdOnlyEntity;
|
|
||||||
import com.eshore.gringotts.web.domain.upload.entity.DataFile;
|
import com.eshore.gringotts.web.domain.upload.entity.DataFile;
|
||||||
import javax.persistence.ConstraintMode;
|
import jakarta.persistence.ConstraintMode;
|
||||||
import javax.persistence.Entity;
|
import jakarta.persistence.Entity;
|
||||||
import javax.persistence.ForeignKey;
|
import jakarta.persistence.ForeignKey;
|
||||||
import javax.persistence.JoinColumn;
|
import jakarta.persistence.JoinColumn;
|
||||||
import javax.persistence.OneToOne;
|
import jakarta.persistence.OneToOne;
|
||||||
import javax.persistence.Table;
|
import jakarta.persistence.Table;
|
||||||
import lombok.AllArgsConstructor;
|
import lombok.AllArgsConstructor;
|
||||||
import lombok.Getter;
|
import lombok.Getter;
|
||||||
import lombok.NoArgsConstructor;
|
import lombok.NoArgsConstructor;
|
||||||
import lombok.Setter;
|
import lombok.Setter;
|
||||||
import lombok.ToString;
|
import lombok.ToString;
|
||||||
import org.hibernate.annotations.SQLDelete;
|
|
||||||
import org.hibernate.annotations.Where;
|
|
||||||
|
|
||||||
@Getter
|
@Getter
|
||||||
@Setter
|
@Setter
|
||||||
@@ -24,8 +21,6 @@ import org.hibernate.annotations.Where;
|
|||||||
@NoArgsConstructor
|
@NoArgsConstructor
|
||||||
@Entity
|
@Entity
|
||||||
@Table(name = Constants.TABLE_PREFIX + "resource_type_file")
|
@Table(name = Constants.TABLE_PREFIX + "resource_type_file")
|
||||||
@SQLDelete(sql = "update " + Constants.TABLE_PREFIX + "resource_type_file" + " set deleted = true where id = ?")
|
|
||||||
@Where(clause = LogicDeleteIdOnlyEntity.LOGIC_DELETE_CLAUSE)
|
|
||||||
public class FileResourceType extends ResourceType {
|
public class FileResourceType extends ResourceType {
|
||||||
@OneToOne
|
@OneToOne
|
||||||
@JoinColumn(nullable = false, foreignKey = @ForeignKey(ConstraintMode.NO_CONSTRAINT))
|
@JoinColumn(nullable = false, foreignKey = @ForeignKey(ConstraintMode.NO_CONSTRAINT))
|
||||||
|
|||||||
@@ -1,17 +1,14 @@
|
|||||||
package com.eshore.gringotts.web.domain.resource.entity.type;
|
package com.eshore.gringotts.web.domain.resource.entity.type;
|
||||||
|
|
||||||
import com.eshore.gringotts.core.Constants;
|
import com.eshore.gringotts.core.Constants;
|
||||||
import com.eshore.gringotts.web.domain.base.entity.LogicDeleteIdOnlyEntity;
|
import jakarta.persistence.Column;
|
||||||
import javax.persistence.Column;
|
import jakarta.persistence.Entity;
|
||||||
import javax.persistence.Entity;
|
import jakarta.persistence.Table;
|
||||||
import javax.persistence.Table;
|
|
||||||
import lombok.AllArgsConstructor;
|
import lombok.AllArgsConstructor;
|
||||||
import lombok.Getter;
|
import lombok.Getter;
|
||||||
import lombok.NoArgsConstructor;
|
import lombok.NoArgsConstructor;
|
||||||
import lombok.Setter;
|
import lombok.Setter;
|
||||||
import lombok.ToString;
|
import lombok.ToString;
|
||||||
import org.hibernate.annotations.SQLDelete;
|
|
||||||
import org.hibernate.annotations.Where;
|
|
||||||
|
|
||||||
@Getter
|
@Getter
|
||||||
@Setter
|
@Setter
|
||||||
@@ -20,8 +17,6 @@ import org.hibernate.annotations.Where;
|
|||||||
@NoArgsConstructor
|
@NoArgsConstructor
|
||||||
@Entity
|
@Entity
|
||||||
@Table(name = Constants.TABLE_PREFIX + "resource_type_ftp")
|
@Table(name = Constants.TABLE_PREFIX + "resource_type_ftp")
|
||||||
@SQLDelete(sql = "update " + Constants.TABLE_PREFIX + "resource_type_ftp" + " set deleted = true where id = ?")
|
|
||||||
@Where(clause = LogicDeleteIdOnlyEntity.LOGIC_DELETE_CLAUSE)
|
|
||||||
public class FtpResourceType extends ResourceType {
|
public class FtpResourceType extends ResourceType {
|
||||||
@Column(nullable = false)
|
@Column(nullable = false)
|
||||||
private String url;
|
private String url;
|
||||||
|
|||||||
@@ -1,21 +1,18 @@
|
|||||||
package com.eshore.gringotts.web.domain.resource.entity.type;
|
package com.eshore.gringotts.web.domain.resource.entity.type;
|
||||||
|
|
||||||
import com.eshore.gringotts.core.Constants;
|
import com.eshore.gringotts.core.Constants;
|
||||||
import com.eshore.gringotts.web.domain.base.entity.LogicDeleteIdOnlyEntity;
|
|
||||||
import com.eshore.gringotts.web.domain.upload.entity.DataFile;
|
import com.eshore.gringotts.web.domain.upload.entity.DataFile;
|
||||||
import javax.persistence.ConstraintMode;
|
import jakarta.persistence.ConstraintMode;
|
||||||
import javax.persistence.Entity;
|
import jakarta.persistence.Entity;
|
||||||
import javax.persistence.ForeignKey;
|
import jakarta.persistence.ForeignKey;
|
||||||
import javax.persistence.JoinColumn;
|
import jakarta.persistence.JoinColumn;
|
||||||
import javax.persistence.OneToOne;
|
import jakarta.persistence.OneToOne;
|
||||||
import javax.persistence.Table;
|
import jakarta.persistence.Table;
|
||||||
import lombok.AllArgsConstructor;
|
import lombok.AllArgsConstructor;
|
||||||
import lombok.Getter;
|
import lombok.Getter;
|
||||||
import lombok.NoArgsConstructor;
|
import lombok.NoArgsConstructor;
|
||||||
import lombok.Setter;
|
import lombok.Setter;
|
||||||
import lombok.ToString;
|
import lombok.ToString;
|
||||||
import org.hibernate.annotations.SQLDelete;
|
|
||||||
import org.hibernate.annotations.Where;
|
|
||||||
|
|
||||||
@Getter
|
@Getter
|
||||||
@Setter
|
@Setter
|
||||||
@@ -24,8 +21,6 @@ import org.hibernate.annotations.Where;
|
|||||||
@NoArgsConstructor
|
@NoArgsConstructor
|
||||||
@Entity
|
@Entity
|
||||||
@Table(name = Constants.TABLE_PREFIX + "resource_type_hdfs")
|
@Table(name = Constants.TABLE_PREFIX + "resource_type_hdfs")
|
||||||
@SQLDelete(sql = "update " + Constants.TABLE_PREFIX + "resource_type_hdfs" + " set deleted = true where id = ?")
|
|
||||||
@Where(clause = LogicDeleteIdOnlyEntity.LOGIC_DELETE_CLAUSE)
|
|
||||||
public class HDFSResourceType extends ResourceType {
|
public class HDFSResourceType extends ResourceType {
|
||||||
@OneToOne
|
@OneToOne
|
||||||
@JoinColumn(nullable = false, foreignKey = @ForeignKey(ConstraintMode.NO_CONSTRAINT))
|
@JoinColumn(nullable = false, foreignKey = @ForeignKey(ConstraintMode.NO_CONSTRAINT))
|
||||||
|
|||||||
@@ -2,15 +2,13 @@ package com.eshore.gringotts.web.domain.resource.entity.type;
|
|||||||
|
|
||||||
import com.eshore.gringotts.core.Constants;
|
import com.eshore.gringotts.core.Constants;
|
||||||
import com.eshore.gringotts.web.domain.base.entity.LogicDeleteIdOnlyEntity;
|
import com.eshore.gringotts.web.domain.base.entity.LogicDeleteIdOnlyEntity;
|
||||||
import javax.persistence.Entity;
|
import jakarta.persistence.Entity;
|
||||||
import javax.persistence.Inheritance;
|
import jakarta.persistence.Inheritance;
|
||||||
import javax.persistence.InheritanceType;
|
import jakarta.persistence.InheritanceType;
|
||||||
import javax.persistence.Table;
|
import jakarta.persistence.Table;
|
||||||
import lombok.Getter;
|
import lombok.Getter;
|
||||||
import lombok.Setter;
|
import lombok.Setter;
|
||||||
import lombok.ToString;
|
import lombok.ToString;
|
||||||
import org.hibernate.annotations.SQLDelete;
|
|
||||||
import org.hibernate.annotations.Where;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 资源类型
|
* 资源类型
|
||||||
@@ -24,8 +22,6 @@ import org.hibernate.annotations.Where;
|
|||||||
@Entity
|
@Entity
|
||||||
@Table(name = Constants.TABLE_PREFIX + "resource_type")
|
@Table(name = Constants.TABLE_PREFIX + "resource_type")
|
||||||
@Inheritance(strategy = InheritanceType.TABLE_PER_CLASS)
|
@Inheritance(strategy = InheritanceType.TABLE_PER_CLASS)
|
||||||
@SQLDelete(sql = "update " + Constants.TABLE_PREFIX + "resource_type" + " set deleted = true where id = ?")
|
|
||||||
@Where(clause = LogicDeleteIdOnlyEntity.LOGIC_DELETE_CLAUSE)
|
|
||||||
public abstract class ResourceType extends LogicDeleteIdOnlyEntity {
|
public abstract class ResourceType extends LogicDeleteIdOnlyEntity {
|
||||||
public abstract Type getResourceType();
|
public abstract Type getResourceType();
|
||||||
|
|
||||||
|
|||||||
@@ -2,14 +2,12 @@ package com.eshore.gringotts.web.domain.upload.entity;
|
|||||||
|
|
||||||
import com.eshore.gringotts.core.Constants;
|
import com.eshore.gringotts.core.Constants;
|
||||||
import com.eshore.gringotts.web.domain.base.entity.LogicDeleteEntity;
|
import com.eshore.gringotts.web.domain.base.entity.LogicDeleteEntity;
|
||||||
import javax.persistence.Entity;
|
import jakarta.persistence.Entity;
|
||||||
import javax.persistence.Table;
|
import jakarta.persistence.Table;
|
||||||
import lombok.Getter;
|
import lombok.Getter;
|
||||||
import lombok.Setter;
|
import lombok.Setter;
|
||||||
import lombok.ToString;
|
import lombok.ToString;
|
||||||
import org.hibernate.annotations.DynamicUpdate;
|
import org.hibernate.annotations.DynamicUpdate;
|
||||||
import org.hibernate.annotations.SQLDelete;
|
|
||||||
import org.hibernate.annotations.Where;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 上传文件
|
* 上传文件
|
||||||
@@ -23,8 +21,6 @@ import org.hibernate.annotations.Where;
|
|||||||
@Entity
|
@Entity
|
||||||
@DynamicUpdate
|
@DynamicUpdate
|
||||||
@Table(name = Constants.TABLE_PREFIX + "data_file")
|
@Table(name = Constants.TABLE_PREFIX + "data_file")
|
||||||
@SQLDelete(sql = "update " + Constants.TABLE_PREFIX + "data_file" + " set deleted = true where id = ?")
|
|
||||||
@Where(clause = LogicDeleteEntity.LOGIC_DELETE_CLAUSE)
|
|
||||||
public class DataFile extends LogicDeleteEntity {
|
public class DataFile extends LogicDeleteEntity {
|
||||||
private String filename;
|
private String filename;
|
||||||
private Long size;
|
private Long size;
|
||||||
|
|||||||
@@ -2,19 +2,19 @@ package com.eshore.gringotts.web.domain.user.entity;
|
|||||||
|
|
||||||
import com.eshore.gringotts.core.Constants;
|
import com.eshore.gringotts.core.Constants;
|
||||||
import com.eshore.gringotts.web.domain.base.entity.SimpleEntity;
|
import com.eshore.gringotts.web.domain.base.entity.SimpleEntity;
|
||||||
|
import jakarta.persistence.Column;
|
||||||
|
import jakarta.persistence.ConstraintMode;
|
||||||
|
import jakarta.persistence.Entity;
|
||||||
|
import jakarta.persistence.EnumType;
|
||||||
|
import jakarta.persistence.Enumerated;
|
||||||
|
import jakarta.persistence.FetchType;
|
||||||
|
import jakarta.persistence.ForeignKey;
|
||||||
|
import jakarta.persistence.JoinColumn;
|
||||||
|
import jakarta.persistence.NamedAttributeNode;
|
||||||
|
import jakarta.persistence.NamedEntityGraph;
|
||||||
|
import jakarta.persistence.OneToOne;
|
||||||
|
import jakarta.persistence.Table;
|
||||||
import java.time.LocalDateTime;
|
import java.time.LocalDateTime;
|
||||||
import javax.persistence.Column;
|
|
||||||
import javax.persistence.ConstraintMode;
|
|
||||||
import javax.persistence.Entity;
|
|
||||||
import javax.persistence.EnumType;
|
|
||||||
import javax.persistence.Enumerated;
|
|
||||||
import javax.persistence.FetchType;
|
|
||||||
import javax.persistence.ForeignKey;
|
|
||||||
import javax.persistence.JoinColumn;
|
|
||||||
import javax.persistence.NamedAttributeNode;
|
|
||||||
import javax.persistence.NamedEntityGraph;
|
|
||||||
import javax.persistence.OneToOne;
|
|
||||||
import javax.persistence.Table;
|
|
||||||
import lombok.Getter;
|
import lombok.Getter;
|
||||||
import lombok.Setter;
|
import lombok.Setter;
|
||||||
import lombok.ToString;
|
import lombok.ToString;
|
||||||
|
|||||||
14
pom.xml
14
pom.xml
@@ -19,12 +19,12 @@
|
|||||||
</modules>
|
</modules>
|
||||||
|
|
||||||
<properties>
|
<properties>
|
||||||
<maven.compiler.source>11</maven.compiler.source>
|
<maven.compiler.source>17</maven.compiler.source>
|
||||||
<maven.compiler.target>11</maven.compiler.target>
|
<maven.compiler.target>17</maven.compiler.target>
|
||||||
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
|
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
|
||||||
|
|
||||||
<spring-boot.version>2.6.15</spring-boot.version>
|
<spring-boot.version>3.2.1</spring-boot.version>
|
||||||
<spring-cloud.version>2021.0.9</spring-cloud.version>
|
<spring-cloud.version>2023.0.4</spring-cloud.version>
|
||||||
|
|
||||||
<hutool.version>5.8.32</hutool.version>
|
<hutool.version>5.8.32</hutool.version>
|
||||||
<fisco.sdk.version>2.10.0</fisco.sdk.version>
|
<fisco.sdk.version>2.10.0</fisco.sdk.version>
|
||||||
@@ -75,7 +75,7 @@
|
|||||||
</dependency>
|
</dependency>
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>com.dtflys.forest</groupId>
|
<groupId>com.dtflys.forest</groupId>
|
||||||
<artifactId>forest-spring-boot-starter</artifactId>
|
<artifactId>forest-spring-boot3-starter</artifactId>
|
||||||
<version>1.5.36</version>
|
<version>1.5.36</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
<dependency>
|
<dependency>
|
||||||
@@ -95,13 +95,13 @@
|
|||||||
</dependency>
|
</dependency>
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>cn.dev33</groupId>
|
<groupId>cn.dev33</groupId>
|
||||||
<artifactId>sa-token-spring-boot-starter</artifactId>
|
<artifactId>sa-token-spring-boot3-starter</artifactId>
|
||||||
<version>1.39.0</version>
|
<version>1.39.0</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>com.blinkfox</groupId>
|
<groupId>com.blinkfox</groupId>
|
||||||
<artifactId>fenix-spring-boot-starter</artifactId>
|
<artifactId>fenix-spring-boot-starter</artifactId>
|
||||||
<version>2.7.0</version>
|
<version>3.0.0</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
|
||||||
<!-- Others -->
|
<!-- Others -->
|
||||||
|
|||||||
Reference in New Issue
Block a user