画布 1
jiraHooker
  分支主题 1
  分支主题 2
  分支主题 3
  分支主题 4
  event flow:
  开始
  进行中
  审核中
  通过审核
  完成
  再次打开
  状态： Pending
  1.1 遍历 检查器interface的实例
    hookHandler:api:webhook/jira
    姓名
      可以用 英文逗号 “,“ 分隔，不要出现中文逗号
      姓名是否大于1个汉字
      新添加的人名中，姓名是否有重名的姓名
      和ldap库里进行比对，是否有重复的姓名
    公司名称
      名字必填
    手机号
      可以用 英文逗号 “,“ 分隔，不要出现中文逗号
      手机号数量是否姓名数量一致
      是否有手机号重复了的用户
    gitea
      是否每个项目都是真实存在的
    审核人
      是否此issue有明确的审核人
  检查器返回一个检查结果集合
  1.3 reporter
    init：遍历检查结果
    render：
      标题
        给所有
      概要
        给钉钉
      详情html
        给邮箱
  sender：interface
    创建一个sender的数组
    遍历这个数组，让每个执行send()
  1.4 sender包括：
    redis channel 发送器
    倒计时装置
      用于记录此用户还有多久过期
  账号剩余时长检查器
    由systemd触发，每天10点执行
    从redis里获取结果，进行判定
    判定结果发给 邮件发送器
  账号创建器
    pre：先执行 前置检查流程，返回结果 的 error 如果是nil，就进行下列步骤
    processor：拼装post AddAccount请求结构体
      创建ldap账号channel
      trigger
    等30秒，执行下面的：
      遍历检查器集合：
        jira特定组中包含特定用户
        confluence特定组中包含特定用户
        gitea特定项目里某用户具有特定权限
    render：结果创建成功的话，渲染出一个结果html，缓存下来
    sender：从外面实例化得到的 钉钉和邮件发送器，让它们执行发送
  Approved
  restApi
    ldap账号的增删改查
      findAccount
      createAccount
        初始化用户信息
      enableAccount
      disableAccount
      editUserRoles
      listAllAccounts
    add to Jira grp
    ifUserInJiraGrp
    isUserInGiteaGrp
    add to conflu grp
    add to gitea prjs
    机器人发邮件接口
  redis Event Channels
    jira给用户加入组channel
    confluence给用户加入组channel
    gitea给用户加入某项目某权限channel
    用户过期消息channel
    webo hook event channel
  jira工单
  订阅redis 小程序
suscriberAndTirgger
  hookHandler: restapi
    hookHandler:api:webhook/jira
  触发发邮件
报告人账号，比如：liyi
审核人账号，比如：qincheng
issueID
检查器结果集合Items：
检查器名称
是否通过检查
msg：未通过检查的原因
Sender interface {
}