背景
乐班班系统中存在许多选择学员的场景,如课程、计划等,我们需要将上述场景抽象成统一组件。
难点&解决方案
一、选择方式丰富
- 点选学员
- 全体学员
- 静态选择部门、学习群(当前时间点下部门、学习群的学员)
- 动态选择部门、学习群、标签
- 动态变静态
- 取消选择部门、学习群、标签、学员
注意:
上述不同操作可能相互影响。
# 举例:
学员张三(staff_id=1101)在学习群A下,之前点选了学员张三和动态学习群A(id=1),本次取消了学习群A的动态选择。
业务上要求数据层面保留学员张三(这个张三是学习群A变静态后保留的,单选的张三删除掉了),因此在实际操作中静态选择有顺序问题。
假如“先取消动态,再删除”,db数据记录会有问题:
显然,按这种方式执行逻辑与业务要求不符。
我们最终得出的结论
,执行顺序应该为:
1. 删除
2. 加入
3. 取消自动同步
△注:2、3顺序可以调换
二、部门、群变动影响动态
以部门为例进行说明,部门变动包含:部门增、减成员,删除部门,新增子部门,部门迁移。
就用最复杂的部门迁移进行指出其复杂性:
注意:
有些变动会更加隐蔽,如部分企业对接了企微、钉钉后,他们的组织架构调整是通过回调通知到平台的,也可能会影响选人场景。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。