|
@@ -0,0 +1,346 @@
|
|
|
+# 简单版类图
|
|
|
+```plantuml
|
|
|
+@startuml
|
|
|
+class _User {
|
|
|
+ + objectId: String
|
|
|
+ + username: String
|
|
|
+ + realname: String
|
|
|
+ + password: String
|
|
|
+ + gender: String
|
|
|
+ + age: Number
|
|
|
+ + email: String
|
|
|
+ + avatar: String
|
|
|
+ + teacherId: String
|
|
|
+ + studentId: String
|
|
|
+ + identity: String
|
|
|
+ + school: String
|
|
|
+ + department: String
|
|
|
+}
|
|
|
+class ChatPartner {
|
|
|
+ + objectId: String
|
|
|
+ + name: String
|
|
|
+ + expertise: String
|
|
|
+ + avatar: String
|
|
|
+ + bio: String
|
|
|
+}
|
|
|
+class ChatCompanion {
|
|
|
+ + objectId: String
|
|
|
+ + name: String
|
|
|
+ + avatar: String
|
|
|
+ + bio: String
|
|
|
+}
|
|
|
+class ChatRecord {
|
|
|
+ + objectId: String
|
|
|
+ + title:String
|
|
|
+ + content:Array
|
|
|
+ + user: Pointer<User>
|
|
|
+ + chatpartner: Pointer<ChatPartner>
|
|
|
+}
|
|
|
+class ChatReport {
|
|
|
+ + objectId: String
|
|
|
+ - report: String
|
|
|
+}
|
|
|
+class ChatEvaluate{
|
|
|
+ + objectId:String
|
|
|
+ + avater:String
|
|
|
+ + content:String
|
|
|
+ + rating:Number
|
|
|
+ + user: Pointer<User>
|
|
|
+}
|
|
|
+
|
|
|
+class Survey {
|
|
|
+ + objectId: String
|
|
|
+ + link: String
|
|
|
+ + title: String
|
|
|
+ + audience: String
|
|
|
+}
|
|
|
+
|
|
|
+class DriftBottle {
|
|
|
+ + bottleID: String
|
|
|
+ + content: String
|
|
|
+ + username: String
|
|
|
+ + throwtime: String
|
|
|
+ + catcher: String
|
|
|
+ + catchtime: String
|
|
|
+ + status: String
|
|
|
+}
|
|
|
+Survey "1" -- "0..*" _User
|
|
|
+_User "1" -- "0..*" DriftBottle
|
|
|
+_User "*" --> "*" ChatEvaluate
|
|
|
+_User "1" --> "*" ChatRecord
|
|
|
+ChatPartner "1" --> "*" ChatRecord
|
|
|
+ChatCompanion "1" --> "*" ChatRecord
|
|
|
+ChatRecord "1" --> "1" ChatReport
|
|
|
+@enduml
|
|
|
+```
|
|
|
+
|
|
|
+
|
|
|
+# 时序图
|
|
|
+```plantuml
|
|
|
+@startuml
|
|
|
+actor 用户
|
|
|
+participant "专业陪聊师" as 专业陪聊师
|
|
|
+participant "普通陪聊师" as 普通陪聊师
|
|
|
+participant "聊天记录" as 聊天记录
|
|
|
+participant "报告" as 报告
|
|
|
+
|
|
|
+用户 -> 用户: 选择陪聊师()
|
|
|
+alt 选择专业陪聊师
|
|
|
+ 用户 -> 专业陪聊师: 提供聊天()
|
|
|
+else 选择普通陪聊师
|
|
|
+ 用户 -> 普通陪聊师: 提供聊天()
|
|
|
+end
|
|
|
+用户 -> 用户: 开始聊天()
|
|
|
+用户 -> 聊天记录: 总结聊天记录()
|
|
|
+聊天记录 -> 聊天记录: 获取聊天记录()
|
|
|
+
|
|
|
+聊天记录 -> 报告: 生成报告()
|
|
|
+报告 -> 用户: 返回分析报告
|
|
|
+
|
|
|
+@enduml
|
|
|
+```
|
|
|
+
|
|
|
+# 状态图
|
|
|
+```plantuml
|
|
|
+@startuml
|
|
|
+[*] --> 选择陪聊师
|
|
|
+
|
|
|
+选择陪聊师 --> 聊天中: 开始聊天
|
|
|
+聊天中 --> 继续聊天 : 选择继续聊天
|
|
|
+聊天中 --> 退出聊天 : 选择退出聊天
|
|
|
+退出聊天 --> 总结中 : 总结聊天记录
|
|
|
+
|
|
|
+总结中 --> 生成报告 : 生成分析报告
|
|
|
+生成报告 --> 生成失败 : 报告生成失败
|
|
|
+生成报告 --> 生成成功 : 报告生成成功
|
|
|
+
|
|
|
+生成成功 --> [*] : 聊天结束
|
|
|
+生成失败 --> 生成报告 : 重新生成
|
|
|
+@enduml
|
|
|
+```
|
|
|
+
|
|
|
+# 活动图
|
|
|
+```plantuml
|
|
|
+@startuml
|
|
|
+|用户|
|
|
|
+start
|
|
|
+:发送消息;
|
|
|
+|专业陪聊机器人|
|
|
|
+:回复消息;
|
|
|
+|用户|
|
|
|
+repeat
|
|
|
+if (继续聊天?) then (是)
|
|
|
+ |用户|
|
|
|
+ :发送消息;
|
|
|
+ |专业陪聊机器人|
|
|
|
+ :回复消息;
|
|
|
+else (否)
|
|
|
+ |管理员|
|
|
|
+ :记录消息;
|
|
|
+ stop
|
|
|
+endif
|
|
|
+repeat while (回复消息)
|
|
|
+@enduml
|
|
|
+
|
|
|
+```
|
|
|
+
|
|
|
+# //社区部分
|
|
|
+
|
|
|
+
|
|
|
+# 用例图
|
|
|
+```plantuml
|
|
|
+@startuml
|
|
|
+actor 用户
|
|
|
+
|
|
|
+
|
|
|
+rectangle "心理社区" {
|
|
|
+ 用户 -- (使用心理普查)
|
|
|
+ 用户 -- (使用漂流瓶)
|
|
|
+}
|
|
|
+rectangle "使用心理普查"{
|
|
|
+ 用户 -- (填写问卷)
|
|
|
+ 用户 -- (发布问卷)
|
|
|
+}
|
|
|
+rectangle "使用漂流瓶"{
|
|
|
+ 用户 -- (扔漂流瓶)
|
|
|
+ 用户 -- (捞漂流瓶)
|
|
|
+}
|
|
|
+
|
|
|
+@enduml
|
|
|
+```
|
|
|
+
|
|
|
+# 时序图
|
|
|
+
|
|
|
+```mermaid
|
|
|
+sequenceDiagram
|
|
|
+ participant Admin as 老师用户
|
|
|
+ participant Student as 学生用户
|
|
|
+ participant System as 系统
|
|
|
+
|
|
|
+ Admin->>System: 发布心理普查问卷
|
|
|
+ Student->>System: 填写心理普查问卷
|
|
|
+ System->>Admin: 收集问卷结果
|
|
|
+ Admin->>System: 分析问卷结果
|
|
|
+
|
|
|
+ Admin->>System: 制定后续心理活动
|
|
|
+
|
|
|
+```
|
|
|
+# 活动图
|
|
|
+
|
|
|
+```mermaid
|
|
|
+graph TD
|
|
|
+ A[开始] --> B[发布心理普查问卷]
|
|
|
+ B --> C[学生填写问卷]
|
|
|
+ C --> D[提交问卷]
|
|
|
+ D --> E[学校管理员分析结果]
|
|
|
+ E --> F{心理健康有问题的学生人数达到阈值?}
|
|
|
+ F -->|是| G[发布心理团辅]
|
|
|
+ F -->|否| H[继续监控]
|
|
|
+ G --> I[通知学生参与团辅]
|
|
|
+ E --> J[设置星标用户]
|
|
|
+ J --> K
|
|
|
+ H --> K
|
|
|
+ I --> K[结束]
|
|
|
+```
|
|
|
+
|
|
|
+# 状态图
|
|
|
+```mermaid
|
|
|
+stateDiagram-v2
|
|
|
+ [*] --> 发布问卷
|
|
|
+ 发布问卷 --> 问卷收集中: 学生填写问卷
|
|
|
+ 问卷收集中 --> 结果分析中: 提交问卷
|
|
|
+ 结果分析中 --> 后续活动设计中: 学校管理员查看分析
|
|
|
+ 结果分析中 --> 初期活动发布中: 心理状况有问题学生人数达到阈值
|
|
|
+ 初期活动发布中 --> 团辅进行中: 发布心理团辅
|
|
|
+ 初期活动发布中 --> 升级星标用户: 升级为心理星标用户
|
|
|
+ 后续活动设计中 --> 后续活动开展中: 发布后续活动
|
|
|
+ 后续活动开展中 --> [*]
|
|
|
+ 团辅进行中 --> [*]
|
|
|
+ 升级星标用户 --> [*]
|
|
|
+
|
|
|
+```
|
|
|
+
|
|
|
+
|
|
|
+# 登录业务
|
|
|
+```plantuml
|
|
|
+@startuml
|
|
|
+left to right direction
|
|
|
+[*] --> 输入用户名和密码
|
|
|
+
|
|
|
+输入用户名和密码 --> 检查是否为空
|
|
|
+检查是否为空 --> 执行登录 : 不为空
|
|
|
+检查是否为空 --> 输入用户名和密码 : 为空
|
|
|
+执行登录 --> 返回当前页面: 登录成功
|
|
|
+执行登录 --> 输入用户名和密码 :登录失败
|
|
|
+
|
|
|
+返回当前页面 --> [*]
|
|
|
+@enduml
|
|
|
+```
|
|
|
+# 注册业务
|
|
|
+```plantuml
|
|
|
+@startuml
|
|
|
+left to right direction
|
|
|
+
|
|
|
+[*] --> 输入基本信息
|
|
|
+
|
|
|
+输入基本信息 --> 检查是否为空
|
|
|
+检查是否为空 --> 输入基本信息 : 为空
|
|
|
+检查是否为空 --> 检查两次密码一致性 : 不为空
|
|
|
+
|
|
|
+检查两次密码一致性 --> 执行注册 : 一致
|
|
|
+检查两次密码一致性 --> 输入基本信息 : 不一致
|
|
|
+
|
|
|
+执行注册 --> 返回登录页面 : 注册成功
|
|
|
+执行注册 --> 输入基本信息 : 注册失败
|
|
|
+
|
|
|
+返回登录页面 --> [*]
|
|
|
+@enduml
|
|
|
+
|
|
|
+```
|
|
|
+# 用户编辑信息业务
|
|
|
+```plantuml
|
|
|
+@startuml
|
|
|
+left to right direction
|
|
|
+
|
|
|
+[*] --> 获取用户信息
|
|
|
+
|
|
|
+获取用户信息 --> 弹出表单
|
|
|
+
|
|
|
+弹出表单 --> 检查用户输入
|
|
|
+
|
|
|
+检查用户输入 --> 执行修改
|
|
|
+
|
|
|
+执行修改 --> 返回当前页面: 修改成功
|
|
|
+执行修改 --> 弹出表单 : 修改失败
|
|
|
+返回当前页面 --> [*]
|
|
|
+@enduml
|
|
|
+```
|
|
|
+# 智能陪聊业务
|
|
|
+```plantuml
|
|
|
+@startuml
|
|
|
+left to right direction
|
|
|
+
|
|
|
+[*] --> 检查用户是否登录注册
|
|
|
+
|
|
|
+检查用户是否登录注册 --> 登录注册 : 未登录
|
|
|
+检查用户是否登录注册 --> 选择陪聊师 : 已登录
|
|
|
+
|
|
|
+登录注册 --> 选择陪聊师 : 登录/注册成功
|
|
|
+登录注册 --> [*] : 登录/注册失败
|
|
|
+
|
|
|
+选择陪聊师 --> 开始陪聊
|
|
|
+
|
|
|
+开始陪聊 --> [*] : 结束陪聊
|
|
|
+@enduml
|
|
|
+```
|
|
|
+# 普通聊天业务
|
|
|
+```plantuml
|
|
|
+@startuml
|
|
|
+left to right direction
|
|
|
+
|
|
|
+[*] --> 检查用户是否登录注册
|
|
|
+
|
|
|
+检查用户是否登录注册 --> 登录注册 : 未登录
|
|
|
+检查用户是否登录注册 --> 开始陪聊 : 已登录
|
|
|
+
|
|
|
+登录注册 --> 开始陪聊 : 登录/注册成功
|
|
|
+登录注册 --> [*] : 登录/注册失败
|
|
|
+
|
|
|
+开始陪聊 --> [*] : 结束陪聊
|
|
|
+@enduml
|
|
|
+```
|
|
|
+# 用户评价业务
|
|
|
+```plantuml
|
|
|
+@startuml
|
|
|
+left to right direction
|
|
|
+
|
|
|
+[*] --> 检查用户是否登录注册
|
|
|
+
|
|
|
+检查用户是否登录注册 --> 登录注册 : 未登录
|
|
|
+检查用户是否登录注册 --> 进入评价 : 已登录
|
|
|
+
|
|
|
+登录注册 --> 进入评价 : 登录/注册成功
|
|
|
+登录注册 --> [*] : 登录/注册失败
|
|
|
+
|
|
|
+进入评价 --> 输入评价内容
|
|
|
+
|
|
|
+输入评价内容 --> 保存退出
|
|
|
+
|
|
|
+保存退出 --> 返回当前页面 : 保存成功
|
|
|
+返回当前页面 --> [*]
|
|
|
+@enduml
|
|
|
+```
|
|
|
+# 查看报告业务
|
|
|
+```plantuml
|
|
|
+@startuml
|
|
|
+left to right direction
|
|
|
+
|
|
|
+[*] --> 获取用户信息
|
|
|
+
|
|
|
+获取用户信息 --> 点击我的报告
|
|
|
+
|
|
|
+点击我的报告 --> 展示用户相关报告
|
|
|
+
|
|
|
+展示用户相关报告 --> [*]
|
|
|
+@enduml
|
|
|
+```
|