基于SSM+vue社区物业管理系统源码和论文

本文主要介绍了基于SSM框架和Vue开发的物业管理系统,涵盖了用户管理、楼盘管理、收费管理、停车管理、业主管理和报修投诉管理等功能,同时展示了部分关键控制器类的接口实现,如LoupanController中的CRUD操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

基于SSM+vue社区物业管理系统源码和论文223

 开发工具:idea 或eclipse
 数据库mysql5.7+
 数据库链接工具:navcat,小海豚等
  技术:ssm

主要内容:

1、系统管理模块:

在系统管理中,用户可以对使用该系统用户进行用户添加、删除、查询以及修改密码等操作,方便了管理员对使用该软件人员的管理。

2、楼盘管理模块:

楼盘管理提供了对楼房的添加、删除及查询等管理。可以方便的对楼盘的租、售及剩余楼盘资料的管理查询。

3、收费管理模块:

收费管理功能解决了长期困扰物业管理公司的一大难题, 物业公 司不用再为繁杂的计算工作发愁。用户对每一项收费项目设定计算方法、收费时间后,系统能够自动按设定的方法计算收费金额,并按定义的格式批量打印收费通知单;对于欠款住户,系统自动计算滞纳金。

4、停车管理模块:

停车管理模块可以对业主的车辆进行集中管理,物业提供了一个专门的车位,对出库、入库的车辆进行登记,以保证业主车辆的安全。

5、业主管理模块:

系统对业主姓名、地址、联系方式进行全面的登记管理。

6、报修管理模块:

报修管理包括维修小区的公共设施以及各位业主需要物业帮忙维修的设施。

7、投诉管理模块:

投诉管理是对于一些保安或是设施维修时间拖太久而设定的,在业主的监督

下,把物业管理的更好,更棒!

数据库用MySQL,后台用ssm框架,前端用js html jsp

package com.controller;

import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Calendar;
import java.util.Map;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Date;
import java.util.List;
import javax.servlet.http.HttpServletRequest;

import com.utils.ValidatorUtils;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.format.annotation.DateTimeFormat;
import org.springframework.web.bind.annotation.PathVariable;
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.RestController;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.baomidou.mybatisplus.mapper.Wrapper;
import com.annotation.IgnoreAuth;

import com.entity.LoupanEntity;
import com.entity.view.LoupanView;

import com.service.LoupanService;
import com.service.TokenService;
import com.utils.PageUtils;
import com.utils.R;
import com.utils.MD5Util;
import com.utils.MPUtil;
import com.utils.CommonUtil;


/**
 * 楼盘
 * 后端接口
 * @author 
 * @email 
 * @date 2021-04-17 21:23:57
 */
@RestController
@RequestMapping("/loupan")
public class LoupanController {
    @Autowired
    private LoupanService loupanService;
    


    /**
     * 后端列表
     */
    @RequestMapping("/page")
    public R page(@RequestParam Map<String, Object> params,LoupanEntity loupan, 
		HttpServletRequest request){

        EntityWrapper<LoupanEntity> ew = new EntityWrapper<LoupanEntity>();
		PageUtils page = loupanService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, loupan), params), params));
        return R.ok().put("data", page);
    }
    
    /**
     * 前端列表
     */
	@IgnoreAuth
    @RequestMapping("/list")
    public R list(@RequestParam Map<String, Object> params,LoupanEntity loupan, HttpServletRequest request){
        EntityWrapper<LoupanEntity> ew = new EntityWrapper<LoupanEntity>();
		PageUtils page = loupanService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, loupan), params), params));
        return R.ok().put("data", page);
    }

	/**
     * 列表
     */
    @RequestMapping("/lists")
    public R list( LoupanEntity loupan){
       	EntityWrapper<LoupanEntity> ew = new EntityWrapper<LoupanEntity>();
      	ew.allEq(MPUtil.allEQMapPre( loupan, "loupan")); 
        return R.ok().put("data", loupanService.selectListView(ew));
    }

	 /**
     * 查询
     */
    @RequestMapping("/query")
    public R query(LoupanEntity loupan){
        EntityWrapper< LoupanEntity> ew = new EntityWrapper< LoupanEntity>();
 		ew.allEq(MPUtil.allEQMapPre( loupan, "loupan")); 
		LoupanView loupanView =  loupanService.selectView(ew);
		return R.ok("查询楼盘成功").put("data", loupanView);
    }
	
    /**
     * 后端详情
     */
    @RequestMapping("/info/{id}")
    public R info(@PathVariable("id") Long id){
        LoupanEntity loupan = loupanService.selectById(id);
		loupan.setClicktime(new Date());
		loupanService.updateById(loupan);
        return R.ok().put("data", loupan);
    }

    /**
     * 前端详情
     */
	@IgnoreAuth
    @RequestMapping("/detail/{id}")
    public R detail(@PathVariable("id") Long id){
        LoupanEntity loupan = loupanService.selectById(id);
		loupan.setClicktime(new Date());
		loupanService.updateById(loupan);
        return R.ok().put("data", loupan);
    }
    



    /**
     * 后端保存
     */
    @RequestMapping("/save")
    public R save(@RequestBody LoupanEntity loupan, HttpServletRequest request){
    	loupan.setId(new Date().getTime()+new Double(Math.floor(Math.random()*1000)).longValue());
    	//ValidatorUtils.validateEntity(loupan);

        loupanService.insert(loupan);
        return R.ok();
    }
    
    /**
     * 前端保存
     */
    @RequestMapping("/add")
    public R add(@RequestBody LoupanEntity loupan, HttpServletRequest request){
    	loupan.setId(new Date().getTime()+new Double(Math.floor(Math.random()*1000)).longValue());
    	//ValidatorUtils.validateEntity(loupan);

        loupanService.insert(loupan);
        return R.ok();
    }

    /**
     * 修改
     */
    @RequestMapping("/update")
    public R update(@RequestBody LoupanEntity loupan, HttpServletRequest request){
        //ValidatorUtils.validateEntity(loupan);
        loupanService.updateById(loupan);//全部更新
        return R.ok();
    }
    

    /**
     * 删除
     */
    @RequestMapping("/delete")
    public R delete(@RequestBody Long[] ids){
        loupanService.deleteBatchIds(Arrays.asList(ids));
        return R.ok();
    }
    
    /**
     * 提醒接口
     */
	@RequestMapping("/remind/{columnName}/{type}")
	public R remindCount(@PathVariable("columnName") String columnName, HttpServletRequest request, 
						 @PathVariable("type") String type,@RequestParam Map<String, Object> map) {
		map.put("column", columnName);
		map.put("type", type);
		
		if(type.equals("2")) {
			SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
			Calendar c = Calendar.getInstance();
			Date remindStartDate = null;
			Date remindEndDate = null;
			if(map.get("remindstart")!=null) {
				Integer remindStart = Integer.parseInt(map.get("remindstart").toString());
				c.setTime(new Date()); 
				c.add(Calendar.DAY_OF_MONTH,remindStart);
				remindStartDate = c.getTime();
				map.put("remindstart", sdf.format(remindStartDate));
			}
			if(map.get("remindend")!=null) {
				Integer remindEnd = Integer.parseInt(map.get("remindend").toString());
				c.setTime(new Date());
				c.add(Calendar.DAY_OF_MONTH,remindEnd);
				remindEndDate = c.getTime();
				map.put("remindend", sdf.format(remindEndDate));
			}
		}
		
		Wrapper<LoupanEntity> wrapper = new EntityWrapper<LoupanEntity>();
		if(map.get("remindstart")!=null) {
			wrapper.ge(columnName, map.get("remindstart"));
		}
		if(map.get("remindend")!=null) {
			wrapper.le(columnName, map.get("remindend"));
		}


		int count = loupanService.selectCount(wrapper);
		return R.ok().put("count", count);
	}
	
	/**
     * 前端智能排序
     */
	@IgnoreAuth
    @RequestMapping("/autoSort")
    public R autoSort(@RequestParam Map<String, Object> params,LoupanEntity loupan, HttpServletRequest request,String pre){
        EntityWrapper<LoupanEntity> ew = new EntityWrapper<LoupanEntity>();
        Map<String, Object> newMap = new HashMap<String, Object>();
        Map<String, Object> param = new HashMap<String, Object>();
		Iterator<Map.Entry<String, Object>> it = param.entrySet().iterator();
		while (it.hasNext()) {
			Map.Entry<String, Object> entry = it.next();
			String key = entry.getKey();
			String newKey = entry.getKey();
			if (pre.endsWith(".")) {
				newMap.put(pre + newKey, entry.getValue());
			} else if (StringUtils.isEmpty(pre)) {
				newMap.put(newKey, entry.getValue());
			} else {
				newMap.put(pre + "." + newKey, entry.getValue());
			}
		}
		params.put("sort", "clicktime");
        
        params.put("order", "desc");
		PageUtils page = loupanService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, loupan), params), params));
        return R.ok().put("data", page);
    }


}

 

本项目使用IDEA作为IDE,bootstrap(HTML5 CSS JS)做前端,springMVC做后端,mySQL做数据库。 UI请使用蓝色白色为主色调。不用做得太华丽,做得像一个正常的毕设就行。 首先是登录,分为业主管理员两种身份。不同的身份看到的模块数量内容不一样。 系统管理模块,我设想的是每个人对自己这个账户的基本信息的修改。这一部分我不太确定,可以适当自由添加一点功能。 楼盘管理,业主只能看到自己的住房信息。管理员这边,可以显示这个小区有哪些大楼,选择大楼可以看到大楼内部有哪些房间,还可以显示这些房间与哪些业主相关联(即被谁买下),可以查找指定业主的住房。管理员可以添加、删除、更新业主房屋的关联(表示入住或者搬离)。 收费管理,初步想法是管理员向业主发出收费通知(物业、水电等),可以向所有业主群发,也可以向指定业主发送。业主的界面会收到通知,业主线下缴费后线上确认,然后管理员确认即可完成缴费全过程。 停车管理,业主只能看到自己的车位信息。管理员界面显示小区内所有车位,以及这些车位的状态,无人归属或者归谁所有,可以查找指定业主的车位,或者指定车位的业主。可以添加、更新删除业主车位的关联(表示购买车位、车位转让、车位到期等)。 业主管理,业主看不到这个模块。业主注册时向管理员发出信号,管理员批准后业主注册正式完成。该模块可以显示有哪些业主,业主的基本信息。管理员也可以删除业主的账号(表示业主已经搬离该小区,与小区没有关联了)。 保修投诉两个模块是类似的,业主在自己这里发出具体的请求,管理员界面可以看到这些请求。管理员可以接受请求,等待线下任务完成后,业主确认完成后,管理员确认完成,即正式完成,本次保修、投诉结束。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

程序猿毕业分享网

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值