一.明确项目开发流程编写需求文档设计数据库表结构定义项目接口清单搭建项目框架环境创建数据库实体类编写 Controller 接口编写 Service 业务逻辑编写Mapper 数据操作进行接口功能测试开发前端页面修复 BUG 优化功能项目部署上线发布二.编写需求文档校园交流论坛项目需求文档第一版1. 项目的核心目标定位校园交流论坛用于学生之间发布、查看、交流信息。用途个人独立开发、积累完整项目经验、可写进简历后期可正式上线使用。使用场景校内信息分享、学习交流、生活求助、兴趣讨论。预期效果支持日常几百人同时访问运行稳定核心流程无卡顿。开发边界先做最小可用版本不做复杂高并发功能不使用微服务。2. 项目包含哪些用户角色游客未登录用户普通注册用户管理员3. 每个角色的核心需求游客浏览板块、查看帖子列表、查看帖子详情。普通用户注册、登录、修改密码发帖、编辑自己的帖子、删除自己的帖子查看个人中心、查看自己发的帖子。管理员管理用户启用 / 禁用审核帖子、删除违规帖子管理论坛板块查看基础数据。4. 每个需求对应什么具体功能; 用户与登录模块最后写。发帖填写标题、内容选择板块提交发布。编辑帖子仅可修改自己的帖子修改后重新提交。删除帖子仅可删除自己的帖子删除前确认。浏览帖子按时间倒叙展示管理员审核帖子查看待审核列表通过 / 驳回并填写原因。管理员管理用户查看用户列表可禁用 / 启用账号。管理员管理板块新增、修改、删除板块。5. 项目需要哪些页面注册页面登录页面忘记密码页面论坛首页板块列表板块帖子列表页帖子详情页发帖 / 编辑帖子页个人中心页管理员后台首页管理员用户管理页管理员帖子审核页管理员板块管理页6. 哪些功能必须做哪些暂时不做必须做核心功能用户注册、登录、密码重置发帖、编辑、删除自己的帖子帖子浏览、详情查看管理员审核帖子管理员管理用户、管理板块暂时不做后续迭代评论、点赞、收藏图片上传、附件上传私信、通知搜索、排序、置顶、精华积分、等级、签到敏感词过滤、验证码7. 各角色的权限边界如何划分游客只能浏览不能发帖、编辑、删除。普通用户只能管理自己的帖子不能操作他人帖子不能进后台。管理员拥有全部后台权限可管理所有用户、所有帖子、所有板块。越权处理访问无权限接口返回 “无操作权限”。8. 功能的异常场景如何处理登录用户名不存在、密码错误、账号被禁用给出对应提示。注册用户名已存在、密码不一致、格式错误拦截并提示。发帖标题或内容为空不允许提交。编辑 / 删除不是本人帖子提示无权限。审核帖子已被删除提示 “帖子不存在”。系统异常统一提示 “系统异常请稍后再试”。9. 项目的交互逻辑有哪些核心要求帖子默认按最新发布时间倒序展示。登录后跳转到首页。发帖成功后跳转到帖子详情页。删除操作必须二次确认。管理员审核后帖子状态同步更新。页面操作后给出明确成功 / 失败提示。三.设计数据库表结构1.用户表id INT 主键 自增 username VARCHAR(50) 用户名唯一 password VARCHAR(100) 密码 status TINYINT 0禁用 1正常 role TINYINT 0普通用户 1管理员 create_time DATETIME2.板块表id INT 主键 自增 name VARCHAR(50) 板块名称如学习交流、生活求助 intro VARCHAR(255) 板块介绍 create_time DATETIME3.帖子表id INT 主键 自增 title VARCHAR(100) 帖子标题 content TEXT 帖子内容 user_id INT 发布人ID board_id INT 所属板块ID关联板块表 status TINYINT 0待审核 1已通过 2已驳回 create_time DATETIME update_time DATETIME4.审核表id INT 主键 自增 post_id INT 帖子ID admin_id INT 管理员ID reason VARCHAR(255) 驳回原因 status TINYINT 1通过 2驳回 audit_time DATETIME四.定义项目接口清单1分析接口1、用户模块接口最后开发用户登录接口功能用户输入用户名密码完成登录用户注册接口功能新用户注册账号密码重置接口功能忘记密码重置密码获取当前登录用户信息接口功能获取登录状态、用户名、角色权限2、板块模块接口查询所有板块列表接口功能首页展示所有论坛板块查询单个板块详情接口功能进入板块查看板块信息管理员新增板块接口功能管理员添加新板块管理员修改板块接口功能编辑板块名称、简介管理员删除板块接口功能删除无用板块3、帖子模块接口核心发布帖子接口功能登录用户发布新帖子修改自己的帖子接口功能仅发布者可编辑自己的帖子删除自己的帖子接口功能仅发布者可删除自己的帖子查询帖子列表接口功能按时间倒序展示所有帖子查询单个板块下的帖子列表接口功能查看某个板块里的全部帖子查询帖子详情接口功能查看帖子完整内容4、管理员审核接口查询待审核帖子列表接口功能管理员查看需要审核的帖子审核帖子通过接口功能管理员同意帖子发布审核帖子驳回接口功能管理员拒绝帖子并填写原因管理员删除任意帖子接口功能删除违规内容5、用户管理接口管理员查询所有用户列表接口功能管理员查看全部用户禁用用户账号接口功能禁止违规用户登录启用用户账号接口功能恢复被禁用用户6、个人中心接口查询自己发布的所有帖子接口功能个人中心展示我的帖子2生成接口文档1、用户模块接口最后开发1. 用户登录接口接口地址/user/login请求方式POST功能说明用户输入用户名密码完成登录请求参数username用户名password密码返回结果Result.success(用户信息)2. 用户注册接口接口地址/user/register请求方式POST功能说明新用户注册账号请求参数username用户名password密码phone手机号返回结果Result.success()3. 密码重置接口接口地址/user/resetPassword请求方式POST功能说明忘记密码重置密码请求参数username用户名newPassword新密码返回结果Result.success()4. 获取当前登录用户信息接口接口地址/user/info请求方式GET功能说明获取登录状态、用户名、角色权限返回结果Result.success(用户信息)2、板块模块接口1. 查询所有板块列表接口接口地址/category/list请求方式GET功能说明首页展示所有论坛板块返回结果Result.success(板块列表)2. 查询单个板块详情接口接口地址/category/get/{id}请求方式GET功能说明进入板块查看板块信息返回结果Result.success(板块详情)3. 管理员新增板块接口接口地址/category/add请求方式POST功能说明管理员添加新板块请求参数name、description返回结果Result.success()4. 管理员修改板块接口接口地址/category/update请求方式POST功能说明编辑板块名称、简介返回结果Result.success()5. 管理员删除板块接口接口地址/category/delete/{id}请求方式DELETE功能说明删除无用板块返回结果Result.success()3、帖子模块接口核心1. 发布帖子接口接口地址/post/add请求方式POST功能说明登录用户发布新帖子请求参数title、content、categoryId返回结果Result.success()2. 修改自己的帖子接口接口地址/post/update请求方式POST功能说明仅发布者可编辑自己的帖子返回结果Result.success()3. 删除自己的帖子接口接口地址/post/delete/{id}请求方式DELETE功能说明仅发布者可删除自己的帖子返回结果Result.success()4. 查询帖子列表接口接口地址/post/list请求方式GET功能说明按时间倒序展示所有帖子返回结果Result.success(帖子列表)5. 查询单个板块下的帖子列表接口接口地址/post/listByCategory/{categoryId}请求方式GET功能说明查看某个板块里的全部帖子返回结果Result.success(帖子列表)6. 查询帖子详情接口接口地址/post/get/{id}请求方式GET功能说明查看帖子完整内容返回结果Result.success(帖子详情)4、管理员审核接口1. 查询待审核帖子列表接口接口地址/post/auditList请求方式GET功能说明管理员查看需要审核的帖子返回结果Result.success(列表)2. 审核帖子通过接口接口地址/post/auditPass/{id}请求方式POST功能说明管理员同意帖子发布返回结果Result.success()3. 审核帖子驳回接口接口地址/post/auditReject请求方式POST功能说明管理员拒绝帖子并填写原因请求参数id、reason返回结果Result.success()4. 管理员删除任意帖子接口接口地址/post/adminDelete/{id}请求方式DELETE功能说明删除违规内容返回结果Result.success()5、用户管理接口管理员1. 查询所有用户列表接口接口地址/admin/user/list请求方式GET功能说明管理员查看全部用户返回结果Result.success(用户列表)2. 禁用用户账号接口接口地址/admin/user/disable/{id}请求方式POST功能说明禁止违规用户登录返回结果Result.success()3. 启用用户账号接口接口地址/admin/user/enable/{id}请求方式POST功能说明恢复被禁用用户返回结果Result.success()6、个人中心接口1. 查询自己发布的所有帖子接口接口地址/user/myPosts请求方式GET功能说明个人中心展示我的帖子返回结果Result.success(我的帖子列表)3效果图五.搭建项目框架环境1.创建springboot项目上图仅供参考具体请看下面1.创建springboot项目2.勾选依赖1spring web2MySQL Driver3MyBatis Framework3.配置数据库# 1. 数据库连接地址 # localhost本机 3306MySQL端口 campushub数据库名 spring.datasource.urljdbc:mysql://localhost:3306/campushub?useSSLfalseserverTimezoneUTC # 2. 数据库用户名默认都是root spring.datasource.usernameroot # 3. 数据库密码你自己的密码 spring.datasource.password1234 # 4. 数据库驱动固定写法不用改 spring.datasource.driver-class-namecom.mysql.cj.jdbc.Driver # 5. MyBatis映射文件路径固定写法不用改 mybatis.mapper-locationsclasspath:mapper/*.xml4.创建数据库表-- 使用你的项目数据库 -- -- 1. 用户表 -- CREATE TABLE user ( id INT PRIMARY KEY AUTO_INCREMENT COMMENT 用户ID, username VARCHAR(50) NOT NULL UNIQUE COMMENT 账号, password VARCHAR(100) NOT NULL COMMENT 密码, nickname VARCHAR(50) COMMENT 昵称, create_time DATETIME DEFAULT NOW() COMMENT 创建时间 ) COMMENT 用户表; -- -- 2. 帖子表 -- CREATE TABLE post ( id INT PRIMARY KEY AUTO_INCREMENT COMMENT 帖子ID, title VARCHAR(200) NOT NULL COMMENT 标题, content TEXT NOT NULL COMMENT 内容, user_id INT COMMENT 发布人ID, create_time DATETIME DEFAULT NOW() COMMENT 发布时间, FOREIGN KEY (user_id) REFERENCES user(id) ) COMMENT 帖子表; -- -- 3. 评论表 -- CREATE TABLE comment ( id INT PRIMARY KEY AUTO_INCREMENT COMMENT 评论ID, content VARCHAR(500) NOT NULL COMMENT 评论内容, post_id INT COMMENT 所属帖子ID, user_id INT COMMENT 评论人ID, create_time DATETIME DEFAULT NOW() COMMENT 评论时间, FOREIGN KEY (post_id) REFERENCES post(id), FOREIGN KEY (user_id) REFERENCES user(id) ) COMMENT 评论表;5.创建controllerservicemapperentitycommon包六.创建数据库实体类1.创建实体类对象commentpackage com.campus.campushub.entity; import lombok.Data; import java.time.LocalDateTime; Data public class Comment { private Long id; private Long postId; // 帖子ID private Long userId; // 评论人ID private String content; // 评论内容 private LocalDateTime createTime; }postpackage com.campus.campushub.entity; import lombok.Data; import java.time.LocalDateTime; Data public class Post { private Long id; private Long userId; // 发布人ID private String title; // 标题 private String content; // 内容 private LocalDateTime createTime; }userpackage com.campus.campushub.entity; import lombok.Data; Data public class User { private Long id; private String username; private String password; private String phone; private String avatar; }2.创建Result对象package com.campus.campushub.common; import lombok.Data; /** * 统一返回结果类 * 所有接口都用这个返回 */ Data public class ResultT { // 响应状态码200成功 500失败 private Integer code; // 响应消息 private String msg; // 响应数据 private T data; // 成功返回不带数据 public static T ResultT success() { ResultT result new Result(); result.setCode(200); result.setMsg(操作成功); return result; } // 成功返回带数据 public static T ResultT success(T data) { ResultT result new Result(); result.setCode(200); result.setMsg(操作成功); result.setData(data); return result; } // 失败返回 public static T ResultT error(String msg) { ResultT result new Result(); result.setCode(500); result.setMsg(msg); return result; } }3.效果图
从0到1独立开发一个论坛项目(一)
一.明确项目开发流程编写需求文档设计数据库表结构定义项目接口清单搭建项目框架环境创建数据库实体类编写 Controller 接口编写 Service 业务逻辑编写Mapper 数据操作进行接口功能测试开发前端页面修复 BUG 优化功能项目部署上线发布二.编写需求文档校园交流论坛项目需求文档第一版1. 项目的核心目标定位校园交流论坛用于学生之间发布、查看、交流信息。用途个人独立开发、积累完整项目经验、可写进简历后期可正式上线使用。使用场景校内信息分享、学习交流、生活求助、兴趣讨论。预期效果支持日常几百人同时访问运行稳定核心流程无卡顿。开发边界先做最小可用版本不做复杂高并发功能不使用微服务。2. 项目包含哪些用户角色游客未登录用户普通注册用户管理员3. 每个角色的核心需求游客浏览板块、查看帖子列表、查看帖子详情。普通用户注册、登录、修改密码发帖、编辑自己的帖子、删除自己的帖子查看个人中心、查看自己发的帖子。管理员管理用户启用 / 禁用审核帖子、删除违规帖子管理论坛板块查看基础数据。4. 每个需求对应什么具体功能; 用户与登录模块最后写。发帖填写标题、内容选择板块提交发布。编辑帖子仅可修改自己的帖子修改后重新提交。删除帖子仅可删除自己的帖子删除前确认。浏览帖子按时间倒叙展示管理员审核帖子查看待审核列表通过 / 驳回并填写原因。管理员管理用户查看用户列表可禁用 / 启用账号。管理员管理板块新增、修改、删除板块。5. 项目需要哪些页面注册页面登录页面忘记密码页面论坛首页板块列表板块帖子列表页帖子详情页发帖 / 编辑帖子页个人中心页管理员后台首页管理员用户管理页管理员帖子审核页管理员板块管理页6. 哪些功能必须做哪些暂时不做必须做核心功能用户注册、登录、密码重置发帖、编辑、删除自己的帖子帖子浏览、详情查看管理员审核帖子管理员管理用户、管理板块暂时不做后续迭代评论、点赞、收藏图片上传、附件上传私信、通知搜索、排序、置顶、精华积分、等级、签到敏感词过滤、验证码7. 各角色的权限边界如何划分游客只能浏览不能发帖、编辑、删除。普通用户只能管理自己的帖子不能操作他人帖子不能进后台。管理员拥有全部后台权限可管理所有用户、所有帖子、所有板块。越权处理访问无权限接口返回 “无操作权限”。8. 功能的异常场景如何处理登录用户名不存在、密码错误、账号被禁用给出对应提示。注册用户名已存在、密码不一致、格式错误拦截并提示。发帖标题或内容为空不允许提交。编辑 / 删除不是本人帖子提示无权限。审核帖子已被删除提示 “帖子不存在”。系统异常统一提示 “系统异常请稍后再试”。9. 项目的交互逻辑有哪些核心要求帖子默认按最新发布时间倒序展示。登录后跳转到首页。发帖成功后跳转到帖子详情页。删除操作必须二次确认。管理员审核后帖子状态同步更新。页面操作后给出明确成功 / 失败提示。三.设计数据库表结构1.用户表id INT 主键 自增 username VARCHAR(50) 用户名唯一 password VARCHAR(100) 密码 status TINYINT 0禁用 1正常 role TINYINT 0普通用户 1管理员 create_time DATETIME2.板块表id INT 主键 自增 name VARCHAR(50) 板块名称如学习交流、生活求助 intro VARCHAR(255) 板块介绍 create_time DATETIME3.帖子表id INT 主键 自增 title VARCHAR(100) 帖子标题 content TEXT 帖子内容 user_id INT 发布人ID board_id INT 所属板块ID关联板块表 status TINYINT 0待审核 1已通过 2已驳回 create_time DATETIME update_time DATETIME4.审核表id INT 主键 自增 post_id INT 帖子ID admin_id INT 管理员ID reason VARCHAR(255) 驳回原因 status TINYINT 1通过 2驳回 audit_time DATETIME四.定义项目接口清单1分析接口1、用户模块接口最后开发用户登录接口功能用户输入用户名密码完成登录用户注册接口功能新用户注册账号密码重置接口功能忘记密码重置密码获取当前登录用户信息接口功能获取登录状态、用户名、角色权限2、板块模块接口查询所有板块列表接口功能首页展示所有论坛板块查询单个板块详情接口功能进入板块查看板块信息管理员新增板块接口功能管理员添加新板块管理员修改板块接口功能编辑板块名称、简介管理员删除板块接口功能删除无用板块3、帖子模块接口核心发布帖子接口功能登录用户发布新帖子修改自己的帖子接口功能仅发布者可编辑自己的帖子删除自己的帖子接口功能仅发布者可删除自己的帖子查询帖子列表接口功能按时间倒序展示所有帖子查询单个板块下的帖子列表接口功能查看某个板块里的全部帖子查询帖子详情接口功能查看帖子完整内容4、管理员审核接口查询待审核帖子列表接口功能管理员查看需要审核的帖子审核帖子通过接口功能管理员同意帖子发布审核帖子驳回接口功能管理员拒绝帖子并填写原因管理员删除任意帖子接口功能删除违规内容5、用户管理接口管理员查询所有用户列表接口功能管理员查看全部用户禁用用户账号接口功能禁止违规用户登录启用用户账号接口功能恢复被禁用用户6、个人中心接口查询自己发布的所有帖子接口功能个人中心展示我的帖子2生成接口文档1、用户模块接口最后开发1. 用户登录接口接口地址/user/login请求方式POST功能说明用户输入用户名密码完成登录请求参数username用户名password密码返回结果Result.success(用户信息)2. 用户注册接口接口地址/user/register请求方式POST功能说明新用户注册账号请求参数username用户名password密码phone手机号返回结果Result.success()3. 密码重置接口接口地址/user/resetPassword请求方式POST功能说明忘记密码重置密码请求参数username用户名newPassword新密码返回结果Result.success()4. 获取当前登录用户信息接口接口地址/user/info请求方式GET功能说明获取登录状态、用户名、角色权限返回结果Result.success(用户信息)2、板块模块接口1. 查询所有板块列表接口接口地址/category/list请求方式GET功能说明首页展示所有论坛板块返回结果Result.success(板块列表)2. 查询单个板块详情接口接口地址/category/get/{id}请求方式GET功能说明进入板块查看板块信息返回结果Result.success(板块详情)3. 管理员新增板块接口接口地址/category/add请求方式POST功能说明管理员添加新板块请求参数name、description返回结果Result.success()4. 管理员修改板块接口接口地址/category/update请求方式POST功能说明编辑板块名称、简介返回结果Result.success()5. 管理员删除板块接口接口地址/category/delete/{id}请求方式DELETE功能说明删除无用板块返回结果Result.success()3、帖子模块接口核心1. 发布帖子接口接口地址/post/add请求方式POST功能说明登录用户发布新帖子请求参数title、content、categoryId返回结果Result.success()2. 修改自己的帖子接口接口地址/post/update请求方式POST功能说明仅发布者可编辑自己的帖子返回结果Result.success()3. 删除自己的帖子接口接口地址/post/delete/{id}请求方式DELETE功能说明仅发布者可删除自己的帖子返回结果Result.success()4. 查询帖子列表接口接口地址/post/list请求方式GET功能说明按时间倒序展示所有帖子返回结果Result.success(帖子列表)5. 查询单个板块下的帖子列表接口接口地址/post/listByCategory/{categoryId}请求方式GET功能说明查看某个板块里的全部帖子返回结果Result.success(帖子列表)6. 查询帖子详情接口接口地址/post/get/{id}请求方式GET功能说明查看帖子完整内容返回结果Result.success(帖子详情)4、管理员审核接口1. 查询待审核帖子列表接口接口地址/post/auditList请求方式GET功能说明管理员查看需要审核的帖子返回结果Result.success(列表)2. 审核帖子通过接口接口地址/post/auditPass/{id}请求方式POST功能说明管理员同意帖子发布返回结果Result.success()3. 审核帖子驳回接口接口地址/post/auditReject请求方式POST功能说明管理员拒绝帖子并填写原因请求参数id、reason返回结果Result.success()4. 管理员删除任意帖子接口接口地址/post/adminDelete/{id}请求方式DELETE功能说明删除违规内容返回结果Result.success()5、用户管理接口管理员1. 查询所有用户列表接口接口地址/admin/user/list请求方式GET功能说明管理员查看全部用户返回结果Result.success(用户列表)2. 禁用用户账号接口接口地址/admin/user/disable/{id}请求方式POST功能说明禁止违规用户登录返回结果Result.success()3. 启用用户账号接口接口地址/admin/user/enable/{id}请求方式POST功能说明恢复被禁用用户返回结果Result.success()6、个人中心接口1. 查询自己发布的所有帖子接口接口地址/user/myPosts请求方式GET功能说明个人中心展示我的帖子返回结果Result.success(我的帖子列表)3效果图五.搭建项目框架环境1.创建springboot项目上图仅供参考具体请看下面1.创建springboot项目2.勾选依赖1spring web2MySQL Driver3MyBatis Framework3.配置数据库# 1. 数据库连接地址 # localhost本机 3306MySQL端口 campushub数据库名 spring.datasource.urljdbc:mysql://localhost:3306/campushub?useSSLfalseserverTimezoneUTC # 2. 数据库用户名默认都是root spring.datasource.usernameroot # 3. 数据库密码你自己的密码 spring.datasource.password1234 # 4. 数据库驱动固定写法不用改 spring.datasource.driver-class-namecom.mysql.cj.jdbc.Driver # 5. MyBatis映射文件路径固定写法不用改 mybatis.mapper-locationsclasspath:mapper/*.xml4.创建数据库表-- 使用你的项目数据库 -- -- 1. 用户表 -- CREATE TABLE user ( id INT PRIMARY KEY AUTO_INCREMENT COMMENT 用户ID, username VARCHAR(50) NOT NULL UNIQUE COMMENT 账号, password VARCHAR(100) NOT NULL COMMENT 密码, nickname VARCHAR(50) COMMENT 昵称, create_time DATETIME DEFAULT NOW() COMMENT 创建时间 ) COMMENT 用户表; -- -- 2. 帖子表 -- CREATE TABLE post ( id INT PRIMARY KEY AUTO_INCREMENT COMMENT 帖子ID, title VARCHAR(200) NOT NULL COMMENT 标题, content TEXT NOT NULL COMMENT 内容, user_id INT COMMENT 发布人ID, create_time DATETIME DEFAULT NOW() COMMENT 发布时间, FOREIGN KEY (user_id) REFERENCES user(id) ) COMMENT 帖子表; -- -- 3. 评论表 -- CREATE TABLE comment ( id INT PRIMARY KEY AUTO_INCREMENT COMMENT 评论ID, content VARCHAR(500) NOT NULL COMMENT 评论内容, post_id INT COMMENT 所属帖子ID, user_id INT COMMENT 评论人ID, create_time DATETIME DEFAULT NOW() COMMENT 评论时间, FOREIGN KEY (post_id) REFERENCES post(id), FOREIGN KEY (user_id) REFERENCES user(id) ) COMMENT 评论表;5.创建controllerservicemapperentitycommon包六.创建数据库实体类1.创建实体类对象commentpackage com.campus.campushub.entity; import lombok.Data; import java.time.LocalDateTime; Data public class Comment { private Long id; private Long postId; // 帖子ID private Long userId; // 评论人ID private String content; // 评论内容 private LocalDateTime createTime; }postpackage com.campus.campushub.entity; import lombok.Data; import java.time.LocalDateTime; Data public class Post { private Long id; private Long userId; // 发布人ID private String title; // 标题 private String content; // 内容 private LocalDateTime createTime; }userpackage com.campus.campushub.entity; import lombok.Data; Data public class User { private Long id; private String username; private String password; private String phone; private String avatar; }2.创建Result对象package com.campus.campushub.common; import lombok.Data; /** * 统一返回结果类 * 所有接口都用这个返回 */ Data public class ResultT { // 响应状态码200成功 500失败 private Integer code; // 响应消息 private String msg; // 响应数据 private T data; // 成功返回不带数据 public static T ResultT success() { ResultT result new Result(); result.setCode(200); result.setMsg(操作成功); return result; } // 成功返回带数据 public static T ResultT success(T data) { ResultT result new Result(); result.setCode(200); result.setMsg(操作成功); result.setData(data); return result; } // 失败返回 public static T ResultT error(String msg) { ResultT result new Result(); result.setCode(500); result.setMsg(msg); return result; } }3.效果图