112
社区成员
发帖
与我相关
我的任务
分享| 这个作业属于哪个课程 | 202501福大-软件工程实践-W班 |
|---|---|
| 这个作业要求在哪里 | 软工实践——CodeArts团队实战总结 |
| 这个作业的目标 | CodeArts极限开发 |
| 其他参考文献 | markdown教程-菜鸟教程 |
120.26.178.146
由于我们的开发是在apifox上进行,后期统一提交到CodeArt,因此展示apifox的提交日志


本系统采用经典的分层架构模式,主要包括以下几个层次:
| 接口名称 | 请求方式 | URL | 功能说明 |
|---|---|---|---|
| 用户注册 | POST | /api/users/register | 用户注册 |
| 用户登录 | POST | /api/users/login | 用户登录认证 |
| 获取用户详情 | GET | /api/users/{id} | 根据ID获取用户详情 |
| 接口名称 | 请求方式 | URL | 功能说明 |
|---|---|---|---|
| 根据用户ID获取咨询记录 | GET | /api/consultations/getConsultationsByUserId/{userId} | 获取指定用户的咨询记录 |
| 添加咨询记录 | POST | /api/consultations/addConsultations | 添加新的咨询记录 |
| 接口名称 | 请求方式 | URL | 功能说明 |
|---|---|---|---|
| 获取购车咨询建议 | GET | /api/ai/getConsultations | 调用AI获取购车建议 |
| 接口名称 | 请求方式 | URL | 功能说明 |
|---|---|---|---|
| 分页获取咨询记录 | GET | /api/admins/consultations/page | 管理员分页查看咨询记录 |
| 分页获取用户列表 | GET | /api/admins/users/page | 管理员分页查看用户列表 |
所有接口均采用统一的响应格式:
{
"code": "200",
"message": "操作成功",
"data": {}
}
RBloomFilter)防止缓存穿透

表说明:存储用户基本信息
** 表结构**
| 字段名 | 数据类型 | 长度 | 是否为空 | 主键 | 默认值 | 注释 |
|---|---|---|---|---|---|---|
| user_id | BIGINT UNSIGNED | - | NOT NULL | ✅ | AUTO_INCREMENT | 用户ID,主键 |
| username | VARCHAR | 50 | NOT NULL | ❌ | - | 用户名,唯一 |
| VARCHAR | 100 | NULL | ❌ | - | 邮箱,唯一 | |
| phone | VARCHAR | 20 | NOT NULL | ❌ | - | 手机号,唯一 |
| password | VARCHAR | 255 | NOT NULL | ❌ | - | 加密后的密码 |
| real_name | VARCHAR | 50 | NULL | ❌ | - | 真实姓名 |
索引信息
sql
PRIMARY KEY (user_id)
UNIQUE KEY username (username)
UNIQUE KEY email (email)
UNIQUE KEY phone (phone)
INDEX idx_phone (phone)
INDEX idx_email (email)
INDEX idx_username (username)
表配置
表说明:存储用户汽车咨询记录及AI分析结果
表结构
| 字段名 | 数据类型 | 长度 | 是否为空 | 主键 | 默认值 | 注释 |
|---|---|---|---|---|---|---|
| id | BIGINT | - | NOT NULL | ✅ | AUTO_INCREMENT | 咨询ID |
| user_id | BIGINT | - | NOT NULL | ❌ | - | 用户ID |
| title | VARCHAR | 200 | NOT NULL | ❌ | - | 咨询标题 |
| budget | VARCHAR | 50 | NOT NULL | ❌ | - | 购车预算:10万以下|10-20万|20-30万|30-50万|50万以上 |
| car_type | VARCHAR | 50 | NOT NULL | ❌ | - | 偏好车型:SUV|轿车|MPV|跑车|越野车 |
| use_case | JSON | - | NOT NULL | ❌ | - | 使用场景(数组):通勤|家庭|商务|越野|其他 |
| fuel_type | VARCHAR | 50 | NOT NULL | ❌ | - | 燃料类型:燃油|电动|混动|不限 |
| brands | JSON | - | NULL | ❌ | - | 品牌偏好(数组):大众|丰田|本田|比亚迪|特斯拉|宝马|奔驰|奥迪等 |
| description | TEXT | - | NOT NULL | ❌ | - | 详细需求描述(至少10字符) |
| ai_model | ENUM | - | NOT NULL | ❌ | - | AI模型:qwen-通义千问, zhipu-智谱AI |
| result | JSON | - | NULL | ❌ | - | AI咨询结果(JSON格式):{recommendation, analysis, budgetAdvice} |
| rating | TINYINT | - | NULL | ❌ | - | 用户评分:1-5星 |
索引信息
sql
PRIMARY KEY (id)
INDEX idx_user_id (user_id)
INDEX idx_ai_model (ai_model)
INDEX idx_car_type (car_type)
表配置
mermaid
erDiagram
users ||--o{ consultations : "一对多"
users {
bigint user_id PK
varchar username UK
varchar email UK
varchar phone UK
varchar password
varchar real_name
}
consultations {
bigint id PK
bigint user_id FK
varchar title
varchar budget
varchar car_type
json use_case
varchar fuel_type
json brands
text description
enum ai_model
json result
tinyint rating
}










用户登陆

首页概况

新建咨询

咨询历史

个人设置


数据概览

咨询记录

用户管理

数据统计


解释:由于百万级需要的电脑性能实在太高,故我们完成了万级别的💦


使用JMeter对Spring Boot应用程序中的一个简单HTTP接口(GET /test)进行的性能压力测试。测试总共发起了超过28.5万次请求
平均响应时间为25毫秒,请求能够被快速处理。更为关键的是,中位数响应时间(50%百分位)仅为19毫秒,这表明超过一半的请求都在20毫秒内完成,接口响应非常迅捷。
从稳定性来看,所有请求均成功返回。此外,90%的请求响应时间在43毫秒以内,95%的请求在61毫秒以内,进一步证明了接口在绝大多数情况下都能提供稳定、快速的响应。结合请求总数,可以推断出该接口具备很高的吞吐量,能够持续稳定地处理大量并发请求。
| 昵称 | 个人成果(70) | 工作态度(30) | ||||
|---|---|---|---|---|---|---|
| 任务完成度(35) | 成果质量(30) | 贡献独特性(5) | 参与度(15) | 协作性(10) | 实效性(5) | |
| 102300306 | 35 | 28 | 4 | 12 | 8 | 5 |
| 102300234 | 35 | 28 | 4 | 12 | 8 | 5 |
| 102300310 | 35 | 28 | 4 | 12 | 8 | 5 |
| 102300318 | 35 | 27 | 4 | 12 | 8 | 5 |
| 102300320 | 35 | 28 | 4 | 13 | 8 | 5 |
| 102300321 | 35 | 2 | 4 | 12 | 8 | 5 |
| 102300326 | 35 | 28 | 4 | 13 | 8 | 5 |
| 102300333 | 35 | 26 | 4 | 12 | 8 | 5 |
| 学号 | 工作内容 | 贡献度 |
|---|---|---|
| 102300306 | 分布任务、画用例图、类图、撰写博客 | 14 |
| 102300234 | 完成前端相关任务、辅助部署 | 14 |
| 102300326 | 完成部署、辅助测试等相关任务 | 14 |
| 102300318 | 完成整体后端开发 | 14.5 |
| 102300320 | 完成压力测试 | 14 |
| 102300321 | 辅助后端开发 | 9.5 |
| 102300333 | 辅助 | 7 |
| 102300310 | 完成压力测试整体构建 | 13 |
| 困难类型 | 具体描述 | 解决方法 | 成长收获 |
|---|---|---|---|
| 数据模型复杂 | 购车咨询业务逻辑复杂,实体关系难以梳理 | 1. 多次需求沟通;2. 原型验证;3. 分阶段设计 | 提升复杂业务建模能力 |
| 性能优化挑战 | 大量咨询数据查询性能瓶颈 | 1. 索引优化;2. 分表策略;3. 缓存机制 | 掌握高性能数据库设计 |
| 数据一致性 | 用户咨询与AI结果的数据同步问题 | 1. 事务管理;2. 数据校验;3. 回滚机制 | 增强数据一致性意识 |
| 困难类型 | 具体描述 | 解决方法 | 成长收获 |
|---|---|---|---|
| AI接口集成 | 通义千问API调用不稳定,响应慢 | 1. 重试机制;2. 熔断降级;3. 异步处理 | 掌握第三方服务集成技巧 |
| 并发处理 | 多用户同时咨询时的性能压力 | 1. 线程池优化;2. 消息队列;3. 负载均衡 | 提升高并发系统设计能力 |
| 数据安全 | 用户隐私数据保护要求高 | 1. 数据加密;2. 权限控制;3. 安全审计 | 强化安全意识和技术 |
| 困难类型 | 具体描述 | 解决方法 | 成长收获 |
|---|---|---|---|
| 交互复杂度 | 购车咨询流程多步骤交互复杂 | 1. 状态管理;2. 步骤拆分;3. 用户体验测试 | 提升复杂交互设计能力 |
| 响应式适配 | 多终端设备兼容性挑战 | 1. 移动优先;2. 弹性布局;3. 多设备测试 | 掌握响应式开发技能 |
| 性能优化 | 页面加载速度慢,用户体验差 | 1. 代码分割;2. 懒加载;3. 缓存策略 | 优化前端性能的能力 |
| 困难类型 | 具体描述 | 解决方法 | 成长收获 |
|---|---|---|---|
| 测试覆盖度 | AI推荐结果难以全面测试 | 1. 场景覆盖;2. 边界测试;3. 用户行为模拟 | 提升测试用例设计能力 |
| 性能基准 | 系统性能指标难以确定 | 1. 压力测试;2. 竞品对比;3. 用户调研 | 建立科学的性能评估体系 |
| 自动化测试 | 界面变化导致自动化脚本失效 | 1. 元素定位优化;2. 页面对象模式;3. 持续集成 | 掌握自动化测试维护 |
| 困难类型 | 具体描述 | 解决方法 | 成长收获 |
|---|---|---|---|
| 需求表达 | 实际需求难以准确传达给开发 | 1. 场景描述;2. 痛点分析;3. 原型反馈 | 提升需求表达能力 |
| 功能理解 | 技术功能与用户体验存在差距 | 1. 使用培训;2. 功能演示;3. 问题记录 | 加深对产品理解深度 |
| 反馈有效性 | 反馈意见难以量化评估 | 1. 问题分级;2. 影响评估;3. 优先级排序 | 提高问题分析能力 |
| 困难类型 | 具体描述 | 解决方法 | 成长收获 |
|---|---|---|---|
| 需求优先级 | 多方需求冲突,优先级难确定 | 1. 价值评估;2. 用户调研;3. 数据支撑 | 提升需求管理能力 |
| 技术可行性 | 产品创意与技术实现存在差距 | 1. 技术预研;2. 原型验证;3. 迭代开发 | 增强技术理解能力 |
| 进度管控 | 多角色协作进度难以同步 | 1. 敏捷管理;2. 定期同步;3. 风险预警 | 掌握项目管理技能 |
| 困难类型 | 具体描述 | 解决方法 | 成长收获 |
|---|---|---|---|
| 设计一致性 | 多页面风格统一性挑战 | 1. 设计系统;2. 组件库;3. 设计评审 | 建立系统化设计能力 |
| 技术实现 | 设计效果与开发实现存在差距 | 1. 技术沟通;2. 设计走查;3. 适配方案 | 提升技术协作能力 |
| 用户体验 | 界面美观与实用性的平衡 | 1. 用户测试;2. A/B测试;3. 数据反馈 | 深化用户体验理解 |
| 困难类型 | 具体描述 | 解决方法 | 成长收获 |
|---|---|---|---|
| 环境稳定性 | 生产环境频繁出现异常 | 1. 监控告警;2. 自动恢复;3. 容量规划 | 提升系统稳定性保障 |
| 部署效率 | 多版本部署流程复杂 | 1. 自动化部署;2. 蓝绿发布;3. 回滚机制 | 掌握高效部署策略 |
| 安全防护 | 系统面临多种安全威胁 | 1. 安全扫描;2. 漏洞修复;3. 应急响应 | 增强安全运维能力 |
| PSP阶段 | 预估时间(h) | 实际时间(h) | 时间差(h) | 说明 |
|---|---|---|---|---|
| 需求分析 | 2 | 3 | +1 | 业务需求理解与数据建模 |
| 概念设计 | 3 | 4 | +1 | E-R图设计与实体关系分析 |
| 逻辑设计 | 4 | 5 | +1 | 表结构设计与规范化 |
| 物理设计 | 2 | 3 | +1 | 索引优化与性能设计 |
| 评审修改 | 2 | 1 | -1 | 团队评审与方案调整 |
| 文档编写 | 2 | 3 | +1 | 数据库设计文档编写 |
| 合计 | 15 | 19 | +4 | - |
| PSP阶段 | 预估时间(h) | 实际时间(h) | 时间差(h) | 说明 |
|---|---|---|---|---|
| 技术选型 | 1 | 1 | 0 | Vue3+Element Plus选型 |
| 环境搭建 | 2 | 2 | 0 | 前端工程化配置 |
| UI设计 | 4 | 3 | -1 | 界面布局与组件设计 |
| 页面开发 | 12 | 10 | -2 | 咨询页面功能实现 |
| 交互逻辑 | 6 | 8 | +2 | 用户交互与数据绑定 |
| 兼容性测试 | 3 | 4 | +1 | 多浏览器兼容测试 |
| 性能优化 | 2 | 2 | 0 | 打包优化与缓存策略 |
| 合计 | 30 | 30 | 0 | - |
| PSP阶段 | 预估时间(h) | 实际时间(h) | 时间差(h) | 说明 |
|---|---|---|---|---|
| 市场调研 | 4 | 6 | +2 | 竞品分析与市场需求 |
| 产品规划 | 3 | 4 | +1 | 产品路线图制定 |
| 需求文档 | 6 | 8 | +2 | PRD文档编写 |
| 原型设计 | 4 | 5 | +1 | 产品原型设计 |
| 需求评审 | 3 | 2 | -1 | 需求评审会议 |
| 项目跟进 | 4 | 5 | +1 | 项目进度跟踪 |
| 合计 | 24 | 30 | +6 | - |
| PSP阶段 | 预估时间(h) | 实际时间(h) | 时间差(h) | 说明 |
|---|---|---|---|---|
| 风格定位 | 3 | 4 | +1 | 设计风格确定 |
| 视觉设计 | 8 | 10 | +2 | 界面视觉设计 |
| 交互设计 | 6 | 5 | -1 | 交互动效设计 |
| 设计规范 | 3 | 4 | +1 | 设计系统建立 |
| 切图标注 | 2 | 3 | +1 | 开发资源输出 |
| 设计评审 | 2 | 1 | -1 | 设计稿评审 |
| 合计 | 24 | 27 | +3 | - |
| PSP阶段 | 预估时间(h) | 实际时间(h) | 时间差(h) | 说明 |
|---|---|---|---|---|
| 测试计划 | 2 | 3 | +1 | 测试策略与计划制定 |
| 用例设计 | 4 | 5 | +1 | 功能测试用例编写 |
| 功能测试 | 8 | 10 | +2 | 系统功能全面测试 |
| 性能测试 | 3 | 4 | +1 | 压力测试与性能分析 |
| 安全测试 | 2 | 3 | +1 | 安全漏洞检测 |
| 缺陷管理 | 3 | 2 | -1 | Bug跟踪与回归测试 |
| 测试报告 | 2 | 3 | +1 | 测试报告编写 |
| 合计 | 24 | 30 | +6 | - |
| PSP阶段 | 预估时间(h) | 实际时间(h) | 时间差(h) | 说明 |
|---|---|---|---|---|
| 需求调研 | 2 | 3 | +1 | 用户需求收集与分析 |
| 原型评审 | 3 | 4 | +1 | 产品原型体验反馈 |
| 功能体验 | 6 | 8 | +2 | 系统功能体验测试 |
| 可用性测试 | 4 | 5 | +1 | 用户体验评估 |
| 问题反馈 | 2 | 3 | +1 | 问题记录与反馈 |
| 验收测试 | 3 | 2 | -1 | 最终验收确认 |
| 合计 | 20 | 25 | +5 | - |
| PSP阶段 | 预估时间(h) | 实际时间(h) | 时间差(h) | 说明 |
|---|---|---|---|---|
| 环境规划 | 2 | 3 | +1 | 服务器环境规划 |
| 部署脚本 | 4 | 5 | +1 | 自动化部署脚本 |
| 监控配置 | 3 | 4 | +1 | 系统监控告警配置 |
| 安全配置 | 3 | 2 | -1 | 安全策略配置 |
| 备份策略 | 2 | 3 | +1 | 数据备份方案 |
| 性能调优 | 4 | 5 | +1 | 系统性能优化 |
| 合计 | 18 | 21 | +3 | - |
| PSP阶段 | 预估时间(h) | 实际时间(h) | 时间差(h) | 说明 |
|---|---|---|---|---|
| 技术选型 | 1 | 2 | +1 | Spring Boot框架选型 |
| 环境搭建 | 2 | 3 | +1 | 开发环境配置 |
| API设计 | 3 | 4 | +1 | RESTful接口设计 |
| 业务逻辑 | 8 | 10 | +2 | 核心业务代码实现 |
| AI集成 | 4 | 6 | +2 | 通义千问API集成 |
| 单元测试 | 3 | 2 | -1 | 服务层单元测试 |
| 性能优化 | 2 | 3 | +1 | 数据库连接池优化 |
| 合计 | 23 | 30 | +7 | - |
