基于SpringBoot2+vue2的社区养老服务平台
1. 获取地址
暂无。
2. 项目简介
本项目为“社区养老服务平台”,是一个面向社区养老服务的综合管理平台。系统提供两种角色:管理员和用户(老人或家属)。平台主要功能包括:
- 服务信息管理(发布、分类、查看社区养老服务项目)
- 服务申请与审核(用户在线申请服务,管理员审核)
- 公告信息管理(发布社区通知、政策等)
- 用户管理(用户注册、登录、信息维护)
- 用户信息修改审核(用户修改个人资料后需管理员审核)
系统旨在通过信息化手段提升社区养老服务的效率与透明度,方便老年人及其家属获取和申请服务。
3. 技术栈
| 层级 | 技术 |
|---|---|
| 后端框架 | Spring Boot 2.2.2.RELEASE、MyBatis-Plus 2.3 |
| 前端框架 | Vue 2.x、Element UI、ECharts、vue-amap(高德地图) |
| 数据库 | MySQL 5.7.32-log |
| 权限控制 | Apache Shiro 1.3.2(用于Token验证与拦截) |
| 工具库 | Hutool、FastJson、Apache Commons Lang3、POI(Excel导入导出) |
| 构建工具 | Maven |
4. 详细介绍
4.1 数据库设计
| 表名 | 说明 |
|---|---|
users | 管理员用户表 |
yonghu | 普通用户(老人/家属)表 |
dictionary | 字典表(存储枚举值的中文映射) |
fuwu | 服务信息表 |
fuwushenqing | 服务申请表 |
news | 公告信息表 |
yonghushenhe | 用户信息修改审核表 |
token | 用户登录Token表 |
config | 系统配置表 |
字典表dictionary统一管理fuwu_types(服务类型)、sex_types(性别)、news_types(公告类型)、fuwushenqing_yesno_types(审核状态)等枚举字段,通过dic_code和code_index进行映射。
4.2 功能模块
4.2.1 管理员端
- 管理员管理:增删改查系统管理员账号。
- 基础数据管理:维护服务类型、公告类型等字典数据。
- 服务信息管理:发布、修改、删除社区养老服务项目,包含服务封面、详情等。
- 服务申请管理:查看用户提交的服务申请,进行审核(通过/拒绝)并填写审核意见。
- 公告信息管理:发布社区公告,支持类型分类。
- 用户管理:查看、新增、修改、删除用户账号(支持假删除,
yonghu_delete字段标记)。 - 用户信息修改审核管理:审核用户提交的个人信息修改申请。
4.2.2 用户端
- 服务信息查看:浏览所有服务项目及详情。
- 服务申请:对感兴趣的服务提交申请,等待管理员审核。
- 公告查看:阅读社区发布的公告。
- 个人信息修改:修改个人资料(姓名、头像、联系方式、身份证号、邮箱等),修改后进入审核流程,管理员同意后正式生效。
- 申请记录查看:查看自己的服务申请及审核结果。
4.3 核心业务逻辑
- 登录认证:用户通过用户名/密码登录,后端生成Token并存入
token表,前端后续请求携带Token。 - 字典转换:系统启动时,监听器
DictionaryServletContextListener将所有字典数据加载到ServletContext中,前端展示时自动将数字编码转换为中文名称。 - 用户信息修改审核:用户提交修改后,数据写入
yonghushenhe表,状态为“审核中”。管理员审核通过后,系统自动将修改内容同步到yonghu表。 - 服务申请流程:用户申请服务后,记录为“审核中”,管理员审核通过或拒绝,用户可查看结果。
5. 部分代码
5.1 用户登录接口(后端)
// 位置:YonghuController.java@IgnoreAuth@RequestMapping(value="/login")publicRlogin(Stringusername,Stringpassword,HttpServletRequestrequest){YonghuEntityyonghu=yonghuService.selectOne(newEntityWrapper<YonghuEntity>().eq("username",username));if(yonghu==null||!yonghu.getPassword().equals(password))returnR.error("账号或密码不正确");elseif(yonghu.getYonghuDelete()!=1)returnR.error("账户已被删除");Stringtoken=tokenService.generateToken(yonghu.getId(),username,"yonghu","用户");Rr=R.ok();r.put("token",token);r.put("role","用户");r.put("username",yonghu.getYonghuName());r.put("tableName","yonghu");r.put("userId",yonghu.getId());returnr;}5.2 字典表转换工具方法(后端)
// 位置:DictionaryServiceImpl.javapublicvoiddictionaryConvert(Objectobj,HttpServletRequestrequest){// 通过反射获取所有以"Types"结尾的Integer字段// 然后根据字典缓存Map将code_index转换为index_name// 并设置到对应的"Value"字段中}5.3 前端路由配置(Vue)
// 位置:router-static.jsconstroutes=[{path:'/index',component:Index,children:[{path:'/',component:Home},{path:'/users',component:users},{path:'/fuwu',component:fuwu},{path:'/fuwushenqing',component:fuwushenqing},{path:'/news',component:news},{path:'/yonghu',component:yonghu},{path:'/yonghushenhe',component:yonghushenhe}]}];5.4 服务信息查询Mapper XML
<!-- 位置:FuwuDao.xml --><selectid="selectListView"resultType="com.entity.view.FuwuView">SELECT a.id, a.fuwu_bianhao, a.fuwu_name, a.fuwu_photo, a.fuwu_types, a.fuwu_content, a.create_time FROM fuwu a<where><iftest="params.fuwuName != null and params.fuwuName != ''">and a.fuwu_name like CONCAT('%',#{params.fuwuName},'%')</if><iftest="params.fuwuTypes != null and params.fuwuTypes != ''">and a.fuwu_types = #{params.fuwuTypes}</if></where>order by a.${params.orderBy} desc</select>6. 部分截图
7. 项目总结
本项目是一个功能较为完整的社区养老服务平台,覆盖了服务发布、服务申请、审核流程、公告通知、用户管理及信息变更审核等核心业务场景。
技术实现上,采用前后端分离架构,后端基于Spring Boot + MyBatis-Plus,前端使用Vue + Element UI,并集成百度地图API和AI人脸比对接口(配置中预留)。系统通过Token机制保证接口安全,通过字典表实现枚举值的统一维护和前端展示的动态转换。
项目代码结构清晰,包含了完整的DAO、Service、Controller三层,以及Vue后台管理界面。数据库设计遵循第三范式,并使用了假删除逻辑(yonghu_delete字段)保护用户数据。
整体而言,该平台具备良好的可扩展性和实用性,能够满足小型社区养老服务机构的信息化管理需求。后续可进一步增强移动端适配、在线支付、服务评价等功能,提升用户体验。
aHR0cHM6Ly9maWZ0ZWVuLnhpYW9iaWFzLmNvbS9zb3VyY2UvMjE3
