|
@@ -1,511 +0,0 @@
|
|
|
-# 简单版类图
|
|
|
-```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 ChatEvaluate{
|
|
|
- + objectId:String
|
|
|
- + avater:String
|
|
|
- + content:String
|
|
|
- + rating:Number
|
|
|
- + user: Pointer<User>
|
|
|
-}
|
|
|
-
|
|
|
-class Survey {
|
|
|
- + objectId: String
|
|
|
- + link: String
|
|
|
- + title: String
|
|
|
- + audience: String
|
|
|
- + publisher:String
|
|
|
- + publishtime: String
|
|
|
- + category: 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
|
|
|
-@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 User
|
|
|
- participant System
|
|
|
-
|
|
|
- User->>System: 访问系统
|
|
|
- alt 用户未登录
|
|
|
- System->>User: 显示登录注册界面
|
|
|
- User->>System: 输入用户名和密码
|
|
|
- alt 登录成功
|
|
|
- System->>User: 跳转到已登录页面
|
|
|
- User->>System: 查看问卷通知
|
|
|
- System->>User: 显示问卷通知
|
|
|
- User->>System: 发布问卷
|
|
|
- alt 用户是老师
|
|
|
- System->>User: 提示“问卷已成功发布”
|
|
|
- else 用户不是老师
|
|
|
- System->>User: 提示“权限不够”
|
|
|
- end
|
|
|
- else 登录失败
|
|
|
- System->>User: 显示错误信息
|
|
|
- end
|
|
|
- else 用户已登录
|
|
|
- System->>User: 跳转到已登录页面
|
|
|
- User->>System: 查看问卷通知
|
|
|
- System->>User: 显示问卷通知
|
|
|
- User->>System: 发布问卷
|
|
|
- alt 用户是老师
|
|
|
- System->>User: 提示“问卷已成功发布”
|
|
|
- else 用户不是老师
|
|
|
- System->>User: 提示“权限不够”
|
|
|
- end
|
|
|
- end
|
|
|
-```
|
|
|
-```mermaid
|
|
|
-sequenceDiagram
|
|
|
- participant User
|
|
|
- participant System
|
|
|
-
|
|
|
- User->>System: 访问系统
|
|
|
- alt 用户未登录
|
|
|
- System->>User: 显示登录注册界面
|
|
|
- User->>System: 输入用户名和密码
|
|
|
- alt 登录成功
|
|
|
- System->>User: 跳转到已登录页面
|
|
|
- User->>System: 扔漂流瓶
|
|
|
- System->>User: 提示“请输入漂流瓶内容”
|
|
|
- User->>System: 编写漂流瓶内容
|
|
|
- System->>User: 抛出漂流瓶
|
|
|
- User->>System: 捞漂流瓶
|
|
|
- alt 条件满足
|
|
|
- System->>User: 成功捞上漂流瓶
|
|
|
- else 条件不满足
|
|
|
- System->>User: 打捞失败
|
|
|
- end
|
|
|
- User->>System: 查看我的漂流瓶
|
|
|
- System->>User: 显示扔出的漂流瓶
|
|
|
- System->>User: 显示捞上的漂流瓶
|
|
|
- User->>System: 扔回捞上的漂流瓶
|
|
|
- System->>User: 扔回成功
|
|
|
- else 登录失败
|
|
|
- System->>User: 显示错误信息
|
|
|
- end
|
|
|
- else 用户已登录
|
|
|
- System->>User: 跳转到已登录页面
|
|
|
- User->>System: 扔漂流瓶
|
|
|
- System->>User: 提示“请输入漂流瓶内容”
|
|
|
- User->>System: 编写漂流瓶内容
|
|
|
- System->>User: 抛出漂流瓶
|
|
|
- User->>System: 捞漂流瓶
|
|
|
- alt 条件满足
|
|
|
- System->>User: 成功捞上漂流瓶
|
|
|
- else 条件不满足
|
|
|
- System->>User: 打捞失败
|
|
|
- end
|
|
|
- User->>System: 查看我的漂流瓶
|
|
|
- System->>User: 显示扔出的漂流瓶
|
|
|
- System->>User: 显示捞上的漂流瓶
|
|
|
- User->>System: 扔回捞上的漂流瓶
|
|
|
- System->>User: 扔回成功
|
|
|
- end
|
|
|
-```
|
|
|
-
|
|
|
-
|
|
|
-# 活动图
|
|
|
-
|
|
|
-```mermaid
|
|
|
-graph TD;
|
|
|
- A[开始] --> B{用户已登录?};
|
|
|
- B -- 否 --> C[显示登录注册界面];
|
|
|
- C --> D[输入用户名和密码];
|
|
|
- D --> E{登录成功?};
|
|
|
- E -- 是 --> N[跳转到已登录页面];
|
|
|
- E -- 否 --> G[显示错误信息];
|
|
|
-
|
|
|
- B -- 是 --> N[跳转到已登录页面];
|
|
|
- N --> O[查看问卷通知];
|
|
|
- O --> P[显示问卷通知];
|
|
|
- P --> Q[发布问卷];
|
|
|
- Q --> R{用户是老师?};
|
|
|
- R -- 是 --> S[提示“问卷已成功发布”];
|
|
|
- R -- 否 --> T[提示“权限不够”];
|
|
|
-
|
|
|
-```
|
|
|
-```mermaid
|
|
|
-graph TD;
|
|
|
- A[开始] --> B{用户已登录?};
|
|
|
- B -- 否 --> C[显示登录注册界面];
|
|
|
- C --> D[输入用户名和密码];
|
|
|
- D --> E{登录成功?};
|
|
|
- E -- 是 --> F[跳转到已登录页面];
|
|
|
- E -- 否 --> G[显示错误信息];
|
|
|
- F --> H[扔漂流瓶];
|
|
|
- H --> I[提示“请输入漂流瓶内容”];
|
|
|
- I --> J[编写漂流瓶内容];
|
|
|
- J --> K[抛出漂流瓶];
|
|
|
- K --> L[结束];
|
|
|
-
|
|
|
- F --> M[捞漂流瓶];
|
|
|
- M --> N{条件满足?};
|
|
|
- N -- 是 --> O[成功捞上漂流瓶];
|
|
|
- N -- 否 --> P[打捞失败];
|
|
|
- O --> Q[结束];
|
|
|
- P --> Q;
|
|
|
-
|
|
|
- F --> R[查看我的漂流瓶];
|
|
|
- R --> S[显示扔出的漂流瓶];
|
|
|
- S --> T[显示捞上的漂流瓶];
|
|
|
- T --> U{扔回捞上的漂流瓶?};
|
|
|
- U -- 是 --> V[扔回成功];
|
|
|
- U -- 否 --> W[结束];
|
|
|
- V --> W;
|
|
|
-```
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-# 状态图
|
|
|
-```mermaid
|
|
|
-stateDiagram-v2
|
|
|
- [*] --> 未登录
|
|
|
- 未登录 --> 登录 : 用户尝试访问系统
|
|
|
- 登录 --> 已登录 : 用户成功登录
|
|
|
- 已登录 --> 查看问卷通知 : 用户选择查看问卷通知
|
|
|
- 已登录 --> 发布问卷 : 用户选择发布问卷
|
|
|
- 发布问卷 --> 权限不够 : 用户不是老师
|
|
|
- 发布问卷 --> 问卷已成功发布 : 用户是老师
|
|
|
-
|
|
|
-```
|
|
|
-
|
|
|
-```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
|
|
|
-```
|
|
|
-# 发布问卷业务
|
|
|
-```plantuml
|
|
|
-@startuml
|
|
|
-left to right direction
|
|
|
-[*] -->检查登录状态
|
|
|
-检查登录状态 --> 显示登录注册界面 : 用户未登录
|
|
|
-显示登录注册界面 --> 输入用户名和密码
|
|
|
-输入用户名和密码 --> 检查是否为空
|
|
|
-检查是否为空 --> 执行登录 : 不为空
|
|
|
-检查是否为空 --> 显示登录注册界面 : 为空
|
|
|
-执行登录 --> 跳转到已登录页面 : 登录成功
|
|
|
-执行登录 --> 显示登录注册界面 : 登录失败
|
|
|
-跳转到已登录页面 --> 查看问卷通知
|
|
|
-查看问卷通知 --> 显示问卷通知
|
|
|
-显示问卷通知 --> 发布问卷
|
|
|
-发布问卷 --> 检查用户身份
|
|
|
-检查用户身份 --> 提示权限不够 : 用户不是老师
|
|
|
-检查用户身份 --> 提示问卷已成功发布 : 用户是老师
|
|
|
-提示权限不够 --> [*]
|
|
|
-提示问卷已成功发布 --> [*]
|
|
|
-@enduml
|
|
|
-```
|
|
|
-# 使用漂流瓶业务
|
|
|
-```plantuml
|
|
|
-@startuml
|
|
|
-left to right direction
|
|
|
-[*] -->检查登录状态
|
|
|
-检查登录状态 --> 显示登录注册界面 : 用户未登录
|
|
|
-显示登录注册界面 --> 输入用户名和密码
|
|
|
-输入用户名和密码 --> 检查是否为空
|
|
|
-检查是否为空 --> 执行登录 : 不为空
|
|
|
-检查是否为空 --> 显示登录注册界面 : 为空
|
|
|
-执行登录 --> 跳转到已登录页面 : 登录成功
|
|
|
-执行登录 --> 显示登录注册界面 : 登录失败
|
|
|
-跳转到已登录页面 --> 选择操作
|
|
|
-选择操作 --> 扔漂流瓶 : 用户选择扔漂流瓶
|
|
|
-扔漂流瓶 --> 提示输入内容
|
|
|
-提示输入内容 --> 编写漂流瓶内容
|
|
|
-编写漂流瓶内容 --> 抛出漂流瓶
|
|
|
-抛出漂流瓶 --> 返回已登录页面
|
|
|
-跳转到已登录页面 --> 捞漂流瓶 : 用户选择捞漂流瓶
|
|
|
-捞漂流瓶 --> 检查条件
|
|
|
-检查条件 --> 成功捞上 : 条件满足
|
|
|
-检查条件 --> 打捞失败 : 条件不满足
|
|
|
-成功捞上 --> 返回已登录页面
|
|
|
-打捞失败 --> 返回已登录页面
|
|
|
-跳转到已登录页面 --> 查看我的漂流瓶 : 用户选择查看我的漂流瓶
|
|
|
-查看我的漂流瓶 --> 显示扔出的漂流瓶
|
|
|
-显示扔出的漂流瓶 --> 显示捞上的漂流瓶
|
|
|
-显示捞上的漂流瓶 --> 选择操作
|
|
|
-选择操作 --> 扔回捞上的漂流瓶 : 用户选择扔回捞上的漂流瓶
|
|
|
-扔回捞上的漂流瓶 --> 返回已登录页面
|
|
|
-@enduml
|
|
|
-```
|