1. 项目概述
Spring Boot动物之家平台是一个专门为动物保护组织、救助站和志愿者团队设计的在线管理系统。作为一名长期参与动物救助的Java开发者,我在实际工作中发现很多救助组织还在使用Excel表格甚至纸质档案管理流浪动物信息,这种低效的方式严重制约了救助工作的开展。于是我们团队决定开发这个平台,用技术手段解决动物救助领域的信息化管理难题。
平台采用B/S架构设计,用户只需通过浏览器即可访问所有功能,无需安装额外客户端。这种设计特别适合志愿者分布广泛的救助组织,无论团队成员身处何地,都能实时更新和查看最新救助信息。从技术栈来看,后端采用Spring Boot框架,前端使用Vue.js+ElementUI组合,数据库选用MySQL 5.7,整套技术方案在保证稳定性的同时,也兼顾了开发效率和后期维护成本。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 核心功能设计
2.1 动物信息管理模块
这是平台最核心的模块,我们设计了完整的动物档案数据结构:
java复制@Entity
@Table(name = "animal_info")
public class Animal {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
@Column(nullable = false)
private String name; // 动物昵称
@Enumerated(EnumType.STRING)
private AnimalType type; // 猫/狗/其他
private Integer age;
private Boolean sterilized; // 是否绝育
private String healthStatus; // 健康状况
private String description; // 详细描述
@OneToMany(mappedBy = "animal", cascade = CascadeType.ALL)
private List<AnimalPhoto> photos; // 动物照片
// 其他字段及getter/setter
}
特别注意:照片存储采用单独表关联设计,避免大字段影响主表查询性能。实际部署时建议将图片文件存储在OSS等对象存储服务,数据库中只保存访问路径。
2.2 救助流程管理系统
我们为救助工作设计了状态机模型:
code复制救助中 -> 医疗中 -> 康复中 -> 待领养 -> 已领养
↘ ↖
中途失败 退回康复
对应的状态变更API接口:
java复制@PostMapping("/animal/{id}/status")
public ResponseEntity<?> updateStatus(
@PathVariable Long id,
@RequestParam RescueStatus newStatus,
@RequestParam(required = false) String remark) {
Animal animal = animalService.getById(id);
if (!animal.getStatus().canTransferTo(newStatus)) {
throw new IllegalStateException("状态转换不合法");
}
animal.setStatus(newStatus);
animalService.update(animal);
// 记录状态变更历史
statusLogService.recordChange(
animal.getId(), animal.getStatus(), newStatus, remark);
return ResponseEntity.ok().build();
}
2.3 领养审核系统
领养申请采用多级审核机制:
- 志愿者初审:核对基本资料完整性
- 家访审核:志愿者上门考察居住环境
- 终审:救助站负责人综合评估
审核流程通过工作流引擎实现,核心配置如下:
xml复制<process id="adoptionProcess">
<startEvent id="start"/>
<userTask id="firstReview" name="初审"/>
<userTask id="homeVisit" name="家访审核"/>
<userTask id="finalReview" name="终审"/>
<endEvent id="end"/>
<sequenceFlow sourceRef="start" targetRef
