# //陪聊部分 # 类图 ```plantuml ' 聊天项目类图英文版 @startuml class ChatAdvice { + objectId: String//建议标识符 + title:String//建议标题 + contnet:String//建议内容 + admin: Pointer<_Admin> // 关联的管理员 } class ChatAdmin { + objectId: String // 管理员唯一标识符 + password: String // 管理员密码 + email: String // 管理员邮箱 + realname: String // 管理员真实姓名 + manageUser(user: Pointer<_User>): void // 管理用户的方法 } class _User { + objectId: String //用户唯一标识符 + username: String //用户名 + realname: String //真实姓名 + password: String //用户密码 + gender: String //性别 + age: Number //年龄 + email: String //用户邮箱 + avatar: String //用户头像 + bio: 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:String //聊天内容 - chatList: Array //聊天记录 + user: Pointer //关联的用户对象 + chatpartner: Pointer //关联的聊天机器人对象 + getChatHistory(): List } class Report { + objectId: String //报告唯一标识符 - analysisResult: String //分析结果 + generateReport(): String //生成报告的方法 } _User "1" --> "*" ChatRecord ChatPartner "1" --> "*" ChatRecord ChatCompanion "1" --> "*" ChatRecord ChatRecord "1" -- "1" Report ChatAdmin "1" --> "*" ChatAdvice @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 [*] --> 发布问卷 发布问卷 --> 问卷收集中: 学生填写问卷 问卷收集中 --> 结果分析中: 提交问卷 结果分析中 --> 后续活动设计中: 学校管理员查看分析 结果分析中 --> 初期活动发布中: 心理状况有问题学生人数达到阈值 初期活动发布中 --> 团辅进行中: 发布心理团辅 初期活动发布中 --> 升级星标用户: 升级为心理星标用户 后续活动设计中 --> 后续活动开展中: 发布后续活动 后续活动开展中 --> [*] 团辅进行中 --> [*] 升级星标用户 --> [*] ```