schema.md 14 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[用户是老师][用户不是老师]UserSystem
UserSystem扔漂流瓶提示“请输入漂流瓶内容”编写漂流瓶内容抛出漂流瓶UserSystem
UserSystem捞漂流瓶成功捞上漂流瓶打捞失败alt[条件满足][条件不满足]UserSystem
UserSystem查看我的漂流瓶显示扔出的漂流瓶显示捞上的漂流瓶扔回捞上的漂流瓶扔回成功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

时序图

登录业务

@startuml
actor 用户
participant 登录系统

用户 -> 登录系统 : 输入用户名和密码
登录系统 -> 登录系统 : 检查是否为空

alt 不为空
    登录系统 -> 登录系统 : 执行登录
    登录系统 --> 用户 : 登录成功
else 为空
    登录系统 --> 用户 : 输入用户名和密码
end

用户 -> 登录系统 : 返回当前页面
@enduml

注册业务

@startuml
actor 用户
participant 注册系统

用户 -> 注册系统 : 输入基本信息
注册系统 -> 注册系统 : 检查是否为空

alt 为空
    注册系统 --> 用户 : 输入基本信息
else 不为空
    注册系统 -> 注册系统 : 检查两次密码一致性

    alt 一致
        注册系统 -> 注册系统 : 执行注册
        注册系统 --> 用户 : 注册成功
    else 不一致
        注册系统 --> 用户 : 输入基本信息
    end
end

用户 -> 注册系统 : 返回登录页面
@enduml

用户编辑信息业务

@startuml
actor 用户
participant 用户信息系统

用户 -> 用户信息系统 : 获取用户信息
用户信息系统 -> 用户信息系统 : 弹出表单
用户 -> 用户信息系统 : 检查用户输入

alt 输入有效
    用户信息系统 -> 用户信息系统 : 执行修改
    用户信息系统 --> 用户 : 修改成功
else 输入无效
    用户信息系统 --> 用户 : 弹出表单
end

用户 -> 用户信息系统 : 返回当前页面
@enduml

智能陪聊业务

@startuml
actor 用户
participant 系统

用户 -> 系统 : 检查用户是否登录注册

alt 未登录
    用户 -> 系统 : 登录/注册
    系统 -> 用户 : 登录/注册成功
    系统 -> 用户 : 选择陪聊师
else 已登录
    系统 -> 用户 : 选择陪聊师
end

用户 -> 系统 : 开始陪聊
系统 -> 用户 : 结束陪聊
@enduml

普通聊天业务

@startuml
actor 用户
participant 系统

用户 -> 系统 : 检查用户是否登录注册

alt 未登录
    用户 -> 系统 : 登录/注册
    系统 -> 用户 : 登录/注册成功
    系统 -> 用户 : 开始陪聊
else 已登录
    系统 -> 用户 : 开始陪聊
end

用户 -> 系统 : 结束陪聊
@enduml

用户评价业务

@startuml
actor 用户
participant 系统

用户 -> 系统 : 检查用户是否登录注册

alt 未登录
    用户 -> 系统 : 登录/注册
    系统 -> 用户 : 登录/注册成功
    系统 -> 用户 : 进入评价
else 已登录
    系统 -> 用户 : 进入评价
end

用户 -> 系统 : 输入评价内容
用户 -> 系统 : 保存退出

alt 保存成功
    系统 --> 用户 : 保存成功
else 保存失败
    系统 --> 用户 : 输入评价内容
end
@enduml

查看报告业务

@startuml
actor 用户
participant 系统

用户 -> 系统 : 获取用户信息
用户 -> 系统 : 点击我的报告
系统 -> 用户 : 展示用户相关报告
@enduml