课程设计|Springboot+vue前后端分离的租房网站

开发语言:Java
开发工具:IDEA /Eclipse
数据库:MYSQL5.7
应用服务:Tomcat7/Tomcat8
使用框架:springboot+vue
JDK版本:jdk1.8
本系统有管理员;首页、个人中心、用户管理、房屋类型管理、房屋信息管理、预约看房管理、在线签约管理、租赁评价管理、交流论坛、系统管理,用户;首页、个人中心、预约看房管理、在线签约管理、租赁评价管理、我的收藏管理,前台首页;首页、房屋信息、交流论坛、房屋资讯、个人中心、后台管理、在线客服等功能。
系统流程分析
用户需要拥有属于自己的账号和密码,且必须正确,这样才能顺利登录到系统中。进入网站后,用户可以自行查询信息,在租房信息的详情页面,可以直接进行操作。具体流程如下图
课程设计|Springboot+vue前后端分离的租房网站
文章图片

为了保证系统的安全性,要使用本系统对系统信息进行管理,必须先登陆到系统中。其具体登录流程图如图
课程设计|Springboot+vue前后端分离的租房网站
文章图片

系统体系结构
租房网站的结构图
课程设计|Springboot+vue前后端分离的租房网站
文章图片

登录系统结构图
课程设计|Springboot+vue前后端分离的租房网站
文章图片

系统结构图,如图
课程设计|Springboot+vue前后端分离的租房网站
文章图片

前台首页功能模块
租房网站,在租房网站可以查看首页、房屋信息、交流论坛、房屋资讯、个人中心、后台管理、在线客服等内容,如图

课程设计|Springboot+vue前后端分离的租房网站
文章图片

课程设计|Springboot+vue前后端分离的租房网站
文章图片

用户登录、用户注册,通过注册获取用户名、密码、姓名、手机、身份证等信息进行注册、登录,如图课程设计|Springboot+vue前后端分离的租房网站
文章图片

用户登录
课程设计|Springboot+vue前后端分离的租房网站
文章图片

房屋信息
课程设计|Springboot+vue前后端分离的租房网站
文章图片

预约看房,在预约看房页面可以查看预约编号、房屋名称、房屋类型、图片、面积、房屋状态、小区、月租价格、租赁月数、租赁金额、押金、预约日期、用户名、手机、身份证等信息进行提交如图
课程设计|Springboot+vue前后端分离的租房网站
文章图片

交流论坛
课程设计|Springboot+vue前后端分离的租房网站
文章图片

房屋资讯
课程设计|Springboot+vue前后端分离的租房网站
文章图片

个人中心
课程设计|Springboot+vue前后端分离的租房网站
文章图片

在线客服
课程设计|Springboot+vue前后端分离的租房网站
文章图片

管理员登录
【课程设计|Springboot+vue前后端分离的租房网站】管理员输入个人的用户名、密码、角色登录系统,这时候系统的数据库就会在进行查找相关的信息,如果我们输入的用户名、密码、角色不正确,数据库就会提示出错误的信息提示,同时会提示管理员重新输入自己的用户名、密码、角色,直到账号密码输入成功后,会提登录成功的信息。网站管理员登录效果图如图

管理员功能模块
用户管理
管理员对用户管理进行详情、删除、修改操作。程序成效图如下图
课程设计|Springboot+vue前后端分离的租房网站
文章图片

房屋类型管理
管理员对房屋类型管理进行详情、删除、修改操作。程序效果图如下图
课程设计|Springboot+vue前后端分离的租房网站
文章图片

房屋信息管理
管理员对房屋信息管理进行详情、修改以及删除等操作。程序效果图如下图
课程设计|Springboot+vue前后端分离的租房网站
文章图片

房屋资讯
管理员对房屋资讯进行详情、删除、修改以及查看等操作。程序效果图如下图
课程设计|Springboot+vue前后端分离的租房网站
文章图片

预约看房管理
管理员可以对预约看房管理进行修改、详情等操作。程序效果图如下图
课程设计|Springboot+vue前后端分离的租房网站
文章图片

在线签约管理
管理员可以对在线签约管理进行修改、详情等操作。程序效果图如下图
课程设计|Springboot+vue前后端分离的租房网站
文章图片

交流论坛
管理员可以对交流论坛进行修改、详情等操作。程序效果图如下图
课程设计|Springboot+vue前后端分离的租房网站
文章图片

用户功能模块
用户进入系统可以对首页、个人中心、预约看房管理、在线签约管理、租赁评价管理、我的收藏管理进行相对应操作。程序成效图如下图
课程设计|Springboot+vue前后端分离的租房网站
文章图片

预约看房管理
用户通过预约看房管理进行详情、修改、删除等操作。程序效果图如下图
课程设计|Springboot+vue前后端分离的租房网站
文章图片

在线签约管理
用户通过在线签约管理进行详情、删除等操作。程序效果图如下图
课程设计|Springboot+vue前后端分离的租房网站
文章图片

租赁评价管理
用户通过租赁评价管理进行详情、删除等操作。程序效果图如下图
课程设计|Springboot+vue前后端分离的租房网站
文章图片

部分代码:

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.ZulinpingjiaEntity; import com.entity.view.ZulinpingjiaView; import com.service.ZulinpingjiaService; 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-03-11 14:12:56 */ @RestController @RequestMapping("/zulinpingjia") public class ZulinpingjiaController { @Autowired private ZulinpingjiaService zulinpingjiaService; /** * 后端列表 */ @RequestMapping("/page") public R page(@RequestParam Map params,ZulinpingjiaEntity zulinpingjia, HttpServletRequest request){ String tableName = request.getSession().getAttribute("tableName").toString(); if(tableName.equals("yonghu")) { zulinpingjia.setYonghuming((String)request.getSession().getAttribute("username")); } EntityWrapper ew = new EntityWrapper(); PageUtils page = zulinpingjiaService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, zulinpingjia), params), params)); return R.ok().put("data", page); }/** * 前端列表 */ @RequestMapping("/list") public R list(@RequestParam Map params,ZulinpingjiaEntity zulinpingjia, HttpServletRequest request){ EntityWrapper ew = new EntityWrapper(); PageUtils page = zulinpingjiaService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, zulinpingjia), params), params)); return R.ok().put("data", page); } /** * 列表 */ @RequestMapping("/lists") public R list( ZulinpingjiaEntity zulinpingjia){ EntityWrapper ew = new EntityWrapper(); ew.allEq(MPUtil.allEQMapPre( zulinpingjia, "zulinpingjia")); return R.ok().put("data", zulinpingjiaService.selectListView(ew)); }/** * 查询 */ @RequestMapping("/query") public R query(ZulinpingjiaEntity zulinpingjia){ EntityWrapper< ZulinpingjiaEntity> ew = new EntityWrapper< ZulinpingjiaEntity>(); ew.allEq(MPUtil.allEQMapPre( zulinpingjia, "zulinpingjia")); ZulinpingjiaView zulinpingjiaView =zulinpingjiaService.selectView(ew); return R.ok("查询租赁评价成功").put("data", zulinpingjiaView); } /** * 后端详情 */ @RequestMapping("/info/{id}") public R info(@PathVariable("id") Long id){ ZulinpingjiaEntity zulinpingjia = zulinpingjiaService.selectById(id); return R.ok().put("data", zulinpingjia); }/** * 前端详情 */ @RequestMapping("/detail/{id}") public R detail(@PathVariable("id") Long id){ ZulinpingjiaEntity zulinpingjia = zulinpingjiaService.selectById(id); return R.ok().put("data", zulinpingjia); }/** * 后端保存 */ @RequestMapping("/save") public R save(@RequestBody ZulinpingjiaEntity zulinpingjia, HttpServletRequest request){ zulinpingjia.setId(new Date().getTime()+new Double(Math.floor(Math.random()*1000)).longValue()); //ValidatorUtils.validateEntity(zulinpingjia); zulinpingjiaService.insert(zulinpingjia); return R.ok(); }/** * 前端保存 */ @RequestMapping("/add") public R add(@RequestBody ZulinpingjiaEntity zulinpingjia, HttpServletRequest request){ zulinpingjia.setId(new Date().getTime()+new Double(Math.floor(Math.random()*1000)).longValue()); //ValidatorUtils.validateEntity(zulinpingjia); zulinpingjiaService.insert(zulinpingjia); return R.ok(); }/** * 修改 */ @RequestMapping("/update") public R update(@RequestBody ZulinpingjiaEntity zulinpingjia, HttpServletRequest request){ //ValidatorUtils.validateEntity(zulinpingjia); zulinpingjiaService.updateById(zulinpingjia); //全部更新 return R.ok(); }/** * 删除 */ @RequestMapping("/delete") public R delete(@RequestBody Long[] ids){ zulinpingjiaService.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 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 wrapper = new EntityWrapper(); 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("yonghu")) { wrapper.eq("yonghuming", (String)request.getSession().getAttribute("username")); }int count = zulinpingjiaService.selectCount(wrapper); return R.ok().put("count", count); } }



    推荐阅读