小区物业管理系统

文章目录

  • 小区物业管理系统
    • 一、项目演示
    • 二、项目介绍
    • 三、部分功能截图
    • 四、部分代码展示
    • 五、底部获取项目源码(9.9¥带走)

小区物业管理系统

一、项目演示

小区物业管理系统

二、项目介绍

基于springboot+vue的前后端分离物业管理系统

系统角色:物业、业主

物业:首页、员工管理、角色管理、权限管理、栋数管理、单元管理、房屋列表、车位管理、业主管理、电费管理、水费管理、停车管理、投诉管理、维修管理、公告管理

业主:首页、投诉管理、缴费管理(我的电费、我的水费、我的停车费)、维修管理、公告管理

项目技术
语言:java
前端技术:Vue、Element-Plus
后端技术:SpringBoot、Mybatis-Plus
数据库:MySQL

三、部分功能截图

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

四、部分代码展示

package com.itmk.web.fee_park.controller;import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.itmk.utils.ResultUtils;
import com.itmk.utils.ResultVo;
import com.itmk.web.fee_park.entity.FeePark;
import com.itmk.web.fee_park.entity.FeeParkParm;
import com.itmk.web.fee_park.service.FeeParkService;
import com.itmk.web.live_park.entity.LivePark;
import com.itmk.web.live_park.mapper.LiveParkMapper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.web.bind.annotation.*;import javax.annotation.Resource;/*** 停车费模块*/
@RestController
@RequestMapping("/api/feePark")
public class FeeParkController {@Autowiredprivate FeeParkService feeParkService;@Resourceprivate LiveParkMapper liveParkMapper;/*** 我的停车费*/@GetMapping("/getMyParkFee")public ResultVo getMyParkFee(FeeParkParm feeParkParm){//构造分页对象IPage<FeePark> page = new Page<>();page.setCurrent(feeParkParm.getCurrentPage());page.setSize(feeParkParm.getPageSize());//查询条件QueryWrapper<FeePark> query = new QueryWrapper<>();query.lambda().eq(FeePark::getUserId,feeParkParm.getUserId());IPage<FeePark> list = feeParkService.page(page, query);return ResultUtils.success("查询成功",list);}/*** 新增:* 1.查询当前正在使用车位的用户* 2.入库*/@PreAuthorize("hasAuthority('sys:feePark:add')")@PostMappingpublic ResultVo add(@RequestBody FeePark feePark){//1.查询当前正在使用车位的租户//构造查询条件QueryWrapper<LivePark> query = new QueryWrapper<>();query.lambda().eq(LivePark::getParkId,feePark.getParkId()).eq(LivePark::getLiveStatue,"0");LivePark livePark = liveParkMapper.selectOne(query);if(livePark == null){return ResultUtils.error("该车位暂无人员使用!");}feePark.setUserId(livePark.getUserId());//2.入库boolean save = feeParkService.save(feePark);if(save){return ResultUtils.success("新增停车费成功!");}return ResultUtils.error("新增停车费失败!");}/*** 编辑:1.查询当前正在使用的用户*       2.更新*/@PutMapping@PreAuthorize("hasAuthority('sys:feePark:edit')")public ResultVo edit(@RequestBody FeePark feePark){//1.查询当前正在使用车位的租户//构造查询条件QueryWrapper<LivePark> query = new QueryWrapper<>();query.lambda().eq(LivePark::getParkId,feePark.getParkId()).eq(LivePark::getLiveStatue,"0");LivePark livePark = liveParkMapper.selectOne(query);if(livePark == null){return ResultUtils.error("该车位暂无人员使用!");}feePark.setUserId(livePark.getUserId());//2.更新boolean b = feeParkService.updateById(feePark);if(b){return ResultUtils.success("编辑停车费成功!");}return ResultUtils.error("编辑停车费失败!");}/*** 删除: 1.判断是否已经缴费,如果缴费,不能删除*        2.删除*/@PreAuthorize("hasAuthority('sys:feePark:delete')")@DeleteMapping("/{parkFeeId}")public ResultVo delete(@PathVariable("parkFeeId") Long parkFeeId){//1.判断是否已经缴费,根据id查询缴费状态QueryWrapper<FeePark> query = new QueryWrapper<>();query.lambda().eq(FeePark::getPayParkStatus,"1").eq(FeePark::getParkFeeId,parkFeeId);FeePark one = feeParkService.getOne(query);if(one != null){return ResultUtils.error("已缴费,不能删除该数据!");}boolean b = feeParkService.removeById(parkFeeId);if(b){return ResultUtils.success("删除停车费成功!");}return ResultUtils.error("删除停车费失败!");}/*** 缴费:*   把当前这条数据的 payParkStatus 设为1*/@PostMapping("/pay")public ResultVo pay(@RequestBody FeePark feePark){//把状态设为1feePark.setPayParkStatus("1");boolean b = feeParkService.updateById(feePark);if(b){return ResultUtils.success("缴费成功!");}return ResultUtils.error("缴费失败!");}/*** 列表*/@GetMapping("/list")public ResultVo getList(FeeParkParm feeParkParm){IPage<FeePark> list = feeParkService.getList(feeParkParm);return ResultUtils.success("查询成功",list);}
}
package com.itmk.web.fee_power.controller;import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.itmk.utils.ResultUtils;
import com.itmk.utils.ResultVo;
import com.itmk.web.fee_park.entity.FeePark;
import com.itmk.web.fee_park.entity.FeeParkParm;
import com.itmk.web.fee_power.entity.FeePower;
import com.itmk.web.fee_power.entity.FeePowerParm;
import com.itmk.web.fee_power.service.FeePowerService;
import com.itmk.web.live_house.entity.LiveHouse;
import com.itmk.web.live_house.mapper.LiveHouseMapper;
import com.itmk.web.live_house.service.LiveHouseService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.web.bind.annotation.*;/*** 电费管理控制器*/
@RestController
@RequestMapping("/api/feePower")
public class FeePowerController {@Autowiredprivate FeePowerService feePowerService;@Autowiredprivate LiveHouseService liveHouseService;/*** 我的电费*/@GetMapping("/getMyPowerFee")public ResultVo getMyPowerFee(FeePowerParm feePowerParm){//构造分页对象IPage<FeePower> page = new Page<>();page.setCurrent(feePowerParm.getCurrentPage());page.setSize(feePowerParm.getPageSize());//查询条件QueryWrapper<FeePower> query = new QueryWrapper<>();query.lambda().eq(FeePower::getUserId,feePowerParm.getUserId());IPage<FeePower> list = feePowerService.page(page, query);return ResultUtils.success("查询成功",list);}/*** 新增*/@PostMapping@PreAuthorize("hasAuthority('sys:feePower:add')")public ResultVo add(@RequestBody FeePower feePower){//根据房屋id查询正在使用该房间用户QueryWrapper<LiveHouse> query = new QueryWrapper<>();query.lambda().eq(LiveHouse::getHouseId,feePower.getHouseId()).eq(LiveHouse::getUseStatus,"0");LiveHouse house = liveHouseService.getOne(query);if(house == null){return ResultUtils.error("该房间没有人使用,不能添加电费!");}//把查询出来的用户id设置到电费实体里面feePower.setUserId(house.getUserId());feePowerService.saveFeePower(feePower);return ResultUtils.success("新增电费成功!");}/*** 编辑*/@PutMapping@PreAuthorize("hasAuthority('sys:feePower:edit')")public ResultVo edit(@RequestBody FeePower feePower){//根据房屋id查询正在使用该房间用户QueryWrapper<LiveHouse> query = new QueryWrapper<>();query.lambda().eq(LiveHouse::getHouseId,feePower.getHouseId()).eq(LiveHouse::getUseStatus,"0");LiveHouse house = liveHouseService.getOne(query);if(house == null){return ResultUtils.error("该房间没有人使用,不能编辑电费!");}//把查询出来的用户id设置到电费实体里面feePower.setUserId(house.getUserId());feePowerService.updateFeePower(feePower);return ResultUtils.success("编辑电费成功!");}/*** 删除*/@PreAuthorize("hasAuthority('sys:feePower:delete')")@DeleteMapping("/{powerId}")public ResultVo delete(@PathVariable("powerId") Long powerId){//如果已经缴费,就不能删除QueryWrapper<FeePower> query = new QueryWrapper<>();query.lambda().eq(FeePower::getPowerId,powerId).eq(FeePower::getPayPowerStatus,"1");FeePower one = feePowerService.getOne(query);if(one != null){return ResultUtils.error("已缴费,不能删除!");}//删除操作boolean b = feePowerService.removeById(powerId);if(b){return ResultUtils.success("删除电费成功!");}return ResultUtils.error("删除电费失败!");}/*** 列表查询*/@GetMapping("/list")public ResultVo getList(FeePowerParm parm){IPage<FeePower> list = feePowerService.getList(parm);return ResultUtils.success("查询成功",list);}/*** 缴费*/@PostMapping("/payPower")public ResultVo payPower(@RequestBody FeePower feePower){boolean b = feePowerService.updateById(feePower);if(b){return ResultUtils.success("缴费成功!");}return ResultUtils.error("缴费失败!");}
}
package com.itmk.web.house_unit.controller;import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.itmk.utils.ResultUtils;
import com.itmk.utils.ResultVo;
import com.itmk.web.house_unit.entity.HouseUnit;
import com.itmk.web.house_unit.entity.HouseUnitParm;
import com.itmk.web.house_unit.service.HouseUnitService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.web.bind.annotation.*;import java.util.List;/*** 房屋单元控制器*/
@RestController
@RequestMapping("/api/houseUnit")
public class HouseUnitController {@Autowiredprivate HouseUnitService houseUnitService;/*** 获取单元列表*/@GetMapping("/list")public ResultVo getList(HouseUnitParm houseUnitParm){IPage<HouseUnit> list = houseUnitService.getList(houseUnitParm);return ResultUtils.success("查询成功",list);}/*** 单元新增* @return*/@PostMapping@PreAuthorize("hasAuthority('sys:houseUnit:add')")public ResultVo add(@RequestBody HouseUnit houseUnit){boolean save = houseUnitService.save(houseUnit);if(save){return ResultUtils.success("新增单元成功!");}return ResultUtils.error("新增单元失败!");}/*** 单元编辑* @return*/@PutMapping@PreAuthorize("hasAuthority('sys:houseUnit:edit')")public ResultVo edit(@RequestBody HouseUnit houseUnit){boolean save = houseUnitService.updateById(houseUnit);if(save){return ResultUtils.success("编辑单元成功!");}return ResultUtils.error("编辑单元失败!");}/*** 删除单元*/@DeleteMapping("/{unitId}")@PreAuthorize("hasAuthority('sys:houseUnit:delete')")public ResultVo delete(@PathVariable("unitId") Long unitId){boolean b = houseUnitService.removeById(unitId);if(b){return ResultUtils.success("删除成功");}return ResultUtils.error("删除失败!");}/*** 根据栋数id查询单元列表*/@GetMapping("/getUnitListByBuildId")public ResultVo getUnitListByBuildId(HouseUnit houseUnit){//构造查询条件QueryWrapper<HouseUnit> query = new QueryWrapper<>();query.lambda().eq(HouseUnit::getBuildId,houseUnit.getBuildId());List<HouseUnit> list = houseUnitService.list(query);return ResultUtils.success("查询成功",list);}
}

五、底部获取项目源码(9.9¥带走)

有问题,或者需要协助调试运行项目的也可以

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/11137.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Java锁事

1.1 大厂面试题 一、Synchronized相关问题 1.Synchronized 用过吗&#xff0c;其原理是什么? 2.你刚才提到获取对象的锁&#xff0c;这个“锁”到底是什么?如何确定对象的领? 3.什么是可重入性&#xff0c;为什么说Synchronized是可重入锁? 4.JVM对Java的原生锁做了哪些优化…

到底什么是ASIC和FPGA?

ASIC&#xff08;Application Specific Integrated Circuit&#xff0c;应用特定集成电路&#xff09;和FPGA&#xff08;Field Programmable Gate Array&#xff0c;现场可编程门阵列&#xff09;都是集成电路&#xff08;IC&#xff09;的重要类型&#xff0c;它们在电子设计…

上海市计算机学会竞赛平台2022年3月月赛丙组正负数判断

题目描述 给定一个整数 &#x1d45b;n&#xff0c;若 &#x1d45b;n 为正数&#xff0c;输出 Positive&#xff0c;若 &#x1d45b;n 为负数&#xff0c;输出 Negative&#xff0c;若 &#x1d45b;n 恰好为零&#xff0c;输出 Zero。 输入格式 单个整数&#xff1a;表示…

Ubuntu 24 换国内源及原理 (阿里源 清华源 中科大源 网易源)

备份原文件 sudo cp /etc/apt/sources.list.d/ubuntu.sources /etc/apt/sources.list.d/ubuntu.sources.bak 编辑源文件 sudo gedit /etc/apt/sources.list.d/ubuntu.sources 粘贴到文本&#xff08;其中一个即可&#xff09;&#xff1a; &#xff08;阿里源&#xff09…

数据结构与算法学习笔记之线性表三---顺序表的动态分配存储表示和实现(C++)

目录 前言 1.顺序表的动态分配存储表示 2.顺序表的静态存储表示 1.初始化 2.销毁 3.清空 4.判空 5.表长 6.数据元素 7.获取下标 8.前驱节点 9.后继节点 10.插入 11.删除 12.遍历 13.测试代码 前言 这篇文章讲的是线性表的动态分配存储表示。 1.顺序表的…

【JAVA进阶篇教学】第十三篇:Java中volatile关键字讲解

博主打算从0-1讲解下java进阶篇教学&#xff0c;今天教学第十三篇&#xff1a;volatile关键字讲解。 在 Java 中&#xff0c;volatile关键字是一种轻量级的同步机制&#xff0c;用于确保变量的可见性和禁止指令重排序。本文将详细解释volatile关键字的工作原理、可见性保证以及…

买卖股票的最佳时机 II(LeetCode 122)

❤️❤️❤️ 欢迎来到我的博客。希望您能在这里找到既有价值又有趣的内容&#xff0c;和我一起探索、学习和成长。欢迎评论区畅所欲言、享受知识的乐趣&#xff01; 推荐&#xff1a;数据分析螺丝钉的首页 格物致知 终身学习 期待您的关注 导航&#xff1a; LeetCode解锁100…

react组件渲染性能优化之函数组件-memo使用

函数组件赋值相同的值视图不会渲染&#xff0c;类组件会&#xff0c;因为函数组件默认就阻止了 import {useState} from react export default function App() {const [counter, setCounter] useState(1)console.log(App组件渲染了);return(<div><h1>{counter}&l…

已解决java.lang.AbstractMethodError: 抽象方法错误的正确解决方法,亲测有效!!!

已解决java.lang.AbstractMethodError: 抽象方法错误的正确解决方法&#xff0c;亲测有效&#xff01;&#xff01;&#xff01; 目录 问题分析 报错原因 解决思路 解决方法 更新和重新编译依赖 确认类和接口的版本一致性 类加载器配置检查 总结 问题分析 java.lang.…

防城港知识付费系统,教学活动在设计中需要注意什么?如何进行教学设计?

老师们的教学能否让学生学到知识&#xff0c;让学生懂得书本上的道理&#xff0c;那么教学活动很重要&#xff0c;因此在设计的时候&#xff0c;一定要根据教学的目的以及孩子的特点来进行设计。 假设老师为学生进行美术绘画的教学活动设计&#xff0c;那么需要注意以下三个方面…

实现字符串复制(C语言)

一、N-S流程图&#xff1b; 二、运行结果&#xff1b; 三、源代码&#xff1b; # define _CRT_SECURE_NO_WARNINGS # include <stdio.h>int main() {//初始化变量值&#xff1b;int i 0;char a[100], b[100];//获取字符串&#xff1b;printf("请为数组a输入字符串…

使用模拟SPI接口驱动串行接口的LCD( STM32F4)

目录 概述 1. 硬件介绍 1.1 ST7796-LCD 1.2 MCU IO与LCD PIN对应关系 2 代码实现 2.1 STM32CubeMX 6.11生成工程 2.2 IO模拟SPI接口 2.3 实现LCD的驱动 3 测试 测试代码下载地址&#xff1a; stm32-f407-lcd-ft6336-proj资源-CSDN文库 gitee下载地址&#xff1a; h…

「PHP系列」PHP AJAX运用之数据库实例/XML实例

文章目录 一、AJAX 数据库实例1. 创建数据库和表2. HTML页面 (index.html)3. PHP脚本 (search.php)4. 配置和运行 二、AJAX XML实例1. PHP 脚本 (get_data.php)2. HTML 页面 (index.html)3. 配置和运行 三、相关链接 一、AJAX 数据库实例 一个PHP和AJAX结合使用来从数据库获取…

【Spring】验证 @ServerEndpoint 的类成员变量线程安全

文章目录 前言猜想来源验证方法Controller 的情况ServerEndpoint 的情况 后记 前言 最近有 websocket 的需求。探索 ServerEndpoint 的类成员变量特点。 这里类比 Controller 讨论 ServerEndpoint 类成员变量是否线程安全。 猜想来源 网上的教程大多数都这么展示程序&#…

祝融传火(试水)

一段时间没写代码了&#xff0c;今天试水一道直接寄了 #include <bits/stdc.h> using namespace std; typedef long long ll; ll n, m, h, w; ll a[1010][1010]; int main() {cin >> n >> m;for (int i 1; i < n; i){for (int j 1; j < m; j){cin &…

HR4988内置转换器和过流保护的微特步进电机驱动芯片

描述 HR4988是一款内部集成了译码器的微特步进电机驱动器&#xff0c;能使双极步进电机以全、半、1/4、1/8、1/16步进模式工作。步进模式由逻辑输入管脚MSx选择。其输出驱动能力达到32V和2A。 译码器是HR4988易于使用的关键。通过STEP管脚输入一个脉冲就可以使电机完成一次步进…

C语言——文件缓冲区

一、用户缓冲区和系统缓冲区 缓冲区的概念确实可以分为多个层次&#xff0c;其中最常见的两个层次是用户缓冲区和系统缓冲区。 这里的用户缓冲区和系统缓冲区都包括输入输出缓冲区。 1、用户缓冲区&#xff08;User-space Buffer&#xff09; 用户缓冲区是指由用户程序&…

202112青少年软件编程(Python)等级考试试卷(二级)

第 1 题 【单选题】 执行以下程序 a=[33,55,22,77]a.sort()for i in a:print(i)运行结果是?( ) A :33 55 22 77 B :22 33 55 77 C :55 33 22 77 D :77 55 33

群辉虚拟机安装openWRT作旁路由

最近在整活旁路由&#xff0c;基本就是要实现adguard和出国留学。openwrt这个的安装比较简单&#xff0c;就是先去找个镜像&#xff0c;然后导入即可。 我这里最后是去github上找了个大佬每天编译的地址链接。我用的是这个版本 1.下载解压得到img 下载完之后解压会得到一个…

paintevent讲解

Qt框架中的paintEvent是Qt中处理绘图的核心机制之一。每个使用Qt绘图的窗口部件&#xff08;QWidget或者从QWidget派生的类&#xff09;都会有一个paintEvent函数。这个函数是在部件需要重绘时被Qt框架自动调用的。 以下是paintEvent的工作原理及其在Qt中绘制过程中的作用&…