不写代码自动实现类的增删改查列选树(一、实现思想)

数据库设计:
用户User ManyToOne  组织Org
组织Org  ManyToMany 角色Role
OrgRole组织下的角色 ManyToMany 用户User

类Bean OneToMany 属性Property
角色Role ManyToMany 功能Permission(url)
功能Permission OneToMany 表现performance (进入同一个URL看到不同的表现形式)
角色Role ManyToMany 表现performance
表现performance OneToMany 表现属性PerformanceProperty(用于不同角色需要看到不同的字段)
表现performance OneToMany 引用Quote (一个表现下引用其外键相关的表现,如:一个Org下带一个User的List)

功能Permission OneToMany 数据过滤Filter (控制数据可见性,控制可编辑的数据条件、可增加的数据基础条件)
数据过滤Filter OneToMany 数据过滤属性FilterProperty(根据不同的字段以及字段对应的值做内部级的数据过滤)
角色Role ManyToMany 数据过滤Filter

类Bean OneToMany 状态BeanSTATE
表现performance OneToOne 状态BeanSTATE (同一个类在不同状态下所得的字段editshowhide不同,用于流程控制)


权限过滤器:
loginUser -> MyRoles 
loginUrl -> the Permission
MyRole contain Permission? get the Max Role,get role's org
the role contain the permission's Performance & Filter? get performance & filter

功能:
has performance:
we have bean(是哪个类)\role(以什么权限)\org(以哪个组织的名义)\performance(显示、编辑或者隐藏什么字段)\filter(数据过滤条件)\dowhat(dowhat set rules in url,是列表、增加、详细、修改、删除、选择、树?)


不写代码自动实现类的增删改查列选树(一、实现思想)_第1张图片


不写代码自动实现类的增删改查列选树(一、实现思想)_第2张图片
页面中的数据是以什么方式存在、用什么控件、控件引用了什么url、是否必须、可填入的形式等都在此定义

不写代码自动实现类的增删改查列选树(一、实现思想)_第3张图片
url都是按照一定的规则来定义的,减少配置量。
一个功能对应一个url,但是可以有多个不同参数来做不同的事,这些事对应的角色是一致的,可以减少配置。







你可能感兴趣的:(java,Web,反射,后台管理)