源代码+数据库+LW文档(1万字以上)+开题报告+答辩稿ppt+部署教程+代码讲解+代码时间修改工具
技术实现
- 开发语言:后端:Java 前端:vue
- 框架:springboot
- 数据库:mysql
开发工具
JDK版本:JDK1.8
数据库:mysql 数据库工具:Navicat
开发软件:idea
主要角色及功能介绍
为了保证系统编码的顺利进行,我专门对这个系统功能做了详细设计。具体的系统功能结构请参考下图。
图4.1 系统功能结构图
数据库
一般来说,对用户进行调查以了解其需求,主要集中在功能上的分析和设计。然而,在设计功能时,也必须考虑数据库的设计。数据库是服务于程序的,它按照设定的规则对程序的数据进行保存,因此可以说数据库是程序相关数据的集合。为了确保程序的高质量,数据库提供的数据存储服务需要快速响应,同时数据信息也必须安全、合法、可靠。所以,构建一个数据库是一项需要高度关注、消耗时间和精力的工作。毕竟,这将直接影响到后期程序的开发和使用。可以想象,假设设计了一个不良的数据库,将会带来诸多问题:首先,面对信息处理时,会出现繁琐的业务逻辑,导致事务处理时间延长。其次,在程序编码期间,将需要编写更多的代码来完成数据处理功能,产生大量的数据冗余,同时也不利于代码的注释,还会占用更多的存储空间。
综上所述,设计一个合理的数据库是至关重要的。
(1)下图是用户实体和其属性。
用户实体属性图
(2)下图是邮箱验证码实体和其属性。
邮箱验证码实体属性图
(3)下图是购房常识评论表实体和其属性。
购房常识评论表实体属性图
(4)下图是购房常识分类实体和其属性。
购房常识分类属性图
(5)下图是地产公司实体和属性。
地产公司属性图
(6)下图是房屋类型实体和其属性。
房屋类型实体属性图
系统功能实现及截图
5.1管理员功能实现
5.1.1用户管理页面
图5.1展示的就是用户管理界面,这个界面是用来由管理者控制和维护用户信息的地方,该界面的核心目的是用户的管理,包括添加、移除或更新等操作,并能通过搜索来查找相关信息。当新的记录被创建或是已有的内容被更改、删除了之后,相应的数据库资料也会立即调整,以确保前后台与数据库之间的统一性。
图5.1 登录页面
核心代码如下:
@RequestMapping("/page")
public R page(@RequestParam Map<String, Object> params,YonghuEntity yonghu,
HttpServletRequest request){
EntityWrapper<YonghuEntity> ew = new EntityWrapper<YonghuEntity>();
PageUtils page = yonghuService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, yonghu), params), params));
return R.ok().put("data", page);
}
5.1.2房屋类型管理
图5.2展示的是房屋类型管理界面,这个界面是用来由管理者控制和维护房屋类型的地方,该界面的核心目的是提供房屋类型的管理,包括添加、移除或更新等操作,并能通过搜索来查找相关信息。当新的记录被创建或是已有的内容被更改、删除了之后,相应的数据库资料也会立即调整,以确保前后台与数据库之间的统一性。
图5.2 房屋类型管理页面
核心代码如下:
@RequestMapping("/page")
public R page(@RequestParam Map<String, Object> params,FangwuleixingEntity fangwuleixing,
HttpServletRequest request){
EntityWrapper<FangwuleixingEntity> ew = new EntityWrapper<FangwuleixingEntity>();
PageUtils page = fangwuleixingService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, fangwuleixing), params), params));
return R.ok().put("data", page);
}
5.1.3房屋租赁管理
图5.3展示的就是房屋租赁管理界面,这个界面是用来由管理者控制和维护房屋租赁信息的地方,该界面的核心目的是提供房屋租赁的管理,包括添加、移除或更新等操作,并能通过搜索来查找相关信息。当新的记录被创建或是已有的内容被更改、删除了之后,相应的数据库资料也会立即调整,以确保前后台与数据库之间的统一性。
图5.3 房屋租赁管理页面
核心代码如下:
@RequestMapping("/page")
public R page(@RequestParam Map<String, Object> params,FangwuzulinEntity fangwuzulin,
HttpServletRequest request){
String tableName = request.getSession().getAttribute("tableName").toString();
if(tableName.equals("yonghu")) {
fangwuzulin.setYonghuzhanghao((String)request.getSession().getAttribute("username"));
}
if(tableName.equals("dichangongsi")) {
fangwuzulin.setGongsizhanghao((String)request.getSession().getAttribute("username"));
}
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);
}
5.2地产公司角色功能
5.2.1个人信息页面
图5.4展示的是个人信息页面,此页面可以对自己的账号信息进行修改,包括公司名称、图片、联系人,地址等
图5.4 个人信息页面
核心代码如下:
@RequestMapping("/update")
@Transactional
public R update(@RequestBody DichangongsiEntity dichangongsi, HttpServletRequest request){
//ValidatorUtils.validateEntity(dichangongsi);
if(dichangongsiService.selectCount(new EntityWrapper<DichangongsiEntity>().ne("id", dichangongsi.getId()).eq("gongsizhanghao", dichangongsi.getGongsizhanghao()))>0) {
return R.error("公司账号已存在");
}
dichangongsiService.updateById(dichangongsi);//全部更新
return R.ok();
}
5.2.2租赁合同管理页面
图5.5展示的就是租赁合同管理界面,这个界面是用来控制和维护租赁合同的地方,该界面的核心目的是提供租赁合同的管理,包括添加、移除或更新等操作,并能通过搜索来查找相关信息。当新的记录被创建或是已有的内容被更改、删除了之后,相应的数据库资料也会立即调整,以确保前后台与数据库之间的统一性。
图5.5 租赁合同管理页面
核心代码如下:
@RequestMapping("/page")
public R page(@RequestParam Map<String, Object> params,ZulinhetongEntity zulinhetong,
HttpServletRequest request){
String tableName = request.getSession().getAttribute("tableName").toString();
if(tableName.equals("yonghu")) {
zulinhetong.setYonghuzhanghao((String)request.getSession().getAttribute("username"));
}
if(tableName.equals("dichangongsi")) {
zulinhetong.setGongsizhanghao((String)request.getSession().getAttribute("username"));
}
EntityWrapper<ZulinhetongEntity> ew = new EntityWrapper<ZulinhetongEntity>();
PageUtils page = zulinhetongService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, zulinhetong), params), params));
return R.ok().put("data", page);
}
5.2.3房屋出售管理页面
图5.6展示的是房屋出售管理界面,这个界面是用来控制和维护房屋出售信息的地方,该界面的核心目的是提供房屋出售信息的管理,包括添加、移除或更新等操作,并能通过搜索来查找相关信息。当新的记录被创建或是已有的内容被更改、删除了之后,相应的数据库资料也会立即调整,以确保前后台与数据库之间的统一性。
图5.6 房屋出售管理页面
核心代码如下:
@RequestMapping("/page")
public R page(@RequestParam Map<String, Object> params,FangwuchushouEntity fangwuchushou,
HttpServletRequest request){
String tableName = request.getSession().getAttribute("tableName").toString();
if(tableName.equals("dichangongsi")) {
fangwuchushou.setGongsizhanghao((String)request.getSession().getAttribute("username"));
}
EntityWrapper<FangwuchushouEntity> ew = new EntityWrapper<FangwuchushouEntity>();
PageUtils page = fangwuchushouService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, fangwuchushou), params), params));
return R.ok().put("data", page);
}
5.3用户角色功能
5.3.1房屋出租页面
图5.7展示的是房屋出租页面,用户可以在此页面查看已经出租的房子和未出租的房子,根据自己的喜好点击图片查看
图5.7 房屋出租页面
核心代码如下:
@IgnoreAuth
@RequestMapping("/list")
public R list(@RequestParam Map<String, Object> params,FangwuchuzuEntity fangwuchuzu,
HttpServletRequest request){
EntityWrapper<FangwuchuzuEntity> ew = new EntityWrapper<FangwuchuzuEntity>();
PageUtils page = fangwuchuzuService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, fangwuchuzu), params), params));
return R.ok().put("data", page);
}
5.3.2购房常识页面
图5.8展示的是购房常识页面,用户可以在此页面查看购房常识信息
图5.8 购房常识页面
核心代码如下:
@IgnoreAuth
@RequestMapping("/list")
public R list(@RequestParam Map<String, Object> params,DiscussnewsEntity discussnews,
HttpServletRequest request){
EntityWrapper<DiscussnewsEntity> ew = new EntityWrapper<DiscussnewsEntity>();
PageUtils page = discussnewsService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, discussnews), params), params));
return R.ok().put("data", page);
}
5.3.3个人中心页面
图5.9展示的是个人中心页面,用户可以在此页面查看和修改自己的信息,包括用户姓名,头像,性别,手机号码,邮箱等,还可以进行修改密码等操作。
图5.9 个人中心页面
核心代码如下:
@RequestMapping("/update")
@Transactional
public R update(@RequestBody YonghuEntity yonghu, HttpServletRequest request){
//ValidatorUtils.validateEntity(yonghu);
if(yonghuService.selectCount(new EntityWrapper<YonghuEntity>().ne("id", yonghu.getId()).eq("yonghuzhanghao", yonghu.getYonghuzhanghao()))>0) {
return R.error("用户账号已存在");
}
yonghuService.updateById(yonghu);//全部更新
return R.ok();
}