前言介绍:
2021年处于信息科技高速发展的大背景之下。在今天,缺少手机和电脑几乎已经成为不可能的事情,人们生活中已经难以离开手机和电脑。针对增加的成本管理和操作,各大商家非常有必要建立自己的网上房屋租赁平台系统,这既可以让更多的人体验到网络所带来的方便,也有助于提高房屋的租赁。在经过几十年的高速发展后,互联网已成为最流行、最普及的媒体,每天的信息流量甚至能比得上过去十年。其以便捷的信息交换、快速的沟通速度,悄然地改变着会员的消费方式。简单、快捷、成本较低是互联网的特点,在互联网中,买家卖家不需要谋面也可以进行各种各样的交易活动,互联网商业化已经是当代经济的新趋势。 “电子商务”(电子商务或电子商务)的概念是在1996年前后在美国学术界提出的。经过数十年的经营,这个概念已经被广泛接受。B2B、C2C、C2B和B2C是电子商务的四类型型,但目前占据主流的是B2B和B2C两种。其中面向商家的管理模式称为B2B,它对商务系统的性能、安全和服务质量都要求十分严格;而直接面向消费者的模式称为B2C,也是我们所普遍接触的。到目前为止,电子商务的发展经历十余年仍然活力十足,电商应用就像雨后春笋一样冒出。
功能设计:
主要功能实现:首页、个人中心、房屋类型管理、房屋租赁管理、会员管理、订单信息管理、合同信息管理、退房评价管理、管理员管理,系统管理等基本功能
系统结构设计: 整个系统是由多个功能模块组合而成的,要将所有的功能模块都一一列举出来,然后进行逐个的功能设计,使得每一个模块都有相对应的功能设计,然后进行系统整体的设计
功能截图:
系统首页:在系统首页可以查看首页、房屋租赁、公告信息、个人中心、后台管理、客服中心等内容
房租租赁:在房屋租赁页面通过填写房屋名称、类型、图片、城市、地区、位置、朝向、楼层、楼号、设施、租金、押金、点击次数等信息进行提交
租赁详情:
公告信息:
个人中心:
客服管理:
订单信息:
合同信息:
后台管理员:管理员登录进入房屋租赁平台系统可以查看首页、个人中心、房屋类型管理、房屋租赁管理、会员管理、订单信息管理、合同信息管理、退房评价管理、管理员管理,系统管理等信息
房屋类型:在房屋类型管理页面中可以通过填写类型等内容进行修改
房屋租赁:
会员管理:在会员管理页面中可以查看用户名、密码、姓名、性别、头像、手机、邮箱、身份证等信息,并可根据需要对已有会员管理进行修改或删除等操作
订单管理:订单信息管理,在订单信息管理页面中可以查看订单编号、房屋名称、类型、图片、位置、朝向、楼层、楼号、租金、押金、总价格、租房日期、租房时长、信息备注、用户名、姓名、手机、身份证等信息,并可根据需要对已有订单信息管理进行修改或删除等详细操作
合同管理:合同信息管理,在合同信息管理页面中可以查看合同编号、房屋名称、类型、图片、位置、楼号、租金、押金、租房日期、租房时长、合同日期、用户名、姓名、手机、身份证等内容,并且根据需要对已有合同信息管理进行详情,修改或删除等详细操作
系统资讯:
客服轮播图等
数据设计:
将数据库概念设计的E-R图转换为关系数据库。在关系数据库中,数据关系由数据表组成,但是表的结构表现在表的字段上。
表4-1 allusers表
列名 |
数据类型 |
长度 |
约束 |
id |
int |
11 |
NOT NULL |
username |
varchar |
50 |
default NULL |
pwd |
varchar |
50 |
default NULL |
cx |
varchar |
50 |
default NULL |
表4-2dingdanxinxi表
列名 |
数据类型 |
长度 |
约束 |
id |
int |
11 |
NOT NULL |
addtime |
varchar |
50 |
default NULL |
dingdanbianhao |
varchar |
50 |
default NULL |
fangwumingcheng |
varchar |
50 |
default NULL |
leixing |
varchar |
50 |
default NULL |
tupian |
varchar |
50 |
default NULL |
weizhi |
varchar |
50 |
default NULL |
chaoxiang |
varchar |
50 |
default NULL |
louceng |
varchar |
50 |
default NULL |
louhao |
varchar |
50 |
default NULL |
zujin |
varchar |
50 |
default NULL |
yajin |
varchar |
50 |
default NULL |
zongjiage |
varchar |
50 |
default NULL |
zufangriqi |
varchar |
50 |
default NULL |
zufangshizhang |
varchar |
50 |
default NULL |
xinxibeizhu |
varchar |
50 |
default NULL |
yonghuming |
varchar |
50 |
default NULL |
xingming |
varchar |
50 |
default NULL |
shouji |
varchar |
50 |
default NULL |
shenfenzheng |
varchar |
50 |
default NULL |
sfsh |
varchar |
50 |
default NULL |
shhf |
varchar |
50 |
default NULL |
表4-3:fangwuleixing表
列名 |
数据类型 |
长度 |
约束 |
id |
int |
11 |
NOT NULL |
addtime |
varchar |
50 |
default NULL |
leixing |
varchar |
50 |
default NULL |
表4-4:huiyuan表
列名 |
数据类型 |
长度 |
约束 |
id |
int |
11 |
NOT NULL |
addtime |
varchar |
50 |
default NULL |
yonghuming |
varchar |
50 |
default NULL |
mima |
varchar |
50 |
default NULL |
xingming |
varchar |
50 |
default NULL |
xingbie |
varchar |
50 |
default NULL |
touxiang |
varchar |
50 |
default NULL |
shouji |
varchar |
50 |
default NULL |
youxiang |
varchar |
50 |
default NULL |
shenfenzheng |
varchar |
50 |
default NULL |
代码实现:
/**
* 房屋租赁
* 后端接口
* @author
* @email
* @date 2022-01-30 08:44:55
*/
@RestController
@RequestMapping("/fangwuzulin")
public class FangwuzulinController {
@Autowired
private FangwuzulinService fangwuzulinService;
/**
* 后端列表
*/
@RequestMapping("/page")
public R page(@RequestParam Map<String, Object> params,FangwuzulinEntity fangwuzulin, HttpServletRequest request){
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);
}
/**
* 前端列表
*/
@IgnoreAuth
@RequestMapping("/list")
public R list(@RequestParam Map<String, Object> params,FangwuzulinEntity fangwuzulin, HttpServletRequest request){
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);
}
/**
* 列表
*/
@RequestMapping("/lists")
public R list( FangwuzulinEntity fangwuzulin){
EntityWrapper<FangwuzulinEntity> ew = new EntityWrapper<FangwuzulinEntity>();
ew.allEq(MPUtil.allEQMapPre( fangwuzulin, "fangwuzulin"));
return R.ok().put("data", fangwuzulinService.selectListView(ew));
}
/**
* 查询
*/
@RequestMapping("/query")
public R query(FangwuzulinEntity fangwuzulin){
EntityWrapper< FangwuzulinEntity> ew = new EntityWrapper< FangwuzulinEntity>();
ew.allEq(MPUtil.allEQMapPre( fangwuzulin, "fangwuzulin"));
FangwuzulinView fangwuzulinView = fangwuzulinService.selectView(ew);
return R.ok("查询房屋租赁成功").put("data", fangwuzulinView);
}
/**
* 后端详情
*/
@RequestMapping("/info/{id}")
public R info(@PathVariable("id") Long id){
FangwuzulinEntity fangwuzulin = fangwuzulinService.selectById(id);
fangwuzulin.setClicknum(fangwuzulin.getClicknum()+1);
fangwuzulin.setClicktime(new Date());
fangwuzulinService.updateById(fangwuzulin);
return R.ok().put("data", fangwuzulin);
}
/**
* 前端详情
*/
@IgnoreAuth
@RequestMapping("/detail/{id}")
public R detail(@PathVariable("id") Long id){
FangwuzulinEntity fangwuzulin = fangwuzulinService.selectById(id);
fangwuzulin.setClicknum(fangwuzulin.getClicknum()+1);
fangwuzulin.setClicktime(new Date());
fangwuzulinService.updateById(fangwuzulin);
return R.ok().put("data", fangwuzulin);
}
/**
* 后端保存
*/
@RequestMapping("/save")
public R save(@RequestBody FangwuzulinEntity fangwuzulin, HttpServletRequest request){
fangwuzulin.setId(new Date().getTime()+new Double(Math.floor(Math.random()*1000)).longValue());
//ValidatorUtils.validateEntity(fangwuzulin);
fangwuzulinService.insert(fangwuzulin);
return R.ok();
}
/**
* 前端保存
*/
@RequestMapping("/add")
public R add(@RequestBody FangwuzulinEntity fangwuzulin, HttpServletRequest request){
fangwuzulin.setId(new Date().getTime()+new Double(Math.floor(Math.random()*1000)).longValue());
//ValidatorUtils.validateEntity(fangwuzulin);
fangwuzulinService.insert(fangwuzulin);
return R.ok();
}
/**
* 修改
*/
@RequestMapping("/update")
public R update(@RequestBody FangwuzulinEntity fangwuzulin, HttpServletRequest request){
//ValidatorUtils.validateEntity(fangwuzulin);
fangwuzulinService.updateById(fangwuzulin);//全部更新
return R.ok();
}
/**
* 删除
*/
@RequestMapping("/delete")
public R delete(@RequestBody Long[] ids){
fangwuzulinService.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<String, Object> 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<FangwuzulinEntity> wrapper = new EntityWrapper<FangwuzulinEntity>();
if(map.get("remindstart")!=null) {
wrapper.ge(columnName, map.get("remindstart"));
}
if(map.get("remindend")!=null) {
wrapper.le(columnName, map.get("remindend"));
}
int count = fangwuzulinService.selectCount(wrapper);
return R.ok().put("count", count);
}
/**
* 前端智能排序
*/
@IgnoreAuth
@RequestMapping("/autoSort")
public R autoSort(@RequestParam Map<String, Object> params,FangwuzulinEntity fangwuzulin, HttpServletRequest request,String pre){
EntityWrapper<FangwuzulinEntity> ew = new EntityWrapper<FangwuzulinEntity>();
Map<String, Object> newMap = new HashMap<String, Object>();
Map<String, Object> param = new HashMap<String, Object>();
Iterator<Map.Entry<String, Object>> it = param.entrySet().iterator();
while (it.hasNext()) {
Map.Entry<String, Object> entry = it.next();
String key = entry.getKey();
String newKey = entry.getKey();
if (pre.endsWith(".")) {
newMap.put(pre + newKey, entry.getValue());
} else if (StringUtils.isEmpty(pre)) {
newMap.put(newKey, entry.getValue());
} else {
newMap.put(pre + "." + newKey, entry.getValue());
}
}
params.put("sort", "clicknum");
params.put("order", "desc");
PageUtils page = fangwuzulinService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, fangwuzulin), params), params));
return R.ok().put("data", page);
}
}
论文参考:
第1章 绪 论
1.1课题背景
1.2 课题意义
1.3 开发工具及技术
1.4 国内外现状
第2章 系统分析
2.1 可行性分析
2.2总体设计原则
2.3系统需求分析
2.4 业务流程分析
2.5 数据流图
第3章 系统设计
3.1 系统功能设计
3.2 数据库设计
第4章 系统实现
4.1前台首页功能模块
4.2管理员功能模块
4.3会员功能模块
第5章 软件测试
5.1软件测试的重要性
5.2测试实例的研究与选择
5.3测试环境与测试条件
5.4系统运行情况
5.5系统评价
第6章 总结
参考文献:
致谢