From 03aa9453b32957ff9e853d8a02140eb86a91c7b3 Mon Sep 17 00:00:00 2001 From: lihongjie0209 Date: Wed, 26 Jul 2023 16:20:24 +0800 Subject: [PATCH] =?UTF-8?q?=E5=B8=B8=E7=94=A8=E5=AE=9E=E4=BD=93?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pom.xml | 8 +++ .../cn/lihongjie/coal/common/JwtUtils.java | 10 ++++ .../coal/controller/BaseController.java | 2 +- .../controller/OrganizationController.java | 12 +++++ .../coal/dao/OrganizationRepository.java | 8 +++ .../CoalWashingDailyAnalysisEntity.java | 3 +- .../coal/entity/DictionaryEntity.java | 2 +- .../coal/entity/DictionaryItemEntity.java | 1 + .../lihongjie/coal/entity/OperationLog.java | 39 +++++++++++++++ .../coal/entity/OrganizationEntity.java | 30 ++++++++++++ .../coal/entity/PermissionEntity.java | 23 +++++++++ .../lihongjie/coal/entity/ResourceEntity.java | 49 +++++++++++++++++++ .../cn/lihongjie/coal/entity/RoleEntity.java | 23 +++++++++ .../cn/lihongjie/coal/entity/UserEntity.java | 48 ++++++++++++++++++ .../coal/entity/{ => base}/BaseEntity.java | 2 +- .../coal/entity/{ => base}/CommonEntity.java | 8 ++- .../coal/entity/base/OrgBaseEntity.java | 18 +++++++ .../coal/entity/base/OrgCommonEntity.java | 20 ++++++++ .../lihongjie/coal/service/BaseService.java | 4 +- .../coal/service/OrganizationService.java | 11 +++++ 20 files changed, 313 insertions(+), 8 deletions(-) create mode 100644 src/main/java/cn/lihongjie/coal/common/JwtUtils.java create mode 100644 src/main/java/cn/lihongjie/coal/controller/OrganizationController.java create mode 100644 src/main/java/cn/lihongjie/coal/dao/OrganizationRepository.java create mode 100644 src/main/java/cn/lihongjie/coal/entity/OperationLog.java create mode 100644 src/main/java/cn/lihongjie/coal/entity/OrganizationEntity.java create mode 100644 src/main/java/cn/lihongjie/coal/entity/PermissionEntity.java create mode 100644 src/main/java/cn/lihongjie/coal/entity/ResourceEntity.java create mode 100644 src/main/java/cn/lihongjie/coal/entity/RoleEntity.java create mode 100644 src/main/java/cn/lihongjie/coal/entity/UserEntity.java rename src/main/java/cn/lihongjie/coal/entity/{ => base}/BaseEntity.java (96%) rename src/main/java/cn/lihongjie/coal/entity/{ => base}/CommonEntity.java (75%) create mode 100644 src/main/java/cn/lihongjie/coal/entity/base/OrgBaseEntity.java create mode 100644 src/main/java/cn/lihongjie/coal/entity/base/OrgCommonEntity.java create mode 100644 src/main/java/cn/lihongjie/coal/service/OrganizationService.java diff --git a/pom.xml b/pom.xml index d5f603e0..453ff635 100644 --- a/pom.xml +++ b/pom.xml @@ -29,6 +29,8 @@ + + @@ -44,6 +46,12 @@ + + + eu.bitwalker + UserAgentUtils + 1.21 + org.springframework.boot spring-boot-starter-web diff --git a/src/main/java/cn/lihongjie/coal/common/JwtUtils.java b/src/main/java/cn/lihongjie/coal/common/JwtUtils.java new file mode 100644 index 00000000..5a7f4f23 --- /dev/null +++ b/src/main/java/cn/lihongjie/coal/common/JwtUtils.java @@ -0,0 +1,10 @@ +package cn.lihongjie.coal.common; + +import lombok.experimental.UtilityClass; + +@UtilityClass +public class JwtUtils { + + + +} diff --git a/src/main/java/cn/lihongjie/coal/controller/BaseController.java b/src/main/java/cn/lihongjie/coal/controller/BaseController.java index d25dae82..9bb93ff4 100644 --- a/src/main/java/cn/lihongjie/coal/controller/BaseController.java +++ b/src/main/java/cn/lihongjie/coal/controller/BaseController.java @@ -3,7 +3,7 @@ package cn.lihongjie.coal.controller; import cn.lihongjie.coal.dao.BaseRepository; import cn.lihongjie.coal.dto.CommonQuery; import cn.lihongjie.coal.dto.IdRequest; -import cn.lihongjie.coal.entity.BaseEntity; +import cn.lihongjie.coal.entity.base.BaseEntity; import cn.lihongjie.coal.service.BaseService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.PostMapping; diff --git a/src/main/java/cn/lihongjie/coal/controller/OrganizationController.java b/src/main/java/cn/lihongjie/coal/controller/OrganizationController.java new file mode 100644 index 00000000..fd215274 --- /dev/null +++ b/src/main/java/cn/lihongjie/coal/controller/OrganizationController.java @@ -0,0 +1,12 @@ +package cn.lihongjie.coal.controller; + +import cn.lihongjie.coal.dao.OrganizationRepository; +import cn.lihongjie.coal.entity.OrganizationEntity; +import cn.lihongjie.coal.service.OrganizationService; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +@RestController +@RequestMapping("/coalWashingDailyAnalysis") +public class OrganizationController extends BaseController { +} diff --git a/src/main/java/cn/lihongjie/coal/dao/OrganizationRepository.java b/src/main/java/cn/lihongjie/coal/dao/OrganizationRepository.java new file mode 100644 index 00000000..1e1366d9 --- /dev/null +++ b/src/main/java/cn/lihongjie/coal/dao/OrganizationRepository.java @@ -0,0 +1,8 @@ +package cn.lihongjie.coal.dao; + +import org.springframework.stereotype.Repository; +import cn.lihongjie.coal.entity.OrganizationEntity; + +@Repository +public interface OrganizationRepository extends BaseRepository { +} \ No newline at end of file diff --git a/src/main/java/cn/lihongjie/coal/entity/CoalWashingDailyAnalysisEntity.java b/src/main/java/cn/lihongjie/coal/entity/CoalWashingDailyAnalysisEntity.java index 9f8d15bc..4240d066 100644 --- a/src/main/java/cn/lihongjie/coal/entity/CoalWashingDailyAnalysisEntity.java +++ b/src/main/java/cn/lihongjie/coal/entity/CoalWashingDailyAnalysisEntity.java @@ -1,5 +1,6 @@ package cn.lihongjie.coal.entity; +import cn.lihongjie.coal.entity.base.OrgCommonEntity; import jakarta.persistence.Entity; import lombok.Data; import org.hibernate.annotations.Comment; @@ -8,7 +9,7 @@ import java.time.LocalDate; @Entity @Data -public class CoalWashingDailyAnalysisEntity extends BaseEntity { +public class CoalWashingDailyAnalysisEntity extends OrgCommonEntity { diff --git a/src/main/java/cn/lihongjie/coal/entity/DictionaryEntity.java b/src/main/java/cn/lihongjie/coal/entity/DictionaryEntity.java index 08eec1c9..f3d54bb6 100644 --- a/src/main/java/cn/lihongjie/coal/entity/DictionaryEntity.java +++ b/src/main/java/cn/lihongjie/coal/entity/DictionaryEntity.java @@ -1,12 +1,12 @@ package cn.lihongjie.coal.entity; +import cn.lihongjie.coal.entity.base.CommonEntity; import com.fasterxml.jackson.annotation.JsonManagedReference; import jakarta.persistence.Entity; import jakarta.persistence.OneToMany; import lombok.Getter; import lombok.Setter; import org.hibernate.annotations.Comment; -import org.hibernate.annotations.JoinFormula; import java.util.List; diff --git a/src/main/java/cn/lihongjie/coal/entity/DictionaryItemEntity.java b/src/main/java/cn/lihongjie/coal/entity/DictionaryItemEntity.java index ee0fc24e..3f165c9c 100644 --- a/src/main/java/cn/lihongjie/coal/entity/DictionaryItemEntity.java +++ b/src/main/java/cn/lihongjie/coal/entity/DictionaryItemEntity.java @@ -1,5 +1,6 @@ package cn.lihongjie.coal.entity; +import cn.lihongjie.coal.entity.base.CommonEntity; import com.fasterxml.jackson.annotation.JsonBackReference; import com.fasterxml.jackson.annotation.JsonManagedReference; import jakarta.persistence.*; diff --git a/src/main/java/cn/lihongjie/coal/entity/OperationLog.java b/src/main/java/cn/lihongjie/coal/entity/OperationLog.java new file mode 100644 index 00000000..03a52170 --- /dev/null +++ b/src/main/java/cn/lihongjie/coal/entity/OperationLog.java @@ -0,0 +1,39 @@ +package cn.lihongjie.coal.entity; + +import cn.lihongjie.coal.entity.base.OrgBaseEntity; +import jakarta.persistence.Entity; +import jakarta.persistence.OneToOne; +import lombok.Data; +import org.hibernate.annotations.Comment; + +@Entity +@Data +@Comment("操作日志") +public class OperationLog extends OrgBaseEntity { + + @Comment("ip") + private String ip; + @Comment("ip定位") + private String ipLocation; + + @Comment("userAgent") + private String userAgent; + + + @Comment("耗时") + private Integer timeCost; + + @Comment("URL") + private String url; + + + @Comment("操作状态") + @OneToOne + private DictionaryItemEntity status; + + @Comment("错误堆栈") + private String stacktrace; + + + +} diff --git a/src/main/java/cn/lihongjie/coal/entity/OrganizationEntity.java b/src/main/java/cn/lihongjie/coal/entity/OrganizationEntity.java new file mode 100644 index 00000000..1b98f3ed --- /dev/null +++ b/src/main/java/cn/lihongjie/coal/entity/OrganizationEntity.java @@ -0,0 +1,30 @@ +package cn.lihongjie.coal.entity; + +import cn.lihongjie.coal.entity.base.CommonEntity; +import com.fasterxml.jackson.annotation.JsonBackReference; +import com.fasterxml.jackson.annotation.JsonManagedReference; +import jakarta.persistence.*; +import lombok.Getter; +import lombok.Setter; +import org.hibernate.annotations.Comment; + +import java.util.List; + +@Entity +@Comment("机构") +@Getter +@Setter +public class OrganizationEntity extends CommonEntity { + + + @OneToMany + @JsonManagedReference + private List children; + + @ManyToOne + @JsonBackReference + @JoinColumn(name = "parent_id", foreignKey = @ForeignKey(value = ConstraintMode.NO_CONSTRAINT)) + private OrganizationEntity parent; + + +} diff --git a/src/main/java/cn/lihongjie/coal/entity/PermissionEntity.java b/src/main/java/cn/lihongjie/coal/entity/PermissionEntity.java new file mode 100644 index 00000000..0dc3d144 --- /dev/null +++ b/src/main/java/cn/lihongjie/coal/entity/PermissionEntity.java @@ -0,0 +1,23 @@ +package cn.lihongjie.coal.entity; + +import cn.lihongjie.coal.entity.base.CommonEntity; +import com.fasterxml.jackson.annotation.JsonManagedReference; +import jakarta.persistence.Entity; +import jakarta.persistence.ManyToMany; +import lombok.Data; +import org.hibernate.annotations.Comment; + +import java.util.List; + +@Data +@Entity +@Comment("权限") +public class PermissionEntity extends CommonEntity { + + + @ManyToMany(mappedBy = "permissions") + @JsonManagedReference + private List resources; + + +} diff --git a/src/main/java/cn/lihongjie/coal/entity/ResourceEntity.java b/src/main/java/cn/lihongjie/coal/entity/ResourceEntity.java new file mode 100644 index 00000000..d6799b86 --- /dev/null +++ b/src/main/java/cn/lihongjie/coal/entity/ResourceEntity.java @@ -0,0 +1,49 @@ +package cn.lihongjie.coal.entity; + +import cn.lihongjie.coal.entity.base.CommonEntity; +import com.fasterxml.jackson.annotation.JsonBackReference; +import com.fasterxml.jackson.annotation.JsonManagedReference; +import jakarta.persistence.*; +import lombok.Data; +import org.hibernate.annotations.Comment; + +import java.util.List; + +@Data +@Entity +@Comment("资源") +public class ResourceEntity extends CommonEntity { + + @ManyToMany + @JsonBackReference + private List permissions; + + + @OneToMany + @JsonManagedReference + private List children; + + @ManyToOne + @JsonBackReference + @JoinColumn(name = "parent_id", foreignKey = @ForeignKey(value = ConstraintMode.NO_CONSTRAINT)) + private ResourceEntity parent; + + + @Comment("资源类型") + private String type; + + + + @Comment("资源地址") + private String url; + + + + + + + + + + +} diff --git a/src/main/java/cn/lihongjie/coal/entity/RoleEntity.java b/src/main/java/cn/lihongjie/coal/entity/RoleEntity.java new file mode 100644 index 00000000..2146a11a --- /dev/null +++ b/src/main/java/cn/lihongjie/coal/entity/RoleEntity.java @@ -0,0 +1,23 @@ +package cn.lihongjie.coal.entity; + +import cn.lihongjie.coal.entity.base.OrgBaseEntity; +import com.fasterxml.jackson.annotation.JsonBackReference; +import jakarta.persistence.Entity; +import jakarta.persistence.ManyToMany; +import lombok.Data; + +import java.util.List; + +@Entity +@Data +public class RoleEntity extends OrgBaseEntity { + + + @ManyToMany(mappedBy = "roles") + @JsonBackReference + private List users; + + @ManyToMany + private List permissions; + +} diff --git a/src/main/java/cn/lihongjie/coal/entity/UserEntity.java b/src/main/java/cn/lihongjie/coal/entity/UserEntity.java new file mode 100644 index 00000000..c6df3ccd --- /dev/null +++ b/src/main/java/cn/lihongjie/coal/entity/UserEntity.java @@ -0,0 +1,48 @@ +package cn.lihongjie.coal.entity; + +import cn.lihongjie.coal.entity.base.OrgCommonEntity; +import com.fasterxml.jackson.annotation.JsonManagedReference; +import jakarta.persistence.Entity; +import jakarta.persistence.ManyToMany; +import lombok.Data; +import org.hibernate.annotations.Comment; + +import java.util.List; + +@Data +@Entity +public class UserEntity extends OrgCommonEntity { + + + @Comment("用户名") + private String username; + + @Comment("密码") + private String password; + + + @Comment("邮箱") + private String email; + + + + @Comment("手机号") + private String phone; + + @ManyToMany + @JsonManagedReference + private List roles; + + + + + + + + + + + + + +} diff --git a/src/main/java/cn/lihongjie/coal/entity/BaseEntity.java b/src/main/java/cn/lihongjie/coal/entity/base/BaseEntity.java similarity index 96% rename from src/main/java/cn/lihongjie/coal/entity/BaseEntity.java rename to src/main/java/cn/lihongjie/coal/entity/base/BaseEntity.java index 6227ba6d..940ef89b 100644 --- a/src/main/java/cn/lihongjie/coal/entity/BaseEntity.java +++ b/src/main/java/cn/lihongjie/coal/entity/base/BaseEntity.java @@ -1,4 +1,4 @@ -package cn.lihongjie.coal.entity; +package cn.lihongjie.coal.entity.base; import jakarta.persistence.GeneratedValue; diff --git a/src/main/java/cn/lihongjie/coal/entity/CommonEntity.java b/src/main/java/cn/lihongjie/coal/entity/base/CommonEntity.java similarity index 75% rename from src/main/java/cn/lihongjie/coal/entity/CommonEntity.java rename to src/main/java/cn/lihongjie/coal/entity/base/CommonEntity.java index ff6237e8..e63b6425 100644 --- a/src/main/java/cn/lihongjie/coal/entity/CommonEntity.java +++ b/src/main/java/cn/lihongjie/coal/entity/base/CommonEntity.java @@ -1,5 +1,6 @@ -package cn.lihongjie.coal.entity; +package cn.lihongjie.coal.entity.base; +import cn.lihongjie.coal.entity.base.BaseEntity; import jakarta.persistence.MappedSuperclass; import lombok.Getter; import lombok.Setter; @@ -17,6 +18,11 @@ public class CommonEntity extends BaseEntity { private String code; + @Comment("备注") + private String remarks; + + + @Comment("排序键") private Integer sortKey; diff --git a/src/main/java/cn/lihongjie/coal/entity/base/OrgBaseEntity.java b/src/main/java/cn/lihongjie/coal/entity/base/OrgBaseEntity.java new file mode 100644 index 00000000..b745397c --- /dev/null +++ b/src/main/java/cn/lihongjie/coal/entity/base/OrgBaseEntity.java @@ -0,0 +1,18 @@ +package cn.lihongjie.coal.entity.base; + +import cn.lihongjie.coal.entity.OrganizationEntity; +import cn.lihongjie.coal.entity.base.BaseEntity; +import jakarta.persistence.*; +import lombok.Getter; +import lombok.Setter; + +@MappedSuperclass +@Getter +@Setter +public class OrgBaseEntity extends BaseEntity { + + @ManyToOne + @JoinColumn(name = "organization_id", foreignKey = @ForeignKey(ConstraintMode.NO_CONSTRAINT)) + private OrganizationEntity organization; + +} diff --git a/src/main/java/cn/lihongjie/coal/entity/base/OrgCommonEntity.java b/src/main/java/cn/lihongjie/coal/entity/base/OrgCommonEntity.java new file mode 100644 index 00000000..bfd5064e --- /dev/null +++ b/src/main/java/cn/lihongjie/coal/entity/base/OrgCommonEntity.java @@ -0,0 +1,20 @@ +package cn.lihongjie.coal.entity.base; + +import cn.lihongjie.coal.entity.OrganizationEntity; +import cn.lihongjie.coal.entity.base.CommonEntity; +import com.fasterxml.jackson.annotation.JsonIgnore; +import jakarta.persistence.*; +import lombok.Getter; +import lombok.Setter; + +@MappedSuperclass +@Getter +@Setter +public class OrgCommonEntity extends CommonEntity { + + @ManyToOne + @JoinColumn(name = "organization_id", foreignKey = @ForeignKey(ConstraintMode.NO_CONSTRAINT)) + @JsonIgnore + private OrganizationEntity organization; + +} diff --git a/src/main/java/cn/lihongjie/coal/service/BaseService.java b/src/main/java/cn/lihongjie/coal/service/BaseService.java index 39898e7c..574df88b 100644 --- a/src/main/java/cn/lihongjie/coal/service/BaseService.java +++ b/src/main/java/cn/lihongjie/coal/service/BaseService.java @@ -3,13 +3,11 @@ package cn.lihongjie.coal.service; import cn.lihongjie.coal.dao.BaseRepository; import cn.lihongjie.coal.dto.CommonQuery; import cn.lihongjie.coal.dto.IdRequest; -import cn.lihongjie.coal.dto.PagedData; -import cn.lihongjie.coal.entity.BaseEntity; +import cn.lihongjie.coal.entity.base.BaseEntity; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.core.convert.ConversionService; import org.springframework.data.domain.Page; import org.springframework.data.domain.PageRequest; -import org.springframework.data.domain.Pageable; import org.springframework.data.domain.Sort; public abstract class BaseService> { diff --git a/src/main/java/cn/lihongjie/coal/service/OrganizationService.java b/src/main/java/cn/lihongjie/coal/service/OrganizationService.java new file mode 100644 index 00000000..d8591e86 --- /dev/null +++ b/src/main/java/cn/lihongjie/coal/service/OrganizationService.java @@ -0,0 +1,11 @@ +package cn.lihongjie.coal.service; + +import cn.lihongjie.coal.dao.OrganizationRepository; +import cn.lihongjie.coal.entity.OrganizationEntity; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Service; + +@Service +@Slf4j +public class OrganizationService extends BaseService { +}