# //陪聊部分 # 类图 ```plantuml ' 聊天项目类图英文版 @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 //关联的用户对象 + chatpartner: Pointer //关联的聊天机器人对象 + getChatHistory(): List } class ChatReport { + objectId: String //报告唯一标识符 - report: String //分析结果 + generateReport(): String //生成报告的方法 } class ChatEvaluate{ + objectId:String//评论唯一标识符 + avater:String//用户头像 + content:String//评论内容 + rating:Number//评论星星数 + user: Pointer //关联的用户对象 } _User "*" --> "*" ChatEvaluate _User "1" --> "*" ChatRecord ChatPartner "1" --> "*" ChatRecord ChatCompanion "1" --> "*" ChatRecord ChatRecord "1" --> "1" ChatReport @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 学生用户 actor 学校管理员 rectangle "心理社区" { 学生用户 -- (填写心理普查问卷) 学生用户 -- (使用心理测试) 学校管理员 -- (发布心理普查问卷) 学校管理员 -- (发布心理活动通知) 学校管理员 -- (设置星标用户) } @enduml ``` # 类图 ```plantuml @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 ``` # 时序图 ```mermaid 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: 使用心理测试 ``` # 活动图 ```mermaid 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[结束] ``` # 状态图 ```mermaid stateDiagram-v2 [*] --> 发布问卷 发布问卷 --> 问卷收集中: 学生填写问卷 问卷收集中 --> 结果分析中: 提交问卷 结果分析中 --> 后续活动设计中: 学校管理员查看分析 结果分析中 --> 初期活动发布中: 心理状况有问题学生人数达到阈值 初期活动发布中 --> 团辅进行中: 发布心理团辅 初期活动发布中 --> 升级星标用户: 升级为心理星标用户 后续活动设计中 --> 后续活动开展中: 发布后续活动 后续活动开展中 --> [*] 团辅进行中 --> [*] 升级星标用户 --> [*] ```