schema.md 13 KB

简单版类图

@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

时序图

@startuml
actor 用户
participant "专业陪聊师" as 专业陪聊师
participant "普通陪聊师" as 普通陪聊师
participant "聊天记录" as 聊天记录
participant "报告" as 报告

用户 -> 用户: 选择陪聊师()
alt 选择专业陪聊师
    用户 -> 专业陪聊师: 提供聊天()
else 选择普通陪聊师
    用户 -> 普通陪聊师: 提供聊天()
end
用户 -> 用户: 开始聊天()
用户 -> 聊天记录: 总结聊天记录()
聊天记录 -> 聊天记录: 获取聊天记录()

聊天记录 -> 报告: 生成报告()
报告 -> 用户: 返回分析报告

@enduml

活动图

@startuml
|用户|
start
:发送消息;
|专业陪聊机器人|
:回复消息;
|用户|
repeat
if (继续聊天?) then (是)
    |用户|
    :发送消息;
    |专业陪聊机器人|
    :回复消息;
else (否)
    |管理员|
    :记录消息;
    stop
endif
repeat while (回复消息)
@enduml

//社区部分

用例图

@startuml
actor 用户


rectangle "心理社区" {
    用户 -- (使用心理普查)
    用户 -- (使用漂流瓶)
}
rectangle "使用心理普查"{
    用户 -- (填写问卷)
    用户 -- (发布问卷)
}
rectangle "使用漂流瓶"{
    用户 -- (扔漂流瓶)
    用户 -- (捞漂流瓶)
}

@enduml

时序图

UserSystem访问系统显示登录注册界面输入用户名和密码跳转到已登录页面查看问卷通知显示问卷通知发布问卷提示“问卷已成功发布”提示“权限不够”alt[用户是老师][用户不是老师]显示错误信息alt[登录成功][登录失败]跳转到已登录页面查看问卷通知显示问卷通知发布问卷提示“问卷已成功发布”提示“权限不够”alt[用户是老师][用户不是老师]alt[用户未登录][用户已登录]UserSystem
UserSystem访问系统显示登录注册界面输入用户名和密码跳转到已登录页面扔漂流瓶提示“请输入漂流瓶内容”编写漂流瓶内容抛出漂流瓶捞漂流瓶成功捞上漂流瓶打捞失败alt[条件满足][条件不满足]查看我的漂流瓶显示扔出的漂流瓶显示捞上的漂流瓶扔回捞上的漂流瓶扔回成功显示错误信息alt[登录成功][登录失败]跳转到已登录页面扔漂流瓶提示“请输入漂流瓶内容”编写漂流瓶内容抛出漂流瓶捞漂流瓶成功捞上漂流瓶打捞失败alt[条件满足][条件不满足]查看我的漂流瓶显示扔出的漂流瓶显示捞上的漂流瓶扔回捞上的漂流瓶扔回成功alt[用户未登录][用户已登录]UserSystem

活动图

Syntax error in graphmermaid version 8.14.0
Syntax error in graphmermaid version 8.14.0

状态图

用户尝试访问系统
用户成功登录
用户选择查看问卷通知
用户选择发布问卷
用户不是老师
用户是老师
未登录
登录
已登录
查看问卷通知
发布问卷
权限不够
问卷已成功发布
用户尝试访问系统
用户成功登录
用户选择扔漂流瓶
用户选择捞漂流瓶
用户选择查看我的漂流瓶
用户开始编写漂流瓶内容
用户完成编写
条件满足
条件不满足
用户查看自己扔出的漂流瓶
用户查看捞上的漂流瓶
用户选择扔回捞上的漂流瓶
未登录
登录
已登录
扔漂流瓶
捞漂流瓶
查看我的漂流瓶
编写内容
抛出漂流瓶
成功捞上
打捞失败
查看扔出的漂流瓶
查看捞上的漂流瓶
扔回漂流瓶

状态图

登录业务

@startuml
left to right direction
[*] --> 输入用户名和密码

输入用户名和密码 --> 检查是否为空
检查是否为空 --> 执行登录 : 不为空
检查是否为空 --> 输入用户名和密码 : 为空
执行登录 --> 返回当前页面: 登录成功
执行登录 --> 输入用户名和密码 :登录失败

返回当前页面 --> [*]
@enduml

注册业务

@startuml
left to right direction

[*] --> 输入基本信息

输入基本信息 --> 检查是否为空
检查是否为空 --> 输入基本信息 : 为空
检查是否为空 --> 检查两次密码一致性 : 不为空

检查两次密码一致性 --> 执行注册 : 一致
检查两次密码一致性 --> 输入基本信息 : 不一致

执行注册 --> 返回登录页面 : 注册成功
执行注册 --> 输入基本信息 : 注册失败

返回登录页面 --> [*]
@enduml

用户编辑信息业务

@startuml
left to right direction

[*] --> 获取用户信息

获取用户信息 --> 弹出表单

弹出表单 --> 检查用户输入

检查用户输入 --> 执行修改

执行修改 --> 返回当前页面: 修改成功
执行修改 --> 弹出表单 : 修改失败
返回当前页面 --> [*] 
@enduml

智能陪聊业务

@startuml
left to right direction

[*] --> 检查用户是否登录注册

检查用户是否登录注册 --> 登录注册 : 未登录
检查用户是否登录注册 --> 选择陪聊师 : 已登录

登录注册 --> 选择陪聊师 : 登录/注册成功
登录注册 --> [*] : 登录/注册失败

选择陪聊师 --> 开始陪聊

开始陪聊 --> [*] : 结束陪聊
@enduml

普通聊天业务

@startuml
left to right direction

[*] --> 检查用户是否登录注册

检查用户是否登录注册 --> 登录注册 : 未登录
检查用户是否登录注册 --> 开始陪聊 : 已登录

登录注册 --> 开始陪聊 : 登录/注册成功
登录注册 --> [*] : 登录/注册失败

开始陪聊 --> [*] : 结束陪聊
@enduml

用户评价业务

@startuml
left to right direction

[*] --> 检查用户是否登录注册

检查用户是否登录注册 --> 登录注册 : 未登录
检查用户是否登录注册 --> 进入评价 : 已登录

登录注册 --> 进入评价 : 登录/注册成功
登录注册 --> [*] : 登录/注册失败

进入评价 --> 输入评价内容

输入评价内容 --> 保存退出

保存退出 --> [*]:保存成功
保存退出 --> 输入评价内容: 保存失败
@enduml

查看报告业务

@startuml
left to right direction
[*] --> 获取用户信息
获取用户信息 --> 点击我的报告
点击我的报告 --> 展示用户相关报告
展示用户相关报告 --> [*]
@enduml

发布问卷业务

@startuml
left to right direction
[*] -->检查登录状态
检查登录状态 --> 显示登录注册界面 : 用户未登录
显示登录注册界面 --> 输入用户名和密码
输入用户名和密码 --> 检查是否为空
检查是否为空 --> 执行登录 : 不为空
检查是否为空 --> 显示登录注册界面 : 为空
执行登录 --> 跳转到已登录页面 : 登录成功
执行登录 --> 显示登录注册界面 : 登录失败
跳转到已登录页面 --> 查看问卷通知
查看问卷通知 --> 显示问卷通知
显示问卷通知 --> 发布问卷
发布问卷 --> 检查用户身份
检查用户身份 --> 提示权限不够 : 用户不是老师
检查用户身份 --> 提示问卷已成功发布 : 用户是老师
提示权限不够 --> [*]
提示问卷已成功发布 --> [*]
@enduml

使用漂流瓶业务

@startuml
left to right direction
[*] -->检查登录状态
检查登录状态 --> 显示登录注册界面 : 用户未登录
显示登录注册界面 --> 输入用户名和密码
输入用户名和密码 --> 检查是否为空
检查是否为空 --> 执行登录 : 不为空
检查是否为空 --> 显示登录注册界面 : 为空
执行登录 --> 跳转到已登录页面 : 登录成功
执行登录 --> 显示登录注册界面 : 登录失败
跳转到已登录页面 --> 选择操作
选择操作 --> 扔漂流瓶 : 用户选择扔漂流瓶
扔漂流瓶 --> 提示输入内容
提示输入内容 --> 编写漂流瓶内容
编写漂流瓶内容 --> 抛出漂流瓶
抛出漂流瓶 --> 返回已登录页面
跳转到已登录页面 --> 捞漂流瓶 : 用户选择捞漂流瓶
捞漂流瓶 --> 检查条件
检查条件 --> 成功捞上 : 条件满足
检查条件 --> 打捞失败 : 条件不满足
成功捞上 --> 返回已登录页面
打捞失败 --> 返回已登录页面
跳转到已登录页面 --> 查看我的漂流瓶 : 用户选择查看我的漂流瓶
查看我的漂流瓶 --> 显示扔出的漂流瓶
显示扔出的漂流瓶 --> 显示捞上的漂流瓶
显示捞上的漂流瓶 --> 选择操作
选择操作 --> 扔回捞上的漂流瓶 : 用户选择扔回捞上的漂流瓶
扔回捞上的漂流瓶 --> 返回已登录页面
@enduml