通讯录服务
组件编码
hippius-platform
服务简码
hipspfm
默认端口
8700
简介
1.1 概述
通讯录以及组织架构维护,数据权限控制
1.2 组件坐标
<dependency>
<groupId>org.hippius</groupId>
<artifactId>hippius-platform</artifactId>
<version>${hippius.version}</version>
</dependency>
1.3 主要功能
- 通讯录数据权限控制
- 用户员工绑定关系
- 发送验证码
- 员工信息展示/维护/新增
常用参数
spring:
datasource:
# 数据库地址
url: ${SPRING_DATASOURCE_URL:jdbc:mysql://xxxxx:3306/hippius_platform?useUnicode=true&characterEncoding=utf-8&useSSL=false}
# 数据库账号
username: ${SPRING_DATASOURCE_USERNAME:hips}
# 数据库密码
password: ${SPRING_DATASOURCE_PASSWORD:hips}
redis:
host: ${REDIS_DEFAULT_URL:xxxx}
port: 6379
database: 1
cloud:
config:
# 是否启用配置中心
enabled: ${SPRING_CLOUD_CONFIG_ENABLED:false}
# 配置中心地址
uri: ${SPRING_CLOUD_CONFIG_URI:http://xxxxxx:8010}
eureka:
client:
serviceUrl:
# 注册中心
defaultZone: ${EUREKA_DEFAULT_ZONE:http://xxxxx:8000/eureka/}
1.3.1 通讯录权限控制
控制数据权限共有两种方式,根据需求选择其中一种,在配置文件中指定,配置如下:
hippius.scheduler.pmsData
hippius:
scheduler:
# 数据权限同步,定时true,实时false
pmsData: true
操作权限组数据的时候同步更新权限数据(权限控制立即生效,但是查询效率较低)
操作权限组数据的时候不会更新权限数据,通过定时任务的方式更新权限数据(权限控制有时间差,但是查询效率较高)
- 这种方式需要配置定时任务的执行器,然后在调度任务里新增一个任务
JobHandler=contactPmsData
,执行器是HIPSPFM_EXECUTOR
hzero: scheduler: executorCode: HIPSPFM_EXECUTOR
- 这种方式需要配置定时任务的执行器,然后在调度任务里新增一个任务
1.3.2 用户员工绑定关系
共有三种绑定关系,可以通过配置中心设置
- Saas模式下,用户手机端选择加入企业进行关联
- 私有化部署,租户导入通讯录员工的时候自动生成用户帐号
- 通过hzero自带的页面去配置用户和员工的关系
配置文件:
hippius:
employeeUser:
# 关联账号的字段(mobile/email/number)
relationField: mobile
# 关联关系(mobile/contact/hzero)
relationType: mobile
- Saas模式下,用户手机端选择加入企业进行关联(
hippius.employeeUser.relationType=mobile
)
用户可以在我的信息总看到所有与用户手机号/邮箱相同的租户员工,用户可以选择手动加入到某个租户中
- 私有化部署,租户导入通讯录员工的时候自动生成用户帐号(
hippius.employeeUser.relationType=contact
)
私有化部署的时候,通过通讯录导入员工信息的时候 会自动生成用户信息,应指定关联字段
- 通过hzero自带的页面去配置用户和员工的关系(
hippius.employeeUser.relationType=hzero
)
管理员在hzero提供的员工定义页面中手动建立用户和员工的关联关系
1.3.3 版本增加工号是否为用户名的设置
配置文件:
hippius:
employeeUser:
# 关联账号的字段(phone,email,number)
relationField: ${HIPS_EMPLOYEE_USER_RELATION_FIELD:number,phone,email}
# 关联关系(mobile/contact/hzero)
relationType: ${HIPS_EMPLOYEE_USER_RELATION_TYPE:mobile}
# 租户类型(multiple/single)
tenantType: ${HIPS_EMPLOYEE_USER_TENANT_TYPE:multiple}
- 只有relationType是contact的时候 tenantType的配置才会有效
single会把新建员工的时候把工号作为用户的用户名 , multiple不会
- relationField控制员工和用户关联的字段
支持多个字段,中间用逗号隔开,先后次序代表字段的优先级
1.3.4 通讯录缓存到elastic配置
配置文件:
hippius:
startUpRunner:
# 启动的时是否删除通讯录缓存
deleteElasticIndex: ${HIPS_ELASTIC_INDEX:false}
# 分批同步数量
initElasticCount: ${HIPS_ELASTIC_INIT_COUNT:5000}
# 启动是否初始化缓存
initElastic: ${HIPS_ELASTIC_INIT:true}
# 是否开启微信/钉钉人员同步
syncDWCorp: ${HIPS_DWCORP_SYNC:false}
1.3.5 通讯录名片分享
配置文件:
hippius:
shareCard:
# 分享的h5页面在线地址
htmlUrl: ${HIPS_SHARE_CARD_HTML_URL:http://hips-uat-public.bj.bcebos.com/0/5ad2fb524ce548baac76c43d8cd6bc36@index.html}
# app的logo
appLogo: ${HIPS_SHARE_CARD_APP_LOGO:https://hips-uat-public.bj.bcebos.com/0/839a726087c945e5b70e8c0fea67beb6@appLogo.png}
# 名片背景卡片地址
userCardUrl: ${HIPS_SHARE_USER_CARD_URL:https://hips-uat-public.bj.bcebos.com/103/06b6859c5a2241e98ab8b47863a24d46@hc_BG1@3x.png}
1.3.6 发送验证码
用户邮箱/手机注册账号的时候发送验证码,
- 分配配置短信账号和邮箱账号
- 在
消息模版
中配置一条消息模版 - 在
消息发送配置
中设置一条消息代码是HIPS.CAPTCHA
的记录,添加服务,增加上述配置的短信和邮箱服务
1.4 移动端相关接口
- 获取通讯录首页(无参数)
GET: /hippius/v1/contact/mailListV2
- 根据部门ids 获取所有员工
GET: /hippius/v1/contact/employeesByUnitIds?unitLists=1,2,3
- 获取用户所有员工信息(无参数)
GET: /hippius/v1/contact/detailV2
消息页面(type="im"):
用户信息(只传userId或只传employeeId)
通讯录(type="contact"):
如果查询“我的信息-自己的所有员工信息”不需要传employeeId,organizationId,employeeNum值
如果查询“通讯录里其他人员工个人信息”需要传employeeId和organizationId值
- 通讯录搜索员工
GET: /hippius/v1/contact/search?key=1&page=0&size=10
- 通讯录搜索部门
GET: /hippius/v1/contact/searchUnits?key=1&page=0&size=10
- 部门unitId查询子部门及员工
GET: /hippius/v1/contact/{organizationId}/permission/units?unitId=1
- 我的信息-更新员工信息
PUT: /hippius/v1/contact/{organizationId}/detail/{employeeId}
--- 更新额外字段
{
"propertyValue":"宇宙地球中国",
"propertyType":"EXTRATTR",
"propertyValueEn":"Cosmos Earth China",
"key":"5"
}
--- 更新姓名,邮箱,手机号,性别字段
{
"propertyValue":"宇宙",
"propertyType":"FIELD",
"key":"name" --- 或者email,mobile,gender
}
- 设置住租户
PUT: /hippius/v1/tenant/setMasterTenant/{userId}/{organizationId}
- 加入租户
PUT: /hippius/v1/tenant/joinTenant
{
"employeeId":"1",
"tenantId":"1"
}
1.5 新增员工的流程
通讯录数据新增有多种条件控制,上文是列举的具体控制条件的说明,下面的图片是流程图