背景

乐班班系统中存在许多选择学员的场景,如课程、计划等,我们需要将上述场景抽象成统一组件。

难点&解决方案

一、选择方式丰富

选人组件界面.jpg

  1. 点选学员
  2. 全体学员
  3. 静态选择部门、学习群(当前时间点下部门、学习群的学员)
  4. 动态选择部门、学习群、标签
  5. 动态变静态
  6. 取消选择部门、学习群、标签、学员

注意:上述不同操作可能相互影响。

# 举例:
学员张三(staff_id=1101)在学习群A下,之前点选了学员张三和动态学习群A(id=1),本次取消了学习群A的动态选择。
业务上要求数据层面保留学员张三(这个张三是学习群A变静态后保留的,单选的张三删除掉了),因此在实际操作中静态选择有顺序问题。

假如“先取消动态,再删除”,db数据记录会有问题:
image.png

显然,按这种方式执行逻辑与业务要求不符。

我们最终得出的结论,执行顺序应该为:

1. 删除
2. 加入
3. 取消自动同步
△注:2、3顺序可以调换

二、部门、群变动影响动态

以部门为例进行说明,部门变动包含:部门增、减成员,删除部门,新增子部门,部门迁移。

就用最复杂的部门迁移进行指出其复杂性:

选人组件-部门移动.png

注意:有些变动会更加隐蔽,如部分企业对接了企微、钉钉后,他们的组织架构调整是通过回调通知到平台的,也可能会影响选人场景。

选人db.jpg


青鱼
268 声望25 粉丝

山就在那里,每走一步就近一些