# //陪聊部分 # 类图 ```plantuml ' 聊天项目类图英文版 @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 //关联的用户对象 + chatpartner: Pointer //关联的聊天机器人对象 + getChatHistory(): List } ' Record generated reports class Report { + objectId: String //报告唯一标识符 - analysisResult: String //分析结果 + generateReport(): String //生成报告的方法 } User "1" --> "*" ChatRecord ChatPartner "1" --> "*" ChatRecord ChatRecord "1" -- "1" Report @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 用户 { +用户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 ``` # 时序图 ```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 [*] --> 发布问卷 发布问卷 --> 问卷收集中: 学生填写问卷 问卷收集中 --> 结果分析中: 提交问卷 结果分析中 --> 后续活动设计中: 学校管理员查看分析 结果分析中 --> 初期活动发布中: 心理状况有问题学生人数达到阈值 初期活动发布中 --> 团辅进行中: 发布心理团辅 初期活动发布中 --> 升级星标用户: 升级为心理星标用户 后续活动设计中 --> 后续活动开展中: 发布后续活动 后续活动开展中 --> [*] 团辅进行中 --> [*] 升级星标用户 --> [*] ```