feat: 增加注解联动

This commit is contained in:
wangyu 2024-07-22 23:06:51 +08:00
parent a0417f6409
commit ea79cc5ae4
17 changed files with 104 additions and 68 deletions

View File

@ -1,20 +1,18 @@
package dev.flyfish.framework.approval.domain.record;
import dev.flyfish.framework.annotations.Entity;
import dev.flyfish.framework.annotations.Property;
import dev.flyfish.framework.approval.enums.ApproveAction;
import dev.flyfish.framework.domain.base.AuditDomain;
import lombok.Getter;
import lombok.Setter;
import org.springframework.data.mongodb.core.mapping.Document;
import org.springframework.data.relational.core.mapping.Column;
import org.springframework.data.relational.core.mapping.Table;
/**
* 审批记录
*
* @author wangyu
*/
@Document(collection = "approve-records")
@Table("t_approve_records")
@Entity(table = "t_approve_records", collection = "approve-records")
@Getter
@Setter
public class ApproveRecord extends AuditDomain {
@ -26,11 +24,11 @@ public class ApproveRecord extends AuditDomain {
private String module;
// 模块名称
@Column("module_name")
@Property(column = "module_name")
private String moduleName;
// 数据id
@Column("data_id")
@Property(column = "data_id")
private String dataId;
// 审批人

View File

@ -1,12 +1,11 @@
package dev.flyfish.framework.backup.domain;
import dev.flyfish.framework.annotations.Entity;
import dev.flyfish.framework.domain.base.AuditDomain;
import dev.flyfish.framework.enums.NamedEnum;
import lombok.AllArgsConstructor;
import lombok.Getter;
import lombok.Setter;
import org.springframework.data.mongodb.core.mapping.Document;
import org.springframework.data.relational.core.mapping.Table;
/**
* 系统备份
@ -15,8 +14,7 @@ import org.springframework.data.relational.core.mapping.Table;
*/
@Getter
@Setter
@Document(collection = "backups")
@Table("t_backup")
@Entity(collection = "backups", table = "t_backup")
public class Backup extends AuditDomain {
// 文件路径

View File

@ -0,0 +1,53 @@
package dev.flyfish.framework.annotations;
import org.springframework.core.annotation.AliasFor;
import org.springframework.data.mongodb.core.mapping.Document;
import org.springframework.data.relational.core.mapping.Table;
import java.lang.annotation.*;
/**
* 实体表示
* 同时兼容mongo和mysql
*
* @author wangyu
*/
@Target(ElementType.TYPE)
@Retention(RetentionPolicy.RUNTIME)
@Documented
@Document
@Table
public @interface Entity {
/**
* 显示名称
*
* @return 结果
*/
@AliasFor("title")
String value() default "";
/**
* 显示名称别名
*
* @return 结果
*/
@AliasFor("value")
String title() default "";
/**
* 表名
*
* @return 结果
*/
@AliasFor(annotation = Table.class, attribute = "value")
String table() default "";
/**
* mongodb集合名
*
* @return 结果
*/
@AliasFor(annotation = Document.class, attribute = "value")
String collection() default "";
}

View File

@ -1,6 +1,8 @@
package dev.flyfish.framework.annotations;
import org.springframework.core.annotation.AliasFor;
import org.springframework.data.mongodb.core.mapping.Field;
import org.springframework.data.relational.core.mapping.Column;
import java.lang.annotation.*;
@ -13,6 +15,8 @@ import java.lang.annotation.*;
@Retention(RetentionPolicy.RUNTIME)
@Documented
@Repeatable(Properties.class)
@Column
@Field
public @interface Property {
/**
@ -20,8 +24,17 @@ public @interface Property {
*
* @return 结果
*/
@AliasFor(annotation = Field.class, attribute = "value")
String key() default "";
/**
* 指定数据库列名
*
* @return 结果
*/
@AliasFor(annotation = Column.class, attribute = "value")
String column() default "";
/**
* 显示标题
*

View File

@ -34,9 +34,7 @@ public @interface QueryField {
Type type() default Type.EQ;
/**
* 拼接在某个字段前
*
* @return
* @return 拼接在某个字段前
*/
String before() default "";

View File

@ -7,7 +7,6 @@ import org.springframework.data.annotation.CreatedBy;
import org.springframework.data.annotation.CreatedDate;
import org.springframework.data.annotation.LastModifiedBy;
import org.springframework.data.annotation.LastModifiedDate;
import org.springframework.data.relational.core.mapping.Column;
import java.time.LocalDateTime;
@ -24,16 +23,14 @@ public abstract class AuditDomain extends Domain {
* 创建日期
*/
@CreatedDate
@Property(value = "创建日期", readonly = true)
@Column("create_time")
@Property(value = "创建日期", column = "create_time", readonly = true)
protected LocalDateTime createTime;
/**
* 修改日期
*/
@LastModifiedDate
@Property(value = "更新日期", readonly = true)
@Column("modify_time")
@Property(value = "更新日期", column = "modify_time", readonly = true)
protected LocalDateTime modifyTime;
/**
@ -46,8 +43,7 @@ public abstract class AuditDomain extends Domain {
/**
* 创建人id
*/
@Property(readonly = true)
@Column("creator_id")
@Property(column = "creator_id", readonly = true)
protected String creatorId;
/**
@ -60,7 +56,6 @@ public abstract class AuditDomain extends Domain {
/**
* 修改人id
*/
@Property(readonly = true)
@Column("modifier_id")
@Property(column = "modifier_id", readonly = true)
protected String modifierId;
}

View File

@ -1,18 +1,16 @@
package dev.flyfish.framework.domain.po;
import dev.flyfish.framework.annotations.Entity;
import dev.flyfish.framework.annotations.Property;
import dev.flyfish.framework.domain.tree.TreeDomain;
import lombok.*;
import org.springframework.data.mongodb.core.mapping.Document;
import org.springframework.data.relational.core.mapping.Column;
import org.springframework.data.relational.core.mapping.Table;
/**
* 部门
*
* @author wangyu
*/
@Document("departments")
@Table("t_department")
@Entity(table = "t_department", collection = "departments")
@Getter
@Setter
@NoArgsConstructor
@ -25,7 +23,7 @@ public class Department extends TreeDomain<Department> {
/**
* 部门的完整名称
*/
@Column("full_name")
@Property(column = "full_name")
private String fullName;
/**

View File

@ -1,10 +1,9 @@
package dev.flyfish.framework.domain.po;
import dev.flyfish.framework.annotations.Entity;
import dev.flyfish.framework.domain.base.AuditDomain;
import lombok.Getter;
import lombok.Setter;
import org.springframework.data.mongodb.core.mapping.Document;
import org.springframework.data.relational.core.mapping.Table;
import java.util.Map;
@ -15,8 +14,7 @@ import java.util.Map;
*/
@Getter
@Setter
@Document(collection = "excel-mappings")
@Table("t_excel_mapping")
@Entity(table = "t_excel_mapping", collection = "excel-mappings")
public class ExcelMapping extends AuditDomain {
// 映射关系

View File

@ -1,20 +1,18 @@
package dev.flyfish.framework.domain.po;
import dev.flyfish.framework.annotations.Entity;
import dev.flyfish.framework.domain.tree.TreeDomain;
import dev.flyfish.framework.enums.NamedEnum;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.Getter;
import org.springframework.data.mongodb.core.mapping.Document;
import org.springframework.data.relational.core.mapping.Table;
/**
* 权限
*
* @author wangyu
*/
@Document("permissions")
@Table("t_permission")
@Entity(table = "t_permission", collection = "permissions")
@Data
public class Permission extends TreeDomain<Permission> {

View File

@ -1,13 +1,12 @@
package dev.flyfish.framework.domain.po;
import dev.flyfish.framework.annotations.Entity;
import dev.flyfish.framework.domain.base.AuditDomain;
import dev.flyfish.framework.enums.NamedEnum;
import dev.flyfish.framework.enums.RoleType;
import dev.flyfish.framework.relational.mapping.Association;
import lombok.*;
import org.springframework.data.mongodb.core.mapping.DBRef;
import org.springframework.data.mongodb.core.mapping.Document;
import org.springframework.data.relational.core.mapping.Table;
import java.util.List;
@ -16,8 +15,7 @@ import java.util.List;
*
* @author wangyu
*/
@Document("roles")
@Table("t_role")
@Entity(table = "t_role", collection = "roles")
@Data
@Builder
@AllArgsConstructor

View File

@ -2,6 +2,8 @@ package dev.flyfish.framework.domain.po;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonProperty;
import dev.flyfish.framework.annotations.Entity;
import dev.flyfish.framework.annotations.Property;
import dev.flyfish.framework.domain.base.AuditDomain;
import dev.flyfish.framework.domain.base.IUser;
import dev.flyfish.framework.enums.UserStatus;
@ -15,15 +17,12 @@ import lombok.NoArgsConstructor;
import org.springframework.data.annotation.Transient;
import org.springframework.data.mongodb.core.index.Indexed;
import org.springframework.data.mongodb.core.mapping.DBRef;
import org.springframework.data.mongodb.core.mapping.Document;
import org.springframework.data.relational.core.mapping.Column;
import org.springframework.data.relational.core.mapping.Table;
import java.time.LocalDateTime;
import java.util.List;
@Document("users")
@Table("t_user")
@Entity(table = "t_user", collection = "users", title = "用户表")
@Data
@Builder
@NoArgsConstructor
@ -74,7 +73,7 @@ public class User extends AuditDomain implements IUser {
* 有效期
*/
@JsonFormat(pattern = "yyyy-MM-dd")
@Column("valid_date")
@Property(column = "valid_date")
private LocalDateTime validDate;
/**

View File

@ -1,10 +1,10 @@
package dev.flyfish.test.mongo.repository;
import dev.flyfish.framework.annotations.Entity;
import dev.flyfish.framework.domain.base.AuditDomain;
import lombok.Data;
import org.springframework.data.mongodb.core.mapping.Document;
@Document("test")
@Entity(table = "test", collection = "test")
@Data
public class TestDO extends AuditDomain {

View File

@ -1,10 +1,9 @@
package dev.flyfish.framework.dict.domain;
import dev.flyfish.framework.annotations.Entity;
import dev.flyfish.framework.domain.base.AuditDomain;
import lombok.Getter;
import lombok.Setter;
import org.springframework.data.mongodb.core.mapping.Document;
import org.springframework.data.relational.core.mapping.Table;
import java.util.List;
@ -15,8 +14,7 @@ import java.util.List;
*/
@Getter
@Setter
@Document(collection = "auto-completes")
@Table("t_auto_complete")
@Entity(table = "t_auto_complete", collection = "auto-completes")
public class AutoComplete extends AuditDomain {
// 候选值列表

View File

@ -1,11 +1,10 @@
package dev.flyfish.framework.dict.domain;
import dev.flyfish.framework.annotations.Entity;
import dev.flyfish.framework.domain.base.AuditDomain;
import lombok.Getter;
import lombok.Setter;
import org.apache.commons.lang3.StringUtils;
import org.springframework.data.mongodb.core.mapping.Document;
import org.springframework.data.relational.core.mapping.Table;
import java.util.List;
import java.util.Objects;
@ -17,8 +16,7 @@ import java.util.Objects;
*/
@Getter
@Setter
@Document(collection = "dictionaries")
@Table("t_dictionary")
@Entity(table = "t_dictionary", collection = "dictionaries")
public class Dictionary extends AuditDomain {
// 字典表的值

View File

@ -1,13 +1,11 @@
package dev.flyfish.framework.file.domain;
import dev.flyfish.framework.annotations.Entity;
import dev.flyfish.framework.annotations.Property;
import dev.flyfish.framework.domain.base.AuditDomain;
import lombok.*;
import org.springframework.data.mongodb.core.mapping.Document;
import org.springframework.data.relational.core.mapping.Table;
@Document(collection = "attachments")
@Table("t_attachment")
@Entity(table = "t_attachment", collection = "attachments")
@Getter
@Setter
@AllArgsConstructor

View File

@ -1,11 +1,10 @@
package dev.flyfish.framework.form.domain;
import dev.flyfish.framework.annotations.Entity;
import dev.flyfish.framework.bean.ObjectMap;
import dev.flyfish.framework.domain.base.Domain;
import lombok.Data;
import org.springframework.data.mongodb.core.index.CompoundIndex;
import org.springframework.data.mongodb.core.mapping.Document;
import org.springframework.data.relational.core.mapping.Table;
import java.util.ArrayList;
import java.util.List;
@ -13,9 +12,8 @@ import java.util.List;
/**
* 在线表单
*/
@Document("online-forms")
@Entity(table = "t_online_form", collection = "online")
@CompoundIndex(name = "uniq_code", def = "{code: 1}", unique = true)
@Table("t_online_form")
@Data
public class OnlineForm extends Domain {

View File

@ -1,18 +1,16 @@
package dev.flyfish.framework.logging.domain;
import dev.flyfish.framework.annotations.Entity;
import dev.flyfish.framework.domain.base.Domain;
import lombok.Data;
import org.springframework.data.mongodb.core.mapping.Document;
import org.springframework.data.relational.core.mapping.Column;
import org.springframework.data.relational.core.mapping.Table;
import java.time.LocalDateTime;
/**
* 日志集合
*/
@Document("logs")
@Table("t_log")
@Entity(table = "t_log", collection = "logs")
@Data
public class Log extends Domain {