基于Java+SpringBoot+vue+element实现前后端分离房屋租赁系统详细设计

前言介绍:

       2021年处于信息科技高速发展的大背景之下。在今天,缺少手机和电脑几乎已经成为不可能的事情,人们生活中已经难以离开手机和电脑。针对增加的成本管理和操作,各大商家非常有必要建立自己的网上房屋租赁平台系统,这既可以让更多的人体验到网络所带来的方便,也有助于提高房屋的租赁。在经过几十年的高速发展后,互联网已成为最流行、最普及的媒体,每天的信息流量甚至能比得上过去十年。其以便捷的信息交换、快速的沟通速度,悄然地改变着会员的消费方式。简单、快捷、成本较低是互联网的特点,在互联网中,买家卖家不需要谋面也可以进行各种各样的交易活动,互联网商业化已经是当代经济的新趋势。 “电子商务”(电子商务或电子商务)的概念是在1996年前后在美国学术界提出的。经过数十年的经营,这个概念已经被广泛接受。B2B、C2C、C2B和B2C是电子商务的四类型型,但目前占据主流的是B2B和B2C两种。其中面向商家的管理模式称为B2B,它对商务系统的性能、安全和服务质量都要求十分严格;而直接面向消费者的模式称为B2C,也是我们所普遍接触的。到目前为止,电子商务的发展经历十余年仍然活力十足,电商应用就像雨后春笋一样冒出。

        我国已经成为世界第二大经济体,经济实力高速发展以及百姓生活水平的普遍提高,因此对房屋租赁也提出了更加严格的要求,如管理更加妥当、服务更加舒适等。而现在我们所能看到的房屋租赁数量也越来越多,信息量巨大,房屋租赁平台系统快速发展使得管理成本不断扩大。然而,传统的手工统计方式有许多缺点:实际时间差异、超负荷、高成本和信息0共享。而在网上房屋租赁平台系统正是当下各大商家为了适应时代发展所推出的互联网服务,以其方便高效的服务,在降低工作人员的劳动强度,也减少了很多繁琐的事情。

        本文所设计的在线房屋租赁平台系统就是在这种客观条件下进行的,是一项利民利国的、非常有价值的工作。在房屋租赁平台系统管理方面,传统的管理方式显然无法与在线房屋租赁平台系统相比,在线房屋租赁平台系统正发挥着越来越重要的作用。在线房屋租赁平台系统的速度快、信息量大、安全、简单都是传统模式难以企及的优点,正在发挥着越来越重要的作用。在本文中的在线房屋租赁平台系统是一个基于MySQL数据库和Java语言的。

功能设计:

主要功能实现:首页、个人中心、房屋类型管理、房屋租赁管理、会员管理、订单信息管理、合同信息管理、退房评价管理、管理员管理,系统管理等基本功能

系统结构设计: 整个系统是由多个功能模块组合而成的,要将所有的功能模块都一一列举出来,然后进行逐个的功能设计,使得每一个模块都有相对应的功能设计,然后进行系统整体的设计

本房屋租赁平台系统选择B/S结构(Browser/Server,浏览器/服务器结构)和基于Web服务两种模式。适合在互联网上进行操作,只要会员能连网,任何时间、任何地点都可以进行系统的操作使用。系统工作原理图如图所示: 

功能截图:

系统首页: 在系统首页可以查看首页、房屋租赁、公告信息、个人中心、后台管理、客服中心等内容

房租租赁: 在房屋租赁页面通过填写房屋名称、类型、图片、城市、地区、位置、朝向、楼层、楼号、设施、租金、押金、点击次数等信息进行提交

租赁详情:

公告信息:

个人中心:

客服管理:

订单信息:

合同信息:

后台管理员: 管理员登录进入房屋租赁平台系统可以查看首页、个人中心、房屋类型管理、房屋租赁管理、会员管理、订单信息管理、合同信息管理、退房评价管理、管理员管理,系统管理等信息

房屋类型: 在房屋类型管理页面中可以通过填写类型等内容进行修改

房屋租赁:

会员管理: 在会员管理页面中可以查看用户名、密码、姓名、性别、头像、手机、邮箱、身份证等信息,并可根据需要对已有会员管理进行修改或删除等操作

订单管理: 订单信息管理,在订单信息管理页面中可以查看订单编号、房屋名称、类型、图片、位置、朝向、楼层、楼号、租金、押金、总价格、租房日期、租房时长、信息备注、用户名、姓名、手机、身份证等信息,并可根据需要对已有订单信息管理进行修改或删除等详细操作


合同管理: 合同信息管理,在合同信息管理页面中可以查看合同编号、房屋名称、类型、图片、位置、楼号、租金、押金、租房日期、租房时长、合同日期、用户名、姓名、手机、身份证等内容,并且根据需要对已有合同信息管理进行详情,修改或删除等详细操作

系统资讯:


客服轮播图等

数据设计:

将数据库概念设计的E-R图转换为关系数据库。在关系数据库中,数据关系由数据表组成,但是表的结构表现在表的字段上。

表4-1 allusers表

列名 数据类型 长度 约束
id int 11 NOT NULL
username varchar 50  default NULL
pwd varchar 50  default NULL
cx varchar 50  default NULL

表4-2dingdanxinxi表

列名 数据类型 长度 约束
id int 11 NOT NULL
addtime varchar 50 default NULL
dingdanbianhao varchar 50 default NULL
fangwumingcheng varchar 50 default NULL
leixing varchar 50 default NULL
tupian varchar 50 default NULL
weizhi varchar 50 default NULL
chaoxiang varchar 50 default NULL
louceng varchar 50 default NULL
louhao varchar 50 default NULL
zujin varchar 50 default NULL
yajin varchar 50 default NULL
zongjiage varchar 50 default NULL
zufangriqi varchar 50 default NULL
zufangshizhang varchar 50 default NULL
xinxibeizhu varchar 50 default NULL
yonghuming varchar 50 default NULL
xingming varchar 50 default NULL
shouji varchar 50 default NULL
shenfenzheng varchar 50 default NULL
sfsh varchar 50 default NULL
shhf varchar 50 default NULL

表4-3:fangwuleixing表

列名 数据类型 长度 约束
id  int 11 NOT NULL
addtime varchar 50 default NULL
leixing varchar 50 default NULL

表4-4:huiyuan表

列名 数据类型 长度 约束
id  int 11 NOT NULL
addtime varchar 50 default NULL
yonghuming varchar 50 default NULL
mima varchar 50 default NULL
xingming varchar 50 default NULL
xingbie varchar 50 default NULL
touxiang varchar 50 default NULL
shouji varchar 50 default NULL
youxiang varchar 50 default NULL
shenfenzheng varchar 50 default NULL

代码实现:


/**
 * 房屋租赁
 * 后端接口
 * @author 
 * @email 
 * @date 2022-01-30 08:44:55
 */
@RestController
@RequestMapping("/fangwuzulin")
public class FangwuzulinController {
    @Autowired
    private FangwuzulinService fangwuzulinService;
    


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

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

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

	 /**
     * 查询
     */
    @RequestMapping("/query")
    public R query(FangwuzulinEntity fangwuzulin){
        EntityWrapper< FangwuzulinEntity> ew = new EntityWrapper< FangwuzulinEntity>();
 		ew.allEq(MPUtil.allEQMapPre( fangwuzulin, "fangwuzulin")); 
		FangwuzulinView fangwuzulinView =  fangwuzulinService.selectView(ew);
		return R.ok("查询房屋租赁成功").put("data", fangwuzulinView);
    }
	
    /**
     * 后端详情
     */
    @RequestMapping("/info/{id}")
    public R info(@PathVariable("id") Long id){
        FangwuzulinEntity fangwuzulin = fangwuzulinService.selectById(id);
		fangwuzulin.setClicknum(fangwuzulin.getClicknum()+1);
		fangwuzulin.setClicktime(new Date());
		fangwuzulinService.updateById(fangwuzulin);
        return R.ok().put("data", fangwuzulin);
    }

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



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

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

        fangwuzulinService.insert(fangwuzulin);
        return R.ok();
    }

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

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


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


}

复制代码

 论文参考:

第1章 绪   论

1.1课题背景

1.2 课题意义

1.3 开发工具及技术

1.4 国内外现状

第2章 系统分析

2.1 可行性分析

2.2总体设计原则

2.3系统需求分析

2.4 业务流程分析

2.5 数据流图

第3章 系统设计

3.1 系统功能设计

3.2 数据库设计

第4章 系统实现

4.1前台首页功能模块

4.2管理员功能模块

4.3会员功能模块

第5章 软件测试

5.1软件测试的重要性

5.2测试实例的研究与选择

5.3测试环境与测试条件

5.4系统运行情况

5.5系统评价

第6章 总结

参考文献:

致谢

获取源码:

大家点赞、收藏、关注、评论啦 、查看主页获取联系方式

打卡 文章 更新 251/  365天

猜你喜欢

转载自juejin.im/post/7082931370539892750