110
社区成员
发帖
与我相关
我的任务
分享| 项目 | 内容 |
|---|---|
| 这个作业属于哪个课程 | 202501 福大-软件工程实践-w 班 |
| 这个作业要求在哪里 | CodeArts 团队实战总结 |
| 这个作业的目标 | 完成一个基于大语言模型的购车意向咨询软件 |
https://devcloud.cn-north-4.huaweicloud.com/codehub/project/6ce5be36caa249b18b64ba3cb30ad2b9/codehub/3023991/home?ref=main
https://devcloud.cn-north-4.huaweicloud.com/codehub/project/6ce5be36caa249b18b64ba3cb30ad2b9/codehub/3023984/home?ref=main
https://github.com/Atteris-aterues/AIBuyCar2
https://github.com/2451965602/BuyCar





本项目采用 CloudWeGo 生态的 Hertz 框架开发,提供高性能的 HTTP 服务。项目集成了 MySQL、JWT 认证、AI 咨询等功能模块,为用户提供汽车购买咨询、评分、用户管理等一站式服务。
1.克隆项目
git clone https://github.com/2451965602/BuyCar.git
cd BuyCar
2.安装依赖
go mod tidy
3.配置数据库
(1)创建配置文件:
cp config/config.example.yaml config/config.yaml
(2)修改 config/config.yaml 中的数据库连接信息:
mysql:
addr: "localhost:3306"
database: "buycar"
username: "root"
password: "your_password"
charset: "utf8mb4"
4.初始化数据库
(1)创建数据库:
CREATE DATABASE buycar CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
5.启动服务
go run main.go
服务将在配置的地址和端口上启动(默认配置请查看 config/config.yaml)。
项目配置文件使用 YAML 格式,位于 config/config.yaml
# 数据库配置
mysql:
addr: "localhost:3306" # MySQL 服务器地址
database: "buycar" # 数据库名称
username: "root" # 数据库用户名
password: "password" # 数据库密码
charset: "utf8mb4" # 字符集
# 服务器配置
server:
addr: "0.0.0.0" # 监听地址
port: 8080 # 监听端口
# AI 服务配置
aiEndpoint:
url: "https://api.openai.com" # AI API 地址
apiKey: "your-api-key" # API 密钥
model: "gpt-3.5-turbo" # 使用的模型
db/admin.go - 管理员专属数据操作
ListAllConsults(): 全量咨询记录检索(支持分页)
AdminCreateUser(): 安全用户创建(密码自动哈希加密)
DeleteUserByUserID(): 级联删除用户及相关数据
ListAllFeedbacks(): 反馈信息聚合查询
db/model.go - 数据模型管理层
定义六大核心实体:用户、咨询、反馈、积分流水、礼品、兑换记录
提供标准化模型转换:ToModuleStruct()实现 DB 模型 → 业务模型映射
service/admin.go - 管理员业务流程封装
QueryAllConsults(): 咨询数据格式化+业务规则校验
AdminAddUser(): 完整用户创建流水线(验证 → 加密 → 持久化)
AdminDeleteUser(): 安全删除机制(事务性数据清理)
QueryFeedbackAnalysis(): 反馈数据智能分析聚合
service/service.go - 通用服务工具库
上下文管理:GetUidFormContext()统一用户身份提取
数据类型安全转换:convertToInt64()防御性编程支持
handler/admin/admin_service.go - API 端点管理
四维管理接口:咨询查询、用户管理、数据删除、反馈分析
统一异常处理:参数验证 → 业务执行 → 响应封装全链路管理
model/admin/ - 管理员专属 DTO
请求/响应模型严格分层:Req/Resp 对象独立定义
类型安全:Thrift 协议级接口约束
model/module/ - 核心业务实体
基础响应模型:BaseResp 统一响应格式
业务对象模型:用户、咨询等核心数据结构定义
idl/admin.thrift - 服务接口规范
RESTful 路由映射:HTTP 路径与方法绑定
严格类型约束:参数列表、返回值类型协议级定义
这次完成的功能如下
4.6.1用户管理:
用户注册与登录
JWT 认证与授权
用户信息管理
用户反馈功能
4.6.2 购买咨询:
AI 智能购车咨询
咨询记录管理
个性化推荐
4.6.3 评分系统:
用户评分功能
评分统计与分析
4.6.4 管理员功能:
后台管理
数据审核
权限管理
5.1 主界面

5.2 登录界面

5.3 注册界面

| 学号 | 工作内容 | 贡献度 |
|---|---|---|
| 102300219 林腾岳 | 用户登录模块 | 17% |
| 102300409 严晨峰 | 管理员相关模块和 thrift | 13% |
| 052301346 郑积超 | 购车咨询模块 | 13% |
| 102300325 陶斯予 | 博客以及 PPT 制作 | 2% |
| 102300233 朱奕韬 | 界面设计,ui | 14% |
| 102300226 徐江山 | 界面设计,ui | 14% |
| 102300218 林柏林 | 界面设计,ui | 14% |
| 102300033 林嘉乐 | 管理员相关模块和博客 | 13% |
7.1 严晨峰
| 困难 | 具体描述 | 解决方法 |
| :--------------- | :---------------------- | :----- |
| Thrift接口定义与Go代码生成不匹配|在定义admin.thrift文件时,接口参数类型与Go结构体字段类型不一致,导致代码生成失败 |统一IDL与Go的数据类型映射规范,使用明确的类型标注,重新生成代码前进行语法验证 |
7.2 林腾岳
| 困难 | 具体描述 | 解决方法 |
| :--------------- | :---------------------- | :----- |
| 代码质量规范执行困难|多人协作时代码风格不统一,质量检查流程缺失 |集成相关代码检查工具,代码审查强制质量要求 |
7.3 林嘉乐
| 困难 | 具体描述 | 解决方法 |
| :--------------- | :---------------------- | :----- |
| 用户权限验证中间件开发|需要区分管理员与普通用户接口访问权限,防止越权操作 |设计JWT token验证中间件,在路由层进行权限拦截,通过token解析获取用户角色信息 |
7.4 郑积超
| 困难 | 具体描述 | 解决方法 |
| :--------------- | :---------------------- | :----- |
| 错误处理机制统一|各层错误信息格式不统一,前端难以进行标准化错误处理 |建立全局错误码体系,定义统一的错误响应结构,通过中间件捕获和转换异常 |
7.5 朱奕韬
| 困难 | 具体描述 | 解决方法 |
| :--------------- | :---------------------- | :----- |
| 用户体验一致性保障|不同浏览器和设备兼容性问题影响用户体验 |建立跨浏览器测试流程,采用响应式设计原则,实现前端组件标准化开发|
7.6 徐江山
| 困难 | 具体描述 | 解决方法 |
| :--------------- | :---------------------- | :----- |
| 前后端API参数传递方式不一致|前端使用JSON Body传参,后端期望Query参数,导致参数解析失败|统一采用JSON Body传参规范,在Hertz框架中使用相应方法进行参数绑定 |
7.7 林柏林
| 困难 | 具体描述 | 解决方法 |
| :--------------- | :---------------------- | :----- |
| Hertz框架路由配置冲突|多个管理员接口路径相似,导致路由匹配错误,如/api/admin/user和/api/admin/user/delete冲突 |采用明确的RESTful路径设计,使用不同的HTTP方法区分操作,增加路由优先级配置 |
7.8 陶斯予
| 困难 | 具体描述 | 解决方法 |
| :--------------- | :---------------------- | :----- |
| 错误处理机制统一|各层错误信息格式不统一,前端难以进行标准化错误处理|建立全局错误码体系,定义统一的错误响应结构,通过中间件捕获和转换异常|
8.1 林腾岳(用户登录模块)
| PSP阶段 | 预估(h) | 实际(h) | 说明 |
|---|---|---|---|
| Planning | 2 | 1.5 | 登录流程设计+安全方案 |
| Estimate | 1 | 0.8 | 开发时间评估 |
| Development | 10 | 12 | 登录接口+密码加密 |
| Testing | 3 | 4 | 登录测试+安全验证 |
| Documentation | 1 | 1.2 | 接口文档编写 |
| 总结改进 | 1 | 1 | 加密算法优化 |
| 合计 | 18 | 20.5 |
8.2 严晨峰(管理员模块和Thrift)
| PSP阶段 | 预估(h) | 实际(h) | 说明 |
|---|---|---|---|
| Planning | 2.5 | 3 | Thrift接口设计+模块划分 |
| Estimate | 1 | 1.2 | 开发周期预估 |
| Development | 14 | 16 | Thrift代码生成+管理员功能 |
| Testing | 4 | 5 | 接口联调测试 |
| Documentation | 2 | 2.5 | IDL文档+API说明 |
| 总结改进 | 1.5 | 2 | 协议优化 |
| 合计 | 25 | 29.7 |
8.3 郑积超(购车咨询模块)
| PSP阶段 | 预估(h) | 实际(h) | 说明 |
|---|---|---|---|
| Planning | 1.5 | 1 | 咨询流程设计 |
| Estimate | 0.5 | 0.5 | 时间预估 |
| Development | 6 | 7 | 咨询记录CRUD |
| Testing | 2 | 2.5 | 功能测试 |
| Documentation | 1 | 1 | 模块文档 |
| 总结改进 | 0.5 | 0.5 | 查询优化 |
| 合计 | 11 | 12.5 |
8.4 陶斯予(博客及PPT制作)
| PSP阶段 | 预估(h) | 实际(h) | 说明 |
|---|---|---|---|
| Planning | 2 | 1.5 | 内容结构规划 |
| Estimate | 0.5 | 0.5 | 时间安排 |
| Development | 8 | 10 | 博客撰写+PPT设计 |
| Testing | 2 | 3 | 内容审核修改 |
| Documentation | 3 | 4 | 最终文档整理 |
| 总结改进 | 1 | 1.5 | 展示优化 |
| 合计 | 16.5 | 21 |
8.5 朱奕韬(界面设计/UI)
| PSP阶段 | 预估(h) | 实际(h) | 说明 |
|---|---|---|---|
| Planning | 3 | 2.5 | UI风格定位+组件库设计 |
| Estimate | 1 | 1 | 设计周期预估 |
| Development | 12 | 14 | 界面原型+交互设计 |
| Testing | 3 | 4 | 用户体验测试 |
| Documentation | 2 | 2 | 设计规范文档 |
| 总结改进 | 1 | 1.5 | 视觉优化 |
| 合计 | 22 | 25 |
8.6 徐江山(界面设计/UI)
| PSP阶段 | 预估(h) | 实际(h) | 说明 |
|---|---|---|---|
| Planning | 2 | 2 | 页面布局规划 |
| Estimate | 0.5 | 0.8 | 时间评估 |
| Development | 10 | 12 | 页面实现+响应式 |
| Testing | 3 | 3.5 | 兼容性测试 |
| Documentation | 1 | 1.2 | UI文档 |
| 总结改进 | 1 | 1 | 布局优化 |
| 合计 | 17.5 | 20.5 |
8.7 林柏林(界面设计/UI)
| PSP阶段 | 预估(h) | 实际(h) | 说明 |
|---|---|---|---|
| Planning | 2 | 1.8 | 交互流程设计 |
| Estimate | 0.5 | 0.7 | 开发预估 |
| Development | 11 | 13 | 前端组件开发 |
| Testing | 3 | 3.2 | 功能测试 |
| Documentation | 1 | 1.5 | 组件文档 |
| 总结改进 | 1 | 1.3 | 交互优化 |
| 合计 | 18.5 | 21.5 |
8.8 林嘉乐(管理员模块和博客)
| PSP阶段 | 预估(h) | 实际(h) | 说明 |
|---|---|---|---|
| Planning | 1.5 | 1 | 功能模块划分 |
| Estimate | 0.5 | 0.5 | 时间规划 |
| Development | 7 | 8 | 管理员功能辅助开发 |
| Testing | 2 | 2.5 | 模块测试 |
| Documentation | 2 | 2.5 | 博客内容补充 |
| 总结改进 | 0.5 | 0.5 | 代码优化 |
| 合计 | 13 | 14 |