当前位置: 首页 > news >正文

基于springboot的家政服务管理系统(含源码+sql+视频导入教程+文档+PPT)

👉文末查看项目功能视频演示+获取源码+sql脚本+视频导入教程视频

1 、功能描述

  基于springboot的家政服务管理系统1拥有三种角色

管理员:用户管理、服务管理、评价管理、预约管理、分配管理等

用户:登录注册、预约服务、取消服务、评价等

服务人员:填写服务进度

架构

1.1 背景描述

  家政管理系统是一种便捷而智能的解决方案,旨在帮助家庭管理家政服务、提高家政工作效率和优化家庭生活体验。该系统涵盖了家政人员管理、任务分配、服务记录、费用结算等功能,为家庭提供了全面的家政服务管理支持。家庭可以通过该系统轻松管理家政人员的信息,包括人员档案、工作经历、技能等,实现对家政人员的全面管理和监督。此外,家庭可以通过系统安排家政任务,制定任务计划,设定提醒功能,确保家政工作有条不紊地进行。家政人员可以通过系统查看任务安排、记录工作内容、提交工作报告,提高工作效率和服务质量。系统还支持费用结算功能,家庭可以方便地查看家政服务费用,并进行支付。家政管理系统的使用将提升家庭生活质量,简化家政服务管理流程,使家庭生活更加便捷、有序和舒适。

2、项目技术

后端框架:springboot、Mybatis

前端技术:html、VUE

2.1 springboot

  Spring Boot是由Pivotal团队提供的基于Spring的框架,该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置。Spring Boot集成了绝大部分目前流行的开发框架,就像Maven集成了所有的JAR包一样,Spring Boot集成了几乎所有的框架,使得开发者能快速搭建Spring项目。

2.2 mysql

  MySQL是一款Relational Database Management System,直译过来的意思就是关系型数据库管理系统,MySQL有着它独特的特点,这些特点使他成为目前最流行的RDBMS之一,MySQL想比与其他数据库如ORACLE、DB2等,它属于一款体积小、速度快的数据库,重点是它符合本次毕业设计的真实租赁环境,拥有成本低,开发源码这些特点,这也是选择它的主要原因。

3、开发环境

  • JAVA版本:JDK1.8(最佳)
  • IDE类型:IDEA、Eclipse都可运行
  • 数据库类型:MySql(5.7、8.x版本都可)
  • tomcat版本:无需
  • maven版本:无限制
  • 硬件环境:Windows

4、功能截图+视频演示+文档目录

4.1 登录

登录

服务预约

服务详情、

4.2 管理员模块

管理员-服务评价

服务分配管理

管理员-预约管理

管理员-服务管理

管理员-服务人员管理

管理员-评价管理

4.3 用户模块

用户后台管理

4.4服务人员模块

服务人员功能列表

4.5文档目录

文档目录

5 、核心代码实现

5.1 配置代码


spring:datasource:username: rootpassword: rootdriver-class-name: com.mysql.cj.jdbc.Driverurl: jdbc:mysql://127.0.0.1:3306/chuangmeng?characterEncoding=utf8&useSSL=false&serverTimezone=UTC&rewriteBatchedStatements=true&allowPublicKeyRetrieval=trueservlet:multipart:max-file-size: 50MBmax-request-size: 50MB
server:port: 521
redis:open: false
shiro:redis: false
logging:level:com:mh: debug
mybatis-plus:type-aliases-package: com.mh.*.entitymapper-locations: classpath*:/mapper/*/*.xml

5.2 其它核心代码


package com.controller;import java.util.Arrays;
import java.util.Calendar;
import java.util.Date;
import java.util.Map;import javax.servlet.http.HttpServletRequest;import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.bind.annotation.RestController;import com.annotation.IgnoreAuth;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.entity.TokenEntity;
import com.entity.UserEntity;
import com.service.TokenService;
import com.service.UserService;
import com.utils.CommonUtil;
import com.utils.MPUtil;
import com.utils.PageUtils;
import com.utils.R;
import com.utils.ValidatorUtils;/*** 登录相关*/
@RequestMapping("users")
@RestController
public class UserController{@Autowiredprivate UserService userService;@Autowiredprivate TokenService tokenService;/*** 登录*/@IgnoreAuth@PostMapping(value = "/login")public R login(String username, String password, String captcha, HttpServletRequest request) {UserEntity user = userService.selectOne(new EntityWrapper<UserEntity>().eq("username", username));if(user==null || !user.getPassword().equals(password)) {return R.error("账号或密码不正确");}String token = tokenService.generateToken(user.getId(),username, "users", user.getRole());return R.ok().put("token", token);}/*** 注册*/@IgnoreAuth@PostMapping(value = "/register")public R register(@RequestBody UserEntity user){
//    	ValidatorUtils.validateEntity(user);if(userService.selectOne(new EntityWrapper<UserEntity>().eq("username", user.getUsername())) !=null) {return R.error("用户已存在");}userService.insert(user);return R.ok();}/*** 退出*/@GetMapping(value = "logout")public R logout(HttpServletRequest request) {request.getSession().invalidate();return R.ok("退出成功");}/*** 密码重置*/@IgnoreAuth@RequestMapping(value = "/resetPass")public R resetPass(String username, HttpServletRequest request){UserEntity user = userService.selectOne(new EntityWrapper<UserEntity>().eq("username", username));if(user==null) {return R.error("账号不存在");}user.setPassword("123456");userService.update(user,null);return R.ok("密码已重置为:123456");}/*** 列表*/@RequestMapping("/page")public R page(@RequestParam Map<String, Object> params,UserEntity user){EntityWrapper<UserEntity> ew = new EntityWrapper<UserEntity>();PageUtils page = userService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.allLike(ew, user), params), params));return R.ok().put("data", page);}/*** 列表*/@RequestMapping("/list")public R list( UserEntity user){EntityWrapper<UserEntity> ew = new EntityWrapper<UserEntity>();ew.allEq(MPUtil.allEQMapPre( user, "user")); return R.ok().put("data", userService.selectListView(ew));}/*** 信息*/@RequestMapping("/info/{id}")public R info(@PathVariable("id") String id){UserEntity user = userService.selectById(id);return R.ok().put("data", user);}/*** 获取用户的session用户信息*/@RequestMapping("/session")public R getCurrUser(HttpServletRequest request){Long id = (Long)request.getSession().getAttribute("userId");UserEntity user = userService.selectById(id);return R.ok().put("data", user);}/*** 保存*/@PostMapping("/save")public R save(@RequestBody UserEntity user){
//    	ValidatorUtils.validateEntity(user);if(userService.selectOne(new EntityWrapper<UserEntity>().eq("username", user.getUsername())) !=null) {return R.error("用户已存在");}userService.insert(user);return R.ok();}/*** 修改*/@RequestMapping("/update")public R update(@RequestBody UserEntity user){
//        ValidatorUtils.validateEntity(user);UserEntity u = userService.selectOne(new EntityWrapper<UserEntity>().eq("username", user.getUsername()));if(u!=null && u.getId()!=user.getId() && u.getUsername().equals(user.getUsername())) {return R.error("用户名已存在。");}userService.updateById(user);//全部更新return R.ok();}/*** 删除*/@RequestMapping("/delete")public R delete(@RequestBody Long[] ids){userService.deleteBatchIds(Arrays.asList(ids));return R.ok();}
}

6 、获取方式

👇 大家点赞、收藏、关注、评论啦 👇🏻获取联系方式,后台回复关键词:家政👇🏻

http://www.lryc.cn/news/458117.html

相关文章:

  • 第十四届单片机嵌入式蓝桥杯
  • Zotero 如何实现数据同步 坚果云
  • 基于Redis实现的延迟队列
  • LINUX——内核移植、内核编译教程
  • 《OpenCV计算机视觉》—— 用于执行图像透视变换的两个关键函数
  • uniapp使用字体图标 ttf svg作为选项图标,还支持变色变图按
  • <Project-6 pdf2tx> Python Flask 应用:图片PDF图书的中文翻译解决方案
  • 10.11Python数学基础-多维随机变量及其分布
  • (四)Mysql 数据库备份恢复全攻略
  • 在MySQL 8.0中,如何更好地管理索引以节省空间和提高查询效率?
  • 图形化编程(013)——“面向鼠标指针”积木块
  • 【Spring】Spring Boot项目创建和目录介绍
  • 第十二章 RabbitMQ之失败消息处理策略
  • 23年408数据结构
  • vue3ElementPlu表格合并多行
  • MySQL数据库 - 索引(上)
  • redis与springBoot整合
  • YoloV9改进策略:BackBone改进|CAFormer在YoloV9中的创新应用,显著提升目标检测性能
  • 消防应急物资仓库管理系统
  • 【论文阅读】Semi-Supervised Few-shot Learning via Multi-Factor Clustering
  • 第十三章 RabbitMQ之消息幂等性
  • tpcms-master.zip
  • Spring国际化和Validation
  • ②EtherCAT转ModbusTCP, EtherCAT/Ethernet/IP/Profinet/ModbusTCP协议互转工业串口网关
  • 【华为HCIP实战课程八】OSPF网络类型及报文类型详解,网络工程师
  • 信息安全工程师(28)机房安全分析与防护
  • 大数据处理从零开始————9.MapReduce编程实践之信息过滤之学生成绩统计demo
  • 自动化测试 | 窗口截图
  • 初中数学网上考试系统的设计与实现(论文+源码)_kaic
  • 关系运算(3)