springboot096基于springboot的租房管理系统设计与实现 源码分享

博主介绍:专注于Java(springboot ssm 等开发框架) vue  .net  php phython node.js    uniapp 微信小程序 等诸多技术领域和毕业项目实战、企业信息化系统建设,从业十五余年开发设计教学工作
☆☆☆ 精彩专栏推荐订阅☆☆☆☆☆不然下次找不到哟
我的博客空间发布了2000+毕设题目 方便大家学习使用
感兴趣的可以先收藏起来,还有大家在毕设选题,项目以及论文编写等相关问题都可以给我留言咨询,希望帮助更多的人
文末下方有源码获取地址

4.2系统结构

本系统是基于B/S架构的网站系统,设计的功能结构图如下图所示:

图4-2功能结构图

4.3.数据库设计

4.3.1数据库实体

概念设计的目标是设计出反映某个组织部门信息需求的数据库系统概念模式,数据库系统的概念模式独立于数据库系统的逻辑结构、独立于数据库管理系统(DBMS)、独立于计算机系统。

概念模式的设计方法是在需求分析的基础上,用概念数据模型(例如E-R模型)表示数据及数据之间的相互联系,设计出反映用户信息需求和处理需求的数据库系统概念模式。概念设计的目标是准确描述应用领域的信息模式,支持用户的各种应用,这样既容易转换为数据库系统逻辑模式,又容易为用户理解。数据库系统概念模式是面向现实世界的数据模型,不能直接用于数据库系统的实现。在此阶段,用户可以参与和评价数据库系统的设计,从而有利于保证数据库系统的设计与用户的需求相吻合。在概念模式的设计中,E-R模型法是最常见的设计方法。本系统的E-R图如下图所示:

4.3.2数据库设计表

租房管理系统需要后台数据库,下面介绍数据库中的各个表的详细信息:

表4.1 订单信息

字段

类型

默认

注释

id (主键)

bigint(20)

主键

addtime

timestamp

CURRENT_TIMESTAMP

创建时间

zukezhanghao

varchar(200)

NULL

租客账号

zukexingming

varchar(200)

NULL

租客姓名

fangwubianhao

varchar(200)

NULL

房屋编号

fangwumingcheng

varchar(200)

NULL

房屋名称

fangwudizhi

varchar(200)

NULL

房屋地址

zulinjiage

int(11)

NULL

租赁价格

ruzhuriqi

datetime

NULL

入住日期

beizhu

longtext

NULL

备注

lianxidianhua

varchar(200)

NULL

联系电话

wuzhuzhanghao

varchar(200)

NULL

屋主账号

sfsh

varchar(200)

是否审核

shhf

longtext

NULL

审核回复

ispay

varchar(200)

未支付

是否支付

表4. 2房源信息评论表

字段

类型

默认

注释

id (主键)

bigint(20)

主键

addtime

timestamp

CURRENT_TIMESTAMP

创建时间

refid

bigint(20)

关联表id

userid

bigint(20)

用户id

nickname

varchar(200)

NULL

用户名

content

longtext

评论内容

reply

longtext

NULL

回复内容

表4. 3房源信息

字段

类型

默认

注释

id (主键)

bigint(20)

主键

addtime

timestamp

CURRENT_TIMESTAMP

创建时间

fangwubianhao

varchar(200)

NULL

房屋编号

fangwumingcheng

varchar(200)

NULL

房屋名称

fangwudizhi

varchar(200)

NULL

房屋地址

fangwuzhuangtai

varchar(200)

NULL

房屋状态

fangwutedian

varchar(200)

NULL

房屋特点

fangwujieshao

longtext

NULL

房屋介绍

chengjiaoliang

varchar(200)

NULL

成交量

zulinjiage

int(11)

NULL

租赁价格

xiangqing

longtext

NULL

详情

fangwuzhaopian

varchar(200)

NULL

房屋照片

wuzhuzhanghao

varchar(200)

NULL

屋主账号

wuzhuxingming

varchar(200)

NULL

屋主姓名

lianxidianhua

varchar(200)

NULL

联系电话

sfsh

varchar(200)

是否审核

shhf

longtext

NULL

审核回复

thumbsupnum

int(11)

0

crazilynum

int(11)

0

clicktime

datetime

NULL

最近点击时间

clicknum

int(11)

0

点击次数

表4.4 留言板

字段

类型

默认

注释

id (主键)

bigint(20)

主键

addtime

timestamp

CURRENT_TIMESTAMP

创建时间

userid

bigint(20)

留言人id

username

varchar(200)

NULL

用户名

content

longtext

留言内容

reply

longtext

NULL

回复内容

表4. 5房屋资讯

字段

类型

默认

注释

id (主键)

bigint(20)

主键

addtime

timestamp

CURRENT_TIMESTAMP

创建时间

title

varchar(200)

标题

introduction

longtext

NULL

简介

picture

varchar(200)

图片

content

longtext

内容

表4. 6收藏表

字段

类型

默认

注释

id (主键)

bigint(20)

主键

addtime

timestamp

CURRENT_TIMESTAMP

创建时间

userid

bigint(20)

用户id

refid

bigint(20)

NULL

收藏id

tablename

varchar(200)

NULL

表名

name

varchar(200)

收藏名称

picture

varchar(200)

收藏图片

表4. 7通知公告

字段

类型

默认

注释

id (主键)

bigint(20)

主键

addtime

timestamp

CURRENT_TIMESTAMP

创建时间

biaoti

varchar(200)

NULL

标题

neirong

longtext

NULL

内容

faburen

varchar(200)

NULL

发布人

faburiqi

date

NULL

发布日期

tupian

varchar(200)

NULL

图片

表4.8 管理员表

字段

类型

默认

注释

id (主键)

bigint(20)

主键

username

varchar(100)

用户名

password

varchar(100)

密码

role

varchar(100)

管理员

角色

addtime

timestamp

CURRENT_TIMESTAMP

新增时间

表4.9 屋主

字段

类型

默认

注释

id (主键)

bigint(20)

主键

addtime

timestamp

CURRENT_TIMESTAMP

创建时间

wuzhuzhanghao

varchar(200)

屋主账号

mima

varchar(200)

密码

wuzhuxingming

varchar(200)

屋主姓名

fangwumingcheng

varchar(200)

NULL

房屋名称

xingbie

varchar(200)

NULL

性别

lianxidianhua

varchar(200)

NULL

联系电话

youxiang

varchar(200)

NULL

邮箱

shenfenzheng

varchar(200)

NULL

身份证

表4.10 屋主回复

字段

类型

默认

注释

id (主键)

bigint(20)

主键

addtime

timestamp

CURRENT_TIMESTAMP

创建时间

zukezhanghao

varchar(200)

NULL

租客账号

zukexingming

varchar(200)

NULL

租客姓名

fangwubianhao

varchar(200)

NULL

房屋编号

fangwumingcheng

varchar(200)

NULL

房屋名称

huifuneirong

longtext

NULL

回复内容

huifushijian

date

NULL

回复时间

wuzhuxingming

varchar(200)

NULL

屋主姓名

wuzhuzhanghao

varchar(200)

NULL

屋主账号

表4.11 屋主申诉

字段

类型

默认

注释

id (主键)

bigint(20)

主键

addtime

timestamp

CURRENT_TIMESTAMP

创建时间

zukezhanghao

varchar(200)

NULL

租客账号

zukexingming

varchar(200)

NULL

租客姓名

fangwubianhao

varchar(200)

NULL

房屋编号

fangwumingcheng

varchar(200)

NULL

房屋名称

shensuneirong

longtext

NULL

申诉内容

shensuzhuangtai

varchar(200)

NULL

申诉状态

shensushijian

date

NULL

申诉时间

wuzhuzhanghao

varchar(200)

NULL

屋主账号

wuzhuxingming

varchar(200)

NULL

屋主姓名

sfsh

varchar(200)

是否审核

shhf

longtext

NULL

审核回复

表4.12 预约看房

字段

类型

默认

注释

id (主键)

bigint(20)

主键

addtime

timestamp

CURRENT_TIMESTAMP

创建时间

wuzhuzhanghao

varchar(200)

NULL

屋主账号

wuzhuxingming

varchar(200)

NULL

屋主姓名

fangwubianhao

varchar(200)

NULL

房屋编号

fangwumingcheng

varchar(200)

NULL

房屋名称

fangwudizhi

varchar(200)

NULL

房屋地址

yuyueshijian

datetime

NULL

预约时间

beizhu

longtext

NULL

备注

zukezhanghao

varchar(200)

NULL

租客账号

shouji

varchar(200)

NULL

手机

sfsh

varchar(200)

是否审核

shhf

longtext

NULL

审核回复

表4.13 租客

字段

类型

默认

注释

id (主键)

bigint(20)

主键

addtime

timestamp

CURRENT_TIMESTAMP

创建时间

zukezhanghao

varchar(200)

租客账号

mima

varchar(200)

密码

zukexingming

varchar(200)

租客姓名

xingbie

varchar(200)

NULL

性别

shouji

varchar(200)

NULL

手机

youxiang

varchar(200)

NULL

邮箱

shenfenzheng

varchar(200)

NULL

身份证

表4.14 租客评价

字段

类型

默认

注释

id (主键)

bigint(20)

主键

addtime

timestamp

CURRENT_TIMESTAMP

创建时间

wuzhuzhanghao

varchar(200)

NULL

屋主账号

fangwubianhao

varchar(200)

NULL

房屋编号

fangwumingcheng

varchar(200)

NULL

房屋名称

pingjialeixing

varchar(200)

NULL

评价类型

pingjianeirong

longtext

NULL

评价内容

pingjiashijian

date

NULL

评价时间

zukezhanghao

varchar(200)

NULL

租客账号

zukexingming

varchar(200)

NULL

租客姓名

5系统详细实现

5.1 管理员模块的实现

5.1.1 订单信息管理

租房管理系统的系统管理员可以管理订单,可以对订单信息审核,删除以及查询操作。具体界面的展示如图5.1所示。

图5.1 订单信息管理界面

5.1.2 屋主申诉管理

系统管理员可以查看对屋主申诉信息进行审核,修改,删除以及查询操作。具体界面如图5.2所示。

图5.2 屋主申诉信息管理界面

5.2 屋主模块的实现

5.2.1 房源信息管理

屋主可以对房源信息进行添加,修改,删除以及查询操作。界面如下图所示:

图5.3 房源信息管理界面

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.FangyuanxinxiEntity;
import com.entity.view.FangyuanxinxiView;

import com.service.FangyuanxinxiService;
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-05-02 12:00:50
 */
@RestController
@RequestMapping("/fangyuanxinxi")
public class FangyuanxinxiController {
    @Autowired
    private FangyuanxinxiService fangyuanxinxiService;
    


    /**
     * 后端列表
     */
    @RequestMapping("/page")
    public R page(@RequestParam Map<String, Object> params,FangyuanxinxiEntity fangyuanxinxi,
		HttpServletRequest request){
		String tableName = request.getSession().getAttribute("tableName").toString();
		if(tableName.equals("wuzhu")) {
			fangyuanxinxi.setWuzhuzhanghao((String)request.getSession().getAttribute("username"));
		}
        EntityWrapper<FangyuanxinxiEntity> ew = new EntityWrapper<FangyuanxinxiEntity>();
		PageUtils page = fangyuanxinxiService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, fangyuanxinxi), params), params));

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

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

	 /**
     * 查询
     */
    @RequestMapping("/query")
    public R query(FangyuanxinxiEntity fangyuanxinxi){
        EntityWrapper< FangyuanxinxiEntity> ew = new EntityWrapper< FangyuanxinxiEntity>();
 		ew.allEq(MPUtil.allEQMapPre( fangyuanxinxi, "fangyuanxinxi")); 
		FangyuanxinxiView fangyuanxinxiView =  fangyuanxinxiService.selectView(ew);
		return R.ok("查询房源信息成功").put("data", fangyuanxinxiView);
    }
	
    /**
     * 后端详情
     */
    @RequestMapping("/info/{id}")
    public R info(@PathVariable("id") Long id){
        FangyuanxinxiEntity fangyuanxinxi = fangyuanxinxiService.selectById(id);
		fangyuanxinxi.setClicknum(fangyuanxinxi.getClicknum()+1);
		fangyuanxinxi.setClicktime(new Date());
		fangyuanxinxiService.updateById(fangyuanxinxi);
        return R.ok().put("data", fangyuanxinxi);
    }

    /**
     * 前端详情
     */
    @RequestMapping("/detail/{id}")
    public R detail(@PathVariable("id") Long id){
        FangyuanxinxiEntity fangyuanxinxi = fangyuanxinxiService.selectById(id);
		fangyuanxinxi.setClicknum(fangyuanxinxi.getClicknum()+1);
		fangyuanxinxi.setClicktime(new Date());
		fangyuanxinxiService.updateById(fangyuanxinxi);
        return R.ok().put("data", fangyuanxinxi);
    }
    


    /**
     * 赞或踩
     */
    @RequestMapping("/thumbsup/{id}")
    public R vote(@PathVariable("id") String id,String type){
        FangyuanxinxiEntity fangyuanxinxi = fangyuanxinxiService.selectById(id);
        if(type.equals("1")) {
        	fangyuanxinxi.setThumbsupnum(fangyuanxinxi.getThumbsupnum()+1);
        } else {
        	fangyuanxinxi.setCrazilynum(fangyuanxinxi.getCrazilynum()+1);
        }
        fangyuanxinxiService.updateById(fangyuanxinxi);
        return R.ok("投票成功");
    }

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

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

    /**
     * 删除
     */
    @RequestMapping("/delete")
    public R delete(@RequestBody Long[] ids){
        fangyuanxinxiService.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<FangyuanxinxiEntity> wrapper = new EntityWrapper<FangyuanxinxiEntity>();
		if(map.get("remindstart")!=null) {
			wrapper.ge(columnName, map.get("remindstart"));
		}
		if(map.get("remindend")!=null) {
			wrapper.le(columnName, map.get("remindend"));
		}

		String tableName = request.getSession().getAttribute("tableName").toString();
		if(tableName.equals("wuzhu")) {
			wrapper.eq("wuzhuzhanghao", (String)request.getSession().getAttribute("username"));
		}

		int count = fangyuanxinxiService.selectCount(wrapper);
		return R.ok().put("count", count);
	}
	
	/**
     * 前端智能排序
     */
	@IgnoreAuth
    @RequestMapping("/autoSort")
    public R autoSort(@RequestParam Map<String, Object> params,FangyuanxinxiEntity fangyuanxinxi, HttpServletRequest request,String pre){
        EntityWrapper<FangyuanxinxiEntity> ew = new EntityWrapper<FangyuanxinxiEntity>();
        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", "clicknum");
        params.put("order", "desc");
		PageUtils page = fangyuanxinxiService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, fangyuanxinxi), params), params));
        return R.ok().put("data", page);
    }


}

5.2.1 订单信息管理

屋主可以对订单信息进行添加修改删除操作,还可以对订单信息进行查询。界面如下图所示:

图5.4 订单管理界面

源码下载地址:

springboot096基于springboot的租房管理系统.rar资源-CSDN文库

大家点赞、收藏、关注、评论啦  其他的定制服务 商务合作  下方联系卡片↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓ 或者私信作者

基于SSM框架开发的SSM员工婚恋交友平台是一个专为企事业单位员工打造的婚恋交友平台。它结合了当前流行的SpringSpringMVC和MyBatis三大框架技术,为系统的稳定性、可扩展性和易维护性提供了有力保障。该平台旨在帮助员工扩大社交圈子,寻找合适的伴侣,从而提高员工的幸福感和归属感。 该平台具有丰富的功能模块,包括用户管理、婚恋交友、活动管理、消息推送等。用户管理模块实现了用户的注册、登录、认证、授权等功能,确保用户信息的安全性和隐私性。婚恋交友模块为用户提供了多种交友方式,如在线征友、缘分匹配、兴趣小组等,帮助用户快速找到合适的对象。活动管理模块则支持举办各类线下活动,如聚餐、旅行、运动等,增加用户间的互动和交流。消息推送模块则通过短信、邮件等方式,及时将最新动态和活动信息推送给用户。 该平台的界面设计简洁大方,操作流程清晰明了,用户体验良好。同时,平台还具备强大的后台管理系统,管理员可以对用户、活动、消息等进行高效的管理和维护。此外,该平台还支持二次开发定制,可以根据企事业单位的实际需求进行功能扩展和个性化定制,以满足不同场景下的使用需求。 总之,基于SSM框架开发的SSM员工婚恋交友平台是一个集实用性、安全性、易用性和可扩展性于一体的婚恋交友平台。它不仅可以满足企事业单位员工的婚恋交友需求,还可以作为一个有效的福利措施,提高员工的满意度和忠诚度。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

翰文编程

你的鼓励 是我最大的动力

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

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

打赏作者

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

抵扣说明:

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

余额充值