//陪聊部分
类图
' 聊天项目类图英文版
@startuml
class _User {
+ objectId: String //用户唯一标识符
+ username: String //用户名
+ realname: String //真实姓名
+ password: String //用户密码
+ gender: String //性别
+ age: Number //年龄
+ email: String //用户邮箱
+ avatar: String //用户头像
+ startChat(): void
+ chooseChatPartner(): String
+ summarizeChatHistory(): void
}
class ChatPartner {
+ objectId: String //陪聊师唯一标识符
+ name: String //陪聊师姓名
+ expertise: String //陪聊师专业领域
+ avatar: String //陪聊师头像
+ bio: String //陪聊师个人简介
+ provideChat(): String
}
class ChatCompanion {
+ objectId: String //聊天伙伴唯一标识符
+ name: String //聊天伙伴姓名
+ avatar: String //聊天伙伴头像
+ bio: String //聊天伙伴个人简介
+ provideChat(): String
}
class ChatRecord {
+ objectId: String //聊天记录唯一标识符
+ title:String //聊天标题
+ content:Array //聊天内容
+ user: Pointer<User> //关联的用户对象
+ chatpartner: Pointer<ChatPartner> //关联的聊天机器人对象
+ getChatHistory(): List
}
class ChatReport {
+ objectId: String //报告唯一标识符
- report: String //分析结果
+ generateReport(): String //生成报告的方法
}
class ChatEvaluate{
+ objectId:String//评论唯一标识符
+ avater:String//用户头像
+ content:String//评论内容
+ rating:Number//评论星星数
+ user: Pointer<User> //关联的用户对象
}
_User "*" --> "*" ChatEvaluate
_User "1" --> "*" ChatRecord
ChatPartner "1" --> "*" ChatRecord
ChatCompanion "1" --> "*" ChatRecord
ChatRecord "1" --> "1" ChatReport
@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 User {
+objectId: String
+username: String
+realname: String
+password: String
+gender: String
+age: Number
+email: String
+avatar: String
+startChat():void
+chooseChatPartner():String
+summarizeCharHistory():void
+registerAccount():void
+login(): void
+fillPsychologicalTest(): void
+publishBottle(): void
+retrieveBottle(): Bottle
}
class PsychologicalCommunity {
+communityID: String
+topic: String
+joinCommunity(): void
}
class PsychologicalActivity {
+activityID: String
+title: String
+description: String
+date: Date
+location: String
+publishActivity(): void
}
class PsychologicalSurvey {
+surveyID: String
+content: String
+publisher: SchoolAdmin
+responses: List
+publishSurvey(): void
+analyzeResults(): void
}
class SchoolAdmin {
+adminID: String
+name: String
+email: String
+publishPsychologicalActivity(): void
+publishPsychologicalSurvey(): void
+analyzeSurveyResults(): void
+setFeaturedUser(): void
}
class Bottle {
+bottleID: String
+content: String
+author: User
+timestamp: Date
}
User "1" -- "0..*" PsychologicalCommunity
PsychologicalActivity "1" -- "0..*" User
SchoolAdmin "1" -- "0..*" PsychologicalActivity
SchoolAdmin "1" -- "0..*" PsychologicalSurvey
PsychologicalSurvey "1" -- "0..*" User
User "1" -- "0..*" Bottle
@enduml
时序图
sequenceDiagram
participant Admin as 学校管理员
participant Student as 学生用户
participant System as 系统
Admin->>System: 发布心理普查问卷
Student->>System: 填写心理普查问卷
System->>Admin: 收集问卷结果
Admin->>System: 分析问卷结果
alt 心理健康有问题的学生人数达到阈值
System->>Admin: 发布心理团辅
System->>Student: 升级为心理星标用户
end
Admin->>System: 制定后续心理活动
System->>Student: 通知学生参与活动
Student->>System: 使用心理测试
活动图
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[结束]
状态图
stateDiagram-v2
[*] --> 发布问卷
发布问卷 --> 问卷收集中: 学生填写问卷
问卷收集中 --> 结果分析中: 提交问卷
结果分析中 --> 后续活动设计中: 学校管理员查看分析
结果分析中 --> 初期活动发布中: 心理状况有问题学生人数达到阈值
初期活动发布中 --> 团辅进行中: 发布心理团辅
初期活动发布中 --> 升级星标用户: 升级为心理星标用户
后续活动设计中 --> 后续活动开展中: 发布后续活动
后续活动开展中 --> [*]
团辅进行中 --> [*]
升级星标用户 --> [*]