diff --git a/.gitignore b/.gitignore
index 45a53ea..b11fd19 100644
--- a/.gitignore
+++ b/.gitignore
@@ -82,3 +82,4 @@ Icon
Network Trash Folder
Temporary Items
.apdisk
+*.db
diff --git a/client/src/main.js b/client/src/main.js
index 1da5c96..c640c20 100644
--- a/client/src/main.js
+++ b/client/src/main.js
@@ -27,6 +27,11 @@ createApp(App)
path: 'overview',
component: () => import('@/views/management/Overview.vue'),
},
+ {
+ name: 'organization',
+ path: 'organization',
+ component: () => import('@/views/management/Organization.vue'),
+ },
{
name: 'setting',
path: 'setting',
diff --git a/client/src/utils.js b/client/src/utils.js
index 8aa63bb..4a93dc7 100644
--- a/client/src/utils.js
+++ b/client/src/utils.js
@@ -1,19 +1,21 @@
const information = {
- debug: true,
- baseUrl: 'http://localhost'
+ debug: true,
+ baseUrl: 'http://localhost:8080',
}
export function amisRender(target, amisJson) {
- let amisJsonObject = amisJson(information)
- if (information.debug) {
- console.log(amisJsonObject)
- }
- amisRequire('amis/embed').embed(
- target,
- amisJsonObject,
- information,
- {
- theme: 'antd'
- }
- )
+ let amisJsonObject = amisJson(information)
+ if (information.debug) {
+ console.log(amisJsonObject)
+ }
+ amisRequire('amis/embed').embed(
+ target,
+ amisJsonObject,
+ information,
+ {
+ theme: 'antd',
+ enableAMISDebug:
+ information.debug,
+ },
+ )
}
\ No newline at end of file
diff --git a/client/src/views/management/Index.vue b/client/src/views/management/Index.vue
index 32986a5..0e1a1c3 100644
--- a/client/src/views/management/Index.vue
+++ b/client/src/views/management/Index.vue
@@ -1,5 +1,8 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/main/java/com/lanyuanxiaoyao/server/configuration/Constants.java b/src/main/java/com/lanyuanxiaoyao/server/configuration/Constants.java
index 2c24ccc..35a35b4 100644
--- a/src/main/java/com/lanyuanxiaoyao/server/configuration/Constants.java
+++ b/src/main/java/com/lanyuanxiaoyao/server/configuration/Constants.java
@@ -5,5 +5,5 @@ package com.lanyuanxiaoyao.server.configuration;
* @version 20250327
*/
public interface Constants {
- String DATABASE_TABLE_PREFIX = "system_";
+ String DATABASE_TABLE_PREFIX = "platform_";
}
diff --git a/src/main/java/com/lanyuanxiaoyao/server/configuration/database/SnowflakeId.java b/src/main/java/com/lanyuanxiaoyao/server/configuration/database/SnowflakeId.java
index 54f93db..929146b 100644
--- a/src/main/java/com/lanyuanxiaoyao/server/configuration/database/SnowflakeId.java
+++ b/src/main/java/com/lanyuanxiaoyao/server/configuration/database/SnowflakeId.java
@@ -22,7 +22,6 @@ import static java.lang.annotation.RetentionPolicy.RUNTIME;
@Slf4j
public class SnowflakeId {
@IdGeneratorType(IdGenerator.class)
- @ValueGenerationType(generatedBy = IdGenerator.class)
@Retention(RUNTIME)
@Target({FIELD, METHOD})
public @interface Generator {
diff --git a/src/main/java/com/lanyuanxiaoyao/server/entity/Department.java b/src/main/java/com/lanyuanxiaoyao/server/entity/Department.java
index d8ccd9d..eaf1e13 100644
--- a/src/main/java/com/lanyuanxiaoyao/server/entity/Department.java
+++ b/src/main/java/com/lanyuanxiaoyao/server/entity/Department.java
@@ -2,6 +2,7 @@ package com.lanyuanxiaoyao.server.entity;
import com.lanyuanxiaoyao.server.configuration.Constants;
import com.lanyuanxiaoyao.server.configuration.database.SnowflakeId;
+import com.yahoo.elide.annotation.Include;
import jakarta.persistence.ConstraintMode;
import jakarta.persistence.Entity;
import jakarta.persistence.FetchType;
@@ -27,19 +28,24 @@ import lombok.ToString;
@ToString
@Entity
@Table(name = Constants.DATABASE_TABLE_PREFIX + "department")
+@Include
public class Department {
@Id
@SnowflakeId.Generator
private Long departmentId;
private String departmentName;
- @ManyToOne
- @JoinColumn(nullable = false, foreignKey = @ForeignKey(ConstraintMode.NO_CONSTRAINT))
+ @ManyToOne(optional = false)
+ @JoinColumn(foreignKey = @ForeignKey(ConstraintMode.NO_CONSTRAINT))
private Organization organization;
+ @OneToMany(fetch = FetchType.LAZY, mappedBy = "department")
+ @ToString.Exclude
+ private Set users;
+
@ManyToOne
private Department parent;
- @OneToMany(fetch = FetchType.LAZY, mappedBy = "departmentParent")
+ @OneToMany(fetch = FetchType.LAZY, mappedBy = "parent")
@ToString.Exclude
private Set children;
}
diff --git a/src/main/java/com/lanyuanxiaoyao/server/entity/Organization.java b/src/main/java/com/lanyuanxiaoyao/server/entity/Organization.java
index 000d3e6..c919362 100644
--- a/src/main/java/com/lanyuanxiaoyao/server/entity/Organization.java
+++ b/src/main/java/com/lanyuanxiaoyao/server/entity/Organization.java
@@ -2,6 +2,7 @@ package com.lanyuanxiaoyao.server.entity;
import com.lanyuanxiaoyao.server.configuration.Constants;
import com.lanyuanxiaoyao.server.configuration.database.SnowflakeId;
+import com.yahoo.elide.annotation.Include;
import jakarta.persistence.Entity;
import jakarta.persistence.FetchType;
import jakarta.persistence.Id;
@@ -23,12 +24,17 @@ import lombok.ToString;
@ToString
@Entity
@Table(name = Constants.DATABASE_TABLE_PREFIX + "organization")
+@Include
public class Organization {
@Id
@SnowflakeId.Generator
private Long organizationId;
private String organizationName;
+ @OneToMany(fetch = FetchType.LAZY, mappedBy = "organization")
+ @ToString.Exclude
+ private Set users;
+
@OneToMany(fetch = FetchType.LAZY, mappedBy = "organization")
@ToString.Exclude
private Set departments;
diff --git a/src/main/java/com/lanyuanxiaoyao/server/entity/User.java b/src/main/java/com/lanyuanxiaoyao/server/entity/User.java
index c77fa14..af24799 100644
--- a/src/main/java/com/lanyuanxiaoyao/server/entity/User.java
+++ b/src/main/java/com/lanyuanxiaoyao/server/entity/User.java
@@ -2,9 +2,15 @@ package com.lanyuanxiaoyao.server.entity;
import com.lanyuanxiaoyao.server.configuration.Constants;
import com.lanyuanxiaoyao.server.configuration.database.SnowflakeId;
+import com.yahoo.elide.annotation.Include;
+import jakarta.persistence.ConstraintMode;
import jakarta.persistence.Entity;
+import jakarta.persistence.ForeignKey;
import jakarta.persistence.Id;
+import jakarta.persistence.JoinColumn;
+import jakarta.persistence.ManyToOne;
import jakarta.persistence.Table;
+import jakarta.persistence.UniqueConstraint;
import lombok.Getter;
import lombok.Setter;
import lombok.ToString;
@@ -20,11 +26,20 @@ import lombok.ToString;
@ToString
@Entity
@Table(name = Constants.DATABASE_TABLE_PREFIX + "user")
+@Include
public class User {
@Id
@SnowflakeId.Generator
private Long userId;
private String userCode;
- private String userNickName;
+ private String userNickname;
private String userSecret;
+
+ @ManyToOne
+ @JoinColumn(foreignKey = @ForeignKey(ConstraintMode.NO_CONSTRAINT))
+ private Organization organization;
+
+ @ManyToOne
+ @JoinColumn(foreignKey = @ForeignKey(ConstraintMode.NO_CONSTRAINT))
+ private Department department;
}
diff --git a/src/test/resources/organization.http b/src/test/resources/organization.http
new file mode 100644
index 0000000..563b0ca
--- /dev/null
+++ b/src/test/resources/organization.http
@@ -0,0 +1,10 @@
+### Create
+POST http://localhost:8080/jsonapi/organization
+Content-Type: application/json
+
+{
+ "type": "organization",
+ "attributes": {
+ "organizationName": "苹果公司"
+ }
+}
\ No newline at end of file