From 16daf7c1b9e5d5e89a6f7e1c8effcad3ea5076a5 Mon Sep 17 00:00:00 2001 From: alwaysfrin <39822157+alwaysfrin@users.noreply.github.com> Date: Tue, 12 Feb 2019 17:46:20 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E4=BA=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../cn/estsh/i3plus/pojo/base/bean/BaseBean.java | 2 +- .../i3plus/pojo/base/dynamic/DynamicBean.java | 87 ++++++++++++++++++++ .../i3plus/pojo/base/dynamic/DynamicEntity.java | 93 ++++++++++++++++++++++ modules/i3plus-pojo-form/pom.xml | 6 ++ .../estsh/i3plus/pojo/platform/bean/SysMenu.java | 7 +- 5 files changed, 189 insertions(+), 6 deletions(-) create mode 100644 modules/i3plus-pojo-base/src/main/java/cn/estsh/i3plus/pojo/base/dynamic/DynamicBean.java create mode 100644 modules/i3plus-pojo-base/src/main/java/cn/estsh/i3plus/pojo/base/dynamic/DynamicEntity.java diff --git a/modules/i3plus-pojo-base/src/main/java/cn/estsh/i3plus/pojo/base/bean/BaseBean.java b/modules/i3plus-pojo-base/src/main/java/cn/estsh/i3plus/pojo/base/bean/BaseBean.java index 2284856..68df07e 100644 --- a/modules/i3plus-pojo-base/src/main/java/cn/estsh/i3plus/pojo/base/bean/BaseBean.java +++ b/modules/i3plus-pojo-base/src/main/java/cn/estsh/i3plus/pojo/base/bean/BaseBean.java @@ -52,7 +52,7 @@ public abstract class BaseBean implements Serializable { @Column(name="ORGANIZE_CODE") @ApiParam(value ="组织代码") - private String organizeCode; + public String organizeCode; @Column(name="is_valid") @ApiParam(value = "有效性",example = "1") diff --git a/modules/i3plus-pojo-base/src/main/java/cn/estsh/i3plus/pojo/base/dynamic/DynamicBean.java b/modules/i3plus-pojo-base/src/main/java/cn/estsh/i3plus/pojo/base/dynamic/DynamicBean.java new file mode 100644 index 0000000..577139e --- /dev/null +++ b/modules/i3plus-pojo-base/src/main/java/cn/estsh/i3plus/pojo/base/dynamic/DynamicBean.java @@ -0,0 +1,87 @@ +package cn.estsh.i3plus.pojo.base.dynamic; + +import cn.estsh.i3plus.pojo.base.bean.BaseBean; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiParam; +import lombok.Data; +import lombok.EqualsAndHashCode; +import org.hibernate.annotations.DynamicInsert; +import org.hibernate.annotations.DynamicUpdate; +import org.springframework.cglib.beans.BeanGenerator; +import org.springframework.cglib.beans.BeanMap; + +import javax.persistence.Column; +import javax.persistence.Entity; +import javax.persistence.Table; +import java.util.Map; + +/** + * @Description : 动态转换对象,用于配合dynamicEntity进行动态属性添加 + * @Reference : + * @Author : alwaysfrin + * @CreateDate : 2019-01-23 13:45 + * @Modify: + **/ +public class DynamicBean { + + @ApiParam(value ="目标对象") + private Object target; + + @ApiParam(value ="属性集合") + private BeanMap beanMap; + + public DynamicBean(){ + } + + public DynamicBean(Class superclass, Map propertyMap) { + this.target = generateBean(superclass, propertyMap); + this.beanMap = BeanMap.create(this.target); + } + + + /** + * bean 添加属性和值 + * + * @param property + * @param value + */ + public void setValue(String property, Object value) { + beanMap.put(property, value); + } + + /** + * 获取属性值 + * + * @param property + * @return + */ + public Object getValue(String property) { + return beanMap.get(property); + } + + /** + * 获取对象 + * + * @return + */ + public Object getTarget() { + return this.target; + } + + + /** + * 根据属性生成对象 + * + * @param superclass + * @param propertyMap + * @return + */ + private Object generateBean(Class superclass, Map propertyMap) { + BeanGenerator generator =new BeanGenerator(); + if(null != superclass) { + generator.setSuperclass(superclass); + } + BeanGenerator.addProperties(generator, propertyMap); + return generator.create(); + } +} diff --git a/modules/i3plus-pojo-base/src/main/java/cn/estsh/i3plus/pojo/base/dynamic/DynamicEntity.java b/modules/i3plus-pojo-base/src/main/java/cn/estsh/i3plus/pojo/base/dynamic/DynamicEntity.java new file mode 100644 index 0000000..2fcee00 --- /dev/null +++ b/modules/i3plus-pojo-base/src/main/java/cn/estsh/i3plus/pojo/base/dynamic/DynamicEntity.java @@ -0,0 +1,93 @@ +package cn.estsh.i3plus.pojo.base.dynamic; + +import cn.estsh.i3plus.pojo.base.bean.BaseBean; +import org.apache.commons.lang3.builder.ReflectionToStringBuilder; + +/** + * @Description : 基础动态对象,包含方法、参数等 + * @Reference : + * @Author : alwaysfrin + * @CreateDate : 2019-01-24 15:56 + * @Modify: + **/ +public class DynamicEntity extends BaseBean { + + private String method; + private String uri; + private Object[] args; + private Object result; + private String operator; + private String appName; + + /** + * 获取当前对象 + * + * @param method + * @param uri + * @param args + * @param result + * @return + */ + public DynamicEntity get(String method, String uri, Object[] args, Object result, String operator, String appName) { + setMethod(method); + setUri(uri); + setArgs(args); + setResult(result); + setOperator(operator); + setAppName(appName); + return this; + } + + public String getMethod() { + return method; + } + + public void setMethod(String method) { + this.method = method; + } + + public String getUri() { + return uri; + } + + public void setUri(String uri) { + this.uri = uri; + } + + public Object[] getArgs() { + return args; + } + + public void setArgs(Object[] args) { + this.args = args; + } + + public Object getResult() { + return result; + } + + public void setResult(Object result) { + this.result = result; + } + + public String getOperator() { + return operator; + } + + public void setOperator(String operator) { + this.operator = operator; + } + + public String getAppName() { + return appName; + } + + public void setAppName(String appName) { + this.appName = appName; + } + + @Override + public String toString() { + return ReflectionToStringBuilder.toString(this); + } +} diff --git a/modules/i3plus-pojo-form/pom.xml b/modules/i3plus-pojo-form/pom.xml index f58676d..90e744d 100644 --- a/modules/i3plus-pojo-form/pom.xml +++ b/modules/i3plus-pojo-form/pom.xml @@ -13,5 +13,11 @@ i3plus-pojo-form jar + + + i3plus.pojo + i3plus-pojo-base + + \ No newline at end of file diff --git a/modules/i3plus-pojo-platform/src/main/java/cn/estsh/i3plus/pojo/platform/bean/SysMenu.java b/modules/i3plus-pojo-platform/src/main/java/cn/estsh/i3plus/pojo/platform/bean/SysMenu.java index fd5393e..d1f885a 100644 --- a/modules/i3plus-pojo-platform/src/main/java/cn/estsh/i3plus/pojo/platform/bean/SysMenu.java +++ b/modules/i3plus-pojo-platform/src/main/java/cn/estsh/i3plus/pojo/platform/bean/SysMenu.java @@ -10,10 +10,7 @@ import lombok.EqualsAndHashCode; import org.hibernate.annotations.DynamicInsert; import org.hibernate.annotations.DynamicUpdate; -import javax.persistence.Column; -import javax.persistence.Entity; -import javax.persistence.Table; -import javax.persistence.Transient; +import javax.persistence.*; import java.util.ArrayList; import java.util.List; @@ -29,7 +26,7 @@ import java.util.List; @DynamicInsert @DynamicUpdate @EqualsAndHashCode(callSuper = true) -@Table(name="SYS_MENU") +@Table(name="SYS_MENU",indexes = {@Index(name="索引名称",columnList = "列名1,列名2")}) @Api(value="系统功能",description = "系统功能") public class SysMenu extends BaseBean {