基于Springboot+Vue的租房系统

打印 上一主题 下一主题

主题 751|帖子 751|积分 2253

一、系统架构与技术栈

系统架构:该系统采用前后端分离的架构模式。后端以Springboot为焦点,实现业务逻辑处置处罚,并与数据库进行交互;前端则采用Vue.js构建动态用户界面。
后端技术:重要使用Java语言进行开发,使用Springboot框架的快速搭建、简化设置、进步开发效率和降低维护成本等优势。同时,采用Maven进行依靠管理,以及Spring Security和JWT来包管生意业务的安全性。
前端技术:Vue.js提供了相应式的组件化开发方式和简洁的语法结构,能够提供良好的用户体验和友好的界面筹划。前端还大概使用Element UI或其他UI框架来构建界面。
数据库:采用MySQL数据库来存储系统数据,MySQL具有稳定、高效、安全等特点,能够满意系统的数据存储和访问需求。
二、系统功能

用户网页:重要面向普通用户和房主。普通用户可以浏览房屋信息、搜刮房子、查看房子详情、进行预约看房、签订租赁合同、提交房屋报修和房屋评价等操纵。房主则可以发布和管理本身的房源信息,包括编辑房子形貌、价格、配套信息等,并处置处罚租客的预约和反馈。
管理后台:为管理员提供了房屋类型管理、房屋信息管理、房主管理等模块。管理员可以方便地添加、编辑和删除房屋类型,管理房屋信息的上下架和审核,以及查看和管理房主的信息和订单等。
游客功能:包括登录、注册(可以注册为房东或租客)、搜刮房子、查看房子信息、消息资讯查询等。游客可以根据价格范围、面积范围、都会、小区、整租或合租等条件搜刮房子信息。
租客功能:包括预定房子(创建订单、签订合同、支付订单)、订单管理(取消订单、查看订单、查看合同、退租)、我的家(查看当前有效订单的房子信息、查看合租环境)、反馈管理(提交反馈、查看反馈列表、删除反馈)、收藏管理(收藏房子、查看收藏列表、取消收藏)等。租客还可以修改个人信息、暗码,联系房东(自动给房东发邮件),以及进行求租和留言。
房东功能:包括房子管理(发布出租或编辑房子信息、删除房子、下架房子)、订单管理(查看订单列表、处置处罚退租、查看合同)、发布出租(包括标题、形貌、价格、各种配套信息、地图位置、轮播图等字段信息)、反馈管理等。房东同样可以修改个人信息和暗码,以及进行求租和留言。
部分代码

  1. package com.example.controller;
  2. import cn.hutool.core.util.StrUtil;
  3. import cn.hutool.crypto.SecureUtil;
  4. import com.example.common.Result;
  5. import com.example.common.ResultCode;
  6. import com.example.entity.Caiwu;
  7. import com.example.exception.CustomException;
  8. import com.example.service.CaiwuService;
  9. import com.example.utils.MapWrapperUtils;
  10. import com.example.utils.jwt.JwtUtil;
  11. import com.example.vo.CaiwuVo;
  12. import org.springframework.beans.BeanUtils;
  13. import org.springframework.web.bind.annotation.*;
  14. import javax.annotation.Resource;
  15. import javax.servlet.http.HttpServletRequest;
  16. import java.util.HashMap;
  17. import java.util.List;
  18. import java.util.Map;
  19. @RestController
  20. @RequestMapping(value = "/caiwu")
  21. public class CaiwuController {
  22.     @Resource
  23.     private CaiwuService caiwuService;
  24.     @PostMapping
  25.     public Result<Caiwu> add(@RequestBody CaiwuVo caiwu) {
  26.         caiwuService.add(caiwu);
  27.            return Result.success(caiwu);
  28.     }
  29.        
  30.        
  31.     @PostMapping("/deleteList")
  32.     public Result<Caiwu> deleteList(@RequestBody CaiwuVo caiwu) {
  33.         caiwuService.deleteList(caiwu.getList());
  34.         return Result.success();
  35.     }
  36.     @DeleteMapping("/{id}")
  37.     public Result delete(@PathVariable Long id) {
  38.         caiwuService.delete(id);
  39.         return Result.success();
  40.     }
  41.     @PutMapping
  42.     public Result update(@RequestBody CaiwuVo caiwu) {
  43.         caiwuService.update(caiwu);
  44.         return Result.success();
  45.     }
  46.     @GetMapping("/{id}")
  47.     public Result<Caiwu> detail(@PathVariable Integer id) {
  48.         Caiwu caiwu = caiwuService.findById(id);
  49.         return Result.success(caiwu);
  50.     }
  51.     @GetMapping
  52.     public Result<List<Caiwu>> all() {
  53.         return Result.success(caiwuService.list());
  54.     }
  55.     @PostMapping("/page")
  56.     public Result<CaiwuVo> page(@RequestBody CaiwuVo caiwuVo) {
  57.         return Result.success(caiwuService.findPage(caiwuVo));
  58.     }
  59.             @PostMapping("/login")
  60.     public Result login(@RequestBody Caiwu caiwu, HttpServletRequest request) {
  61.         if (StrUtil.isBlank(caiwu.getZhanghao()) || StrUtil.isBlank(caiwu.getMima())) {
  62.             throw new CustomException(ResultCode.PARAM_LOST_ERROR);
  63.         }
  64.         Caiwu login = caiwuService.login(caiwu);
  65. //        if(!login.getStatus()){
  66. //            return Result.error("1001","状态限制,无法登录系统");
  67. //        }
  68.         if(login != null) {
  69.             HashMap hashMap = new HashMap();
  70.             hashMap.put("user", login);
  71.             Map<String, Object> map = MapWrapperUtils.builder(MapWrapperUtils.KEY_USER_ID,caiwu.getId());
  72.             String token = JwtUtil.creatToken(map);
  73.             hashMap.put("token", token);
  74.             return Result.success(hashMap);
  75.         }else {
  76.             return Result.error();
  77.         }
  78.     }
  79.     @PutMapping("/updatePassword")
  80.     public Result updatePassword(@RequestBody Caiwu info, HttpServletRequest request) {
  81.         Caiwu caiwu = caiwuService.findById(info.getId());
  82.         String oldPassword = SecureUtil.md5(info.getMima());
  83.         if (!oldPassword.equals(caiwu.getMima())) {
  84.             return Result.error(ResultCode.PARAM_PASSWORD_ERROR.code, ResultCode.PARAM_PASSWORD_ERROR.msg);
  85.         }
  86.         info.setMima(SecureUtil.md5(info.getNewPassword()));
  87.         Caiwu caiwu1 = new Caiwu();
  88.         BeanUtils.copyProperties(info, caiwu1);
  89.         caiwuService.update(caiwu1);
  90.         return Result.success();
  91.     }
  92. }
复制代码
效果图





















三、系统特点与优势

前后端分离:系统采用前后端分离的架构模式,使得前端和后端可以独立开发和摆设,进步了系统的可维护性和扩展性。
安全性高:系统整合了Spring Security和JWT,包管了生意业务的安全性,使得用户可以放心地进行房屋租赁操纵。
用户体验好:Vue.js构建的动态用户界面提供了良好的用户体验和友好的界面筹划,使得用户可以轻松地找到得当本身的房源并进行相关操纵。
功能全面:系统提供了房屋浏览、预约看房、合同签订、房屋报修、房屋评价等全面功能,满意了用户从租房到入住的全流程需求。
易于扩展和维护:系统采用了模块化的开发方法,允许未来根据市场需求快速添加新功能,同时也方便了系统的维护和升级。
四、应用场景

该系统适用于各种房屋租赁场景,如大学生租房、都会白领租房、家庭租房等。通过该系统,用户可以快速地找到合适的房源,房主可以方便地发布和管理本身的房源信息,管理员则可以高效地进行业务管理和数据分析。
综上所述,基于Springboot+Vue的租房系统是一个功能全面、易于扩展和维护的在线平台,它充分使用了Springboot和Vue.js的优势,提供了流畅的用户交互体验和强大的房源管理功能。

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

宝塔山

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表