行业知识
基于微信小程序的房屋租赁出租平台-安卓APP【毕设源码论文】
�� 博主介绍:全网个人号和企业号粉丝40W+,每年辅导几千名大学生较好的完成毕业设计,专注计算机软件领域的项目研发,不断的进行新技术的项目实战
⭐️热门专栏推荐订阅⭐️ 订阅收藏起来,防止下次找不到
百套小程序APP项目实战持续更新中~
千套JAVA项目实战持续更新中~
百套Python实战项目持续更新中~
有需求的各位可以先收藏起来,还有大家在毕设选题,开题报告有疑惑的都可以找我,给你参考意见,需要开题模板的可以私信留言告诉我
❤️文末获取源码联系❤️ ⚠️一定要先收藏⚠️
四 系统设计
4.1系统设计总体描述
总体上看,房屋租赁App具有客管理、房主管理、房源类型管理、房源信息管理、租房订单管理、房源资讯管理、系统管理等功能模块。
系统总体功能结构图如下所示:
图4-1系统总体结构图
4.2数据库设计
4.2.1 数据库系统
构建一个房屋租赁App数据库是必不可少的,而我们使用的是MySQL关系数据库,开发工具是时下热门的Navicat for MySQL开发。MySQL有着信息卓越、服务稳定并且开源,可以不用担心费用问题,对于个人的管理及维护上也十分便捷,Navicat有着简洁的界面和稳定的开发环境,还拥有着优秀的图形用户界面。
4.2.2数据库实体及属性
4.2.3数据库设计表
在我们建立数据表的时候,我们需要考虑标语表之间、数据之间的关系,数据库的设计显得尤为重要,它关系着开发软件过程中各个方面的效率、应用、设计。详细信息如下。
表4-1:关于我们
| 字段名称 | 类型 | 长度 | 字段说明 | 主键 | 默认值 |
| id | bigint | 主键 | 主键 | ||
| addtime | timestamp | 创建时间 | CURRENT_TIMESTAMP | ||
| title | varchar | 200 | 标题 | ||
| subtitle | varchar | 200 | 副标题 | ||
| content | longtext | 4294967295 | 内容 | ||
| picture1 | longtext | 4294967295 | 图片1 | ||
| picture2 | longtext | 4294967295 | 图片2 | ||
| picture3 | longtext | 4294967295 | 图片3 |
表4-2:配置文件
| 字段名称 | 类型 | 长度 | 字段说明 | 主键 | 默认值 |
| id | bigint | 主键 | 主键 | ||
| name | varchar | 100 | 配置参数名称 | ||
| value | varchar | 100 | 配置参数值 |
表4-3:用户表
| 字段名称 | 类型 | 长度 | 字段说明 | 主键 | 默认值 |
| id | bigint | 主键 | 主键 | ||
| username | varchar | 100 | 用户名 | ||
| password | varchar | 100 | 密码 | ||
| role | varchar | 100 | 角色 | 管理员 | |
| addtime | timestamp | 新增时间 | CURRENT_TIMESTAM |
表4-4:token表
| 字段名称 | 类型 | 长度 | 字段说明 | 主键 | 默认值 |
| id | bigint | 主键 | 主键 | ||
| userid | bigint | 用户id | |||
| username | varchar | 100 | 用户名 | ||
| tablename | varchar | 100 | 表名 | ||
| role | varchar | 100 | 角色 | ||
| token | varchar | 200 | 密码 | ||
| addtime | timestamp | 新增时间 | CURRENT_TIMESTAMP | ||
| expiratedtime | timestamp | 过期时间 | CURRENT_TIMEST |
表4-5:收藏表
| 字段名称 | 类型 | 长度 | 字段说明 | 主键 | 默认值 |
| id | bigint | 主键 | 主键 | ||
| addtime | timestamp | 创建时间 | CURRENT_TIMESTAMP | ||
| userid | bigint | 用户id | |||
| refid | bigint | 商品id | |||
| tablename | varchar | 200 | 表名 | ||
| name | varchar | 200 | 名称 | ||
| picture | longtext | 4294967295 | 图片 | ||
| type | varchar | 200 | 类型(1:收藏,21:赞,22:踩,31:竞拍参与,41:关注) | 1 | |
| inteltype | varchar | 200 | 推荐类型 | ||
| remark | varchar | 200 | 备注 |
表4-6:公告信息
| 字段名称 | 类型 | 长度 | 字段说明 | 主键 | 默认值 |
| id | bigint | 主键 | 主键 | ||
| addtime | timestamp | 创建时间 | CURRENT_TIMESTAMP | ||
| title | varchar | 200 | 标题 | ||
| introduction | longtext | 4294967295 | 简介 | ||
| picture | longtext | 4294967295 | 图片 | ||
| content | longtext | 4294967295 | 内容 |
表4-7:房主
| 字段名称 | 类型 | 长度 | 字段说明 | 主键 | 默认值 |
| id | bigint | 主键 | 主键 | ||
| addtime | timestamp | 创建时间 | CURRENT_TIMESTAMP | ||
| fangzhuzhanghao | varchar | 200 | 房主账号 | ||
| mima | varchar | 200 | 密码 | ||
| fangzhuxingming | varchar | 200 | 房主姓名 | ||
| nianling | int | 年龄 | |||
| xingbie | varchar | 200 | 性别 | ||
| lianxidianhua | varchar | 200 | 联系电话 | ||
| touxiang | longtext | 4294967295 | 头像 |
表4-8:房源资讯
| 字段名称 | 类型 | 长度 | 字段说明 | 主键 | 默认值 |
| id | bigint | 主键 | 主键 | ||
| addtime | timestamp | 创建时间 | CURRENT_TIMESTAMP | ||
| biaoti | varchar | 200 | 标题 | ||
| jianjie | longtext | 4294967295 | 简介 | ||
| fabushijian | date | 发布时间 | |||
| fengmian | longtext | 4294967295 | 封面 | ||
| neirong | longtext | 4294967295 | 内容 | ||
| clicktime | datetime | 最近点击时间 | |||
| clicknum | int | 点击次数 | 0 |
表4-9:房源信息
| 字段名称 | 类型 | 长度 | 字段说明 | 主键 | 默认值 |
| id | bigint | 主键 | 主键 | ||
| addtime | timestamp | 创建时间 | CURRENT_TIMESTAMP | ||
| biaoti | varchar | 200 | 标题 | ||
| fangyuanleixing | varchar | 200 | 房源类型 | ||
| huxing | varchar | 200 | 户型 | ||
| mianji | varchar | 200 | 面积 | ||
| zujin | float | 租金 | |||
| tupian | longtext | 4294967295 | 图片 | ||
| weizhi | varchar | 200 | 位置 | ||
| chaoxiang | varchar | 200 | 朝向 | ||
| fangyuansheshi | longtext | 4294967295 | 房源设施 | ||
| fabushijian | datetime | 发布时间 | |||
| fangyuanxiangqing | longtext | 4294967295 | 房源详情 | ||
| fangzhuzhanghao | varchar | 200 | 房主账号 | ||
| fangzhuxingming | varchar | 200 | 房主姓名 | ||
| lianxidianhua | varchar | 200 | 联系电话 | ||
| clicktime | datetime | 最近点击时间 | |||
| clicknum | int | 点击次数 | 0 |
表4-10:房源类型
| 字段名称 | 类型 | 长度 | 字段说明 | 主键 | 默认值 |
| id | bigint | 主键 | 主键 | ||
| addtime | timestamp | 创建时间 | CURRENT_TIMESTAMP | ||
| fangyuanleixing | varchar | 200 | 房源类型 |
表4-11:租客
| 字段名称 | 类型 | 长度 | 字段说明 | 主键 | 默认值 |
| id | bigint | 主键 | 主键 | ||
| addtime | timestamp | 创建时间 | CURRENT_TIMESTAMP | ||
| zhanghao | varchar | 200 | 账号 | ||
| mima | varchar | 200 | 密码 | ||
| xingming | varchar | 200 | 姓名 | ||
| nianling | int | 年龄 | |||
| xingbie | varchar | 200 | 性别 | ||
| shouji | varchar | 200 | 手机 | ||
| shenfenzheng | varchar | 200 | 身份证 | ||
| touxiang | longtext | 4294967295 | 头像 |
表4-12:租房订单
| 字段名称 | 类型 | 长度 | 字段说明 | 主键 | 默认值 |
| id | bigint | 主键 | 主键 | ||
| addtime | timestamp | 创建时间 | CURRENT_TIMESTAMP | ||
| dingdanbianhao | varchar | 200 | 订单编号 | ||
| fangyuanleixing | varchar | 200 | 房源类型 | ||
| huxing | varchar | 200 | 户型 | ||
| tupian | longtext | 4294967295 | 图片 | ||
| zujin | float | 租金 | |||
| zuqi | int | 租期 | |||
| zongjia | float | 总价 | |||
| zufangyuanyin | longtext | 4294967295 | 租房原因 | ||
| zufangshijian | date | 租房时间 | |||
| zhanghao | varchar | 200 | 账号 | ||
| xingming | varchar | 200 | 姓名 | ||
| shouji | varchar | 200 | 手机 | ||
| shenfenzheng | varchar | 200 | 身份证 | ||
| fangzhuzhanghao | varchar | 200 | 房主账号 | ||
| fangzhuxingming | varchar | 200 | 房主姓名 | ||
| lianxidianhua | varchar | 200 | 联系电话 | ||
| sfsh | varchar | 200 | 是否审核 | 待审核 | |
| shhf | longtext | 4294967295 | 审核回复 | ||
| ispay | varchar | 200 | 是否支付 | 未支付 |
表4-13:关于我们
| 字段名称 | 类型 | 长度 | 字段说明 | 主键 | 默认值 |
| id | bigint | 主键 | 主键 | ||
| addtime | timestamp | 创建时间 | CURRENT_TIMESTAMP | ||
| title | varchar | 200 | 标题 | ||
| subtitle | varchar | 200 | 副标题 | ||
| content | longtext | 4294967295 | 内容 | ||
| picture1 | longtext | 4294967295 | 图片1 | ||
| picture2 | longtext | 4294967295 | 图片2 | ||
| picture3 | longtext | 4294967295 | 图片3 |
五 系统的实现
5.1 App端用户功能的实现
第一次使用本APP的使用者,首先是要进行注册,点击“注册”,然后就会进入到注册的页面里面,将租客信息录入注册表,确认信息正确后,系统才会进入登录界面,租客登录成功后可使用本APP所提供的所有功能。租客注册界面如图5-1所示。
图5-1 租客注册界面
首先双击打开APP,连上网络之后会显示出本系统的登录界面,这是进入APP的第初始页面“登录”,能成功进入到该登录界面则代表APP开启是成功的,接下来就可以操作本系统所带有的其他所有的功能。租客登录界面如图5-2所示。
图5-2 租客登录界面
APP首页是租客注册登录后进入的第一个界面,租客可通过APP端首页的最下面的那一行导航栏中的“首页、系统简介、房源信息、房源资讯、公告信息、我的”进入到相应的网页进行操作;点击“我的”进入我的页面,在我的页面可以对租房订单、我的收藏管理等进行详细操作。APP首页界面如图5-3所示。
图5-3 APP首页界面图
租客点击房源信息,在房源信息页面的搜索栏输入房源类型,进行查询,然后可以查看标题、房源类型、户型、面积、租金、图片、位置、朝向、发布时间、房主账号、房主姓名、联系电话、点击次数等信息,按照提示即可点击租房或者收藏等。如图5-4所示。
图5-4 房源信息界面图
租客点击“我的”进入我的页面,在我的页面可以对租房订单、我的收藏管理等进行详细操作。如图5-5所示。
5.2 App端房主功能的实现
5.3 管理员服务端功能的实现
管理员登录,通过登录页面填写用户名和密码等信息,点击登录操作,如图5-11所示。
图5-11管理员登录界面图
管理员登录进入系统可以查看系统首页、个人中心、租客管理、房主管理、房源类型管理、房源信息管理、租房订单管理、房源资讯管理、系统管理等功能进行详细操作,如图5-12所示。
图5-12管理员功能界面图
JAVA后端代码实现
package com.controller; import java.util.Arrays;import java.util.Calendar;import java.util.Date;import java.util.Map; import javax.servlet.http.HttpServletRequest; import org.springframework.beans.factory.annotation.Autowired;import org.springframework.stereotype.Controller;import org.springframework.web.bind.annotation.GetMapping;import org.springframework.web.bind.annotation.PathVariable;import org.springframework.web.bind.annotation.PostMapping;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.ResponseBody;import org.springframework.web.bind.annotation.RestController; import com.annotation.IgnoreAuth;import com.baomidou.mybatisplus.mapper.EntityWrapper;import com.entity.TokenEntity;import com.entity.UserEntity;import com.service.TokenService;import com.service.UserService;import com.utils.CommonUtil;import com.utils.MD5Util;import com.utils.MPUtil;import com.utils.PageUtils;import com.utils.R;import com.utils.ValidatorUtils; /** * 登录相关 */@RequestMapping("users")@RestControllerpublic class UserController{@Autowiredprivate UserService userService;@Autowiredprivate TokenService tokenService; /** * 登录 */@IgnoreAuth@PostMapping(value = "/login")public R login(String username, String password, String captcha, HttpServletRequest request) {UserEntity user = userService.selectOne(new EntityWrapper().eq("username", username));if(user==null || !user.getPassword().equals(password)) {return R.error("账号或密码不正确");}String token = tokenService.generateToken(user.getId(),username, "users", user.getRole());return R.ok().put("token", token);}/** * 注册 */@IgnoreAuth@PostMapping(value = "/register")public R register(@RequestBody UserEntity user){// ValidatorUtils.validateEntity(user); if(userService.selectOne(new EntityWrapper().eq("username", user.getUsername())) !=null) { return R.error("用户已存在"); } userService.insert(user); return R.ok(); } /** * 退出 */@GetMapping(value = "logout")public R logout(HttpServletRequest request) {request.getSession().invalidate();return R.ok("退出成功");}/** * 密码重置 */ @IgnoreAuth@RequestMapping(value = "/resetPass") public R resetPass(String username, HttpServletRequest request){ UserEntity user = userService.selectOne(new EntityWrapper().eq("username", username)); if(user==null) { return R.error("账号不存在"); } user.setPassword("123456"); userService.update(user,null); return R.ok("密码已重置为:123456"); }/** * 列表 */ @RequestMapping("/page") public R page(@RequestParam Map params,UserEntity user){ EntityWrapper ew = new EntityWrapper(); PageUtils page = userService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.allLike(ew, user), params), params)); return R.ok().put("data", page); } /** * 列表 */ @RequestMapping("/list") public R list( UserEntity user){ EntityWrapper ew = new EntityWrapper(); ew.allEq(MPUtil.allEQMapPre( user, "user")); return R.ok().put("data", userService.selectListView(ew)); } /** * 信息 */ @RequestMapping("/info/{id}") public R info(@PathVariable("id") String id){ UserEntity user = userService.selectById(id); return R.ok().put("data", user); } /** * 获取用户的session用户信息 */ @RequestMapping("/session") public R getCurrUser(HttpServletRequest request){ Long id = (Long)request.getSession().getAttribute("userId"); UserEntity user = userService.selectById(id); return R.ok().put("data", user); } /** * 保存 */ @PostMapping("/save") public R save(@RequestBody UserEntity user){// ValidatorUtils.validateEntity(user); if(userService.selectOne(new EntityWrapper().eq("username", user.getUsername())) !=null) { return R.error("用户已存在"); } userService.insert(user); return R.ok(); } /** * 修改 */ @RequestMapping("/update") public R update(@RequestBody UserEntity user){// ValidatorUtils.validateEntity(user); UserEntity u = userService.selectOne(new EntityWrapper().eq("username", user.getUsername())); if(u!=null && u.getId()!=user.getId() && u.getUsername().equals(user.getUsername())) { return R.error("用户名已存在。"); } userService.updateById(user);//全部更新 return R.ok(); } /** * 删除 */ @RequestMapping("/delete") public R delete(@RequestBody Long[] ids){ userService.deleteBatchIds(Arrays.asList(ids)); return R.ok(); }} 源码获取
大家点赞、收藏、关注 ,让更多需要的同学看到
不同开发语言专栏推荐订阅:
百套小程序APP项目实战持续更新中~
千套JAVA项目实战持续更新中~
百套Python实战项目持续更新中~
下方有我的微信名片
上一篇:服务器设备负载怎么测?