schema_20241219200049.md 6.2 KB

//陪聊部分

类图

' 聊天项目类图英文版
@startuml
class User { 
    + objectId: String //用户唯一标识符
    + name: String //用户名
    + password: String //用户密码
    + email: String //用户邮箱
    + avatar: String //用户头像
    + bio: String //用户个人简介
    + startChat(): void 
    + chooseChatPartner(): String
    + summarizeChatHistory(): void
}

' Store information about chat partners
class ChatPartner {
    + objectId: String //陪聊师唯一标识符
    + name: String //陪聊师姓名
    + expertise: String //陪聊师专业领域(普通陪聊师可为空)
    + avatar: String //陪聊师头像
    + bio: String //陪聊师个人简介
    + provideChat(): String 
}

' Record chat history between users and chat partners
class ChatRecord {
    + objectId: String //聊天记录唯一标识符
    + title:String //聊天标题
    + timestamp: Date //聊天时间
    + content:String //聊天内容
    - chatList: Array //聊天记录
    + user: Pointer<User> //关联的用户对象
    + chatpartner: Pointer<ChatPartner> //关联的聊天机器人对象
    + getChatHistory(): List
}

' Record generated reports
class Report {
    + objectId: String //报告唯一标识符
    - analysisResult: String //分析结果
    + generateReport(): String //生成报告的方法
}

User "1" --> "*" ChatRecord     
ChatPartner "1" --> "*" ChatRecord 
ChatRecord "1" -- "1" Report      
@enduml

时序图

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

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

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

@enduml

状态图

@startuml
[*] --> 选择陪聊师

选择陪聊师 -->  聊天中: 开始聊天
聊天中 --> 继续聊天 : 选择继续聊天
聊天中 --> 退出聊天 : 选择退出聊天
退出聊天 --> 总结中 : 总结聊天记录

总结中 --> 生成报告 : 生成分析报告
生成报告 --> 生成失败 : 报告生成失败
生成报告 --> 生成成功 : 报告生成成功

生成成功 --> [*] : 聊天结束
生成失败 --> 生成报告 : 重新生成
@enduml

活动图

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

//社区部分

用例图

@startuml
actor 学生用户
actor 学校管理员

rectangle "心理社区" {
    学生用户 -- (填写心理普查问卷)
    学生用户 -- (使用心理测试)
    学校管理员 -- (发布心理普查问卷)
    学校管理员 -- (发布心理活动通知)
    学校管理员 -- (设置星标用户)
}

@enduml

类图

@startuml
class 用户 {
    +用户ID: String
    +用户名: String
    +密码: String
    +电子邮件: String
    +角色: String
    +注册账户(): void
    +登录(): void
    +填写心理测试(): void
}

class 心理社区 {
    +社区ID: String
    +话题: String
    +帖子: List<帖子>
    +加入社区(): void
    +发布消息(): void
}

class 帖子 {
    +帖子ID: String
    +内容: String
    +作者: 用户
    +时间戳: Date
}

class 心理活动 {
    +活动ID: String
    +标题: String
    +描述: String
    +日期: Date
    +地点: String
    +发布活动(): void
}

class 心理普查问卷 {
    +问卷ID: String
    +内容: String
    +发布者: 学校管理员
    +填写结果: List<用户>
    +发布问卷(): void
    +分析结果(): void
}

class 学校管理员 {
    +管理员ID: String
    +姓名: String
    +邮箱: String
    +发布心理活动(): void
    +发布心理普查问卷(): void
    +分析问卷结果(): void
    +设置星标用户(): void
}

用户 "1" -- "0..*" 心理社区
心理社区 "1" -- "0..*" 帖子
心理活动 "1" -- "0..*" 用户
学校管理员 "1" -- "0..*" 心理活动
学校管理员 "1" -- "0..*" 心理普查问卷
心理普查问卷 "1" -- "0..*" 用户
@enduml

时序图

学校管理员学生用户系统发布心理普查问卷填写心理普查问卷收集问卷结果分析问卷结果发布心理团辅升级为心理星标用户alt[心理健康有问题的学生人数达到阈值]制定后续心理活动通知学生参与活动使用心理测试学校管理员学生用户系统

活动图

开始
发布心理普查问卷
学生填写问卷
提交问卷
学校管理员分析结果
心理健康有问题的学生人数达到阈值?
发布心理团辅
继续监控
通知学生参与团辅
设置星标用户
结束

状态图

学生填写问卷
提交问卷
学校管理员查看分析
心理状况有问题学生人数达到阈值
发布心理团辅
升级为心理星标用户
发布后续活动
发布问卷
问卷收集中
结果分析中
后续活动设计中
初期活动发布中
团辅进行中
升级星标用户
后续活动开展中