当前位置: 首页 > news >正文

基于SpringBoot+Vue的前后端分离的房屋租赁系统2

✌全网粉丝20W+,csdn特邀作者、博客专家、CSDN新星计划导师、java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌

🍅文末获取项目下载方式🍅


一、项目背景介绍:

开发过程中,我们注意到目前租房市场存在一些问题,如信息不对称、租金纠纷、租赁合同管理不规范等。为了解决这些问题,我们决定开发一个全新的房屋租赁系统。

首先,我们选择了SpringBoot作为后端框架。SpringBoot是一个快速开发、简化配置的Java开发框架,它提供了丰富的功能和强大的生态系统,可以帮助我们快速搭建稳定、高效的后端服务。同时,SpringBoot也具有良好的扩展性和可维护性,方便后期系统的升级和维护。

其次,为了提供良好的用户体验和友好的界面,我们选择了Vue作为前端框架。Vue是一种轻量级、渐进式的JavaScript框架,它具有简单易学、灵活高效的特点,可以帮助我们快速构建交互式的前端页面。通过Vue的组件化开发方式,我们可以更好地管理和复用前端代码,提高开发效率。

在系统的设计中,我们注重用户体验和功能完善。用户可以通过系统浏览各种房源信息,并进行筛选、比较和预订。同时,系统还提供了租赁合同管理、支付结算和评价反馈等功能,以保证租房过程的安全和顺利进行。

总之,基于SpringBoot+Vue的前后端分离架构,该房屋租赁系统具有稳定、高效的性能,同时提供了丰富的功能和良好的用户体验。我们希望通过这个系统,能够为用户提供一个便捷、安全的房屋租赁服务平台,促进租房市场的健康发展。

二、项目技术简介:

  1. JAVA:Java是一门面向对象编程语言,不仅吸收了C++语言的各种优点,还摒弃了C++里难以理解的多继承、指针等概念,因此Java语言具有功能强大和简单易用两个特征。Java语言作为静态面向对象编程语言的代表,极好地实现了面向对象理论,允许程序员以优雅的思维方式进行复杂的编程。
  2. Vue:Vue (发音为 /vjuː/,类似 view) 是一款用于构建用户界面的JavaScript框架。它基于标准HTML、CSS和JavaScript构建,并提供了一套声明式的、组件化的编程模型,帮助开发者高效地开发用户界面。
    Vue是一个独立的社区驱动的项目,它是由尤雨溪在2014年作为其个人项目创建, 是一个成熟的、经历了无数实战考验的框架,它是目前生产环境中使用最广泛的JavaScript框架之一,可以轻松处理大多数web应用的场景,并且几乎不需要手动优化,并且Vue完全有能力处理大规模的应用。
  3. Element-UI:Element,一套为开发者、设计师和产品经理准备的基于 Vue 2.0 的桌面端组件库。
  4. Spring:Spring框架是一个开放源代码的J2EE应用程序框架,由Rod Johnson发起,是针对bean的生命周期进行管理的轻量级容器(lightweight container)。 Spring解决了开发者在J2EE开发中遇到的许多常见的问题,提供了功能强大IOC、AOP及Web MVC等功能。Spring可以单独应用于构筑应用程序,也可以和Struts、Webwork、Tapestry等众多Web框架组合使用,并且可以与 Swing等桌面应用程序AP组合。因此, Spring不仅仅能应用于J2EE应用程序之中,也可以应用于桌面应用程序以及小应用程序之中。Spring框架主要由七部分组成,分别是 Spring Core、 Spring AOP、 Spring ORM、 Spring DAO、Spring Context、 Spring Web和 Spring Web MVC。
  5. SpringBoot:Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程。该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置。通过这种方式,Spring Boot致力于在蓬勃发展的快速应用开发领域(rapid application development)成为领导者。
  6. Mybatis-Plus:MyBatis-Plus(简称 MP)是一个 MyBatis的增强工具,在 MyBatis 的基础上只做增强不做改变,为 简化开发、提高效率而生。

三、系统功能模块介绍:

444

四、数据库设计:

1:apply(apply)

字段名类型默认值列注释
apply_idintNULL申请看房
house_idvarcharNULL
addressvarcharNULL
areadoubleNULL
pricedoubleNULL
apply_datedatetimeNULL
statusvarcharNULL
user_idintNULL

2:applyout(applyout)

字段名类型默认值列注释
aoidintNULL退租申请
house_idvarcharNULL
addressvarcharNULL
statusvarcharNULL
user_idintNULL

3:checkout(checkout)

字段名类型默认值列注释
cidintNULL退租申请
house_idvarcharNULL
addressvarcharNULL
statusvarcharNULL
user_idintNULL

4:hetong(hetong)

字段名类型默认值列注释
idintNULL
chuzuvarcharNULL
chuzu_idcardvarcharNULL
zukevarcharNULL
zuke_idcardvarcharNULL
fromdatevarcharNULL
todatevarcharNULL
pricedoubleNULL
addressvarcharNULL
house_idvarcharNULL
paydayintNULL

5:houselist(houselist)

字段名类型默认值列注释
idintNULL
houseidvarcharNULL
addressvarcharNULL
areadoubleNULL
pricedoubleNULL
statusvarcharNULL

6:music(music)

字段名类型默认值列注释
namevarcharNULL
urlvarcharNULL
artistvarcharNULL
covervarcharNULL

7:paid(paid)

字段名类型默认值列注释
idintNULL已缴租金
house_idvarcharNULL
addressvarcharNULL
pricedoubleNULL
datedateNULL
paydatedateNULL
namevarcharNULL
user_idintNULL
statusvarcharNULL

8:schedule(schedule)

字段名类型默认值列注释
idintNULL
datevarcharNULL
contenttextNULL

9:solve(solve)

字段名类型默认值列注释
idintNULL
house_idvarcharNULL
addressvarcharNULL
datetimestampNULL
detailtextNULL
namevarcharNULL
user_idintNULL
statusvarcharNULL

10:topaid(topaid)

字段名类型默认值列注释
idintNULL
house_idvarcharNULL
addressvarcharNULL
pricedoubleNULL
datedateNULL
namevarcharNULL
user_idintNULL
statusvarcharNULL

11:user(user)

字段名类型默认值列注释
idintNULL
usernamevarcharNULL
passwordvarcharNULL
typevarcharNULL
nicknamevarcharNULL

12:userlist(userlist)

字段名类型默认值列注释
idintNULL
namevarcharNULL
idcardvarcharNULL
phonevarcharNULL
user_idintNULL
nicknamevarcharNULL昵称

13:wrong(wrong)

字段名类型默认值列注释
idintNULL
house_idvarcharNULL
addressvarcharNULL
datetimestampNULL
detailtextNULL
namevarcharNULL
user_idintNULL
statusvarcharNULL

14:zulist(zulist)

字段名类型默认值列注释
zidintNULL
house_idvarcharNULL
pricedoubleNULL
addressvarcharNULL
user_idintNULL
contract_idintNULL

五、功能模块:

登录:在登录界面用户可以选择当前登录的权限是房东还是租客,选在对应的权限然后输入账号密码进入到的系统所能使用的功能是不一致的

登录

房东首页-日程提醒:

房东首页-日程提醒

房源菜单:房源列表用于管理房源,添加房源菜单用于添加房源

image-20231201150003639

租赁及合同信息:在租列表可以查看合同/修改合同打印合同/终止合同

image-20231201150205035

image-20231201150215049

看房及退租记录:

image-20231201150324245

image-20231201150331947

保障模块:

image-20231201150351561

租金信息:我要收租/租客待缴租金/租客已经缴租金

image-20231201150450775

租金信息:查看日程/ 添加日程

image-20231201150523669

房源菜单:房源列表

image-20231201150554880

租赁及合同信息:在租列表/已退租列表

image-20231201150616006

看房及退租记录:看房记录/退租记录

image-20231201150630772

保障模块:我要保障/待处理保障/已经处理保障

image-20231201150716242

租金信息:待缴租金/已缴租金

image-20231201150743470

六、代码示例:


@GetMapping("/captchaImage")
public AjaxResult getCode(HttpServletResponse response) throws IOException
{AjaxResult ajax = AjaxResult.success();boolean captchaEnabled = configService.selectCaptchaEnabled();ajax.put("captchaEnabled", captchaEnabled);if (!captchaEnabled){return ajax;} // 保存验证码信息String uuid = IdUtils.simpleUUID();String verifyKey = CacheConstants.CAPTCHA_CODE_KEY + uuid;String capStr = null, code = null;BufferedImage image = null;String captchaType = RuoYiConfig.getCaptchaType();if ("math".equals(captchaType)){String capText = captchaProducerMath.createText();capStr = capText.substring(0, capText.lastIndexOf("@"));code = capText.substring(capText.lastIndexOf("@") + 1);image = captchaProducerMath.createImage(capStr);}else if ("char".equals(captchaType)){capStr = code = captchaProducer.createText();image = captchaProducer.createImage(capStr);}redisCache.setCacheObject(verifyKey, code, Constants.CAPTCHA_EXPIRATION, TimeUnit.MINUTES);// 转换流信息写出FastByteArrayOutputStream os = new FastByteArrayOutputStream();try{ImageIO.write(image, "jpg", os);}catch (IOException e){return AjaxResult.error(e.getMessage());}ajax.put("uuid", uuid);ajax.put("img", Base64.encode(os.toByteArray()));return ajax;}
/**
通用的本地文件上传
@param multipartFile 文件对象@return 文件访问链接URL*/
@PostMapping("/file")
public SimpleResponse uploadImg(@RequestParam("file") MultipartFile file) {// 文件后缀String suffix = file.getOriginalFilename().substring(file.getOriginalFilename().lastIndexOf(".") + 1);File savePathFile = new File(newTomcatFolder);if (!savePathFile.exists()) {// 若不存在该目录,则创建目录savePathFile.mkdir();}// 通过UUID生成唯一文件名String filename = UUID.randomUUID() + "." + suffix;try {// 将文件保存指定目录file.transferTo(new File(newTomcatFolder + filename));} catch (Exception e) {e.printStackTrace();return SimpleResponse.error("保存文件异常");}// 返回访问链接return SimpleResponse.success(newTomcatHost + filename);
}
/**用户登录*/
@PostMapping("/login")
public ReturnMsg manageLogin(@RequestBody Map<String, String> param) {if (StrUtil.isEmpty(param.get("username")) || StrUtil.isEmpty(param.get("password"))) {return ReturnMsg.error("用户名或密码错误!");}ManageDTO manageDTO = new ManageDTO();manageDTO.setUserName(param.get("username"));manageDTO.setPassWord(param.get("password"));QueryWrapper<ManageDTO> manageDTOQueryWrapper = new QueryWrapper<>(manageDTO);manageDTOQueryWrapper.last("limit 1");ManageDTO adminDTOS = manageService.getOne(manageDTOQueryWrapper);if (adminDTOS == null) return ReturnMsg.error("用户名或密码错误!");Map<String, Object> map = new HashMap<>();map.put("avatar", StrUtil.isNotBlank(adminDTOS.getPhotoImg()) ? adminDTOS.getPhotoImg() : "https://wpimg.wallstcn.com/f778738c-e4f8-4870-b634-56703b4acafe.gif");map.put("introduction", adminDTOS.getName() + ",你好!");map.put("name", adminDTOS.getName());map.put("roles", Arrays.asList("admin"));map.put("type", adminDTOS.getStatus());Map<String, String> returnMap = new HashMap<>();String uuid = UUID.randomUUID().toString();returnMap.put("token", uuid);userInfoMap.put(uuid, JSON.toJSONString(map));return ReturnMsg.ok(returnMap);
}

七、项目总结:

之前在教材内容读书过程中开发设计技术专业知识,对研究过程的认知,对开发设计设计课程学习,及其如何有效开展系统的市场分析和设计。老师还选了更具有标志性管理方案系统来解读教学过程,课下安排工作使们进行练习。在这段时间,老师还应当掌握系统地完成和测试。应对餐厅点餐管理系统的开发,的脑海里的确有一个清晰的认知。在系统制做及配套文本文件撰写中,按照软件开发流程一步步做好本职工作。

从系统的角度看,依据餐厅点餐管理系统生产,其艰难在于功能清楚、系统构造设计、设计使用性能数据库系统、挑选核心技术进行系统功能等,这种都是自己的难题。针对这一艰难,实行了一些防范措施。当也不知道系统的功能时,在网上找到很多相似的系统,做好记录了一些系统的一般功能,并用了这一系统的高效功能的一部分。除此之外,在在网络上得到了很多关于系统设计的前提知识,包含系统模块划分、设计规范、数据库表的设计和创建,及其程序流程编码的专业技能知识,包含撰写与使用数据和信息加上、删掉和变更编码控制器。在系统序号进行相关功能后,认真的试了系统中所有功能,最后发现自己研发的系统符合规定,能接受。系统功能与系统剖析设计高度一致,系统质量稳定。为应对客户的实际操作不正确,还设有不恰当反馈机制,系统性能稳定。唯一的最大的缺点是系统数据报表的设计不健全,字段名称相匹配的引用类型不正确,一部分系统编码很多地方并没有注解,编码不足简易。

从文本文件的角度看,依据基于SpringBoot+Vue的前后端分离的房屋租赁系统生产后,应叙述生产过程的需求,包含怎样进行数据分析报告、怎样进行系统设计及其系统功能的具体运作实际效果。在这期间,用了接近一个月的时间来做。要实现院校标准化的文档排版标准,多次在老师的建议下学习办公软件使用和排版设计设计。坚持就是收益。经过长时间的的撰写和优化,的文档终于完成。

总而言之,尽管制做经历了太多阶段,但如果认真完成这件事情,们将在每一个环节得到许多知识,在每一个环节的操作过程中锻练们自己的实践技能。根据该项目的制做,开始明白,许多知识不但来源于书籍,来源于教师在课堂教学中讲的知识,还来源于各种网络学习平台和社会实践。到现在为止,将继续努力,维持新知识的深入学习习惯性

八、源码获取:

大家点赞、收藏、关注、评论啦 、查看👇🏻👇🏻👇🏻获取项目下载链接,博主联系方式👇🏻👇🏻👇🏻

链接点击直达:下载链接

http://www.lryc.cn/news/250508.html

相关文章:

  • PHPExcel 导出Excel报错:PHPExcel_IOFactory::load()
  • Jmeter-分布式压测(远程启动服务器,windows)
  • 【C++】string类模拟实现过程中值得注意的点
  • 大数据湖项目建设方案:文档全文101页,附下载
  • 通付盾Web3专题 | SharkTeam:起底朝鲜APT组织Lazarus Group,攻击手法及洗钱模式
  • <蓝桥杯软件赛>零基础备赛20周--第8周第1讲--十大排序
  • 数据增强让模型更健壮
  • Redis远程字典服务
  • Hdoop学习笔记(HDP)-Part.15 安装HIVE
  • vue3+element-plus之el-date-picker日期选择器清空无回调的解决方案
  • 【虚拟机】Docker基础 【二】
  • CSS 绝对定位问题和粘性定位介绍
  • matlab 计算两点云之间的放缩倍数
  • MySQL-数据库设计与实现
  • 后端返回图片流前端展示图片
  • 解决 from . import _imaging as core ImportError: DLL load failed: 找不到指定的模块。
  • springBoot3.2 + jdk21 + GraalVM上手体验
  • Python float(input())的用法,web中的应用
  • uniapp是否可以用elementUI等前端UI库、使用步骤以及需要注意的问题
  • 在vue中如何书写 SSR 友好的代码
  • 开源与闭源:数字时代大模型之辩
  • 卷积神经网络(VGG-16)猫狗识别
  • Mysql 行转列,把逗号分隔的字段拆分成多行
  • 基于单片机设计的智能水泵控制器
  • 反转链表的实现
  • python之pyqt专栏6-信号与槽2
  • C语言中一些特殊字符的输出
  • Opencv制作电子签名(涉及知识点:像素过滤,图片通用resize函数,像素大于某个阈值则赋值为其它的像素值)
  • 【漏洞复现】大华智慧园区综合管理平台deleteFtp接口远程命令执行
  • Unity Image - 镜像