跳到主要内容

组织系统

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

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

需求

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

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

业务流程

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

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

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

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

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

数据库结构

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

Org 组织

org

OrgCert 组织认证信息

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

orgCert

OrgGroup 组织分组

orgGroup

GroupMember 分组成员

groupMember

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

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

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

创建邀请链接:

createInviteLink1

查询邀请链接:

getInviteLink1

updateUserRight

修改用户权限:

updateUserRight

getUserRight

查询用户权限:

getUserRight

joinOrg

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

joinOrg

joinOrg2

joinOrg3

joinOrg4

getOrgGroup

查询组织分组:

getOrgGroup

getManyUserGroup

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

getManyUserGroup

deleteUserRight

删除用户权限

deleteUserRight

deleteOrg

删除组织

deleteOrg

getDefaultOrg

查询用户默认组织

getDefaultOrg

updateDefaultOrg

更新用户默认组织

updateDefaultOrg

界面

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