跳到主要内容

组织系统

本章我们从零到一设计一个组织系统,提供组织管理、成员权限等一系列功能,该系统为清林云同款。

该系统为基础版本,主要演示如何使用清林云自定义应用能力,能满足大部分基础需求,但是每家组织的组织系统需求都不相同,所以你也可以在这个基础上再自行添加更多高级的个性化功能,或者搭配其他应用同时使用。

需求#

由于清林云是一个企业服务和团队服务,所以未来将会涉及到组织成员的协作等问题,需要一个组织系统来管理人员。

该系统需要有组织的概念,同时要有分组的形式去管理不同的成员。用户可以加入一个或多个分组,我们可以让用户查询到自己的组织和分组。同时利用用户系统应用,加上一个简易的权限系统。

业务流程#

以下是清林云的业务流程,你可以根据自身情况调整,选择性调用其中的 API。

首先当用户登录后查询是否有设置默认组织,有则选择默认组织为当前使用组织,没有则选择第一个组织为当前组织。如果没有任何加入的组织,则自动创建一个。

自行创建组织时可以同时引导用户进行组织认证(这是清林云自身业务要求,其他产品可忽略该步)和邀请组织成员。

在组织页面可以管理组织分组和分组成员,组织分组只是概念,可以代表团队分组、公司部门等等。也可以创建邀请链接邀请其他用户进入自己的组织。

同时可以设置分组和分组成员的不同权限。

数据库结构#

根据上述业务分析,我们需要以下几张表:

Org 组织#

org

OrgCert 组织认证信息#

该表用户清林云系统,如无需认证可忽略。

orgCert

OrgGroup 组织分组#

orgGroup

GroupMember 分组成员#

groupMember

其中需要注意它使用了 C3 引擎,这点在云数据库的这一部分专门进行了描述。

InviteLink 邀请链接#

用于邀请其他用户加入组织。

inviteLink

DefaultOrg 用户默认组织#

用于在用户有多个组织的情况下,能够设置默认组织从而进入界面即默认。

defaultOrg

API#

组织系统的 API 逻辑都比较简单,大多为 CRUD,不像用户系统那样调用了很多其他应用。

但是组织系统的重点在于它有权限,可以看到很多 API 有权限要求,防范权限不够的用户操作敏感数据。

Tips: 为了更快创建 API,我们还可以在云数据库页面直接点击利用模板创建来快速完成。

createOrg#

创建组织的流程比较多,因为我们在创建组织的同时创建一个组织根分组,代表创建者的组织分组成员,以及一个该组织的管理员权限。

createOrg1

createOrg2

createOrg3

createOrg4

createOrg5

getOrg#

查询组织信息,比较简单,权限是所有组织成员都可以查询。

getOrg1

updateOrg#

修改组织信息,只有管理员权限可以修改。

updateOrg1

createOrgCert#

创建组织认证信息,只有管理员权限可以提交。

这里比较复杂是因为我们用了电子营业执照接口,这样能通过官方信息确保该组织的真实合法性,免去审核。

createOrgCert1

createOrgCert2

createOrgCert3

createOrgCert4

createOrgGroup#

创建组织分组,admin manager 权限可以操作:

createOrgGroup1

getManyOrgGroup#

查询所有组织分组:

getManyOrgGroup1

updateOrgGroup#

更新组织分组:

updateOrgGroup1

deleteOrgGroup#

删除分组:

deleteOrgGroup1

createGroupMember#

添加分组成员:

createGroupMember1

updateGroupMember#

更新分组成员信息:

updateGroupMember1

getManyUserOrg#

查询用户加入的所有组织:

getManyUserOrg1

getManyUserOrg1

getManyGroupMember#

查询该分组的所有成员:

getManyGroupMember1

deleteGroupMember#

移除分组成员:

deleteGroupMember1

getGroupMember#

查询分组成员信息:

getGroupMember1

createInviteLink#

创建邀请链接:

createInviteLink1

getInviteLink#

查询邀请链接:

getInviteLink1

updateUserRight#

修改用户权限:

updateUserRight

getUserRight#

查询用户权限:

getUserRight

joinOrg#

用户通过邀请链接加入组织,会先查询邀请链接的数据,判断邀请次数是否还有,然后更新邀请链接剩余次数。之后判断邀请的是分组还是组织,如果是分组的话还要再创建一个分组成员。

joinOrg

joinOrg2

joinOrg3

joinOrg4

getOrgGroup#

查询组织分组:

getOrgGroup

getManyUserGroup#

查询用户在该组织的所有分组

getManyUserGroup

deleteUserRight#

删除用户权限

deleteUserRight

deleteOrg#

删除组织

deleteOrg

getDefaultOrg#

查询用户默认组织

getDefaultOrg

updateDefaultOrg#

更新用户默认组织

updateDefaultOrg

界面#

现阶段清林云控制台就是用户系统和组织系统的界面应用,稍后我们将会分离出一份开源版本供大家参考,请关注后续消息。