Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[删除回收] 回收站逻辑和页面 #897

Open
wklken opened this issue Feb 3, 2023 · 3 comments
Open

[删除回收] 回收站逻辑和页面 #897

wklken opened this issue Feb 3, 2023 · 3 comments
Assignees
Labels

Comments

@wklken
Copy link
Collaborator

wklken commented Feb 3, 2023

需要设计模型, 以下是一个参考, 根据需求自行设计/扩展

  • id(自增) / object_type(profile,department,category) / object_id(对应表的主键) / create_time / update_time

需求: (具体需要自行再分析下原型设计)

  1. 回收站 需要展示 最近删除的 用户/组织/目录
  2. 列表中除了基本信息, 还需要展示 删除操作者 / 过期时间
  3. 支持检索 用户名/全名, 组织名, 目录名

拆分, 先做目录删除, 再做用户删除, 最后做部门删除

整体需求

  1. 支持永久删除
  2. 支持还原
  3. 支持到期后自动删除(定时任务)

注意, 删除/还原需要有:

  1. 权限控制(跟原先的一致)
  2. 审计日志

确定能做的:

目录删除

  • 展示列表
    • 存量已删除的目录怎么出现在列表中?
  • 永久删除
    • 生命周期: normal -> inactive -> deleted -> 物理删除
    • 删除需要清理所有关联数据: 所有category_id为外键的数据
    • 需要考虑事务, 以及目录下十万级部门及用户删除的场景
  • 因为category在所有地方都会先校验, 所以理论上删除只需要改category本身的状态就行, 不需要联动操作改部门/用户的状态
  • 还原
    • 判断有没有冲突即可, 没有冲突直接状态操作改回去(检测冲突)
    • 新建目录的时候也会检测冲突, 冲突提示跟哪个冲突, 用户可以到回收站物理删除

用户删除

原先用户软删除, 只改用户状态, 不会动部门关系等, 这次也只做该状态, 不动部门, 后续再优化
即, 软删除后用户组织架构不变, 同名用户无法插入同一个数据源 => 永久删除后才是真正不存在(数据物理删除)

  • 只有 本地目录下用户能软删除, 进入回收站 => 其他目录不行
  • 展示列表
    • 存量已删除的目录怎么出现在列表中?
  • 永久删除
    • deleted 理论上已经是被删除状态
    • 同时需要enabled置为 0? 需要考虑会有什么影响
    • 存量的deleted用户怎么处理?
  • 还原: 恢复直接把状态改回去

部门删除

原先部门删除只能删 没有下级组织/用户的部门, 且是软删除; 本次保持这个逻辑

  • 只能本地目录下的部门能软删除, 进入回收站 => 其他目录不行
  • 展示列表
    • 存量已删除的部门怎么出现的列表中
  • 永久删除
    • 物理删除, 需要删除 部门-用户 关联关系 => 此时涉及 无关联部门用户展示 需求
  • 还原: 直接把状态改回去
  • 其他: 需要检查往部门中加用户/下级部门的入口, 不能往已删除的部门中加

自己拆分子issue

@wklken wklken added Layer: api Api module related Priority: High todo 进入开发排期的状态,纳入了最近的迭代 labels Feb 3, 2023
@wklken
Copy link
Collaborator Author

wklken commented Feb 3, 2023

回收站展示:#908
目录删除与还原:#901
用户删除与还原:#902
部门删除与还原:#903

@Shutulee
Copy link
Collaborator

Shutulee commented Feb 3, 2023

新建目录的时候也会检测冲突, 冲突提示跟哪个冲突, 用户可以到回收站物理删除

1、用户正常新建的目录,和回收站内的软删除目录不应该产生同名冲突(部门用户也同理)。

物理删除, 需要删除 部门-用户 关联关系 => 此时涉及 无关联部门用户展示 需求

2、删除部门时全量删除节点下的所有用户数据(单组织用户批量删除,跨组织用户仅删除关联关系),删除后在回收箱里以原子单位展示。还原操作也是全量还原。

第二点可以先保持现状(即部门删除只能删没有下级组织/用户的部门),后续再优化。第一点原则上需要实现,看一下怎么处理。

@wklken
Copy link
Collaborator Author

wklken commented Feb 3, 2023

第一点: 原先冲突检测只检查非回收站内的是否有冲突; 回收站的目录恢复需要检测同非回收站的是否有冲突(域, 根据产品设计看需要检测哪些东西)

@wklken wklken added this to the Y2023M06 milestone Feb 7, 2023
@Shutulee Shutulee modified the milestones: Y2023M06, Y2023M07 Feb 13, 2023
@wklken wklken removed this from the Y2023M07 milestone Feb 20, 2023
@nannan00 nannan00 removed the todo 进入开发排期的状态,纳入了最近的迭代 label Jul 21, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

4 participants