今天的核心任务是从零开始熟悉项目架构、搭建开发环境,并完成“服务管理”下“护理项目”的后端接口开发。
1. 学习目标
- 熟悉中州养老项目的核心业务流程、系统架构和技术架构。
- 掌握项目管理基础和开发流程。
- 完成前后端基础环境的搭建与本地运行。
- 核心实战:完成“护理项目”功能的接口开发及Swagger在线接口调试。
2. 项目与架构认知
- 系统定位:中州养老项目分为两端:管理后台(供养老院员工使用,处理入住、退住、服务记录等)和家属端(供老人家属使用的小程序,用于查看老人信息、缴费、下订单等)。
- 开发流程:通常遵循“需求分析 -> 评估工期 -> 表结构设计 -> 接口设计 -> 功能实现 -> 前后端联调 -> 测试验收”的完整流程。
3. 基础环境搭建与运行
在开发具体业务前,你需要先把项目在本地跑起来:
- 虚拟机环境:项目提供了配置好 MySQL、Redis、xxl-job、nginx 的 CentOS 7 虚拟机镜像。虚拟机的静态IP为
192.168.200.146,账号root,密码itcast。 - 后端环境:需准备 JDK 11、Maven 3.6.x、MySQL 8 和 Git。拉取
zzyl-code代码后,引导类位于zzyl-web模块下的ZzylApplication。后端代码结构包含通用的 common、framework 模块,以及业务相关的 service、web 模块。 - 前端环境:强制要求 Node.js 版本为
v16.20.0。开发工具推荐 VS Code,主要技术栈为 Vue 3 + TypeScript + TDesign。通过npm install和npm run dev启动前端。
4. 核心实战:护理项目功能开发
护理项目(如助餐、助浴、复健运动等)是服务管理的基础数据,今天的核心就是完成该模块的增删改查开发。
4.1 需求分析与表结构设计
- 关系梳理:护理等级与护理计划是一对多关系,护理项目与护理计划是多对多关系。如果护理项目已与护理计划绑定,则该项目的删除、编辑、禁用按钮不可点击。
- 数据库表 (
nursing_project) :核心字段包括id(主键)、name(名称)、price(价格)、unit(单位)、image(图片)、nursing_requirement(护理要求)、status(状态:0禁用,1启用)。 - 实体类:创建
NursingProject实体类,统一继承已提供的基类BaseEntity(包含创建人、创建时间等通用字段)。
4.2 接口设计与开发
你需要设计并实现以下 6 个 RESTful 接口:
-
分页条件查询 (
GET /nursing_project):- 支持按名称模糊查询和状态精确查询,返回
PageResponse封装的分页列表。 - 代码实现时,使用
PageHelper.startPage处理分页逻辑。查询 SQL 需关联sys_user表以返回创建人姓名。
- 支持按名称模糊查询和状态精确查询,返回
-
新增护理项目 (
POST /nursing_project):- 使用
NursingProjectDto接收请求体参数。 - 使用
BeanUtils.copyProperties将 DTO 转换为实体类后保存入库。
- 使用
-
根据ID查询 (
GET /nursing_project/{id}):通过路径参数传递 ID,用于编辑页面的数据回显。 -
修改护理项目 (
PUT /nursing_project):接收 DTO 对象更新数据库。 -
启用/禁用 (
PUT /nursing_project/{id}/status/{status}):根据路径参数更新特定项目状态。 -
删除 (
DELETE /nursing_project/{id}):物理删除指定 ID 的护理项目。
4.3 在线接口调试 (Knife4j)
- 为了方便前后端分离协同开发,项目中集成了 Knife4j (基于 Swagger 的增强方案) 来自动生成接口文档。
- 使用规范:你需要在 Controller 类上使用
@Api(tags = "护理项目管理"),在方法上使用@ApiOperation,在 DTO 和 Entity 类上使用@ApiModel和@ApiModelProperty添加中文描述。 - 调试地址:启动后端服务后,访问
http://localhost:9995/doc.html即可在线测试你刚才编写的 6 个接口。
5. 课后建议
在完成上述内容后,建议结合资料中的功能清单和原型图,尝试独立进行“护理计划”或“护理等级”模块的 E-R 图分析和表结构设计,作为巩固练习。