Skip to content

wildfirechat/organization-platform

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

9 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

野火组织通讯录服务

组织通讯录服务提供企业或者单位组织架构和员工信息服务,员工可以浏览组织架构、选取员工来发送消息和发起音视频通话,不用添加好友既可以进行。野火组织通讯录服务包括后端服务和管理后台页面。可以登录管理后台进行组织管理。

后端服务

在后端服务中,提供两种类型的API,一种给管理页面用;另外一种给客户端查询使用。管理页面根据后台数据库中的用户/密码来登录。客户端在im client中取应用code,然后使用code来登录。管理页面可以修改组织通讯录数据,客户端只能查询。

数据结构

系统中有3种数据结构,分别是组织、员工和关系。关系数据比较特殊,在关系数据中记录员工与组织的层级关系。比如一个员工甲的组织路径为"公司/技术部/移动端/Android",那么数据结构就存在下面4行

员工 部门 层级 上级部门 直属
公司 0 NULL false
技术部 1 公司 false
移动端 2 技术部 false
Android 3 移动端 true

可以看出数据中存在大量的冗余数据,数据维护难度较大,但带来的好处就是查询比较方便和高效。

员工支持多部门,一个员工可以在多个部门中任职。

客户端使用

客户端登录成功以后,可以调用各个查询接口。一般在进入到通讯录界面,可以调取获取根组织的方法,获取公司。然后点开公司再一级一级地展开数据。

在用户的详情界面,可以查询用户的组织关系,这样就能展示用户的组织路径。点击具体路径就可以获取对应组织的信息详情。

客户端可以本地缓存数据,在需要显示时先使用缓存,再去服务器查询,如果有更新再刷新页面。

编译

组织通讯录服务包含后端服务和管理页面,需要分别进行编译。

管理页面的编译

进入项目的organization-web目录下,执行下属命令:

npm install
npm run build

编译成功后,生成的html文件会拷贝到后端服务的资源目录下,这样打包后端服务的时候就可以把页面打包进后端服务了。

后端服务的编译

需要先编译管理页面,管理页面编译成功后,进入项目的organization-server目录下,执行下属命令:

mvn clean package

生成的软件包在organization-server/target/organization-platform-server-XXX.jar

部署

配置

部署之前需要把配置文件目录organization-server/config放到软件包的相同目录,然后编辑配置目录下的application.properties文件。有如下地方需要修改:

  1. 应用的端口,默认是8880,可以修改为其他的端口。
  2. 应用使用的数据库,默认是H2,可以直接运行,建议切换到mysql。
  3. IM服务的Server API地址和密钥,必须修改为有效信息。
  4. 否允许外部人员访问组织,如果是则非公司员工也可以看到组织通讯录,否则看不到。
  5. 对象存储信息,配置之后可以在创建员工时设置头像等。

部署

把软件包organization-platform-server-XXX.jar放到云服务器上,确保配置目录在一起并正确配置后,执行命令:

nohup java -jar organization-platform-server-*.jar 2>&1 &

登录

浏览器打开http://{IP}:{Port}进入到管理后台界面,默认账户/密码为 admin/admin123  登陆以后注意修改默认密码。

导入数据

在管理后台未创建任何组织的情况下,可以在后台下载导入模版,填入模版后然后上传导入所有组织架构和成员信息。在成员那个页面,选择批量导入,按照提示下载模版和上传文件。

模版中带有示例人员信息,可以导入作为测试数据进行测试。

当数据库中已经有数据的情况下,导入按钮会隐藏,可以手动调整各项数据。

截图

管理后台页面 admin

联系人页面 contact

组织树 tree

员工名片 card

官方群 group

Lisence

UNDER MIT LICENSE. 详情见LICENSE文件

About

野火组织通讯录服务

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published