博主介绍:👉全网个人号和企业号粉丝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")
@RestController
public class UserController{
@Autowired
private UserService userService;
@Autowired
private TokenService tokenService;
/**
* 登录
*/
@IgnoreAuth
@PostMapping(value = "/login")
public R login(String username, String password, String captcha, HttpServletRequest request) {
UserEntity user = userService.selectOne(new EntityWrapper<UserEntity>().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<UserEntity>().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<UserEntity>().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<String, Object> params,UserEntity user){
EntityWrapper<UserEntity> ew = new EntityWrapper<UserEntity>();
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<UserEntity> ew = new EntityWrapper<UserEntity>();
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<UserEntity>().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<UserEntity>().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实战项目持续更新中~文章来源:https://www.toymoban.com/news/detail-842445.html
👇下方有我的微信名片👇文章来源地址https://www.toymoban.com/news/detail-842445.html
到了这里,关于基于微信小程序的房屋租赁出租平台-安卓APP【毕设源码论文】的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!