基于javaweb+mysql的springboot物业管理系统(java+springboot+maven+ssm+thymeleaf+html+jquery+mysql)
私信源码获取及调试交流
运行环境
Java≥8、MySQL≥5.7
开发工具
eclipse/idea/myeclipse/sts等均可配置运行
适用
课程设计,大作业,毕业设计,项目练习,学习演示等
功能说明
基于javaweb的SpringBoot物业管理系统(java+springboot+maven+ssm+thymeleaf+html+jquery+mysql)
项目介绍
基于SpringBoot的物业管理系统
角色:管理员、业主
管理员和业主
业主功能: 缴费信息,报修,投诉,注册,公告,修改密码等
管理员功能:用户管理,楼栋信息,房间信息,房屋绑定,车位绑定,缴费信息,报修信息,投诉信息,修改密码,公告信息等
环境需要
1.运行环境:最好是java jdk 1.8,我们在这个平台上运行的。其他版本理论上也可以。 2.IDE环境:IDEA,Eclipse,Myeclipse都可以。推荐IDEA; 3.硬件环境:windows 7/8/10 1G内存以上;或者 Mac OS; 4.数据库:MySql 5.7/8.0版本均可; 5.是否Maven项目:是;
技术栈
后端:SpringBoot(Spring+SpringMVC+Mybatis)
前端: JSP、css、JavaScript、JQuery、Ajax
使用说明
项目运行: 1. 使用Navicat或者其它工具,在mysql中创建对应sql文件名称的数据库,并导入项目的sql文件; 2. 使用IDEA/Eclipse/MyEclipse导入项目,导入成功后请执行maven clean;maven install命令,然后运行; 3. 将项目中application.yml配置文件中的数据库配置改为自己的配置; 4. 运行项目,控制台提示运行成功后再去运行前端项目; 5. 管理员用户名密码:admin/admin 普通用户名密码:user/123456
文档介绍(课题背景与意义、系统实现功能、课题研究现状、系统相关技术、java技术、B/S架构、Mysql介绍、Mysql环境配置、Springboot框架、系统需求分析、系统功能、可行性研究、经济可行性、技术可行性、运行可行性、事件可行性、系统业务过程分析、系统业务过程分析、系统用例图、系统设计、数据库设计、系统整体设计、系统设计思想、系统流程图、系统详情设计、系统功能模块、系统功能模块、管理员功能模块):
小区物业报修:
我的账单展示页:
小区物业系统登录页:
小区物业系统统计展示页面:
投诉管理展示页面:
用户管理展示页面:
缴费管理展示页面:
public String car(){
return "page/template/car";
}
@GetMapping("/user")
public String user(){
return "page/template/user";
}
@GetMapping("/user/login")
public String userlogin(Model model,HttpSession session){
if (session.getAttribute("timeout") != null){
model.addAttribute("timeout",session.getAttribute("timeout"));
}
return "page/system/login";
}
@GetMapping("/user/index")
public String userindex(Model model,HttpSession session){
if(session.getAttribute("user") == null){
session.setAttribute("timeout","登录已过期,请重新登录");
return "redirect:/login";
}else {
return "page/system/index";
}
}
@GetMapping("/user/console")
public String userconsole(Model model,HttpSession session){
User user = (User) session.getAttribute("user");
Gonggao gonggao = gonggaoService.getGonggao();
if (gonggao == null){
gonggao = new Gonggao();
gonggao.setTitle("暂无");
gonggao.setContent("暂无");
}
int repairCount = repairService.getCountByUserId(user.getId());
int tousuCount = tousuService.getCountByUserId(user.getId());
int paymentCount = user_paymentService.getCountByUserId(user.getId());
int userRepair = repairService.getPendingCountByUserId(user.getId());
int userTousu = tousuService.getPendingCountByUserId(user.getId());
List<Tousu> list = template.query("select * from tousu where user_id = "+uid+" and status = "+status+" limit ?,?" ,new Object[]{(page-1)*limit,limit},
new BeanPropertyRowMapper(Tousu.class));
if (list!=null){
for (Tousu tousu:list){
List<User> users = template.query("select * from user where id = ?" ,
new Object[]{tousu.getUser_id()}, new BeanPropertyRowMapper(User.class));
tousu.setUser(users.get(0));
}
return list;
}else{
return null;
}
}
public int getCountByUserId(Integer id) {
int count = template.queryForObject("select count(*) from tousu where user_id = "+id, Integer.class);
return count;
}
public int getPendingCountByUserId(Integer id) {
int count = template.queryForObject("select count(*) from tousu where status=0 and user_id = "+id, Integer.class);
return count;
}
public int getCount(Integer id) {
int count = template.queryForObject("select count(*) from tousu where user_id = "+id, Integer.class);
return count;
}
public List<Tousu> getAllToususByUser(int page, int limit, Integer id) {
List<Tousu> list = template.query("select * from tousu where user_id = ? limit ?,?" ,new Object[]{id,(page-1)*limit,limit},
new BeanPropertyRowMapper(Tousu.class));
if (!list.isEmpty()){
return list;
}else{
return null;
}
}
}
@RestController
public class DanyuanController {
@Autowired
DanyuanService service;
@GetMapping("/api/getAllDanyuans")
public ResBody getAllDanyuans(@RequestParam int page,
@RequestParam int limit) {
ResBody resBody = new ResBody();
int count = service.getCount();
List<Danyuan> list= service.getAllDanyuans(page, limit);
resBody.setCount(count);
resBody.setData(list);
resBody.setCode(0);
return resBody;
}
@PostMapping("/api/addDanyuan")
public ResBody addDanyuan(@RequestBody Danyuan danyuan) {
ResBody resBody = new ResBody();
int i = service.addDanyuan(danyuan);
if (i == 1){
resBody.setCode(200);
resBody.setMsg("添加成功");
}else{
resBody.setCode(500);
resBody.setMsg("添加失败");
}
return resBody;
}
@PostMapping("/api/updateDanyuan")
public ResBody updateDanyuan(@RequestBody Danyuan danyuan) {
ResBody resBody = new ResBody();
int i = service.updateDanyuan(danyuan);
if (i == 1){
resBody.setCode(200);
resBody.setMsg("修改成功");
}else{
resBody.setCode(500);
resBody.setMsg("修改失败");
}
return resBody;
}
@GetMapping("/api/delDanyuan")
public ResBody delDanyuan(@RequestParam int id) {
resBody.setCode(0);
return resBody;
}
@PostMapping("/api/addBuilding")
public ResBody addBuilding(@RequestBody Building building) {
ResBody resBody = new ResBody();
int i = service.addBuilding(building);
if (i == 1){
resBody.setCode(200);
resBody.setMsg("添加成功");
}else{
resBody.setCode(500);
resBody.setMsg("添加失败");
}
return resBody;
}
@PostMapping("/api/updateBuilding")
public ResBody updateBuilding(@RequestBody Building building) {
ResBody resBody = new ResBody();
int i = service.updateBuilding(building);
if (i == 1){
resBody.setCode(200);
resBody.setMsg("修改成功");
}else{
resBody.setCode(500);
resBody.setMsg("修改失败");
}
return resBody;
}
@GetMapping("/api/delBuilding")
public ResBody delBuilding(@RequestParam int id) {
ResBody resBody = new ResBody();
int i = service.delBuilding(id);
if (i == 1){
resBody.setCode(200);
resBody.setMsg("删除成功");
}else{
resBody.setCode(500);
resBody.setMsg("删除失败");
}
return resBody;
}
@GetMapping("/api/findBuilding")
public ResBody findBuilding(@RequestParam int page,
@GetMapping("/api/delRoom")
public ResBody delRoom(@RequestParam int id) {
ResBody resBody = new ResBody();
int i = service.delRoom(id);
if (i == 1){
resBody.setCode(200);
resBody.setMsg("删除成功");
}else{
resBody.setCode(500);
resBody.setMsg("删除失败");
}
return resBody;
}
@GetMapping("/api/findRoom")
public ResBody findBuilding(@RequestParam int page,
@RequestParam int limit,
@RequestParam String name) {
int count = 0;
List<Room> list= new ArrayList<>();
ResBody resBody = new ResBody();
if (name.isEmpty()){
count = service.getCount();
list= service.getAllRooms(page, limit);
}else {
count = service.getCount(name);
list= service.findRoom(page, limit,name);
}
resBody.setCount(count);
resBody.setData(list);
resBody.setCode(0);
return resBody;
}
@GetMapping("/ajax/getAllFreeRooms")
public ResBody getAllFreeRooms(@RequestParam int danyuan_id) {
ResBody resBody = new ResBody();
List<Room> list = service.getAllFreeRooms(danyuan_id);
resBody.setData(list);
resBody.setCode(0);
return resBody;
}
}
return resBody;
}
}
@RestController
public class AdminController {
@Autowired
AdminService service;
private static final Logger LOG = LoggerFactory.getLogger(AdminController.class);
@PostMapping("/admin/loginByPassword")
public ResBody loginByPassword(@RequestBody Map<String, Object> params,
HttpSession session) {
ResBody resBody = new ResBody();
String email = params.get("email").toString();
String password = params.get("password").toString();
Admin admin = service.findAdmin(email,password);
if (admin == null){
resBody.setCode(500);
resBody.setMsg("账号或密码错误,请重新登录");
}else {
session.setAttribute("admin",admin);
LOG.info(admin.toString());
resBody.setCode(200);
resBody.setMsg("登录成功");
}
return resBody;
}
@PostMapping("/admin/updatePass")
int i = service.updatePass(user.getId(),newPsw);
if (i != 1){
resBody.setCode(500);
resBody.setMsg("修改失败,后台出错");
}else {
session.setAttribute("user",user);
resBody.setCode(200);
resBody.setMsg("修改成功");
}
return resBody;
}
}
@RestController
public class User_PaymentController {
@Autowired
User_PaymentService service;
@GetMapping("/api/getAllPaymentDetails")
public ResBody getAllPaymentDetails(@RequestParam int page,
@RequestParam int limit, HttpSession session) {
User user = (User) session.getAttribute("user");
int count = 0;
List<User_Payment> list = new ArrayList<>();
if (user!=null){
int user_id=user.getId();
count = service.getCount(user_id);
list= service.getAllPaymentDetails(page, limit,user_id);
}else {
count = service.getCount();
list= service.getAllPaymentDetails(page, limit);
}
ResBody resBody = new ResBody();
resBody.setCount(count);
resBody.setData(list);
resBody.setCode(0);
return resBody;
}
}
List<Repair> list= service.getAllRepairsByUser(page, limit,user.getId());
int count = 0;
if (list != null){
count = list.size();
}
resBody.setCount(count);
resBody.setData(list);
resBody.setCode(0);
return resBody;
}
@PostMapping("/api/addRepair")
public ResBody addRepair(@RequestBody Repair repair,HttpSession session,HttpServletResponse response) throws IOException {
ResBody resBody = new ResBody();
User user = (User) session.getAttribute("user");
if (user!=null){
repair.setUser_id(user.getId());
}else {
session.setAttribute("timeout","登录已过期,请重新登录");
response.sendRedirect("/login");
}
int i = service.addRepair(repair);
if (i == 1){
resBody.setCode(200);
resBody.setMsg("添加成功");
}else{
resBody.setCode(500);
resBody.setMsg("添加失败");
}
return resBody;
}
@PostMapping("/api/updateRepair")
public ResBody updateRepair(@RequestBody Repair repair) {
ResBody resBody = new ResBody();
// 状态为未处理时,清除处理结果信息
if (repair.getStatus() == 0){
repair.setResult("");
}
int i = service.updateRepair(repair);
if (i == 1){
resBody.setCode(200);
resBody.setMsg("修改成功");
}else{
resBody.setCode(500);
resBody.setMsg("修改失败");
}
return resBody;
}
resBody.setCode(500);
resBody.setMsg("添加失败");
}
return resBody;
}
@PostMapping("/api/updateTousu")
public ResBody updateTousu(@RequestBody Tousu tousu) {
ResBody resBody = new ResBody();
if (tousu.getStatus() == 0){
tousu.setResult("");
}
int i = service.updateTousu(tousu);
if (i == 1){
resBody.setCode(200);
resBody.setMsg("修改成功");
}else{
resBody.setCode(500);
resBody.setMsg("修改失败");
}
return resBody;
}
@PostMapping("/api/updateMyComp")
public ResBody updateMyComp(@RequestBody Tousu tousu) {
ResBody resBody = new ResBody();
int i = service.updateMyComp(tousu);
if (i == 1){
resBody.setCode(200);
resBody.setMsg("修改成功");
}else{
resBody.setCode(500);
resBody.setMsg("修改失败");
}
return resBody;
}
@GetMapping("/api/delTousu")
public ResBody delTousu(@RequestParam int id) {
ResBody resBody = new ResBody();
int i = service.delTousu(id);
if (i == 1){
resBody.setCode(200);
resBody.setMsg("删除成功");
}else{
resBody.setCode(500);
resBody.setMsg("删除失败");
}
return resBody;
}
tousu.setUser(users.get(0));
}
return list;
}else{
return null;
}
}
public int getCountByUserId(Integer id) {
int count = template.queryForObject("select count(*) from tousu where user_id = "+id, Integer.class);
return count;
}
public int getPendingCountByUserId(Integer id) {
int count = template.queryForObject("select count(*) from tousu where status=0 and user_id = "+id, Integer.class);
return count;
}
public int getCount(Integer id) {
int count = template.queryForObject("select count(*) from tousu where user_id = "+id, Integer.class);
return count;
}
public List<Tousu> getAllToususByUser(int page, int limit, Integer id) {
List<Tousu> list = template.query("select * from tousu where user_id = ? limit ?,?" ,new Object[]{id,(page-1)*limit,limit},
new BeanPropertyRowMapper(Tousu.class));
if (!list.isEmpty()){
return list;
}else{
return null;
}
}
}
@RestController
int tousuCount = tousuService.getCount();
int userCount = userService.getCount();
int roomCount = roomService.getCount();
int roomFreeCount = roomService.getFreeCount();
int carCount = carService.getCount();
int carFreeCount = carService.getFreeCount();
int paymentCount = user_paymentService.getCount();
int paymentFreeCount = user_paymentService.getFreeCount();
model.addAttribute("gonggaoCount",gonggaoCount);
model.addAttribute("repairCount",repairCount);
model.addAttribute("tousuCount",tousuCount);
model.addAttribute("userCount",userCount);
model.addAttribute("roomCount",roomCount);
model.addAttribute("roomFreeCount",roomFreeCount);
model.addAttribute("carCount",carCount);
model.addAttribute("carFreeCount",carFreeCount);
model.addAttribute("paymentCount",paymentCount);
model.addAttribute("paymentFreeCount",paymentFreeCount);
return "page/console/console";
}
@GetMapping("/tpl-theme")
public String tpl(){
return "page/tpl/tpl-theme";
}
@GetMapping("/tpl-password")
public String password(){
return "page/tpl/tpl-password";
}
@GetMapping("/tpl-user-password")
public String reader_password(){
return "page/tpl/tpl-user-password";
}
@GetMapping("/tpl-note")
public String note(){
return "page/tpl/tpl-note";
}
@GetMapping("/user-info")
}
@PostMapping("/api/addGonggao")
public ResBody addGonggao(@RequestBody Gonggao gonggao, HttpSession session, HttpServletResponse response) throws IOException {
ResBody resBody = new ResBody();
Admin admin = (Admin) session.getAttribute("admin");
if(admin == null){
session.setAttribute("timeout","登录已过期,请重新登录");
response.sendRedirect("/login");
}
gonggao.setCreateTime(new Date());
gonggao.setCreateBy(admin.getId());
int i = service.addGonggao(gonggao);
if (i == 1){
resBody.setCode(200);
resBody.setMsg("添加成功");
}else{
resBody.setCode(500);
resBody.setMsg("添加失败");
}
return resBody;
}
@PostMapping("/api/updateGonggao")
public ResBody updateGonggao(@RequestBody Gonggao gonggao, HttpSession session,HttpServletResponse response) throws IOException {
ResBody resBody = new ResBody();
Admin admin = (Admin) session.getAttribute("admin");
if(admin == null){
session.setAttribute("timeout","登录已过期,请重新登录");
response.sendRedirect("/login");
}
gonggao.setUpdateTime(new Date());
gonggao.setUpdateBy(admin.getId());
int i = service.updateGonggao(gonggao);
if (i == 1){
resBody.setCode(200);
resBody.setMsg("修改成功");
}else{
resBody.setCode(500);
resBody.setMsg("修改失败");
}
return resBody;
}
@GetMapping("/api/delGonggao")
public ResBody delBuilding(@RequestParam int id) {
ResBody resBody = new ResBody();
int i = service.delGonggao(id);
if (i == 1){
resBody.setCode(200);
resBody.setMsg("删除成功");
}else{
resBody.setCode(500);
resBody.setMsg("删除失败");
@RestController
public class TousuController {
@Autowired
TousuService service;
@GetMapping("/api/getAllTousus")
public ResBody getAllTousus(@RequestParam int page,
@RequestParam int limit) {
ResBody resBody = new ResBody();
int count = service.getCount();
List<Tousu> list= service.getAllTousus(page, limit);
resBody.setCount(count);
resBody.setData(list);
resBody.setCode(0);
return resBody;
}
@GetMapping("/api/getAllToususByUser")
public ResBody getAllToususByUser(@RequestParam int page,
@RequestParam int limit, HttpSession session, HttpServletResponse response) throws IOException {
ResBody resBody = new ResBody();
User user = (User) session.getAttribute("user");
if( user == null){
session.setAttribute("timeout","登录已过期,请重新登录");
response.sendRedirect("/login");
}
List<Tousu> list= service.getAllToususByUser(page, limit,user.getId());
int count = 0;
if (list != null){
count = list.size();
}
resBody.setCount(count);
resBody.setData(list);
resBody.setCode(0);
return resBody;
}
public class BuildingController {
@Autowired
BuildingService service;
@GetMapping("/api/getAllBuildings")
public ResBody getAllBuildings(@RequestParam int page,
@RequestParam int limit) {
ResBody resBody = new ResBody();
int count = service.getCount();
List<Building> list= service.getAllBuildings(page, limit);
resBody.setCount(count);
resBody.setData(list);
resBody.setCode(0);
return resBody;
}
@PostMapping("/api/addBuilding")
public ResBody addBuilding(@RequestBody Building building) {
ResBody resBody = new ResBody();
int i = service.addBuilding(building);
if (i == 1){
resBody.setCode(200);
resBody.setMsg("添加成功");
}else{
resBody.setCode(500);
resBody.setMsg("添加失败");
}
return resBody;
}
@PostMapping("/api/updateBuilding")
public ResBody updateBuilding(@RequestBody Building building) {
ResBody resBody = new ResBody();
int i = service.updateBuilding(building);
if (i == 1){
resBody.setCode(200);
resBody.setMsg("修改成功");
}else{
resBody.setCode(500);
resBody.setMsg("修改失败");
}
return resBody;
}
@GetMapping("/api/delBuilding")
public ResBody delBuilding(@RequestParam int id) {
ResBody resBody = new ResBody();
@GetMapping("/api/jiaofei")
public ResBody jiaofei(@RequestParam int id) {
ResBody resBody = new ResBody();
int i = service.jiaofei(id);
if (i == 1){
resBody.setCode(200);
resBody.setMsg("成功");
}else {
resBody.setCode(500);
resBody.setMsg("失败");
}
return resBody;
}
@GetMapping("/api/remind")
public ResBody remind(@RequestParam int id) {
ResBody resBody = new ResBody();
int i = service.remind(id);
if (i == 1){
resBody.setCode(200);
resBody.setMsg("催缴成功");
}else {
resBody.setCode(500);
resBody.setMsg("催缴失败");
}
return resBody;
}
@GetMapping("/api/delUserPayment")
public ResBody delUserPayment(@RequestParam int id) {
ResBody resBody = new ResBody();
int i = service.delPayment(id);
if (i == 1){
resBody.setCode(200);
resBody.setMsg("删除成功");
}else{
resBody.setCode(500);
resBody.setMsg("删除失败");
}
}
resBody.setCount(count);
resBody.setData(list);
resBody.setCode(0);
return resBody;
}
@GetMapping("/api/searchMyPaymentsByStatus")
public ResBody searchMyPaymentsByStatus(@RequestParam int page,
@RequestParam int limit,
@RequestParam int status ,HttpSession session, HttpServletResponse response) throws IOException {
User user = (User) session.getAttribute("user");
int count = 0;
System.out.println(status);
List<User_Payment> list = new ArrayList<>();
if (user!=null){
int user_id=user.getId();
if(status==2){
count = service.getCount(user_id);
list= service.getAllPaymentDetails(page, limit,user_id);
}else {
count = service.getCount(user_id,status);
list= service.searchMyPaymentsByStatus(page,limit,user_id,status);
}
}else {
session.setAttribute("timeout","登录已过期,请重新登录");
response.sendRedirect("/login");
}
ResBody resBody = new ResBody();
resBody.setCount(count);
resBody.setData(list);
resBody.setCode(0);
return resBody;
}
@PostMapping("/api/fenpeiPayment")
public ResBody fenpeiPayment(@RequestBody User_Payment user_payment) {
ResBody resBody = new ResBody();
user_payment.setUser_id(user_payment.getId());
int i = service.fenpei(user_payment.getUser_id(),user_payment.getPayment_id(),user_payment.getValue());
if (i == 1){
resBody.setCode(200);
resBody.setMsg("添加成功");
}else{
resBody.setCode(500);
resBody.setMsg("账号已被停用,请联系管理员");
}
}
}
return resBody;
}
@PostMapping("/api/updatePass")
public ResBody updatePass(@RequestBody Map<String, Object> params,
HttpSession session) {
ResBody resBody = new ResBody();
String newPsw = params.get("newPsw").toString();
String newPsw2 = params.get("newPsw2").toString();
String oldPsw = params.get("oldPsw").toString();
System.out.println(newPsw);
System.out.println(newPsw2);
User user = (User) session.getAttribute("user");
System.out.println(user);
System.out.println(oldPsw);
if (!oldPsw.equals(user.getPassword())){
resBody.setCode(500);
resBody.setMsg("原始密码输入不正确");
return resBody;
}else if (!newPsw.equals(newPsw2)){
resBody.setCode(500);
resBody.setMsg("两次密码输入不一致");
return resBody;
}
user.setPassword(newPsw);
int i = service.updatePass(user.getId(),newPsw);
if (i != 1){
resBody.setCode(500);
resBody.setMsg("修改失败,后台出错");
}else {
session.setAttribute("user",user);
resBody.setCode(200);
resBody.setMsg("修改成功");
}
return resBody;
}
}