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

一、🚀选题背景介绍

📚推荐理由: 计进行房屋租赁工作的管理,不仅能够保证各项信息准确无误、快速输出,同时计算机具有手工管理所无法比拟的优点,例如:检索迅速、查找方便、可靠性高、存储量大、保密性好、寿命长、成本低等。这些优点能够极大地提高物业管理的效率,也是企业的科学化、正规化管理,与世界接轨的重要条件。

二、📝项目功能介绍

基于SpringBootVue房屋租赁系统

角色:管理员、用户、房东

🎩管理员:统计图表展示、个人中心、用户管理、房东管理、房源类型管理、房源信息管理、在线咨询管理、预约信息管理、订单信息管理 交流论坛、轮播图管理

🎩用户:房屋信息推荐、健身商品推荐、登录注册、公告咨询、 交流论坛、分类、查询、收藏、咨询房子、预约看房、租赁房子、评价

🎩房东:修改密码、个人信息修改、房源信息管理、在线咨询管理、预约信息管理、订单信息管理

三、📝项目技术介绍

开发语言:Java后端: SpringBoot+Mybatis-Plus前端:Vue + Vue Router + ELementUI + Axios开发工具:IDEA,Eclipse,Myeclipse都可以。推荐IDEA,vscodeJDK版本:1.8数据库: MySQL8.0版本以上项目管理:MavenNode版本:14

四、📝项目运行截图

1.房屋租赁首页
1.1房屋推荐

1.2房屋信息

1.3房屋咨询、租赁、预约看房

2.房屋租赁后台
2.1后台登录界面

2.2后台管理首页

2.3用户管理

2.4房屋管理

2.5订单管理

3.参考文档

本项目是前后端分离开发,可以学习拓展等等!

🎩如下截图参考文档方便学习

4.代码实现
```java
/*** 房东* 后端接口* @author * @email * @date */
@RestController
@RequestMapping("/fangdong")
public class FangdongController {@Autowiredprivate FangdongService fangdongService;@Autowiredprivate TokenService tokenService;/*** 登录*/@IgnoreAuth@RequestMapping(value = "/login")public R login(String username, String password, String captcha, HttpServletRequest request) {FangdongEntity u = fangdongService.selectOne(new EntityWrapper<FangdongEntity>().eq("fangdongzhanghao", username));if(u==null || !u.getMima().equals(password)) {return R.error("账号或密码不正确");}String token = tokenService.generateToken(u.getId(), username,"fangdong",  "房东" );return R.ok().put("token", token);}/*** 注册*/@IgnoreAuth@RequestMapping("/register")public R register(@RequestBody FangdongEntity fangdong){//ValidatorUtils.validateEntity(fangdong);FangdongEntity u = fangdongService.selectOne(new EntityWrapper<FangdongEntity>().eq("fangdongzhanghao", fangdong.getFangdongzhanghao()));if(u!=null) {return R.error("注册用户已存在");}Long uId = new Date().getTime();fangdong.setId(uId);fangdongService.insert(fangdong);return R.ok();}/*** 退出*/@RequestMapping("/logout")public R logout(HttpServletRequest request) {request.getSession().invalidate();return R.ok("退出成功");}/*** 获取用户的session用户信息*/@RequestMapping("/session")public R getCurrUser(HttpServletRequest request){Long id = (Long)request.getSession().getAttribute("userId");FangdongEntity u = fangdongService.selectById(id);return R.ok().put("data", u);}/*** 密码重置*/@IgnoreAuth@RequestMapping(value = "/resetPass")public R resetPass(String username, HttpServletRequest request){FangdongEntity u = fangdongService.selectOne(new EntityWrapper<FangdongEntity>().eq("fangdongzhanghao", username));if(u==null) {return R.error("账号不存在");}u.setMima("123456");fangdongService.updateById(u);return R.ok("密码已重置为:123456");}/*** 后端列表*/@RequestMapping("/page")public R page(@RequestParam Map<String, Object> params,FangdongEntity fangdong,HttpServletRequest request){EntityWrapper<FangdongEntity> ew = new EntityWrapper<FangdongEntity>();PageUtils page = fangdongService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, fangdong), params), params));return R.ok().put("data", page);}/*** 前端列表*/@IgnoreAuth@RequestMapping("/list")public R list(@RequestParam Map<String, Object> params,FangdongEntity fangdong, HttpServletRequest request){EntityWrapper<FangdongEntity> ew = new EntityWrapper<FangdongEntity>();PageUtils page = fangdongService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, fangdong), params), params));return R.ok().put("data", page);}/*** 列表*/@RequestMapping("/lists")public R list( FangdongEntity fangdong){EntityWrapper<FangdongEntity> ew = new EntityWrapper<FangdongEntity>();ew.allEq(MPUtil.allEQMapPre( fangdong, "fangdong")); return R.ok().put("data", fangdongService.selectListView(ew));}/*** 查询*/@RequestMapping("/query")public R query(FangdongEntity fangdong){EntityWrapper< FangdongEntity> ew = new EntityWrapper< FangdongEntity>();ew.allEq(MPUtil.allEQMapPre( fangdong, "fangdong")); FangdongView fangdongView =  fangdongService.selectView(ew);return R.ok("查询房东成功").put("data", fangdongView);}/*** 后端详情*/@RequestMapping("/info/{id}")public R info(@PathVariable("id") Long id){FangdongEntity fangdong = fangdongService.selectById(id);return R.ok().put("data", fangdong);}/*** 前端详情*/@IgnoreAuth@RequestMapping("/detail/{id}")public R detail(@PathVariable("id") Long id){FangdongEntity fangdong = fangdongService.selectById(id);return R.ok().put("data", fangdong);}/*** 后端保存*/@RequestMapping("/save")public R save(@RequestBody FangdongEntity fangdong, HttpServletRequest request){fangdong.setId(new Date().getTime()+new Double(Math.floor(Math.random()*1000)).longValue());//ValidatorUtils.validateEntity(fangdong);FangdongEntity u = fangdongService.selectOne(new EntityWrapper<FangdongEntity>().eq("fangdongzhanghao", fangdong.getFangdongzhanghao()));if(u!=null) {return R.error("用户已存在");}fangdong.setId(new Date().getTime());fangdongService.insert(fangdong);return R.ok();}/*** 前端保存*/@RequestMapping("/add")public R add(@RequestBody FangdongEntity fangdong, HttpServletRequest request){fangdong.setId(new Date().getTime()+new Double(Math.floor(Math.random()*1000)).longValue());//ValidatorUtils.validateEntity(fangdong);FangdongEntity u = fangdongService.selectOne(new EntityWrapper<FangdongEntity>().eq("fangdongzhanghao", fangdong.getFangdongzhanghao()));if(u!=null) {return R.error("用户已存在");}fangdong.setId(new Date().getTime());fangdongService.insert(fangdong);return R.ok();}/*** 修改*/@RequestMapping("/update")@Transactionalpublic R update(@RequestBody FangdongEntity fangdong, HttpServletRequest request){//ValidatorUtils.validateEntity(fangdong);fangdongService.updateById(fangdong);//全部更新return R.ok();}/*** 删除*/@RequestMapping("/delete")public R delete(@RequestBody Long[] ids){fangdongService.deleteBatchIds(Arrays.asList(ids));return R.ok();}

五、📝ER图、数据流图

👇🏻

此源码非开源,若需要此源码可扫码添加微信进行咨询!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/593877.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

实用技巧:如何取消app的截屏禁用

因为我想要在小鹅通App做笔记,但是被小鹅通App禁用截屏了,这真是一个很糟糕的使用体验,虽然可能是为了保护商家权益…… 方法1 可以让商家设置课程可以截屏 方法2 手机root,安装Xposed框架,利用Xposed框架上面的插件我们可以对手机进行高度定制化,而安装Xposed框架的…

【Python基础教程】5. 数

&#x1f388;个人主页&#xff1a;豌豆射手^ &#x1f389;欢迎 &#x1f44d;点赞✍评论⭐收藏 &#x1f917;收录专栏&#xff1a;python基础教程 &#x1f91d;希望本文对您有所裨益&#xff0c;如有不足之处&#xff0c;欢迎在评论区提出指正&#xff0c;让我们共同学习、…

第33关 使用gin开发webhook转发服务,实现prometheus和falco的钉钉、企业微信、飞书报警发送

------> 课程视频同步分享在今日头条和B站 大家好&#xff0c;我是博哥爱运维。 出这期视频&#xff0c;也是为了给第30关的falco公开课补一个坑&#xff0c;关于falco报警这块这期将补上&#xff0c;同时&#xff0c;对于这个gin开发的webhook服务源码这块&#xff0c;计划…

leetcode刷题-代码训练营-第7章-回溯算法1

回溯法模板 void backtracking(参数) {if (终止条件) {存放结果;return;}for (选择&#xff1a;本层集合中元素&#xff08;树中节点孩子的数量就是集合的大小&#xff09;) {处理节点;backtracking(路径&#xff0c;选择列表); // 递归回溯&#xff0c;撤销处理结果} }理解 从…

力扣108. 将有序数组转换为二叉搜索树

Problem: 108. 将有序数组转换为二叉搜索树 文章目录 题目描述思路复杂度Code 题目描述 思路 根据二叉搜索树中序遍历为一个有序序列的特点得到&#xff1a; 1.定义左右下标left&#xff0c;right分别指向有序序列的头尾&#xff1b; 2.每次取出left和right的中间节点mid&…

Lafida多目数据集实测

Lafida 数据集 paper&#xff1a;J. Imaging | Free Full-Text | LaFiDa—A Laserscanner Multi-Fisheye Camera Dataset 官网数据&#xff1a;https://www.ipf.kit.edu/english/projekt_cv_szenen.php 官网&#xff1a;KIT-IPF-Software and Datasets - LaFiDa 标定数据下载&…

位运算-191. 位1的个数- 136. 只出现一次的数字

位1的个数 已解答 简单 相关标签 相关企业 编写一个函数&#xff0c;输入是一个无符号整数&#xff08;以二进制串的形式&#xff09;&#xff0c;返回其二进制表达式中 设置位 的个数&#xff08;也被称为汉明重量&#xff09;。 示例 1&#xff1a; 输入&#xff1a;n 11 输…

【Unity每日一记】如何从0到1将特效图集制作成一个特效

&#x1f468;‍&#x1f4bb;个人主页&#xff1a;元宇宙-秩沅 &#x1f468;‍&#x1f4bb; hallo 欢迎 点赞&#x1f44d; 收藏⭐ 留言&#x1f4dd; 加关注✅! &#x1f468;‍&#x1f4bb; 本文由 秩沅 原创 &#x1f468;‍&#x1f4bb; 收录于专栏&#xff1a;Uni…

HTTPS跟HTTP有区别吗?

HTTPS和HTTP的区别&#xff0c;白话一点说就是&#xff1a; 1. 安全程度&#xff1a; - HTTP&#xff1a;就像是你和朋友面对面聊天&#xff0c;说的话大家都能听见&#xff08;信息明文传输&#xff0c;容易被偷听&#xff09;。 - HTTPS&#xff1a;就像是你们俩戴着加密耳机…

Google视觉机器人超级汇总:从RT、RT-2到AutoRT、SARA-RT、RT-Trajectory

前言 随着对视觉语言机器人研究的深入&#xff0c;发现Google的工作很值得深挖&#xff0c;比如RT-2 ​想到很多工作都是站在Google的肩上做产品和应用&#xff0c;​Google真是科技进步的核心推动力&#xff0c;做了大量大模型的基础设施&#xff0c;服 故有了本文&#xf…

【Linux】网络基础常识{OSI七层模型/ TCP/IP / 端口号 /各种协议}

文章目录 1.网络常识1.0DHCP协议1. 1IP地址/MAC地址/ARP协议是什么&#xff1f;IP/MACARP&#xff1a;IP ⇒ MAC 1.2手机连接wifi的原理 SSID与BSSID手机连接wifiSSID与BSSID 1.3手机如何通过“数据/流量”上网&#xff1f;1.4电脑连接wifi的原理&#xff1f;电脑通过热点上网…

数据结构和算法:十大排序

排序算法 排序算法用于对一组数据按照特定顺序进行排列。排序算法有着广泛的应用&#xff0c;因为有序数据通常能够被更高效地查找、分析和处理。 排序算法中的数据类型可以是整数、浮点数、字符或字符串等。排序的判断规则可根据需求设定&#xff0c;如数字大小、字符 ASCII…