小区物业管理系统

文章目录

  • 小区物业管理系统
    • 一、项目演示
    • 二、项目介绍
    • 三、部分功能截图
    • 四、部分代码展示
    • 五、底部获取项目源码(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,一经查实,立即删除!

相关文章

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…

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

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

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

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

实现字符串复制(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…

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

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

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

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

C语言——文件缓冲区

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

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

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

GDPU unity游戏开发 角色控制器与射线检测

在你的生活中&#xff0c;你一直扮演着你的角色&#xff0c;别被谁控制了。 小试 1. 创建一个角色控制器&#xff0c;通过键盘控制角色控制器的移动&#xff0c;角色控制器与家具发生碰撞后&#xff0c;通过Debug语句打印出被碰撞物体的信息(搜索OnControllerColliderHit的使用…

Hotcoin Research | 市场洞察:2024年5月6日-5月12日

加密货幣市场表现 加密货幣总市值为1.24万亿&#xff0c;BTC占比53.35%。 本周行情呈现先涨后跌的一种態势&#xff0c;5月6日-9日大盘持续下跌&#xff0c;周末为震荡行情。本周的比特幣现货ETF凈流入&#xff1a;1.1262亿美元&#xff0c;其中&#xff1a;美国ETF流入&…

DE2-115开发板基于verilog和nioⅡ的流水灯实现

目录 一、 内容概要二、 实现2.1 基于Nios II软核的流水灯2.1.1 准备工作2.1.2 工程搭建2.1.3 硬件代码设计Ⅰ 连接IP核Ⅱ 编写代码Ⅲ 各种配置 2.1.4 软件代码设计Ⅰ 环境构建Ⅱ 编写代码 2.1.5 代码下载Ⅰ 硬件下载Ⅱ 软件下载 2.1.6 运行结果 2.2 Verilog流水灯 三、 心得体…

带你探索CA和SSL证书

目录 一、什么是CA&#xff1f; 二、什么是SSL证书&#xff1f; 三、SSL证书分类和文件种类&#xff1f; 3.1 证书的分类&#xff1a; 3.2证书格式&#xff1a; 四、SSL和TSL 五、PSK介绍 六、nginx配置介绍 一、什么是CA&#xff1f; CA是证书的签发机构&#xff0c;它是…

sumif的求和区域是文本格式怎么办?

sumif函数的求和区域是文本型数字&#xff0c;不更改源数据的情况下怎么求和呢&#xff1f; 一、不能使用SUMIF、SUMIFS函数 这两个函数的求和区域只能是引用&#xff0c;不能是公式运算的内存数组&#xff0c;因此不能用公式或运算符将求和区转换成数值。当引用来的数据是文本…

公司网页设计思路

在当今互联网时代&#xff0c;公司网页设计是一个极为重要的环节。一款精心设计的公司网页可以提升企业形象&#xff0c;增加用户粘性&#xff0c;吸引更多的潜在客户和合作伙伴。下面将为大家介绍一些公司网页设计的思路。 首先&#xff0c;要确立公司网页的整体风格。网页风格…

C++的数据结构(四):队列

在数据结构中&#xff0c;队列&#xff08;Queue&#xff09;是一种特殊的线性表&#xff0c;只允许在表的前端&#xff08;front&#xff09;进行删除操作&#xff0c;而在表的后端&#xff08;rear&#xff09;进行插入操作。队列中没有元素时&#xff0c;称为空队列。队列的…

基于SSM的“网约车用户服务平台”的设计与实现(源码+数据库+文档)

基于SSM的“网约车用户服务平台”的设计与实现&#xff08;源码数据库文档) 开发语言&#xff1a;Java 数据库&#xff1a;MySQL 技术&#xff1a;SSM 工具&#xff1a;IDEA/Ecilpse、Navicat、Maven 系统展示 系统功能 首页 站内新闻浏览 打车信息查询功能 在线打车功能…

GD32用ST-Link出现internal command error的原因及解决方法

一、GD32 F407烧录时出现can not reset target shutting down debug session 搜寻网上资料&#xff0c;发现解决方式多种多样&#xff0c;做一个简单的总结&#xff1a; 1.工程路径包含中文名 2.需更改debug选项 3.引脚冲突 4.杜邦线太长 而先前我的工程路径包含中文名也仍…

(Java)心得:LeetCode——18.四数之和

一、原题 给你一个由 n 个整数组成的数组 nums &#xff0c;和一个目标值 target 。请你找出并返回满足下述全部条件且不重复的四元组 [nums[a], nums[b], nums[c], nums[d]] &#xff08;若两个四元组元素一一对应&#xff0c;则认为两个四元组重复&#xff09;&#xff1a; …

Git在windows和Linux安装并自动更新代码超详细讲解

202405122316 一、Git官网安装 1、官网安装地址&#xff1a; Git - Downloading Packagehttps://git-scm.com/download/win 官网下载比较慢建议使用下面链接 2、国内镜像下载地址&#xff1a; CNPM Binaries Mirrorhttps://registry.npmmirror.com/binary.html?pathgit-fo…