一、 系统核心业务模式
B2C模式(官方/机构直营): 救助站、宠物医院直发领养信息及服务。
O2O模式(线上线下联动): 线上预约领养/医疗,线下核验/服务。
积分/信用体系: 鼓励用户通过完成“食物购买”或“爱心捐款”获取积分,用于兑换领养优先权或医疗折扣。
二、 详细功能介绍
模块1:宠物领养(核心模块)
智能推荐: 基于用户地理位置、养宠经验(新手/资深)、居住环境(公寓/别墅),推荐匹配度高的宠物。
3D/视频看宠: 支持高清视频、VR全景看宠舍,展示宠物真实状态(活泼/安静),减少线下无效跑动
领养资质审核:
用户提交身份信息、住址证明、收入状况。
系统自动初筛(如:学生限制、租房需房东同意书)。
支持线上签署《领养协议》,具备法律效应的电子签章。
领养追溯/回访:
领养后7天/30天自动触发回访任务(要求上传宠物照片)。
若领养失败(退养),自动进入“待领养池”并向候选领养人推送。
黑名单共享: 对接多地救助站黑名单库,防止虐待/弃养者重复领养。
模块2:食物购买(商业变现模块)
定制粮推荐: 根据领养宠物的品种、年龄、健康数据(从医疗模块同步),推荐处方粮或营养品。
“领养专享价”套餐: 领养成功后,72小时内推送首购优惠包(如:原价199元,领养专享99元)。
周期性订阅(自动续费): 用户可设定每月自动配送宠粮、猫砂,支持修改频次(2周/1月/3月)。
公益捐赠购: 每笔订单的1%或用户勾选的“多买一份粮”,直接捐给救助站(系统展示捐赠流向)。
防伪溯源: 扫码查看粮食的质检报告、生产批次,防止劣质粮伤害流浪动物康复。
模块3:医疗救助预约(服务闭环模块)
多角色预约:
个人用户: 预约疫苗、绝育、驱虫、急诊。
救助站/救助人: 申请“流浪动物免费绝育指标”(需上传流浪证明照片)。
症状预分诊: 用户输入文字描述或拍照伤口,AI初步判断紧急程度(轻症→预约普通门诊;危重→一键导航最近24小时医院)。
费用透明化: 展示每项服务的价格区间,支持购买“医疗救助卡”(如:299元包年疫苗+2次驱虫)。
救助绿色通道: 对受伤流浪动物,系统自动匹配有空位、有救治折扣的联盟医院,并生成“救助电子凭证”供医院核销。
术后康复指导: 预约手术后,系统按小时/天推送护理要点(文字+视频),并可在线问诊医生。
模块4:用户与救助站管理(后台支撑)
领养人档案: 累计领养次数、捐赠金额、医疗消费、宠物成长记录(形成时间轴)。
救助站工作台:
库存管理(收到捐赠粮的数量、消耗)。
领养预约日历(防止多人同时看同一只宠)。
医疗对接(一键为站内动物批量预约疫苗时间)。
志愿活动发布: 救助站可发布“遛狗志愿者”、“清洗笼舍”活动,用户签到获得积分。
一、整体架构与设计思路(技术栈)
系统采用 前后端分离 架构。前端使用 Vue 3 + Element Plus + Vite 构建单页面应用,适配PC后台管理及移动端H5(可额外封装为微信小程序)。后端采用 Spring Boot 2.7 + Spring Security + JWT + MyBatis-Plus,数据库使用 MySQL(核心业务) + Redis(缓存、分布式锁、验证码存储),文件存储采用 阿里云OSS/MinIO,接口文档使用 Swagger/Knife4j。
设计核心思路:
微服务简化版:初期采用单体分层架构(Controller → Service → Mapper),便于快速迭代;将来领养、商城、医疗三个子域可拆分为独立微服务。
无状态认证:JWT + Redis存储token黑名单,支持多端登录控制。
数据一致性:领养审核、医疗预约涉及状态流转,使用乐观锁(版本号)防止超领;订单支付采用“本地消息表+定时对账”保证最终一致性。
二、项目模块划分
按业务边界拆分为六大模块:
模块名 核心功能 技术实现要点
1. 用户中心 注册/登录(手机号+验证码)、实名认证、领养人档案、积分/信用分 Spring Security + JWT;第三方身份证OCR校验
2. 领养管理 宠物信息发布(BS端审核)、领养申请/审核、回访任务、黑名单共享 工作流引擎(自建状态机);定时任务扫描超时未回访记录
3. 商城(食物) 商品SKU管理、下单/支付(微信/支付宝)、订阅套餐、公益捐赠 微信支付V3接口;RabbitMQ延迟消息处理订阅续费
4. 医疗救助 医院/医生管理、预约排班、症状预分诊(简易规则引擎)、救助绿色通道 Redis实现每日号源扣减;EasyExcel导出救助统计
5. 公益云认养 月度付费、视频反馈上传、用户互动(命名/探视) 定时生成认养账单;FFmpeg压缩上传视频
6. 后台管理 数据大盘、用户/救助站管理、内容审核、订单/预约监控 Vue + ECharts;RBAC权限模型
三、难点与解决方案
难点1:领养审核与回访的自动化状态管理
问题:一只宠物同时被多人申请,领养后需7/30天触发回访,若领养人失联则需自动释放宠物到待领养池。
解决:
采用 状态机模式:宠物状态机(待领养 → 审核中 → 已领养 → 退养待复核)。每次申请锁住宠物ID(Redis分布式锁),审核通过后变更状态。
使用 XXL-Job 分布式调度:每日扫描“预计回访日期”字段,生成回访任务推送给系统管理员;若超时3次未反馈,自动将宠物状态回滚至“待领养”并通知候补领养人。