zh.puml 4.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161
  1. @startuml
  2. left to right direction
  3. skinparam monochrome true
  4. actor "个人用户\n经销商\n参展商\n等等" as User
  5. actor "管理员" as SysUser
  6. rectangle "CMS + 管理系统" {
  7. "CMS浏览:\n门户信息\n公告\n等等" as (cms)
  8. "CMS发布:\n门户信息\n公告\n等等" as (cmsSys)
  9. "短信发送服务" as (sms)
  10. "用户信息" as (userInfo)
  11. "楼层、展会、参展商信息" as (3info)
  12. (专属海报-企业) <.. (分享邀请-企业) : <<包含>>
  13. (sms) <.. (营销短信) : <<依赖>>
  14. (cms) ..> (cmsSys) : <<依赖>>
  15. User --> (cms)
  16. (3info) <-- SysUser
  17. (cmsSys) <-- SysUser
  18. (userInfo) <-- SysUser
  19. (分享邀请-企业) <-- SysUser
  20. (营销短信) <-- SysUser
  21. }
  22. rectangle 微信服务 {
  23. "实名+人脸识别" as (wx)
  24. "解析身份信息" as (wx2)
  25. (wx) ..> (wx2) : <<包含>>
  26. (wx2) ..> (userInfo) : <<依赖>>
  27. }
  28. rectangle "硬件-门禁" {
  29. "人脸识别" as (jcc)
  30. "解析身份信息" as (jcc2)
  31. (进出场) ..> (jcc) : <<包含>>
  32. (jcc) ..> (jcc2) : <<包含>>
  33. (jcc2) ..> (userInfo) : <<依赖>>
  34. }
  35. rectangle 小程序 {
  36. "登录/注册" as (login)
  37. User --> (login)
  38. (login) ..> (wx) : <<依赖>>
  39. (login) ..> (渠道来源) : <<包含>>
  40. (login) ..> (短信验证码) : <<包含>>
  41. (短信验证码) ..> (sms) : <<依赖>>
  42. User --> (分享邀请-个人)
  43. (分享邀请-个人) .> (专属海报-个人) : <<包含>>
  44. User --> (专属海报-个人) : <<浏览其它用户的海报>>
  45. (专属海报-个人) ..> (邀请关系关联) : <<包含>>
  46. (邀请关系关联) ..> (userInfo) : <<依赖>>
  47. User --> (进出场)
  48. User --> (导航)
  49. (导航) ..> (地图) : <<包含>>
  50. (导航) ..> (线上展馆) : <<包含>>
  51. (地图) ..> (3info) : <<依赖>>
  52. }
  53. @enduml
  54. @startuml
  55. left to right direction
  56. skinparam monochrome true
  57. map "字典-渠道" as channel{
  58. code => PK
  59. name =>
  60. }
  61. map "现有CMS的用户表" as u{
  62. id => PK
  63. ... =>
  64. }
  65. map "邀请海报" as invitation {
  66. id => PK
  67. url => 海报的访问地址
  68. content => 海报的内容\n是图片还是富文本?\n根据业务来定,可能还要单独的表
  69. code => 邀请码?
  70. user_id => 用户ID
  71. type => 类型\n区别个人还是企业
  72. }
  73. invitation::user_id --> u::id
  74. map "用户扩展表" as user{
  75. user_id => PK:用户ID
  76. invitation_user => 邀请的用户
  77. channel_code => 注册时的渠道码\n保存当时选择的渠道快照
  78. channel_name => 注册时的渠道名\n保存当时选择的渠道快照
  79. 微信相关 => 不清楚CMS是否能接入微信\n不能的话,就要扩展微信相关字段
  80. }
  81. user::user_id --> u::id
  82. user::invitation_user --> u::id
  83. user::channel_code ..> channel::code
  84. user::channel_name ..> channel::name
  85. map "参展商信息" as exhibitors{
  86. user_id => PK:用户ID
  87. ... => 一些说明或公司介绍等字段?
  88. }
  89. exhibitors::user_id --> u::id
  90. map "展会" as act{
  91. id => PK
  92. start_time => 展会开始时间
  93. end_time => 展会结束时间
  94. ... => 一些展会的介绍等字段?
  95. }
  96. map "字典-展位" as booth{
  97. code => PK:展位比如1-001
  98. floor => 楼层
  99. ... => 一些位置的介绍说明等字段?
  100. }
  101. map "展会详情" as act_info{
  102. id => PK
  103. act_id => 展会ID
  104. booth_code => 展位编码
  105. exhibitors_id => 参展商ID
  106. ... =>
  107. }
  108. act_info::act_id --> act::id
  109. act_info::booth_code --> booth::code
  110. act_info::exhibitors_id --> exhibitors::user_id
  111. map "短信" as sms{
  112. id => PK
  113. message => 短信消息
  114. code => 验证码,可能会有
  115. user_id => 接收的用户
  116. tel => 电话号码
  117. status => 状态,默认1\n1:未发送\n2:发送成功\n3:发送失败
  118. max_retry => 最大失败重试次数,默认3
  119. retry => 已失败重试次数,默认0
  120. }
  121. map 现在CMS的文章表 {
  122. id => PK
  123. content => 文章内容
  124. }
  125. @enduml
  126. @startuml
  127. participant 小程序 as ui
  128. participant 后台 as sys
  129. ui -> sys: wx.login 登录,带上code
  130. sys --> ui: 返回用户在微信的唯一标识openid\n如果已经注册过用,就返回用户信息和登录标识cookie\n如果没注册过,不会有登录标识cookie
  131. ui -> sys: 注册:\nwx.authorize(授权)\nwx.getUserProfile(得到用户信息)\ngetPhoneNumber(获得手机号)\n短信验证\n带上openid
  132. sys --> ui: 注册的结果
  133. ui -> sys: 业务操作,带上登录标识cookie
  134. @enduml